![]() |
Routines |
A | Descent table entry (see 64460) |
B | 0 if ERIC's facing left, 128 if facing right |
C | Same as A |
D | ERIC's y-coordinate |
E | ERIC's x-coordinate |
H | 210 (ERIC) |
23808 | AND 15 | Retain only bits 0-3 (the animatory state) |
23810 | ADD A,B | Now A=ERIC's new animatory state |
23811 | LD B,A | Store this in B for now |
23812 | LD A,C | A=descent table entry |
23813 | RLCA | Is ERIC ascending (bit 7 of C set)? |
23814 | JR NC,23817 | Jump if not |
23816 | DEC D | Move ERIC up a level |
23817 | RLCA | Is ERIC descending (bit 6 of C set)? |
23818 | JR NC,23821 | Jump if not |
23820 | INC D | Move ERIC down a level |
23821 | RLCA | Should ERIC move forward one space (bit 5 of C set)? |
23822 | JR NC,23829 | Jump if not |
23824 | BIT 7,B | Is ERIC facing right? |
23826 | JR NZ,23838 | Jump if so |
23828 | DEC E | |
23829 | RLCA | Should ERIC move backwards one space (bit 4 of C set)? |
23830 | JR NC,23839 | Jump if not |
23832 | DEC E | |
23833 | BIT 7,B | Is ERIC facing right? |
23835 | JR NZ,23839 | Jump if so |
23837 | INC E | |
23838 | INC E | Now E=ERIC's new x-coordinate, D=ERIC's new y-coordinate |
23839 | LD A,B | A=ERIC's new animatory state |
23840 | JP 28172 | Update SRB for ERIC's new animatory state and location, make sound effect, and scroll screen if necessary |