Routines 
Prev: 28313  Up: Map  Next: 28436 
Used by the routines at 28436 and 28460. Impedes ERIC's progress if he's confronted by an immovable object, or opens the Science Lab storeroom door (if ERIC has the key and is trying to go right at the relevant location). Also sends ERIC down the first step of the staircase leading down to the assembly hall stage, or begins his descent off the assembly hall stage (if ERIC is trying to go left at the relevant location).


28315  LD A,E  A=xcoordinate of the spot in front of ERIC  
28316  CP 191  Is ERIC facing the far right wall of the girls' skool?  
28318  RET NC  Return if so (ERIC can't walk through walls)  
28319  LD HL,32756  32756 holds the doors flags  
28322  LD A,D  A=ERIC's ycoordinate  
28323  CP 3  Is ERIC on the top floor?  
28325  JR NZ,28363  Jump if not  
ERIC is on the top floor.


28327  LD A,E  A=xcoordinate of the spot in front of ERIC  
28328  CP 159  Is ERIC facing the far wall of the topfloor room in the girls' skool?  
28330  RET Z  Return if so  
28331  CP 92  Is ERIC facing the window on the top floor of the boys' skool?  
28333  RET Z  Return if so  
28334  CP 72  Is ERIC facing the head's left study door?  
28336  JR NZ,28341  Jump if not  
28338  BIT 0,(HL)  Is the head's left study door closed?  
28340  RET Z  Return if so  
28341  CP 83  Is ERIC facing the head's right study door?  
28343  JR NZ,28348  Jump if not  
28345  BIT 1,(HL)  Is the head's right study door closed?  
28347  RET Z  Return if so  
ERIC's path is not blocked, so let him move forward.


28348  LD A,(53760)  A=ERIC's animatory state  
28351  LD C,E  Copy the coordinates of the spot in front of ERIC (his postmidstride coordinates) from DE to BC  
28352  LD B,D  
28353  BIT 7,A  Is ERIC facing right?  
28355  JR NZ,28359  Jump if so  
28357  INC E  
28358  INC E  
28359  DEC E  Set E to ERIC's current xcoordinate (which will also be his midstride xcoordinate)  
28360  JP 28114  Put ERIC midstride  
ERIC's not on the top floor. Is he on the middle floor?


28363  CP 10  Is ERIC on the middle floor?  
28365  JR NZ,28397  Jump if not  
ERIC is on the middle floor.


28367  LD A,E  A=xcoordinate of the spot in front of ERIC  
28368  CP 159  Is ERIC facing the far wall of the middlefloor classroom in the girls' skool?  
28370  RET Z  Return if so  
28371  CP 94  Is ERIC facing the window on the middle floor of the boys' skool?  
28373  RET Z  Return if so  
28374  CP 63  Is ERIC facing the far wall of the Science Lab storeroom?  
28376  RET Z  Return if so  
28377  CP 84  Is ERIC about to descend the stairs from the middle floor to the stage?  
28379  JR NZ,28385  Jump if not  
28381  INC E  E=85 (ERIC's current xcoordinate)  
28382  JP 28606  Start moving ERIC down a stair  
28385  CP 54  Is ERIC facing the Science Lab storeroom door?  
28387  JR NZ,28348  Jump if not  
28389  BIT 2,(HL)  Is the Science Lab storeroom door closed?  
28391  JP Z,29681  Jump if so (and open it if ERIC has the key)  
28394  RET Z  Return if the door/gate is (still) closed  
28395  JR 28348  Otherwise move ERIC forward  
ERIC's not on the top floor or the middle floor. Is he on the bottom floor?


28397  CP 17  Is ERIC on the bottom floor?  
28399  LD A,E  A=xcoordinate of the spot in front of ERIC  
28400  JR NZ,28421  Jump if not  
ERIC is on the bottom floor.


28402  CALL 29030  Let ERIC go no further if ALBERT's in his way  
28405  LD A,E  A=xcoordinate of the spot in front of ERIC  
28406  CP 94  Is ERIC facing the boys' skool door?  
28408  JR NZ,28413  Jump if not  
28410  BIT 3,(HL)  Is the boys' skool door closed?  
28412  RET Z  Return if so  
28413  CP 133  Is ERIC facing the skool gate?  
28415  JR NZ,28348  Jump if not  
28417  BIT 4,(HL)  Is the skool gate closed?  
28419  JR 28394  Jump back and return if so, or move ERIC forward if not  
ERIC is on the assembly hall stage.


28421  CP 82  Is ERIC about to ascend the stairs from the stage to the middle floor?  
28423  JR NZ,28429  Jump if not  
28425  DEC E  E=81 (ERIC's current xcoordinate)  
28426  JP 28514  Start moving ERIC up a stair  
28429  CP 76  Is ERIC about to jump off the stage?  
28431  JP Z,28305  Jump if so to deal with ERIC's descent to the floor  
28434  JR 28348  Otherwise move ERIC forward 
Prev: 28313  Up: Map  Next: 28436 