Routines |
Prev: 9FFB | Up: Map | Next: A064 |
Used by the routines at DrawInventory and MenuIcons.
|
||||||||
SetEntityAttributes | A00E | LD A,(IX+$03) | Write the entity X position to Saved_X. | |||||
A011 | LD ($5E16),A | |||||||
A014 | LD A,(IX+$04) | Write the entity X position to Saved_Y. | ||||||
A017 | LD ($5E17),A | |||||||
This entry point is used by the routines at HandlerWeapon, HandlerBatlet, HandlerKnight and HandlerCaveDoorLocked.
|
||||||||
SetEntityAttributes_0 | A01A | LD L,(IX+$03) | HL=Entity screen position. | |||||
A01D | LD H,(IX+$04) | |||||||
A020 | LD D,(IX+$05) | D=Entity attribute. | ||||||
A023 | LD A,($5E1A) | E=Room attribute. | ||||||
A026 | LD E,A | |||||||
A027 | LD A,($5E10) | B=Entity width in bytes. | ||||||
A02A | LD B,A | |||||||
A02B | LD A,($5E11) | A=Entity height in pixels. | ||||||
A02E | RRCA | Divide by 04. | ||||||
A02F | RRCA | |||||||
A030 | INC A | Increment A by one. | ||||||
A031 | RRCA | Divide by 02. | ||||||
A032 | AND %00011111 | Keep only bits 0-4. | ||||||
A034 | INC A | Increment A by one. | ||||||
A035 | LD C,A | Store the result in C. | ||||||
A036 | PUSH BC | Stash BC on the stack. | ||||||
A037 | LD B,$00 | B=00. | ||||||
A039 | LD A,($5E16) | Compare Saved_X against L to see if the X position is unchanged. | ||||||
A03C | CP L | |||||||
A03D | JR Z,SetEntityAttributes_2 | If it hasn't changed then jump to SetEntityAttributes_2. | ||||||
A03F | JR C,SetEntityAttributes_1 | If the entity has moved left then jump to SetEntityAttributes_1. | ||||||
A041 | INC B | B=B + 01. | ||||||
SetEntityAttributes_1 | A042 | INC B | B=B + 01. | |||||
SetEntityAttributes_2 | A043 | LD A,($5E17) | Compare Saved_Y against H to see if the Y position is unchanged. | |||||
A046 | CP H | |||||||
A047 | LD A,B | A=B. | ||||||
A048 | JR Z,SetEntityAttributes_4 | If it hasn't changed then jump to SetEntityAttributes_4. | ||||||
A04A | JR C,SetEntityAttributes_3 | If the entity has moved up then jump to SetEntityAttributes_3. | ||||||
A04C | ADD A,$04 | A=A + 04. | ||||||
SetEntityAttributes_3 | A04E | ADD A,$04 | A=A + 04. | |||||
SetEntityAttributes_4 | A050 | LD B,A | Stash the result in B. | |||||
A051 | CALL AttributeAddress | Call AttributeAddress. | ||||||
A054 | LD A,B | Restore the result back into A. | ||||||
A055 | POP BC | |||||||
A056 | PUSH HL | |||||||
A057 | LD HL,$A064 | HL=AttributeJumpTable. | ||||||
A05A | SLA A | A=A * 02. | ||||||
A05C | CALL HandlerCaveDoorLocked_1 | Call HandlerCaveDoorLocked_1. | ||||||
A05F | LD A,(HL) | HL=attribute routine selected from AttributeJumpTable. | ||||||
A060 | INC HL | |||||||
A061 | LD H,(HL) | |||||||
A062 | LD L,A | |||||||
A063 | JP (HL) | Indirect jump to the address held in HL. |
Prev: 9FFB | Up: Map | Next: A064 |