Routines |
Prev: 30643 | Up: Map | Next: 30804 |
Used by the routine at 55726.
|
||||
30686 | LD HL,38669 | Point HL at "COMMAND ?" text (end of sub-menu title, after "WHO DO YOU WANT TO ") | ||
30689 | LD DE,39574 | Point DE (command summary text pointer) at "COMMAND " text | ||
30692 | CALL 34122 | Display and process input for character selection menu (current room's characters only), setting Current Character | ||
30695 | JP Z,29482 | If there are no characters in the room then return to game | ||
30698 | LD DE,39082 | Point DE at "TO"... | ||
30701 | CALL 54283 | ...and print in command summary window at top of screen | ||
30704 | LD A,23 | Draw "WHICH COMMAND DO YOU WANT TO USE?" menu window... | ||
30706 | CALL 34982 | ... | ||
30709 | LD HL,39577 | Print "WHICH COMMAND DO YOU WANT TO USE" menu text... | ||
30712 | CALL 34762 | ... | ||
30715 | CALL 35296 | Process keyboard / joystick input on a menu and load A with selected item index | ||
30718 | LD (30797),A | Load index of selected command into operand of instruction at 30796... | ||
30721 | LD B,A | ...and into B | ||
30722 | CALL 54256 | Point HL at start of B-th entry in list of "COMMAND A CHARACTER" commands at 39626 | ||
30725 | EX DE,HL | Swap HL and DE (command summary text pointer, now at selected command string) | ||
30726 | CALL 54283 | Print text at DE in command summary window at top of screen | ||
30729 | CALL 55115 | Display execute / reject command window and return here if execute chosen, else exit to main game loop | ||
30732 | LD A,250 | Decrease Current Character's happiness by 6... | ||
30734 | CALL 33569 | ... | ||
30737 | LD A,27 | If Magic Knight is wearing the Gas Mask (27)... | ||
30739 | CALL 33640 | ... | ||
30742 | JP Z,55322 | ...then display "[Character] HEARS A MUFFLED VOICE..." window (12) and return to game | ||
30745 | LD A,(29632) | Load A with index of Current Character | ||
30748 | LD E,6 | Point HL at Current Character's flags... | ||
30750 | CALL 33541 | ... | ||
30753 | LD A,(HL) | Load flags into A | ||
30754 | AND 3 | If is-artificial flag is set and dislikes-Starfleet flag is reset... | ||
30756 | CP 2 | ... | ||
30758 | JR Z,30791 | ...then skip ahead to 30791 | ||
30760 | EX AF,AF' | Switch AF and AF' (character's is-artificial and dislikes-Starfleet flags now in A') | ||
30761 | LD A,1 | If Magic Knight is wearing the Cloak of Invisibility (01)... | ||
30763 | CALL 33640 | ... | ||
30766 | JP Z,55303 | ...then display "[Character] HEARS A VOICE AND IGNORES IT" window, and jump to main game loop | ||
30769 | EX AF,AF' | Switch AF and AF' (character's is-artificial and dislikes-Starfleet flags now in A) | ||
30770 | OR A | If character is not artificial, and likes Starfleet... | ||
30771 | JR Z,30783 | ...then skip ahead to 30783 | ||
30773 | LD A,3 | If Magic Knight is wearing the Valid I.D. Card (03)... | ||
30775 | CALL 33640 | ... | ||
30778 | JP Z,55317 | ...then display "[Character] DOES NOT LIKE STARFLEET SO HE IGNORES YOU" window (12) and return to game | ||
30781 | JR 30791 | Skip ahead to 30791 | ||
30783 | LD A,3 | If Magic Knight is not wearing the Valid I.D. Card (03)... | ||
30785 | CALL 33640 | ... | ||
30788 | JP NZ,55312 | ...then display "[Character] DOES NOT RECOGNISE YOUR AUTHORITY" window (12) and return to game | ||
30791 | LD A,7 | Increase Current Character's happiness by 7... | ||
30793 | CALL 33569 | ... | ||
The operand of the instruction at 30796 is the index of the currently selected command from the "COMMAND A CHARACTER TO" menu. This is modified by the instruction at 30718.
|
||||
30796 | LD A,0 | Load A with index of selected "COMMAND A CHARACTER TO" command | ||
30798 | LD HL,30804 | Point HL at start of table of "command a character" routine addresses | ||
30801 | JP 55726 | Advance HL by A words, load HL with word at location HL as address and jump to it |
Prev: 30643 | Up: Map | Next: 30804 |