Prev: DD61 Up: Map Next: DDCF
DD93: Handle Overlap Second
Used by the routine at HandleOverlap.
Moves the entity clear of the overlap in the second direction. Entities of type 05 are changed to type 0D.
Input
IX The entity
HandleOverlapSecond DD93 LD A,(IX+$00) A puff becomes a sparkle.
DD96 SUB $05
DD98 JR NZ,HandleOverlapSecond_Shot
DD9A LD (IX+$23),$04 The sparkle's countdown is 04 its frame is 00 its type is 0D and its height is 08.
DD9E LD (IX+$01),A
DDA1 LD (IX+$00),$0D
DDA5 LD (IX+$17),$08
HandleOverlapSecond_Shot DDA9 LD A,(IX+$00) When the type is a shot.
DDAC AND $1F
DDAE CP $0E
DDB0 JR NZ,HandleOverlapSecond_Move
DDB2 SET 7,(IX+$16) Set bit 7 of the width byte.
HandleOverlapSecond_Move DDB6 PUSH IX Move the y coordinate back by the y overlap.
DDB8 INC IX
DDBA INC IX
DDBC INC IX
DDBE LD HL,($DDD1)
DDC1 CALL MoveEntityBack
DDC4 POP IX
This entry point is used by the routine at HandleOverlapFirst.
HandleOverlapSecond_Clear DDC6 LD A,(IX+$1E) Leave bits 6 and 7 of the flags.
DDC9 AND $C0
DDCB LD (IX+$1E),A
DDCE RET Return.
Prev: DD61 Up: Map Next: DDCF