![]() |
Routines |
| Prev: 27803 | Up: Map | Next: 27820 |
| B | Number of characters to check |
| C | 0 if punching character's facing right, 128 if left |
| D | Number of first character to check |
| H | Puncher's character number: 207 (ANGELFACE) or 210 (ERIC) |
| 27804 | CALL 27820 | Are any characters in front of the puncher's fist? |
| 27807 | RET C | Return if not |
| 27808 | LD E,0 | |
| 27810 | LD A,(DE) | A=animatory state of character in front of puncher's fist |
| 27811 | AND 128 | Keep only the "direction" bit (bit 7) |
| 27813 | XOR C | Compare with the direction bit of the punching character |
| 27814 | RET Z | Return with the carry flag reset if the punched character was facing the puncher (i.e. was hit in the face) |
| 27815 | INC D | Otherwise move on to the next candidate |
| 27816 | DJNZ 27804 | Jump back to consider any remaining characters |
| 27818 | SCF | Signal: no characters were hit |
| 27819 | RET |
| Prev: 27803 | Up: Map | Next: 27820 |