![]() |
Routines |
| Prev: 54342 | Up: Map | Next: 54429 |
|
Used by the routine at 54342.
|
||||
This routine checks if Maroc is (floating) on top of an object of a type that drains or restores his energy.
Various stationary room objects e.g. fires, orbs and mushrooms, can either drain or restore Maroc's energy when he passes over them.
|
||||
| 54393 | LD A,(60114) | Maroc's vertical pixel position | ||
| 54396 | ADD A,8 | Adjust the collision hit box 8 pixels down towards the base of Maroc's sprite, as the objects he's touching are supposed to be on the ground | ||
| 54398 | LD (60114),A | ...and re-store as the vertical co-ordinate to check | ||
|
Check for energy draining items:
|
||||
| 54401 | LD C,254 | Collision type to check against - 254 = energy draining objects | ||
| 54403 | CALL 57293 | Collision check routine - returns 0 (no collision) or 1 (collision found) in the A register | ||
| 54406 | CP 0 | |||
| 54408 | JR Z,54415 | If no collision, skip to the next check | ||
| 54410 | LD A,8 | Otherwise, set energy drain amount to 8 points of energy | ||
| 54412 | CALL 58316 | ...and reduce Maroc's energy by this amount | ||
|
Check for energy restoring items:
|
||||
| 54415 | LD C,253 | Collision type to check against - 253 = energy restoring objects | ||
| 54417 | CALL 57293 | Collision check routine - returns 0 (no collision) or 1 (collision found) in the A register | ||
| 54420 | CP 0 | |||
| 54422 | JR Z,54429 | If no collision, skip over the next couple of instructions | ||
| 54424 | LD A,254 | Otherwise, set energy drain amount to -2 (i.e. -2 drain, so INCREASE energy by 2) | ||
| 54426 | CALL 58316 | ...increase Maroc's energy | ||
| Prev: 54342 | Up: Map | Next: 54429 |