![]() |
Routines |
29462 | LD HL,32755 | 32755 holds ERIC's animation timer |
29465 | DEC (HL) | Is it time to deal with ERIC yet? |
29466 | RET NZ | Return if not |
29467 | INC (HL) | Set ERIC's animation timer to 1, ensuring that we pass through the following section of code on the next call to this routine if no keypress is detected this time |
29468 | CALL 29178 | A=keypress table offset of any key just pressed |
29471 | RET Z | Return if no game key was pressed |
29472 | LD HL,32755 | 32755 holds ERIC's animation timer |
29475 | CP 114 | Was "jump" pressed? |
29477 | JR Z,29517 | Jump if so |
29479 | SET 3,A | Ignore the difference between fast (upper case) and slow (lower case) keys when ERIC's on the bike |
29481 | CP 92 | Was "up" pressed? |
29483 | JR Z,29517 | Jump if so |
29485 | CP 94 | Was "down" pressed? |
29487 | RET NZ | Return if not |
29488 | LD (HL),5 | Reset ERIC's animation timer at 32755 to 5 |
29490 | LD L,237 | HL=32749 (ERIC's status flags) |
29492 | LD (HL),1 | Set bit 0: ERIC is riding the bike |
29494 | LD H,210 | 210=ERIC |
29496 | CALL 25012 | Update SRB for ERIC's current animatory state and location |
29499 | INC H | H=211: bike |
29500 | CALL 25012 | Update SRB for the bike's current animatory state and location |
29503 | LD L,1 | Point HL at byte 1 of the bike's buffer |
29505 | LD (HL),224 | Set the bike's x-coordinate to 224 (out of sight) |
29507 | LD L,18 | Remove the address of the routine at 29194 from bytes 17 and 18 of the bike's buffer |
29509 | LD (HL),0 | |
29511 | DEC H | H=210: ERIC |
29512 | SUB 12 | A=animatory state of ERIC riding the bike |
29514 | JP 24880 | Update SRB for ERIC's new animatory state |
29517 | LD H,210 | 210=ERIC |
29519 | CALL 25012 | Update SRB for ERIC's current animatory state and location |
29522 | ADD A,2 | A=2 or 130 |
29524 | DEC D | Set D to the y-coordinate of the spot above ERIC's hand as he jumps from the saddle |
29525 | DEC D | |
29526 | CALL 64474 | Prepare ERIC for his descent from the bike saddle |
29529 | LD H,210 | 210=ERIC |
29531 | XOR A | |
29532 | LD L,A | Point HL at byte 0 of ERIC's buffer |
29533 | BIT 7,(HL) | Is ERIC facing left? |
29535 | JR Z,29539 | Jump if so |
29537 | LD A,2 | |
29539 | INC L | Point HL at byte 1 of ERIC's buffer |
29540 | ADD A,(HL) | A=x-coordinate of ERIC's hand |
29541 | LD E,A | Now DE=coordinates of spot above ERIC's hand |
29542 | LD HL,32747 | 32747 holds the inventory flags |
29545 | BIT 2,(HL) | Has ERIC got the frog? |
29547 | RET Z | Return if not |
29548 | CALL 30216 | Is ERIC's arm directly underneath a cup? |
29551 | RET NZ | Return if not |
29552 | RES 2,(HL) | Signal: ERIC no longer has the frog |
29554 | LD H,212 | 212=frog |
29556 | LD A,28 | 28: frog sitting (as on floor or in cup) |
29558 | DEC E | Set DE to the frog's new in-cup coordinates |
29559 | LD D,11 | |
29561 | CALL 24880 | Update SRB for the frog's new animatory state and location |
29564 | JP 62401 | Print the inventory and make a celebratory sound effect |