![]() |
Routines |
| Prev: 45809 | Up: Map | Next: 46106 |
|
||||||||||||||||
| 45963 | PUSH HL | Store HL (pointer to text to append to menu's title string) | ||||||||||||||
| 45964 | PUSH BC | Store BC | ||||||||||||||
| 45965 | PUSH IX | Store IX | ||||||||||||||
| 45967 | PUSH DE | Store DE (command summary text pointer) | ||||||||||||||
| 45968 | CALL 47938 | Play short downward scale sound | ||||||||||||||
| 45971 | POP DE | Restore DE (command summary text pointer) | ||||||||||||||
| 45972 | CALL 63388 | Print text at command summary text pointer (e.g. "COMMAND ") in command summary window | ||||||||||||||
| 45975 | LD A,(23702) | Load A with Magic Knight's current room... | ||||||||||||||
| 45978 | CALL 46408 | ...and create list of characters in this room at 23422, loading A with number of characters | ||||||||||||||
| 45981 | JR NZ,46011 | If there are characters in this room then skip ahead to 46011 | ||||||||||||||
| 45983 | LD HL,51381 | Point HL at "THERE IS NOBODY IN THIS ROOM" text | ||||||||||||||
| 45986 | LD DE,49140 | Adjust height of window 13 to accommodate text... | ||||||||||||||
| 45989 | CALL 45617 | ... | ||||||||||||||
| 45992 | PUSH HL | Store HL (pointer to start of text to print) | ||||||||||||||
| 45993 | LD A,13 | Draw window 13... | ||||||||||||||
| 45995 | CALL 47193 | ... | ||||||||||||||
| 45998 | POP HL | Restore HL (pointer to start of text to print) | ||||||||||||||
| 45999 | CALL 46902 | Print text at HL | ||||||||||||||
| 46002 | CALL 64230 | Wait for interrupt then display "PRESS FIRE TO CONTINUE" window and wait for fire to be pressed | ||||||||||||||
| 46005 | POP IX | Restore IX | ||||||||||||||
| 46007 | POP BC | Restore BC | ||||||||||||||
| 46008 | POP HL | Restore HL (pointer to text to append to menu's title string) | ||||||||||||||
| 46009 | XOR A | Set A to zero and set zero flag | ||||||||||||||
| 46010 | RET | Return | ||||||||||||||
| 46011 | ADD A,4 | Add four to number of characters in current room (for menu size padding)... | ||||||||||||||
| 46013 | LD C,A | ...and load value into C | ||||||||||||||
| 46014 | LD A,(49060) | Load A with window's top y-coordinate | ||||||||||||||
| 46017 | ADD A,C | Add 4 + number of characters... | ||||||||||||||
| 46018 | LD (49061),A | ...and set window's bottom y-coordinate to this value | ||||||||||||||
| 46021 | POP IX | Restore IX | ||||||||||||||
| 46023 | POP BC | Restore BC | ||||||||||||||
| 46024 | LD A,3 | Draw window 3 as a menu window... | ||||||||||||||
| 46026 | CALL 47185 | ... | ||||||||||||||
| 46029 | LD HL,51367 | Point HL at "WHO DO YOU WANT TO " text... | ||||||||||||||
| 46032 | CALL 46902 | ...and print to screen | ||||||||||||||
| 46035 | POP HL | Restore HL (pointer to text to append to menu's title string, as at beginning of this routine) | ||||||||||||||
| 46036 | CALL 46902 | Append this text to menu's title | ||||||||||||||
| 46039 | LD IX,23422 | Point IX at list of characters in room | ||||||||||||||
| 46043 | LD B,8 | Load B with 8 (8 characters) | ||||||||||||||
| 46045 | PUSH BC | Store BC (B = remaining characters to process) | ||||||||||||||
| 46046 | LD A,(IX+0) | Load A with index of current character in list... | ||||||||||||||
| 46049 | CP 255 | ...and if this is 255 (end marker)... | ||||||||||||||
| 46051 | JP Z,46095 | ...then skip ahead to 46095 | ||||||||||||||
| 46054 | LD HL,50753 | Point HL at text printing instructions to move cursor to start of next character row within window, then right by two characters | ||||||||||||||
| 46057 | PUSH IX | Store IX (current position in list of characters in room) | ||||||||||||||
| 46059 | CALL 46902 | Print text at HL to screen (i.e. move cursor) | ||||||||||||||
| 46062 | POP IX | Restore IX (current position in list of characters in room) | ||||||||||||||
| 46064 | LD A,(IX+0) | Load A with index of current character in list... | ||||||||||||||
| 46067 | LD (41937),A | Set this character as the Current Character | ||||||||||||||
| 46070 | LD HL,45800 | Point HL at instruction to print full name of Current Character | ||||||||||||||
| 46073 | PUSH IX | Store IX (current position in list of characters in room) | ||||||||||||||
| 46075 | CALL 46902 | Print text to screen | ||||||||||||||
| 46078 | POP IX | Restore IX (current position in list of characters in room) | ||||||||||||||
| 46080 | INC IX | Advance IX to next character in list | ||||||||||||||
| 46082 | POP BC | Restore BC (B = remaining characters to process) | ||||||||||||||
| 46083 | DJNZ 46045 | Decrease B and loop back to 46045 | ||||||||||||||
| 46085 | CALL 47502 | Process keyboard / joystick input on a menu and load A with selected item index | ||||||||||||||
| 46088 | CALL 45781 | Update Current Character based upon selection made in menu | ||||||||||||||
| 46091 | LD A,1 | Load A with 1 | ||||||||||||||
| 46093 | OR A | Reset zero flag | ||||||||||||||
| 46094 | RET | Return | ||||||||||||||
| 46095 | POP BC | Restore BC (B = remaining characters to process) | ||||||||||||||
| 46096 | CALL 47502 | Process keyboard / joystick input on a menu and load A with selected item index | ||||||||||||||
| 46099 | CALL 45781 | Update Current Character based upon selection made in menu | ||||||||||||||
| 46102 | LD A,1 | Load A with 1 | ||||||||||||||
| 46104 | OR A | Reset zero flag | ||||||||||||||
| 46105 | RET | Return | ||||||||||||||
| Prev: 45809 | Up: Map | Next: 46106 |