Prev: 43000 Up: Map Next: 43105
43043: Process command to command a character
Used by the routine at 64623.
43043 LD HL,51408 Point HL at "[Current Command] ?" text (end of sub-menu title, after "WHO DO YOU WANT TO ")
43046 LD DE,52523 Point DE (command summary text pointer) at "COMMAND " text
43049 CALL 45963 Display and process input for character selection menu (current room's characters only), setting Current Character
43052 JP Z,41742 If there are no characters in the room then return to game
43055 LD DE,52105 Point DE at " TO " text...
43058 CALL 63349 ...and print in command summary window at top of screen
43061 LD A,23 Draw "WHICH COMMAND DO YOU WANT TO USE?" menu window...
43063 CALL 47185 ...
43066 LD HL,52526 Print "WHICH COMMAND DO YOU WANT TO USE" menu text...
43069 CALL 46902 ...
43072 CALL 47502 Process keyboard / joystick input on a menu and load A with selected item index
43075 LD (43098),A Load index of selected command into operand of instruction at 43097...
43078 LD B,A ...and into B
43079 CALL 63327 Point HL at start of B-th entry in list of "COMMAND A CHARACTER" commands at 52590
43082 EX DE,HL Swap HL and DE (command summary text pointer, now at selected command string)
43083 CALL 63349 Print text at DE in command summary window at top of screen
43086 CALL 64207 Display execute / reject command window and return here if execute chosen, else exit to main game loop
43089 CALL 45723 End the game if Current Character is Off-White or Grunter
43092 LD A,2 Increase Current Character's happiness by 2 (see trivia)...
43094 CALL 45434 ...
The operand of the instruction at 43097 is the index of the currently selected command from the "COMMAND A CHARACTER TO" menu. This is modified by the instruction at 43075.
43097 LD A,0 Load A with index of selected "COMMAND A CHARACTER TO" command
43099 LD HL,43105 Point HL at start of table of "command a character" routine addresses
43102 JP 64623 Advance HL by A words, load HL with word at location HL as address and jump to it
Prev: 43000 Up: Map Next: 43105