Prev: 46207 Up: Map Next: 46335
46312: Move a character one step along the catwalk
Used by the routine at 46568.
H 152 (boy) or 164 (teacher)
46312 CALL 25108 Update the SRB for the character's current location
46315 INC A A=character's next animatory state
46316 LD C,A Store this in C
46317 RRCA Set the carry flag if this animatory state is midstride
46318 LD A,C Restore the next animatory state to A
46319 JR C,46329 Jump if the character will be midstride
The character will be moving from the midstride position, so move him one space forward.
46321 INC E Increment the character's x-coordinate
46322 AND 3 Keep only the walking phase identifier bits of the animatory state (bits 0-1)
46324 LD A,C Restore the next animatory state to A again
46325 JR NZ,46329 Jump if the next animatory state is standing/walking phase 3
46327 SUB 4 Reset the animatory state to standing/walking phase 1
Now A holds the character's new animatory state, and E his x-coordinate.
46329 CALL 25008 Update the character's animatory state and location and update the SRB
46332 JP 27026 Update the display
Prev: 46207 Up: Map Next: 46335