Prev: 59928 Up: Map Next: 60060
59971: Animate: Falling
Select the "Oh No" head sprite.
The routine at DrawMonsterSprite handles which monster to display.
Animate_Falling 59971 LD A,25 A=sprite ID 25.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
25 sprite-25-left 89 sprite-89-left 153 sprite-153-left
Set the co-ordinates for where to draw.
59973 LD BC,(53837) BC=*Active_MonsterXPosition/Active_MonsterYPosition.
59977 CALL DrawMonsterSprite Call DrawMonsterSprite.
Again, set the co-ordinates for where to draw.
59980 LD BC,(53837) BC=*Active_MonsterXPosition/Active_MonsterYPosition.
59984 INC B Increment the Y position by two to draw the lower section of the monsters body.
59985 INC B
The routine at DrawMonsterSprite handles which monster to display.
59986 LD A,35 A=sprite ID 35.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
35 sprite-35-left 99 sprite-99-left 163 sprite-163-left
59988 CALL DrawMonsterSprite Call DrawMonsterSprite.
Apply gravity.
59991 CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
59994 CP 18 Jump to Animate_HitTheFloor if monster Y position is equal to 18.
59996 JR Z,Animate_HitTheFloor
59998 LD A,(53835) Decrease *Active_MonsterActionCountdown by one.
60001 DEC A
60002 LD (53835),A
60005 CP 18 Return if *Active_MonsterActionCountdown is higher than 18.
60007 RET NC
60008 CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
60011 CP 18 Return if A is not equal to 18.
60013 RET NZ
Monster is now at ground level.
Animate_HitTheFloor 60014 LD A,18 Write 18 to *Active_MonsterYPosition.
60016 LD (53838),A
60019 LD A,12 Write 12 to *Active_MonsterActionCountdown.
60021 LD (53835),A
60024 XOR A Set *Flag_MonsterClimbing to "not climbing" (0).
60025 LD (53830),A
60028 LD A,(53828) Jump to HitTheFloor_Finished if *JumpTable_Pointer is not equal to 32.
60031 CP 32
60033 JR NZ,HitTheFloor_Finished
60035 LD A,33 A=33.
60037 JP Action_JumpTable Jump to Action_JumpTable.
The monster still has energy, so finish this animation sequence.
HitTheFloor_Finished 60040 LD A,9 Write 9 to *JumpTable_Pointer.
60042 LD (53828),A
60045 LD IY,53828 IY=JumpTable_Pointer.
Take off four hit points from the monsters energy.
60049 LD A,4 A=4.
60051 CALL Handler_DecreaseEnergy Call Handler_DecreaseEnergy.
Make the splat sound.
60054 LD A,5 Write melody ID 5 to *MelodyID.
60056 LD (65421),A
60059 RET Return.
Prev: 59928 Up: Map Next: 60060