Prev: 7F10 Up: Map Next: 7F60
7F1A: Take the order waiting for a character, and parse it
Used by the routines at CHARACTERS_ACT, BARD_TAKES_ORDER and GOLLUM_HEARS_ANSWER.
Frees the slot, then parses the command kept in it the way the player's own commands are parsed, leaving the action and its objects in ACTION to INSTRUMENT for ACTOR_TRIES.
TAKE_ORDER 7F1A PUSH IX
7F1C PUSH IY
7F1E PUSH BC
7F1F PUSH DE
7F20 PUSH HL
7F21 LD C,A
7F22 CALL FIND_ORDER Free the slot
7F25 LD (HL),$00
7F27 INC HL
7F28 XOR A
7F29 CP C
7F2A JR NZ,TAKE_ORDER_1
7F2C OR $01
7F2E EX (SP),HL
TAKE_ORDER_0 7F2F POP HL
7F30 POP DE
7F31 POP BC
7F32 POP IY
7F34 POP IX
7F36 RET
TAKE_ORDER_1 7F37 PUSH HL
7F38 POP IY
7F3A LD A,$01
7F3C LD (IS_ORDER),A
7F3F LD A,(ALL_ACTION)
7F42 PUSH AF
7F43 CALL PARSE_ACTION
7F46 EX AF,AF'
7F47 XOR A
7F48 LD (IS_ORDER),A
7F4B POP AF
7F4C LD (ALL_ACTION),A
7F4F EX AF,AF'
7F50 JR Z,TAKE_ORDER_2
7F52 CALL TRY_IT
7F55 JR NZ,TAKE_ORDER_0
TAKE_ORDER_2 7F57 LD A,(ACTING)
7F5A CALL CANCEL_ORDERS
7F5D XOR A
7F5E JR TAKE_ORDER_0
Prev: 7F10 Up: Map Next: 7F60