![]() |
Routines |
| Prev: 58742 | Up: Map | Next: 59020 |
|
Used by the routine at Handler_Monsters.
|
||||
|
Just instantly return if the monster is already "game over".
|
||||
| 58925 | LD A,(53828) | Return if *JumpTable_Pointer is equal to 255. | ||
| 58928 | CP 255 | |||
| 58930 | RET Z | |||
|
Any states higher than 32 mean the monster is in the process of turning back into a human (pre-"game over").
|
||||
| 58931 | CP 32 | Jump to Action_JumpTable if *JumpTable_Pointer is higher than 32. | ||
| 58933 | JR NC,Action_JumpTable | |||
|
Handle if the monster is currently jumping.
|
||||
| 58935 | LD A,(53832) | A=*Flag_MonsterJumping. | ||
|
Moves the monster-is-jumping flag into the carry flag.
|
||||
| 58938 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||
| 58939 | JR C,Action_JumpTable | Jump to Action_JumpTable if the carry flag is set (if bit 0 was set). | ||
|
Handle if the monster is currently climbing.
|
||||
| 58941 | LD A,(53830) | A=*Flag_MonsterClimbing. | ||
|
Moves the monster-is-climbing flag into the carry flag.
|
||||
| 58944 | RRCA | Rotate A right one position, setting the carry flag if bit 0 was set. | ||
| 58945 | JR NC,58968 | Jump to 58968 if the carry flag is not set (if bit 0 was unset). | ||
| 58947 | LD DE,33022 | DE=33022. | ||
| 58950 | LD B,3 | B=3. | ||
| 58952 | LD A,(53831) | C=*Flag_Orientation. | ||
| 58955 | LD C,A | |||
| 58956 | LD A,B | A=B. | ||
| 58957 | SUB C | A-=C. | ||
| 58958 | SUB C | A-=C. | ||
| 58959 | SUB C | A-=C. | ||
| 58960 | LD C,A | C=A. | ||
| 58961 | CALL 57517 | Call 57517. | ||
| 58964 | JR Z,Action_JumpTable | Jump to Action_JumpTable if {} is zero. | ||
| 58966 | JR 58991 | Jump to 58991. | ||
| 58968 | LD A,(53838) | Jump to Action_JumpTable if *Active_MonsterYPosition is equal to 18. | ||
| 58971 | CP 18 | |||
| 58973 | JR Z,Action_JumpTable | |||
| 58975 | LD B,5 | B=5. | ||
| 58977 | LD A,(53831) | A=*Flag_Orientation. | ||
| 58980 | ADD A,2 | A+=2. | ||
| 58982 | LD C,A | C=A. | ||
| 58983 | LD DE,2319 | DE=2319. | ||
| 58986 | CALL 57517 | Call 57517. | ||
| 58989 | JR NZ,Action_JumpTable | Jump to Action_JumpTable if {} is not zero. | ||
| 58991 | LD A,6 | Write 6 to: | ||
| 58993 | LD (53828),A | |||
| 58996 | LD (53834),A | |||
| 58999 | LD A,1 | Write 1 to *Flag_MonsterJumping. | ||
| 59001 | LD (53832),A | |||
|
Using the value held in *JumpTable_Pointer jump to the correlated address from JumpTable.
|
||||
| Action_JumpTable | 59004 | LD A,(53828) | A=*JumpTable_Pointer*2. | |
| 59007 | ADD A,A | |||
|
Create an offset using HL.
|
||||
| 59008 | LD H,0 | H=0. | ||
| 59010 | LD L,A | L=A. | ||
| 59011 | LD DE,61336 | HL+=JumpTable. | ||
| 59014 | ADD HL,DE | |||
|
Fetch the address to jump and store it in HL.
|
||||
| 59015 | LD A,(HL) | A=*HL. | ||
| 59016 | INC HL | Increment HL by one. | ||
| 59017 | LD H,(HL) | H=*HL. | ||
| 59018 | LD L,A | L=A. | ||
| 59019 | JP (HL) | Jump to the address held by *HL. | ||
| Prev: 58742 | Up: Map | Next: 59020 |