|  | Routines | 
| Prev: 30602 | Up: Map | Next: 31153 | 
| 30880 | CALL 38075 | Play upward scale sound | ||
| 30883 | LD IX,25395 | Point IX at Magic Knight's inventory | ||
| 30887 | LD B,5 | Load B with 5 (as there are five inventory slots) | ||
| 30889 | LD HL,45810 | Point HL at "GIVE WHICH OBJECT?" text | ||
| 30892 | LD DE,45817 | Point DE at "GIVE" text | ||
| 30895 | CALL 34914 | Show list of objects (window or menu) and handle selection if a menu | ||
| 30898 | LD HL,25395 | Point HL at Magic Knight's inventory | ||
| 30901 | CALL 34864 | Point DE at name of a selected object in object names table and print in command summary window | ||
| 30904 | LD DE,45820 | Point DE at "TO" text... | ||
| 30907 | CALL 38693 | ...and print in command summary window at bottom of screen | ||
| 30910 | LD HL,44058 | Point HL to "GIVE AN OBJECT TO ?" text | ||
| 30913 | LD DE,0 | Set DE to zero so command summary window is not updated with additional text | ||
| 30916 | CALL 35141 | Display and process input for character selection menu (current room's characters only), setting Current Character | ||
| 30919 | CALL 38725 | Display execute / reject command window and return if execute chosen, else exit | ||
| 30922 | LD A,(30615) | Load A with index of Current Character | ||
| 30925 | CALL 34186 | Point IX at current inventory of character in A | ||
| 30928 | LD A,(IX+4) | Load A with contents of character's last inventory slot | ||
| 30931 | OR A | If inventory slot is not empty... | ||
| 30932 | JP NZ,34460 | ...then display "[CHARACTER]'S HANDS ARE FULL" window and return to game | ||
| 30935 | LD BC,1280 | Load B (number of inventory slots) with 5 and C (running total of character's carried weight) with 0 | ||
| 30938 | LD A,(IX+0) | Load index of object in character's current inventory slot into A | ||
| 30941 | OR A | If object index is zero (i.e. there is nothing in this slot and we have reached the end of the inventory)... | ||
| 30942 | JR Z,30953 | ...then jump ahead to 30953 (IX now points to first empty inventory slot) | ||
| 30944 | CALL 34126 | Load A with weight of object A | ||
| 30947 | ADD A,C | Add weight of object to C... | ||
| 30948 | LD C,A | ... | ||
| 30949 | INC IX | Advance to next inventory slot | ||
| 30951 | DJNZ 30938 | Decrease B and loop back for next slot | ||
| 30953 | LD A,(30467) | Load A with index of Current Object | ||
| 30956 | CALL 34126 | Load A with weight of object A | ||
| 30959 | ADD A,C | Add weight of Current Object to total weight currently held by the character... | ||
| 30960 | LD C,A | ...in C | ||
| 30961 | LD A,(30615) | Load A with index of Current Character | ||
| 30964 | LD E,0 | Point HL at strength of character whose index is A... | ||
| 30966 | CALL 34174 | ... | ||
| 30969 | LD A,(HL) | Load character's strength into A | ||
| 30970 | CP C | If total weight in C is greater than character's strength in A... | ||
| 30971 | JP C,34466 | ...then display "[CHARACTER] IS NOT STRONG ENOUGH" window and return to game | ||
| 30974 | CALL 34137 | Load happiness of Current Character into A | ||
| 30977 | CP 25 | If character's happiness is less than 25... | ||
| 30979 | JP C,34472 | ...then display "[CHARACTER] DOES NOT WANT THAT" window and return to game | ||
| 30982 | LD A,(30467) | Load B with index of Current Object... | ||
| 30985 | LD B,A | ... | ||
| 30986 | LD A,(30615) | Load A with index of Current Character | ||
| 30989 | OR A | If Current Character is not 0 (Gimbal)... | ||
| 30990 | JP NZ,31009 | ...then skip ahead to 31009 | ||
| 30993 | LD A,B | Load index of Current Object into A... | ||
| 30994 | CP 24 | If Current Object is not the Willow Rod... | ||
| 30996 | JR NZ,31006 | ...then skip ahead to 31006 | ||
| 30998 | LD A,(25328) | Set Gimbal's can-help flag... (see trivia) | ||
| 31001 | OR 1 | ... | ||
| 31003 | LD (25328),A | ... | ||
| 31006 | JP 31135 | Skip ahead to 31135 | ||
| 31009 | CP 1 | If Current Character is not Thor... | ||
| 31011 | JP NZ,31038 | ...then skip ahead to 31038 | ||
| 31014 | LD A,B | Load index of Current Object into A | ||
| 31015 | CP 3 | If Current Object is not Miolnir... | ||
| 31017 | JR NZ,31035 | ...then skip ahead to 31035 | ||
| 31019 | LD A,(25336) | Set Thor's can-help flag... | ||
| 31022 | OR 1 | ... | ||
| 31024 | LD (25336),A | ... | ||
| 31027 | LD A,10 | Change Thor's "current status" text to 10 (ready to help)... | ||
| 31029 | LD (25338),A | ... | ||
| 31032 | JP 31135 | Skip ahead to 31135 [bug] | ||
| 31035 | JP 31135 | Skip ahead to 31135 | ||
| 31038 | CP 2 | If Current Character is not Florin... | ||
| 31040 | JP NZ,31059 | ...then skip ahead to 31059 | ||
| 31043 | LD A,B | Load index of Current Object into A | ||
| 31044 | CP 11 | If object is not the Broken Talisman... | ||
| 31046 | JR NZ,31056 | ...then skip ahead to 31056 | ||
| 31048 | LD A,(25344) | Set Florin's can-help flag... | ||
| 31051 | OR 1 | ... | ||
| 31053 | LD (25344),A | ... | ||
| 31056 | JP 31135 | Skip ahead to 31135 | ||
| 31059 | CP 3 | If Current Character is not Orik... | ||
| 31061 | JP NZ,31068 | ...then skip ahead to 31068 | ||
| 31064 | LD A,B | Load index of Current Object into A | ||
| 31065 | JP 31135 | Skip ahead to 31135 | ||
| 31068 | CP 4 | If Current Character is not Samsun... | ||
| 31070 | JP NZ,31092 | ...then skip ahead to 31092 | ||
| 31073 | LD A,B | Load index of Current Object into A | ||
| 31074 | CP 8 | If object is not 8 (Javelin)... | ||
| 31076 | JR NZ,31089 | ...then skip ahead to 31089 | ||
| 31078 | LD A,(25360) | Set Samsun's can-help flag... | ||
| 31081 | OR 1 | ... | ||
| 31083 | LD (25360),A | ... | ||
| 31086 | JP 31135 | Skip ahead to 31135 [bug] | ||
| 31089 | JP 31135 | Skip ahead to 31135 | ||
| 31092 | CP 5 | If Current Character is not Elrand... | ||
| 31094 | JP NZ,31111 | ...then skip ahead to 31111 | ||
| 31097 | LD A,B | Load index of Current Object into A | ||
| 31098 | CP 40 | [bug] | ||
| 31100 | LD A,(25368) | Set Elrand's can-help flag... | ||
| 31103 | OR 1 | ... | ||
| 31105 | LD (25368),A | ... | ||
| 31108 | JP 31135 | Skip ahead to 31135 | ||
| 31111 | CP 6 | If Current Character is not Rosmar... | ||
| 31113 | JP NZ,31135 | ...then skip ahead to 31135 | ||
| 31116 | LD A,B | Load index of Current Object into A | ||
| 31117 | CP 36 | If object is not 36 (Pocket Laser)... | ||
| 31119 | JR NZ,31132 | ...then skip ahead to 31132 | ||
| 31121 | LD A,(25376) | Set Rosmar's can-help flag... | ||
| 31124 | OR 1 | ... | ||
| 31126 | LD (25376),A | ... | ||
| 31129 | JP 31135 | Skip ahead to 31135 [bug] | ||
| 31132 | JP 31135 | Skip ahead to 31135 | ||
| 31135 | LD A,(30467) | Load index of Current Object into first empty inventory slot of character... | ||
| 31138 | LD (IX+0),A | ... | ||
| 31141 | LD C,A | ...and into C | ||
| 31142 | LD B,5 | Load B with 5 (as there are 5 inventory slots to check) | ||
| 31144 | LD HL,25395 | Point HL at Magic Knight's inventory | ||
| 31147 | CALL 38674 | Remove object C from Magic Knight's inventory (and tidy up remainder of slots) | ||
| 31150 | JP 30410 | Display Magic Knight's current inventory and return to game | ||
| Prev: 30602 | Up: Map | Next: 31153 |