Prev: DC6A Up: Map Next: DD93
DD61: Handle Overlap First
Used by the routine at HandleOverlap.
Moves the entity clear of the overlap in the first direction. Entities of type 05 are changed to type 0D.
Input
IX The entity
HandleOverlapFirst DD61 LD A,($DDD3) The z overlap is smaller, so this axis is left alone.
DD64 CP B
DD65 JP C,HandleOverlap_Vertical
DD68 LD A,(IX+$00) A puff becomes a sparkle.
DD6B SUB $05
DD6D JR NZ,HandleOverlapFirst_Shot
DD6F LD (IX+$23),$04 The sparkle's countdown is 04 its frame is 00 its type is 0D and its height is 08.
DD73 LD (IX+$01),A
DD76 LD (IX+$00),$0D
DD7A LD (IX+$17),$08
HandleOverlapFirst_Shot DD7E LD A,(IX+$00) When the type is a shot.
DD81 AND $1F
DD83 CP $0E
DD85 JR NZ,HandleOverlapFirst_Move
DD87 SET 7,(IX+$16) Set bit 7 of the width byte.
HandleOverlapFirst_Move DD8B LD HL,($DDCF) Move back by the x overlap and finish.
DD8E CALL MoveEntityBack
DD91 JR HandleOverlapSecond_Clear
Prev: DC6A Up: Map Next: DD93