|  | Routines | 
| Prev: 35887 | Up: Map | Next: 35993 | 
| 
Used by the routine at 35141.
 
 
 | ||||||||||||||||
| 35931 | LD (35967),A | Store room index in instruction at 35966 | ||||||||||||||
| 35934 | PUSH HL | Store HL | ||||||||||||||
| 35935 | PUSH BC | Store BC | ||||||||||||||
| 35936 | PUSH DE | Store DE | ||||||||||||||
| 35937 | PUSH IX | Store IX | ||||||||||||||
| 35939 | LD A,255 | Load A with 255 | ||||||||||||||
| 35941 | LD HL,23466 | Clear list of indices of characters in current room... | ||||||||||||||
| 35944 | LD (HL),A | ... | ||||||||||||||
| 35945 | DEC HL | ... | ||||||||||||||
| 35946 | LD (HL),A | ... | ||||||||||||||
| 35947 | DEC HL | ... | ||||||||||||||
| 35948 | LD (HL),A | ... | ||||||||||||||
| 35949 | LD IX,25440 | Point IX at characters' current positions table | ||||||||||||||
| 35953 | LD D,0 | Set D to zero | ||||||||||||||
| 35955 | LD BC,1792 | Set B to 7 (as we have seven characters, excluding Banshee so loop back seven times) and C to 0 | ||||||||||||||
| 35958 | LD A,(23467) | If Banshee has not been released, then... | ||||||||||||||
| 35961 | BIT 0,A | ... | ||||||||||||||
| 35963 | JR Z,35966 | ...skip ahead to 35966... | ||||||||||||||
| 35965 | INC B | ...else increase B by one to take into account presence of Banshee | ||||||||||||||
| 
The operand of the instruction at 35966 represents the appropriate room index. This is modified by the instruction at 35931.
 | ||||||||||||||||
| 35966 | LD A,0 | Load A with room number | ||||||||||||||
| 35968 | CP (IX+0) | Compare to room number of current character... | ||||||||||||||
| 35971 | JR NZ,35976 | ...and if not the same, then jump to 35976 (i.e. move onto next character) | ||||||||||||||
| 35973 | INC C | Increase C (number of characters in current room) by one | ||||||||||||||
| 35974 | LD (HL),D | Store character index in list at 23464 | ||||||||||||||
| 35975 | INC HL | |||||||||||||||
| 35976 | INC IX | Advance IX by three bytes, to next character's entry... | ||||||||||||||
| 35978 | INC IX | ... | ||||||||||||||
| 35980 | INC IX | ... | ||||||||||||||
| 35982 | INC D | Increase D (index of current character) | ||||||||||||||
| 35983 | DJNZ 35966 | Loop back for next character | ||||||||||||||
| 35985 | LD A,C | Load A with number of characters in current room | ||||||||||||||
| 35986 | OR A | Set zero flag if no characters present | ||||||||||||||
| 35987 | POP IX | Restore IX | ||||||||||||||
| 35989 | POP DE | Restore DE | ||||||||||||||
| 35990 | POP BC | Restore BC | ||||||||||||||
| 35991 | POP HL | Restore HL | ||||||||||||||
| 35992 | RET | Return | ||||||||||||||
| Prev: 35887 | Up: Map | Next: 35993 |