![]() |
Routines |
| Prev: 6616 | Up: Map | Next: 663F |
|
Used by the routine at 663F. Returns with the zero flag set if the chair beside the character looking for a seat is already occupied by one of the potential occupants being checked.
|
||||||||||||||||
| 6618 | CALL $6621 | Are any of the first B potential occupants sitting here? | ||||||||||||||
| 661B | RET Z | Return if so | ||||||||||||||
| 661C | LD BC,$028F | B=0x02 (BOY WANDER and ANGELFACE), C=0x8F | ||||||||||||||
| 661F | LD D,$CE | 0xCE=BOY WANDER | ||||||||||||||
|
This entry point also is used by the routine at 663F.
|
||||||||||||||||
| 6621 | LD E,$01 | |||||||||||||||
| 6623 | LD A,(DE) | A=x-coordinate of the potential occupant | ||||||||||||||
| 6624 | CP (HL) | Compare with that of the character looking for a seat | ||||||||||||||
| 6625 | JR NZ,$663B | Jump ahead to consider the next potential occupant if they don't match | ||||||||||||||
| 6627 | INC E | E=0x02 | ||||||||||||||
| 6628 | INC L | L=0x02 | ||||||||||||||
| 6629 | LD A,(DE) | A=y-coordinate of the potential occupant | ||||||||||||||
| 662A | DEC E | E=0x01 | ||||||||||||||
| 662B | CP (HL) | Compare with the y-coordinate of the character looking for a seat | ||||||||||||||
| 662C | DEC HL | L=0x01 | ||||||||||||||
| 662D | JR NZ,$663B | Jump if the potential occupant is not in the same location as the character looking for a seat | ||||||||||||||
| 662F | DEC E | E=0x00 | ||||||||||||||
| 6630 | LD A,(DE) | A=potential occupant's animatory state | ||||||||||||||
| 6631 | AND C | Discard the character-identifying bits and keep only the 'direction' bit and 'action' bits (C=10001111 for BOY WANDER, ANGELFACE or ERIC, and 10000111 for anybody else) | ||||||||||||||
| 6632 | CP $04 | Is the potential occupant sitting in the chair here? | ||||||||||||||
| 6634 | JR NZ,$663B | Jump if not | ||||||||||||||
| 6636 | LD E,$12 | Is there an uninterruptible subcommand routine address in bytes 0x11 and 0x12 of the potential occupant's buffer? | ||||||||||||||
| 6638 | LD A,(DE) | |||||||||||||||
| 6639 | AND A | |||||||||||||||
| 663A | RET Z | Return if not | ||||||||||||||
| 663B | INC D | Next potential occupant to test | ||||||||||||||
| 663C | DJNZ $6621 | Jump back until done | ||||||||||||||
| 663E | RET | |||||||||||||||
| Prev: 6616 | Up: Map | Next: 663F |