Prev: 54798 Up: Map Next: 54855
54806: Handler: Sea Creature Movement
Used by the routines at 54476 and Handler_SeaCreatures.
Input
IX Creature data
Handler_SeaCreatureMovement 54806 LD C,(IX+0) C=*IX+0.
54809 LD B,(IX+1) B=*IX+1.
54812 LD E,(IX+2) E=*IX+2.
54815 LD D,(IX+3) D=*IX+3.
54818 LD A,(IX+4) A=*IX+4.
54821 ADD A,E A+=E.
54822 CP 128 Jump to Handler_SeaCreatureMovement_0 if A is higher than 128.
54824 JR NC,Handler_SeaCreatureMovement_0
54826 CP 4 Jump to Handler_SeaCreatureMovement_1 if A is lower than 4.
54828 JR C,Handler_SeaCreatureMovement_1
54830 INC C Increment C by two.
54831 INC C
Handler_SeaCreatureMovement_0 54832 DEC C Decrease C by one.
54833 AND %00000011 Keep only bits 0-1.
Handler_SeaCreatureMovement_1 54835 LD E,A E=A.
54836 LD A,(IX+5) A=*IX+5.
54839 ADD A,D A+=D.
54840 CP 128 Jump to Handler_SeaCreatureMovement_2 if A is higher than 128.
54842 JR NC,Handler_SeaCreatureMovement_2
54844 CP 4 Jump to Handler_SeaCreatureMovement_3 if A is lower than 4.
54846 JR C,Handler_SeaCreatureMovement_3
54848 INC B Increment B by two.
54849 INC B
Handler_SeaCreatureMovement_2 54850 DEC B Decrease B by one.
54851 AND %00000011 Keep only bits 0-1.
Handler_SeaCreatureMovement_3 54853 LD D,A D=A.
54854 RET Return.
Prev: 54798 Up: Map Next: 54855