Prev: F190 Up: Map Next: F26D
F216: Action: Give
Give the chest or the crystals to the blacksmith.
Action_Give F216 CALL Parser_ValidateTwoDirectObjects Call Parser_ValidateTwoDirectObjects.
F219 RET C Return if the direct object is malformed.
Was the player trying to give ... to the old man / blacksmith?
F21A LD HL,$E843 Call Parser_AdvanceToSeparator with E843.
F21D CALL Parser_AdvanceToSeparator
F220 JR NZ,Give_YouCant Jump to Give_YouCant if the token isn't for the old man.
F222 LD A,$25 Jump to Give_CheckOpenChest if ValidateItemPresent reports that "The blacksmith. He says:- 'I have been instructed to make a mighty sword for you" is in the current room.
F224 CALL ValidateItemPresent
F227 JR Z,Give_CheckOpenChest
Print "You can't.He's dead.".
F229 LD HL,$DD38 HL=Messaging_YouCantHesDead.
F22C JP PrintResponse Jump to PrintResponse.
Give_CheckOpenChest F22F LD A,$0D Jump to Give_CheckCrystals if ValidateItemPresent reports that "An open chest containing the Crystals of Vulcan" isn't in the current room.
F231 CALL ValidateItemPresent
F234 JR NZ,Give_CheckCrystals
F236 LD BC,$0D0E Call TransformItem to transform "An open chest containing the Crystals of Vulcan" into "An empty chest".
F239 CALL TransformItem
F23C JR Give_HandOver Jump to Give_HandOver.
Give_CheckCrystals F23E LD A,$0F Call IsObjectCarried with item 0F: "The Crystals of Vulcan".
F240 CALL IsObjectCarried
F243 JR NZ,Give_HandOver Jump to Give_HandOver if "The Crystals of Vulcan" isn't held.
F245 LD HL,$BA68 Decrease *Count_InventoryItems by one.
F248 DEC (HL)
Give_HandOver F249 LD A,$0F Call Handler_DestroyItem with item 0F: "The Crystals of Vulcan".
F24B CALL Handler_DestroyItem
F24E LD BC,$2526 Call TransformItem to transform "The blacksmith. He says:- 'I have been instructed to make a mighty sword for you" into "The blacksmith".
F251 CALL TransformItem
F254 LD A,$88 Call Handler_DestroyItem with 88.
F256 CALL Handler_DestroyItem
F259 LD A,$0A Call Handler_UpdateItemForTheCurrentRoom with item 0A: "A sword".
F25B CALL Handler_UpdateItemForTheCurrentRoom
Print "You give him the crystals. He puts them in the flames.".
F25E LD HL,$DD4D HL=Messaging_YouGiveHimTheCrystals.
F261 CALL PrintStringAndNewline Call PrintStringAndNewline.
Print "After some time, he shapes a piece of metal from the fire,on the anvil. He produces a fine sword.".
F264 LD HL,$DD84 HL=Messaging_AfterSomeTime.
F267 JP PauseAndPrintResponse Jump to PauseAndPrintResponse.
Nothing else is valid.
Give_YouCant F26A JP Response_YouCant_GameLoop Jump to Response_YouCant_GameLoop.
Prev: F190 Up: Map Next: F26D