![]() |
Routines |
| Prev: 6622 | Up: Map | Next: 66A4 |
|
Used by the routine at 6622.
|
||||
| 663D | LD A,($6DBE) | Pick up the guard's return delay counter. | ||
| 6640 | AND A | Has this guard been thrown out of the park? | ||
| 6641 | JR Z,$6648 | Jump if not. | ||
| 6643 | DEC A | Decrement the guard's return delay counter. | ||
| 6644 | LD ($6DBE),A | |||
| 6647 | RET NZ | Return unless it's zero now. | ||
| 6648 | LD HL,($6DBC) | Update the guard's current location. | ||
| 664B | LD ($6DB8),HL | |||
| 664E | LD BC,($6DAE) | Pick up the guard panic timer. | ||
| 6652 | LD A,B | Are the guards panicking? | ||
| 6653 | OR C | |||
| 6654 | JR Z,$6673 | Jump if not. | ||
| 6656 | DEC BC | Decrement the guard panic timer. | ||
| 6657 | LD ($6DAE),BC | |||
| 665B | LD DE,$7EC7 | Point HL at the graphic data for a panicked guard (frame 0). | ||
| 665E | EX DE,HL | |||
| 665F | LD A,($6DBB) | Increment the guard's animation frame timer. | ||
| 6662 | INC A | |||
| 6663 | LD ($6DBB),A | |||
| 6666 | AND $08 | Is bit 3 set now? | ||
| 6668 | CP $00 | |||
| 666A | JR Z,$6670 | Jump if not. | ||
| 666C | LD BC,$0020 | Point DE at the graphic data for a panicked guard (frame 1), and restore the guard's location to HL. | ||
| 666F | ADD HL,BC | |||
| 6670 | EX DE,HL | |||
| 6671 | JR $669B | Jump forward to draw the guard now. | ||
| 6673 | EX DE,HL | Transfer the guard's location to DE. | ||
| 6674 | LD A,($6DBB) | Increment the guard's animation frame timer. | ||
| 6677 | INC A | |||
| 6678 | LD ($6DBB),A | |||
| 667B | AND $20 | Is bit 5 set now? | ||
| 667D | CP $00 | |||
| 667F | JR NZ,$6686 | Jump if so. | ||
| 6681 | LD HL,$7E47 | Point HL at the graphic data for a regular guard (frame 4). | ||
| 6684 | JR $6689 | |||
| 6686 | LD HL,$7DC7 | Point HL at the graphic data for a regular guard (frame 0). | ||
| 6689 | LD A,($6DBA) | Pick up the guard's animation frame. | ||
| 668C | RLC A | Point DE at the corresponding graphic data for the guard sprite, and restore the guard's location to HL. | ||
| 668E | RLC A | |||
| 6690 | RLC A | |||
| 6692 | RLC A | |||
| 6694 | RLC A | |||
| 6696 | LD B,$00 | |||
| 6698 | LD C,A | |||
| 6699 | ADD HL,BC | |||
| 669A | EX DE,HL | |||
| 669B | CALL $6C0F | Set HL' to the attribute file address of the guard's location. | ||
| 669E | LD C,$3B | This is the guard's attribute byte (INK 3: PAPER 7). | ||
| 66A0 | CALL $6BD6 | Draw the guard. | ||
| 66A3 | RET | |||
| Prev: 6622 | Up: Map | Next: 66A4 |