Prev: 43630 Up: Map Next: 43688
43658: Action: Drop Item
Moves the item operand into the current room and prints the dropped message.
Input
F The zero flag is set when the conditions hold
IX Pointer to the script entry
When the condition failed, skip this action.
Handler_DropItem 43658 JP NZ,RunScript_SkipAction_TwoBytes Jump to RunScript_SkipAction_TwoBytes if the condition failed.
Move the item operand from the inventory into the current room.
43661 LD A,(IX+1) Fetch the item ID (the operand) from *IX+1 into A.
43664 CALL RunScript_ResolveMatchedItem Call RunScript_ResolveMatchedItem to substitute the matched item ID from ScriptMatchedItem when the operand is 255.
43667 LD B,A Copy the item ID into B.
43668 LD A,(41222) Fetch the current room from *CurrentRoom into C.
43671 LD C,A
43672 CALL Handler_UpdateItemLocation Call Handler_UpdateItemLocation to update that item's location.
The player has lost an item, so lower the inventory count.
43675 LD HL,41170 Decrease the inventory count at Count_InventoryItems by one.
43678 DEC (HL)
Print "O.K.".
43679 LD HL,26 HL=Messaging_OK.
43682 CALL PrintCompressedStringAndNewline Call PrintCompressedStringAndNewline to print that compressed string and a newline.
43685 JP RunScript_SkipAction_TwoBytes Jump to RunScript_SkipAction_TwoBytes.
View the equivalent code in;
Prev: 43630 Up: Map Next: 43688