Prev: EA18 Up: Map Next: EA9C
EA43: Animate: Falling
Select the "Oh No" head sprite.
The routine at DrawMonsterSprite handles which monster to display.
Animate_Falling EA43 LD A,$19 A=sprite ID 19.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
19 sprite-25-left 59 sprite-89-left 99 sprite-153-left
Set the co-ordinates for where to draw.
EA45 LD BC,($D24D) BC=*Active_MonsterXPosition/Active_MonsterYPosition.
EA49 CALL DrawMonsterSprite Call DrawMonsterSprite.
Again, set the co-ordinates for where to draw.
EA4C LD BC,($D24D) BC=*Active_MonsterXPosition/Active_MonsterYPosition.
EA50 INC B Increment the Y position by two to draw the lower section of the monsters body.
EA51 INC B
The routine at DrawMonsterSprite handles which monster to display.
EA52 LD A,$23 A=sprite ID 23.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
23 sprite-35-left 63 sprite-99-left A3 sprite-163-left
EA54 CALL DrawMonsterSprite Call DrawMonsterSprite.
Apply gravity.
EA57 CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
EA5A CP $12 Jump to Animate_HitTheFloor if monster Y position is equal to 12.
EA5C JR Z,Animate_HitTheFloor
EA5E LD A,($D24B) Decrease *Active_MonsterActionCountdown by one.
EA61 DEC A
EA62 LD ($D24B),A
EA65 CP $12 Return if *Active_MonsterActionCountdown is higher than 12.
EA67 RET NC
EA68 CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
EA6B CP $12 Return if A is not equal to 12.
EA6D RET NZ
Monster is now at ground level.
Animate_HitTheFloor EA6E LD A,$12 Write 12 to *Active_MonsterYPosition.
EA70 LD ($D24E),A
EA73 LD A,$0C Write 0C to *Active_MonsterActionCountdown.
EA75 LD ($D24B),A
EA78 XOR A Set *Flag_MonsterClimbing to "not climbing" (00).
EA79 LD ($D246),A
EA7C LD A,($D244) Jump to HitTheFloor_Finished if *JumpTable_Pointer is not equal to 20.
EA7F CP $20
EA81 JR NZ,HitTheFloor_Finished
EA83 LD A,$21 A=21.
EA85 JP Action_JumpTable Jump to Action_JumpTable.
The monster still has energy, so finish this animation sequence.
HitTheFloor_Finished EA88 LD A,$09 Write 09 to *JumpTable_Pointer.
EA8A LD ($D244),A
EA8D LD IY,$D244 IY=JumpTable_Pointer.
Take off four hit points from the monsters energy.
EA91 LD A,$04 A=04.
EA93 CALL Handler_DecreaseEnergy Call Handler_DecreaseEnergy.
Make the splat sound.
EA96 LD A,$05 Write melody ID 05 to *MelodyID.
EA98 LD ($FF8D),A
EA9B RET Return.
Prev: EA18 Up: Map Next: EA9C