Prev: 8787 Up: Map Next: 882D
87A6: Drive a ghost
Sprites $62 and $63. As with the bats there is a second ghost, sprites $68 and $69, with its own routine in MOVE_HOPPER.
MOVE_GHOST 87A6 CALL ACTOR_TO_WORKSPACE
87A9 LD A,($EA91)
87AC CP (IX+$01)
87AF JP NZ,ACTOR_TICK_TIMER
87B2 LD HL,$5E25
87B5 INC (HL)
87B6 CALL CHECK_SHOT_HIT
87B9 DEC E
87BA JP Z,KILL_MONSTER
87BD CALL CHECK_HIT
87C0 DEC E
87C1 JP Z,MONSTER_CAUGHT_PLAYER
87C4 LD DE,($5E1D)
87C8 LD (IX+$0F),$00
87CC LD (IX+$05),$46
87D0 LD A,(IX+$07)
87D3 AND $07
87D5 JR NZ,MOVE_GHOST_0
87D7 LD A,R
87D9 AND $03
87DB LD (IX+$06),A
MOVE_GHOST_0 87DE BIT 0,(IX+$07)
87E2 JR NZ,MOVE_GHOST_2
87E4 BIT 0,(IX+$06)
87E8 JR Z,MOVE_GHOST_3
87EA LD A,(IX+$08)
87ED CP $02
87EF JR Z,MOVE_GHOST_1
87F1 INC (IX+$08)
MOVE_GHOST_1 87F4 BIT 1,(IX+$06)
87F8 JR Z,MOVE_GHOST_4
87FA LD A,(IX+$09)
87FD CP $02
87FF JR Z,MOVE_GHOST_2
8801 INC (IX+$09)
MOVE_GHOST_2 8804 INC (IX+$07)
8807 LD A,(IX+$07)
880A AND $01
880C XOR (IX+$00)
880F LD (IX+$00),A
8812 JP STEP_ACTOR
MOVE_GHOST_3 8815 LD A,(IX+$08)
8818 CP $FE
881A JR Z,MOVE_GHOST_1
881C DEC (IX+$08)
881F JR MOVE_GHOST_1
MOVE_GHOST_4 8821 LD A,(IX+$09)
8824 CP $FE
8826 JR Z,MOVE_GHOST_2
8828 DEC (IX+$09)
882B JR MOVE_GHOST_2
Prev: 8787 Up: Map Next: 882D