![]() |
Routines |
64460 | LD HL,32749 | 32749 holds ERIC's status flags |
64463 | BIT 6,(HL) | Has ERIC already begun his descent? |
64465 | JR NZ,64513 | Jump if so |
64467 | LD H,210 | 210=ERIC |
64469 | CALL 25012 | Update SRB for ERIC's current animatory state and location |
64472 | AND 128 | A=0 if ERIC's facing left, 128 if facing right |
64474 | LD B,A | Now B=0 (or 2) if ERIC's facing left, 128 (or 130) if facing right |
64475 | LD A,D | A=y-coordinate of ERIC (or the spot above his hand) |
64476 | CP 17 | Is ERIC on the bottom floor? |
64478 | JR NZ,64482 | Jump if not |
64480 | DEC D | D=16 |
64481 | DEC A | A=16 |
64482 | ADD A,4 | Set A=-7+(y-3)%7 if y<17, or -1 if y=17 (where y is ERIC's y-coordinate); this is the distance (negated) left to travel till ERIC reaches the floor |
64484 | SUB 7 | |
64486 | JR NC,64484 | |
64488 | ADD A,166 | A=159-165 (normal descent table entry pointer) |
64490 | PUSH AF | Save this briefly |
64491 | LD A,5 | Now A=animatory state of ERIC sitting on the floor (5/133) or with his arm up (7/135) |
64493 | ADD A,B | |
64494 | CALL 24880 | Update SRB for ERIC's new animatory state and location |
64497 | POP AF | Restore the normal descent table entry pointer to A |
64498 | LD H,A | Point HL at the appropriate entry (H=159-165) in the normal descent table (L=252) for ERIC's current height above the floor |
64499 | LD L,252 |
64501 | LD (32727),HL | Store the descent table pointer at 32727 |
64504 | LD HL,32749 | 32749 holds ERIC's status flags |
64507 | LD (HL),80 | Set bits 4 (ERIC is still falling) and 6 (ERIC has begun his descent) |
64509 | LD L,243 | Set ERIC's animation timer at 32755 to 7 |
64511 | LD (HL),7 |
64513 | LD L,243 | HL=32755 (which holds ERIC's animation timer) |
64515 | DEC (HL) | Is it time to deal with ERIC yet? |
64516 | RET NZ | Return if not |
64517 | LD (HL),3 | Reset ERIC's animation timer to 3 |
64519 | LD L,216 | HL=32727 (which holds the descent table pointer) |
64521 | INC (HL) | Collect the descent table pointer into DE |
64522 | LD D,(HL) | |
64523 | DEC L | |
64524 | LD E,(HL) | |
64525 | LD A,(DE) | Pick up an entry from the descent table in A |
64526 | AND A | Has ERIC landed yet? |
64527 | JR NZ,64546 | Jump if not |
64529 | LD L,251 | HL=32763 (ERIC's main status flags) |
64531 | INC D | Collect the first set of flags from the descent table |
64532 | LD A,(DE) | |
64533 | LD (HL),A | Copy them into 32763 |
64534 | INC D | Collect the second set of flags from the descent table |
64535 | LD A,(DE) | |
64536 | LD L,237 | Copy them into 32749 |
64538 | LD (HL),A | |
64539 | AND A | Did ERIC jump from the top floor window (bit 5 set)? |
64540 | CALL NZ,62770 | Set WACKER on his way to expel ERIC if so |
64543 | JP 62147 | Make a sound effect for ERIC's landing |
64546 | PUSH AF | Save the descent table entry briefly |
64547 | LD H,210 | 210=ERIC |
64549 | CALL 25012 | Update SRB for ERIC's current animatory state and location |
64552 | AND 128 | B=0 if ERIC's facing left, 128 if facing right |
64554 | LD B,A | |
64555 | POP AF | Restore the descent table entry to A |
64556 | LD C,A | Copy it to C |
64557 | JP 23808 | The routine continues at 23808 |
Bit(s) | Meaning | 0-3 | Next animatory state for ERIC | 4 | If set, move backwards one space | 5 | If set, move forwards one space | 6 | If set, descend one level | 7 | If set, ascend one level |
---|
E=252 (normal descent) | D | DE | (DE) | Meaning | 160 | 41212 | 69 | Animatory state 5 or 133; descend | 161 | 41468 | 69 | Animatory state 5 or 133; descend | 162 | 41724 | 69 | Animatory state 5 or 133; descend | 163 | 41980 | 69 | Animatory state 5 or 133; descend | 164 | 42236 | 69 | Animatory state 5 or 133; descend | 165 | 42492 | 69 | Animatory state 5 or 133; descend | 166 | 42748 | 69 | Animatory state 5 or 133; descend | 167 | 43004 | 0 | ERIC has landed | 168 | 43260 | 4 | Set bit 2 at 32763 (ERIC is sitting) | 169 | 43516 | 0 | Reset all bits at 32749 (ERIC landed safely) |
---|
E=253 (flight over closed skool gate) | D | DE | (DE) | Meaning | 160 | 41213 | 160 | Animatory state 0 or 128; ascend; move forward | 161 | 41469 | 160 | Animatory state 0 or 128; ascend; move forward | 162 | 41725 | 160 | Animatory state 0 or 128; ascend; move forward | 163 | 41981 | 96 | Animatory state 0 or 128; descend; move forward | 164 | 42237 | 100 | Animatory state 4 or 132; descend; move forward | 165 | 42493 | 37 | Animatory state 5 or 133; move forward | 166 | 42749 | 69 | Animatory state 5 or 133; descend | 167 | 43005 | 69 | Animatory state 5 or 133; descend | 168 | 43261 | 0 | ERIC has landed | 169 | 43517 | 4 | Set bit 2 at 32763 (ERIC is sitting) | 170 | 43773 | 0 | Reset all bits at 32749 (ERIC landed safely) |
---|
E=254 (flight from bike saddle into wall or closed door) | D | DE | (DE) | Meaning | 160 | 41214 | 160 | Animatory state 0 or 128; ascend; move forward | 161 | 41470 | 160 | Animatory state 0 or 128; ascend; move forward | 162 | 41726 | 2 | Animatory state 2 or 130; ascend | 163 | 41982 | 64 | Animatory state 0 or 128; descend | 164 | 42238 | 64 | Animatory state 0 or 128; descend | 165 | 42494 | 64 | Animatory state 0 or 128; descend | 166 | 42750 | 22 | Animatory state 6 or 134; move backwards | 167 | 43006 | 0 | ERIC has landed | 168 | 43262 | 4 | Set bit 2 at 32763 (ERIC is sitting) | 169 | 43518 | 0 | Reset all bits at 32749 (ERIC landed safely) |
---|
E=255 (descent from top floor window) | D | DE | (DE) | Meaning | 160 | 41215 | 96 | Animatory state 0 or 128; descend; move forwards | 161 | 41471 | 96 | Animatory state 0 or 128; descend; move forwards | 162 | 41727 | 96 | Animatory state 0 or 128; descend; move forwards | 163 | 41983 | 96 | Animatory state 0 or 128; descend; move forwards | 164 | 42239 | 64 | Animatory state 0 or 128; descend | 165 | 42495 | 64 | Animatory state 0 or 128; descend | 166 | 42751 | 64 | Animatory state 0 or 128; descend | 167 | 43007 | 64 | Animatory state 0 or 128; descend | 168 | 43263 | 64 | Animatory state 0 or 128; descend | 169 | 43519 | 64 | Animatory state 0 or 128; descend | 170 | 43775 | 68 | Animatory state 4 or 132; descend | 171 | 44031 | 68 | Animatory state 4 or 132; descend | 172 | 44287 | 68 | Animatory state 4 or 132; descend | 173 | 44543 | 5 | Animatory state 5 or 133 | 174 | 44799 | 69 | Animatory state 5 or 133; descend | 175 | 45055 | 69 | Animatory state 5 or 133; descend | 176 | 45311 | 69 | Animatory state 5 or 133; descend | 177 | 45567 | 70 | Animatory state 6 or 134; descend | 178 | 45823 | 0 | ERIC has landed | 179 | 46079 | 64 | Set bit 6 at 32763 (MR WACKER should expel ERIC) | 180 | 46335 | 32 | Set bit 5 at 32749 (ERIC fell out of top floor window) |
---|