Routines |
Prev: 33952 | Up: Map | Next: 34265 |
|
||||||||||||||||
34122 | PUSH HL | Store HL (pointer to text to append to menu's title string) | ||||||||||||||
34123 | PUSH BC | Store BC | ||||||||||||||
34124 | PUSH IX | Store IX | ||||||||||||||
34126 | PUSH DE | Store DE (command summary text pointer) | ||||||||||||||
34127 | CALL 35731 | Play short downward scale sound | ||||||||||||||
34130 | POP DE | Restore DE (command summary text pointer) | ||||||||||||||
34131 | CALL 54322 | Print text at command summary text pointer (e.g. "COMMAND ") in command summary window | ||||||||||||||
34134 | LD A,(23701) | Load A with Magic Knight's current room... | ||||||||||||||
34137 | CALL 34512 | ...and create list of characters in this room at 23404, loading A with number of characters | ||||||||||||||
34140 | JR NZ,34170 | If there are characters in this room then skip ahead to 34170 | ||||||||||||||
34142 | LD HL,38628 | Point HL at "THERE IS NOBODY IN THIS ROOM" text | ||||||||||||||
34145 | LD DE,37195 | Adjust height of window 13 to accommodate text... | ||||||||||||||
34148 | CALL 33774 | ... | ||||||||||||||
34151 | PUSH HL | Store HL (pointer to start of text to print) | ||||||||||||||
34152 | LD A,13 | Draw window 13... | ||||||||||||||
34154 | CALL 34990 | ... | ||||||||||||||
34157 | POP HL | Restore HL (pointer to start of text to print) | ||||||||||||||
34158 | CALL 34762 | Print text at HL | ||||||||||||||
34161 | CALL 55138 | Display "PRESS FIRE TO CONTINUE" window and wait for fire to be pressed | ||||||||||||||
34164 | POP IX | Restore IX | ||||||||||||||
34166 | POP BC | Restore BC | ||||||||||||||
34167 | POP HL | Restore HL (pointer to text to append to menu's title string) | ||||||||||||||
34168 | XOR A | Set A to zero and set zero flag | ||||||||||||||
34169 | RET | Return | ||||||||||||||
34170 | ADD A,4 | Add four to number of characters in current room (for menu size padding)... | ||||||||||||||
34172 | LD C,A | ...and load value into C | ||||||||||||||
34173 | LD A,(37115) | Load A with window's top y-coordinate | ||||||||||||||
34176 | ADD A,C | Add 4 + number of characters... | ||||||||||||||
34177 | LD (37116),A | ...and set window's bottom y-coordinate to this value | ||||||||||||||
34180 | POP IX | Restore IX | ||||||||||||||
34182 | POP BC | Restore BC | ||||||||||||||
34183 | LD A,3 | Draw window 3 as a menu window... | ||||||||||||||
34185 | CALL 34982 | ... | ||||||||||||||
34188 | LD HL,38610 | Point HL at "WHO DO YOU WANT TO " text... | ||||||||||||||
34191 | CALL 34762 | ...and print to screen | ||||||||||||||
34194 | POP HL | Restore HL (pointer to text to append to menu's title string, as at beginning of this routine) | ||||||||||||||
34195 | CALL 34762 | Append this text to menu's title | ||||||||||||||
34198 | LD IX,23404 | Point IX at list of characters in room | ||||||||||||||
34202 | LD B,16 | Load B with 16 (16 characters) (see trivia) | ||||||||||||||
34204 | PUSH BC | Store BC (B = remaining characters to process) | ||||||||||||||
34205 | LD A,(IX+0) | Load A with index of current character in list... | ||||||||||||||
34208 | CP 255 | ...and if this is 255 (end marker)... | ||||||||||||||
34210 | JP Z,34254 | ...then skip ahead to 34254 | ||||||||||||||
34213 | LD HL,38351 | Point HL at text printing instructions to move cursor to start of next character row within window, then right by two characters | ||||||||||||||
34216 | PUSH IX | Store IX (current position in list of characters in room) | ||||||||||||||
34218 | CALL 34762 | Print text at HL to screen (i.e. move cursor) | ||||||||||||||
34221 | POP IX | Restore IX (current position in list of characters in room) | ||||||||||||||
34223 | LD A,(IX+0) | Load A with index of current character in list... | ||||||||||||||
34226 | LD (29632),A | Set this character as the Current Character | ||||||||||||||
34229 | LD HL,33943 | Point HL at instruction to print name of Current Character | ||||||||||||||
34232 | PUSH IX | Store IX (current position in list of characters in room) | ||||||||||||||
34234 | CALL 34762 | Print text to screen | ||||||||||||||
34237 | POP IX | Restore IX (current position in list of characters in room) | ||||||||||||||
34239 | INC IX | Advance IX to next character in list | ||||||||||||||
34241 | POP BC | Restore BC (B = remaining characters to process) | ||||||||||||||
34242 | DJNZ 34204 | Decrease B and loop back to 34204 | ||||||||||||||
34244 | CALL 35296 | Process keyboard / joystick input on a menu and load A with selected item index | ||||||||||||||
34247 | CALL 33926 | Update Current Character based upon selection made in menu | ||||||||||||||
34250 | LD A,1 | Load A with 1 | ||||||||||||||
34252 | OR A | Reset zero flag | ||||||||||||||
34253 | RET | Return | ||||||||||||||
34254 | POP BC | Restore BC (B = remaining characters to process) | ||||||||||||||
34255 | CALL 35296 | Process keyboard / joystick input on a menu and load A with selected item index | ||||||||||||||
34258 | CALL 33926 | Update Current Character based upon selection made in menu | ||||||||||||||
34261 | LD A,1 | Load A with 1 | ||||||||||||||
34263 | OR A | Reset zero flag | ||||||||||||||
34264 | RET | Return |
Prev: 33952 | Up: Map | Next: 34265 |