Routines |
Prev: 6AA1 | Up: Map | Next: 6AD7 |
6AA7 | LD HL,$7FF5 | 7FF5 holds the delay counter used when ERIC has been knocked over; pick up its value (0x00-0x28) in A | ||
6AAA | LD A,(HL) | |||
6AAB | AND A | Has ERIC just been struck (A=0x00)? | ||
6AAC | JR Z,$6AB7 | Adjust his animatory state if so (and initialise the delay counter to 0x28) | ||
6AAE | DEC (HL) | Decrement the knockout delay counter | ||
6AAF | JP NZ,$FE57 | Make a knocked-out sound effect if ERIC's just been struck | ||
The knockout delay counter at 7FF5 has reached zero, so ERIC can get up any time now.
|
||||
6AB2 | LD L,$FB | HL=7FFB (ERIC's status flags) | ||
6AB4 | LD (HL),$80 | Set bit 7 (indicating that ERIC is sitting or lying down) and reset bit 4 (so that we don't visit this routine again) | ||
6AB6 | RET | |||
ERIC has just been struck; decide whether he should be sitting on the floor or lying on his back, and adjust his animatory state accordingly.
|
||||
6AB7 | LD (HL),$28 | Initialise the knockout delay counter at 7FF5 | ||
6AB9 | LD L,$E9 | Set 7FE9 to 0, indicating that ERIC is not midstride | ||
6ABB | LD (HL),A | |||
6ABC | LD L,$FB | HL=7FFB (ERIC's status flags) | ||
6ABE | LD (HL),$90 | Set bit 7 (indicating that ERIC is sitting or lying down) and keep bit 4 set (so that we visit this routine again) | ||
6AC0 | LD H,$AC | 0xAC=ERIC | ||
6AC2 | CALL $6214 | Update the SRB for ERIC's current location | ||
6AC5 | CP $05 | 0x05=animatory state of ERIC sitting on a chair | ||
6AC7 | JR Z,$6ACD | Jump if ERIC's sitting on a chair | ||
6AC9 | AND $80 | |||
6ACB | ADD A,$06 | |||
6ACD | INC A | A=0x06 (ERIC sitting on the floor) or 0x07/0x87 (ERIC lying on his back) | ||
6ACE | LD B,A | Store ERIC's new animatory state in B temporarily | ||
6ACF | LD A,D | A=ERIC's y-coordinate | ||
6AD0 | CALL $7A0A | Get the y-coordinate of the floor ERIC's on in D | ||
6AD3 | LD A,B | Restore ERIC's new animatory state to A | ||
6AD4 | JP $61B0 | Update ERIC's animatory state and update the SRB |
Prev: 6AA1 | Up: Map | Next: 6AD7 |