Prev: EAF6 Up: Map Next: ECE0
EC8A: Routine at EC8A
EC8A LD A,($D24E) Jump to ECC0 if *Active_MonsterYPosition is equal to 12.
EC8D CP $12
EC8F JR Z,$ECC0
EC91 LD A,($D24B) Decrease *Active_MonsterActionCountdown by one.
EC94 DEC A
EC95 LD ($D24B),A
EC98 CP $12 Jump to ECA3 if *Active_MonsterActionCountdown is higher than 12.
EC9A JR NC,$ECA3
EC9C CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
EC9F CP $12 Jump to ECC0 if A is equal to 12.
ECA1 JR Z,$ECC0
The routine at DrawMonsterSprite handles which monster to display.
ECA3 LD A,$09 A=sprite ID 09.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
09 sprite-9-left 49 sprite-73-left 89 sprite-137-left
Set the co-ordinates for where to draw.
ECA5 LD BC,($D24D) BC=*Active_MonsterXPosition/Active_MonsterYPosition.
ECA9 PUSH BC Stash the co-ordinates on the stack.
ECAA CALL DrawMonsterSprite Call DrawMonsterSprite.
ECAD POP BC Restore the co-ordinates from the stack.
ECAE INC B Increment both the X and Y positions by one to target drawing the mouth section.
ECAF INC C
ECB0 LD A,($D247) A=*Flag_Orientation.
ECB3 XOR %00000001 Flip bit 0.
ECB5 ADD A,C A+=C.
ECB6 LD C,A C=A.
The routine at DrawMonsterSprite handles which monster to display.
ECB7 LD A,$17 A=sprite ID 17.
George Lizzy Ralph
ID Sprite ID Sprite ID Sprite
17 sprite-23-left 57 sprite-87-left 97 sprite-151-left
ECB9 CALL DrawMonsterSprite Call DrawMonsterSprite.
ECBC CALL Handler_IncrementMonsterYPosition Call Handler_IncrementMonsterYPosition.
ECBF RET Return.
ECC0 LD A,($D247) A=*Flag_Orientation.
Moves the orientation flag into the carry flag.
ECC3 RRCA Rotate A right one position, setting the carry flag if bit 0 was set.
ECC4 CALL NC,Handler_DecreaseMonsterXPosition Call Handler_DecreaseMonsterXPosition if the carry flag is not set.
ECC7 LD A,$12 Write 12 to *Active_MonsterYPosition.
ECC9 LD ($D24E),A
ECCC LD A,$19 Write 19 to *Active_MonsterActionCountdown.
ECCE LD ($D24B),A
ECD1 XOR A Write 00 to:
ECD2 LD ($D246),A
ECD5 LD ($D248),A
ECD8 LD A,$01 Write 01 to *D24F.
ECDA LD ($D24F),A
ECDD JP $EF86 Jump to EF86.
Prev: EAF6 Up: Map Next: ECE0