Only problem i'm having now is Quote not appearing.
Does the map need to reload to make Quote appear?
well remember that what <hmc DOES is make quote invisible. if you want to make him visible again, you need to use <smc.
How do the logic instructions (and, or, xor, not) work when placed before conditional jmp's?
Code:
mov eax, npc.collisionand eax, 8jz :Render
Does it do the same thing as je, jge, jle, jl???
I know jz = je, but it's the and before that I can't understand.
I prefer using jz to je myself, because it gives a much clearer idea of what's happening. basically, the cpu has a bunch of special flags it uses for various things, one of which is the z flag (set if the result of an operation is zero), and one of which is the negative flag (set if the result is negative).
So calling jz after
and just sees if the result is zero. you can obviously do the same thing after sub, or cmp (which is sub except instead of storing the result of the subtraction, it only sets the flags). jl would see if the negative flag was said, jle if the negative or zero flags, jg if the negative flag wasn't set, etc. etc.
grok?
Code:
*snip*
00424E78 |. 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
00424E7B |. 0FBE45 DC MOVSX EAX,BYTE PTR SS:[EBP-24]
00424E7F |. 3905 0C5B4A00 CMP DWORD PTR DS:[4A5B0C],EAX
00424E85 |. 74 14 JE SHORT 00424E9B
00424E87 |. 0FBE4D DC MOVSX ECX,BYTE PTR SS:[EBP-24]
00424E8B |. 890D 0C5B4A00 MOV DWORD PTR DS:[4A5B0C],ECX
00424E91 |. C705 105B4A00 MOV DWORD PTR DS:[4A5B10],800
*snip*
i've been looking through the <FAC code, but i'm confused. it doesn't seem to CALL or anything to result in the image rendering. I'm probably just really shitty at assembly but i was wondering if someone could help me out.
[4a5b0c] is a global var that holds the id of what face should be drawn. the drawing is handled elsewhere. you can figure this out by seeing that eax holds the argument of <fac and seeing that the only thing done with it is that it's put into that variable.
note that [4a5b10] only gets a value if the face changes from one id to another. I'd guess it has something to do with the animation that changes between faces. (possibly an x offset from the norm - I don't recall cuz it's been forever, but I believe the faces slide in)
Are
Code:
npc.movex=[ecx+10]npc.movey=[ecx+14]
Just variables? (they don't seem to do anything by themselves)
yes....
tho I don't get what you mean by "just variables" -- nothing does anything by itself, and any time you put a number into memory you're storing it into a "variable" of some form or another