![]() |
Routines |
| Prev: C36D | Up: Map | Next: C38F |
|
Used by the routines at ADJ_DZ_FOR_OUT_OF_BOUNDS, ADJ_DU_FOR_OBJ_INTERSECT, ADJ_DV_FOR_OBJ_INTERSECT, ADJ_DZ_FOR_OBJ_INTERSECT, ADJ_DU_FOR_OUT_OF_BOUNDS and ADJ_DV_FOR_OUT_OF_BOUNDS.
Moves A one step towards zero -- down if positive, up if negative -- and leaves Z set if nothing is left. Every loop in the collision code uses it to cut a move short a unit at a time and try again.
|
||||||||||||
| SHORTEN_DELTA | C386 | AND A | Already zero | |||||||||
| C387 | RET Z | |||||||||||
| C388 | JP P,SHORTEN_DELTA_DEC | Negative: +2 here and -1 below | ||||||||||
| C38B | INC A | |||||||||||
| C38C | INC A | |||||||||||
| SHORTEN_DELTA_DEC | C38D | DEC A | The step down that sets Z | |||||||||
| C38E | RET | |||||||||||
| Prev: C36D | Up: Map | Next: C38F |