| Routines

30205: Check whether a pellet has hit a cup

Used by routine at 30229. Returns with the zero flag set if the pellet is about to hit a cup.
Input
H | Pellet's character number (213 or 214)
30205 | LD L,1 | Point HL at byte 1 of the pellet's buffer
30207 | LD E,(HL) | E=pellet's x-coordinate
30208 | INC L | L=2
30209 | LD D,(HL) | D=pellet's y-coordinate
30210 | INC E | Adjust the coordinates for comparison with those of the cup
30211 | INC D
30212 | LD A,D | A=pellet's (adjusted) y-coordinate
30213 | CP 14 | All the cups have a y-coordinate of 14
30215 | RET NZ | Return with the zero flag reset if the pellet's not at the right height to hit a cup
This entry point is used by the routine at 29462 with E holding the x-coordinate of ERIC's hand as he jumps off the saddle of the bike.
30216 | LD A,E | A=x-coordinate of the pellet or ERIC's hand
This entry point is used by the routine at 64077 with A holding the x-coordinate of the stream of water or sherry fired from the waterpistol.
30217 | CP 25 | Has the leftmost cup on the shelf in the boys' skool been hit?
30219 | RET Z | Return with the zero flag set if so
30220 | CP 27 | Has the middle cup on the shelf in the boys' skool been hit?
30222 | RET Z | Return with the zero flag set if so
30223 | CP 30 | Has the rightmost cup on the shelf in the boys' skool been hit?
30225 | RET Z | Return with the zero flag set if so
30226 | CP 186 | Has the cup on the shelf in the girls' skool been hit?
30228 | RET | Return with the zero flag set if so