Prev: E087 Up: Map Next: E0C4
E0A0: Does the moved object run into a box of a cell? Give the overlap in V
Used by the routines at CUT_STEP_PLUS_V and CUT_STEP_MINUS_V.
As HIT_BOXES_U, but testing U first and V second, so that the overlap it returns is in V: for the steps in V (CUT_STEP_PLUS_V, CUT_STEP_MINUS_V).
Input
D The column of the cell
H Its row
IX The object
Output
A Minus the overlap in V, in half units (when carry is set)
F Carry set if a box is hit
HIT_BOXES_V E0A0 CALL PLACE_IN_CELL Find the cell's type and the object's place in it
E0A3 LD BC,BOX_TABLE IY = the type's list of boxes
E0A6 CALL TABLE_WORD
E0A9 PUSH HL
E0AA POP IY
HIT_BOXES_V_0 E0AC LD A,(IY+$00) A 0 ends the list: nothing hit, carry clear
E0AF AND A
E0B0 RET Z
E0B1 CALL OVERLAP_U Overlapping this box in U?
E0B4 JR NC,HIT_BOXES_V_1
E0B6 CALL OVERLAP_V ...and in V: then return carry, with the overlap in V
E0B9 RET C
HIT_BOXES_V_1 E0BA INC IY The next box
E0BC INC IY
E0BE INC IY
E0C0 INC IY
E0C2 JR HIT_BOXES_V_0
Prev: E087 Up: Map Next: E0C4