Routines |
Prev: A92C | Up: Map | Next: AA7F |
Used by the routines at Handler_Move_Characters and EB01.
|
||||
Handler_PickUpObjects | AA30 | PUSH HL | Stash HL on the stack. | |
AA31 | CALL Handler_ItemsCurrentRoom | Call Handler_ItemsCurrentRoom. | ||
AA34 | INC HL | Increment HL by three. | ||
AA35 | INC HL | |||
AA36 | INC HL | |||
AA37 | LD A,(HL) | |||
AA38 | AND (IY-$28) | |||
AA3B | JR Z,Handler_PickUpObjects_1 | |||
AA3D | LD A,(HL) | |||
AA3E | AND %10000000 | Keep only bit 7. | ||
AA40 | JR Z,Handler_PickUpObjects_0 | |||
AA42 | PUSH HL | Stash HL on the stack. | ||
AA43 | CALL Character_Active | Call Character_Active. | ||
AA46 | POP HL | Restore HL from the stack. | ||
AA47 | JR NZ,Handler_PickUpObjects_1 | |||
Handler_PickUpObjects_0 | AA49 | LD A,(HL) | ||
AA4A | RES 7,A | |||
AA4C | LD D,A | |||
AA4D | LD A,(HL) | |||
AA4E | AND %10000000 | Keep only bit 7. | ||
AA50 | OR (IY-$32) | |||
AA53 | LD (HL),A | |||
AA54 | LD A,(IY-$37) | |||
AA57 | LD (IY-$32),A | |||
AA5A | LD (IY-$37),D | |||
Fetch the item 2 ID, we're about to drop it.
|
||||
AA5D | LD A,(IY+$55) | A=*IY+55. | ||
AA60 | DEC HL | Decrease HL by three. | ||
AA61 | DEC HL | |||
AA62 | DEC HL | |||
Fetch the picked up item ID.
|
||||
AA63 | LD E,(HL) | E=*HL. | ||
Write the dropped item ID to *HL.
|
||||
AA64 | LD (HL),A | Write A to *HL. | ||
Move the characters collected item 1 to item 2.
|
||||
AA65 | LD A,(IY+$50) | A=*IY+50. | ||
AA68 | LD (IY+$55),A | Write A to *IY+55. | ||
Write the picked up item to the characters item 1.
|
||||
AA6B | LD (IY+$50),E | Write E to *IY+50. | ||
AA6E | CALL Character_Active | Call Character_Active. | ||
AA71 | CALL Z,$E41D | |||
Handler_PickUpObjects_1 | AA74 | LD A,($B951) | ||
AA77 | CP (IY+$0F) | |||
AA7A | CALL Z,Sounds_PickUp | |||
AA7D | POP HL | Restore HL from the stack. | ||
AA7E | RET | Return. |
Prev: A92C | Up: Map | Next: AA7F |