Sorry for the double post, but it's been like, three days and I have a question. Well, two.
I've finally broken down, and I need help.
First of all - what the heck is function 40AC90 (create animated effect) doing in 419910 (take damage function)? I tested the exe without the call to that function in it, but nothing happens.
I've also found this:
Code:
Address Command
00419A9B MOVSX EAX,WORD PTR DS:[49E6CC]
00419AA2 TEST EAX,EAX
00419AA4 JLE SHORT 00419AD1
From what I gather this checks if the player's current health is at or below 0 (and some overflow crap as well), and if so jumps to 419ad1, but it just seems to JMP a couple times and repeat some of the "take damage" code. I'm wondering what it thinks it's doing,
because I'm trying to find the part of the code where the player dies.
Nevermind that part, found it.
Code:
CPU Disasm
Address Hex dump Command Comments
00419B0E |. 6A 01 PUSH 1 ; /Arg2 = 1
00419B10 |. 6A 11 PUSH 11 ; |Arg1 = 11
00419B12 |. E8 296B0000 CALL 00420640 ; \Doukutsu.00420640
00419B17 |. 83C4 08 ADD ESP,8
00419B1A |. C605 38E64900 MOV BYTE PTR DS:[49E638],0
00419B21 |. 6A 40 PUSH 40 ; /Arg4 = 40
00419B23 |. 68 00140000 PUSH 1400 ; |Arg3 = 1400
00419B28 |. 8B0D 58E64900 MOV ECX,DWORD PTR DS:[49E658] ; |
00419B2E |. 51 PUSH ECX ; |Arg2 => [49E658] = 0
00419B2F |. 8B15 54E64900 MOV EDX,DWORD PTR DS:[49E654] ; |
00419B35 |. 52 PUSH EDX ; |Arg1 => [49E654] = 0
00419B36 |. E8 15560500 CALL 0046F150 ; \Doukutsu.0046F150
00419B3B |. 83C4 10 ADD ESP,10
00419B3E |. 6A 28 PUSH 28 ; /Arg1 = 28
00419B40 |. E8 4B7E0000 CALL 00421990 ; \Doukutsu.00421990
00419B45 |. 83C4 04 ADD ESP,4