Routines 
Prev: 28002  Up: Map  Next: 28067 
Used by the routine at 30102. Returns with the character number of the nearest main kid (or 0 if none of them was close enough) in A.


28029  CALL 27886  Get the lower and upper xcoordinates of the teacher's range of vision in C and B  
28032  LD L,0  Default assumption: no kids nearby  
28034  EXX  
28035  LD H,206  206=BOY WANDER  
28037  LD BC,1535  B'=5 (main kids including ERIC), C'=255 (initial value for the distance of the nearest main kid)  
28040  EXX  
28041  CALL 27954  Find the first main kid within range (if any)  
28044  AND A  Set the zero flag if we've checked all the main kids  
28045  LD A,L  A=character number of the nearest kid so far, or 0 if there are none  
28046  RET Z  Return if we've finished checking all the main kids  
28047  LD A,E  A=teacher's xcoordinate  
28048  EXX  
28049  SUB E  Subtract the xcoordinate of the kid  
28050  JR NC,28054  Jump if the kid's to the left of teacher  
28052  NEG  
28054  CP C  Is this kid closer to the teacher than the last?  
28055  JR NC,28062  Jump if not  
28057  LD C,A  C'=distance from the teacher of the nearest kid found so far  
28058  LD A,H  A=character number of this kid  
28059  EXX  
28060  LD L,A  Store the character number of the nearest kid in L  
28061  EXX  
28062  CALL 27981  Find the next main kid within range (if any)  
28065  JR 28044  Jump back to compare distances 
Prev: 28002  Up: Map  Next: 28067 