|  | Routines | 
| Prev: 29836 | Up: Map | Next: 29895 | 
| 
Used by the routine at 29896. Returns with the zero flag set if a character was hit, and the stricken character's number in B.
 
 | ||||||||||
| 29856 | LD B,6 | There are six adult characters | ||||||||
| 
This entry point is used by the routine at 30380 with B=5 (only five of the adults are pelletable) and H=213/214 (BOY WANDER's or ERIC's pellet).
 | ||||||||||
| 29858 | LD C,H | Save the projectile's character number in C | ||||||||
| 29859 | LD H,200 | 200=MR WACKER | ||||||||
| 29861 | LD L,2 | Point HL at byte 2 of the potential target's character buffer | ||||||||
| 29863 | LD A,D | A=projectile's y-coordinate | ||||||||
| 29864 | CP (HL) | Does it match the y-coordinate of the character? | ||||||||
| 29865 | JR NZ,29889 | Jump if not | ||||||||
| 29867 | LD L,0 | |||||||||
| 29869 | LD A,(HL) | A=character's animatory state | ||||||||
| 29870 | AND 135 | Is the character sitting on the floor facing left (already struck)? | ||||||||
| 29872 | CP 6 | |||||||||
| 29874 | JR Z,29881 | Jump if so | ||||||||
| 29876 | DEC L | L=-1 | ||||||||
| 29877 | CP 134 | Is the character sitting on the floor facing right (already struck)? | ||||||||
| 29879 | JR Z,29882 | Jump if so | ||||||||
| 29881 | INC L | |||||||||
| 29882 | LD A,L | A=-1 if the character is sitting on the floor facing right, 0 if he's standing, or 1 if he's sitting on the floor facing left | ||||||||
| 29883 | LD L,1 | Byte 1 of the character's buffer holds his x-coordinate | ||||||||
| 29885 | ADD A,(HL) | Now A=x-coordinate of the character's head | ||||||||
| 29886 | CP E | Does it match the x-coordinate of the projectile? | ||||||||
| 29887 | JR Z,29892 | Jump if so | ||||||||
| 29889 | INC H | Next potential target | ||||||||
| 29890 | DJNZ 29861 | Jump back to consider any remaining characters | ||||||||
| 29892 | LD B,H | B=number of the character who was hit by the projectile (if any) | ||||||||
| 29893 | LD H,C | Restore the projectile's character number to H | ||||||||
| 29894 | RET | Return with the zero flag set if a character was hit | ||||||||
| Prev: 29836 | Up: Map | Next: 29895 |