Routines |
Prev: 31468 | Up: Map | Next: 31688 |
Used by the routine at 55726.
|
||||
31537 | LD A,11 | Draw window 11... | ||
31539 | CALL 34982 | ... | ||
31542 | LD HL,41830 | Point HL at wear/unwear menu text... | ||
31545 | CALL 34762 | ...and print to screen | ||
31548 | CALL 35296 | Process keyboard / joystick input on a menu and load A with selected item index | ||
31551 | JR NZ,31627 | If UNWEAR selected then skip ahead to 31627 | ||
31553 | CALL 33834 | Display "YOU ARE NOT CARRYING ANYTHING" window and set zero flag if Magic Knight's inventory (carrying) is empty | ||
31556 | JP Z,29482 | If Magic Knight's inventory (carrying) is empty then return to game | ||
31559 | LD IX,25164 | Point IX at Magic Knight's current inventory (carrying) | ||
31563 | LD B,5 | Load B with 5 (five inventory slots) | ||
31565 | LD HL,41848 | Point HL at "WEAR WHICH OBJECT ?" text | ||
31568 | LD DE,41841 | Point DE at "WEAR THE " text | ||
31571 | CALL 33952 | Show list of objects in Magic Knight's inventory (carrying) as a menu and load A with selected item index | ||
31574 | LD HL,25164 | Point HL at start of Magic Knight's current inventory (carrying) | ||
31577 | CALL 33911 | Print name of object in inventory slot A of inventory data at HL in command summary window | ||
31580 | CALL 55115 | Display execute / reject command window and return here if execute chosen, else exit to main game loop | ||
31583 | LD HL,25173 | If last slot in Magic Knight's current inventory (wearing) is not empty... | ||
31586 | LD A,(HL) | ... | ||
31587 | OR A | ... | ||
31588 | JP NZ,55170 | ...then display "YOU ARE WEARING TOO MUCH" window (13) and return to game | ||
31591 | LD A,(29526) | Load A with index of Current Object | ||
31594 | LD E,1 | If object's can-be-worn flag is reset... | ||
31596 | CALL 33525 | ... | ||
31599 | BIT 3,(HL) | ... | ||
31601 | JP Z,55182 | ...then display "YOU CANNOT WEAR THAT" window (13) and return to game | ||
31604 | LD A,(29526) | Load C with index of Current Object... | ||
31607 | LD C,A | ... | ||
31608 | LD B,5 | Load B with 5 (five inventory slots) | ||
31610 | PUSH BC | Store BC (B = number of slots to process, C = Current Object) | ||
31611 | LD HL,25164 | Point HL at start of Magic Knight's current inventory (carrying) | ||
31614 | CALL 36254 | Remove object C from this inventory | ||
31617 | POP BC | Restore BC (B = number of slots to process, C = Current Object) | ||
31618 | LD HL,25169 | Point HL at Magic Knight's current inventory (wearing)... | ||
31621 | CALL 33516 | ...and load object C into the first empty slot | ||
31624 | JP 29467 | Show Magic Knight's current inventory and jump back to main game loop | ||
31627 | CALL 33824 | Display "YOU ARE NOT WEARING ANYTHING" window and set zero flag if Magic Knight's inventory (wearing) is empty | ||
31630 | JP Z,29482 | If Magic Knight's inventory (wearing) is empty then return to game | ||
31633 | LD IX,25169 | Point IX at Magic Knight's current inventory (wearing) | ||
31637 | LD B,5 | Load B with 5 (five inventory slots) | ||
31639 | LD HL,41846 | Point HL at "UNWEAR WHICH OBJECT ?" text | ||
31642 | LD DE,41839 | Point DE at "UNWEAR THE " text | ||
31645 | CALL 33952 | Show list of objects in Magic Knight's inventory (wearing) as a menu and load A with selected item index | ||
31648 | LD HL,25169 | Point HL at Magic Knight's current inventory (wearing) | ||
31651 | CALL 33911 | Print name of object in inventory slot A of inventory data at HL in command summary window | ||
31654 | CALL 55115 | Display execute / reject command window and return here if execute chosen, else exit to main game loop | ||
31657 | LD HL,25168 | Load A with index of object in Magic Knight's fifth inventory slot (carrying)... | ||
31660 | LD A,(HL) | ... | ||
31661 | OR A | If this is not zero (i.e. Magic Knight's hands are full)... | ||
31662 | JP NZ,55165 | ...then display "YOUR HANDS ARE FULL" window and return to game | ||
31665 | LD A,(29526) | Load C with index of Current Object... | ||
31668 | LD C,A | ... | ||
31669 | LD B,5 | Load B with 5 (five inventory slots) | ||
31671 | PUSH BC | Store BC (B = number of slots to process, C = Current Object) | ||
31672 | LD HL,25169 | Point HL at Magic Knight's current inventory (wearing) | ||
31675 | CALL 36254 | Remove object C from Magic Knight's current inventory (wearing) | ||
31678 | POP BC | Restore BC (B = number of slots to process, C = Current Object) | ||
31679 | LD HL,25164 | Point HL at start of Magic Knight's current inventory (carrying)... | ||
31682 | CALL 33516 | ...and load object C into the first empty slot | ||
31685 | JP 29467 | Show Magic Knight's current inventory and jump back to main game loop |
Prev: 31468 | Up: Map | Next: 31688 |