Prev: 62843 Up: Map Next: 62955
62904: Process: Place Sword On Slab
The players wants to place the sword on the stone slab, check which version of the sword is in the current room or the players inventory.
Process_PlaceSwordOnSlab 62904 LD HL,58258 Call CheckItemGroupPresent with Data_ItemGroup_Sword.
62907 CALL CheckItemGroupPresent
Print "You've done that already." if the version of the sword in the current room is the one where it's on the stone slab.
62910 CP 89 Jump to Response_YouveDoneThatAlready if the version of the sword in the current room is "A shimmering stone slab with a sword laying upon it".
62912 JP Z,Response_YouveDoneThatAlready
Print "I don't see the point." if the version of the sword in the current room is item 57 instead of item 56.
62915 CP 57 Jump to Response_IDontSeeThePoint if the version of the sword in the current room is "A sword".
62917 JP Z,Response_IDontSeeThePoint
Ensure the player is carrying the sword.
62920 CALL IsPlayerCarryingItem Call IsPlayerCarryingItem with the item ID of the originally requsted item.
62923 LD A,E
The sword item itself is destroyed, it's the stone slab item which changes to the version where it has a sword laying on it.
62924 CALL Handler_DestroyItemEvent Call Handler_DestroyItemEvent.
Change the stone slab state!
62927 LD BC,22617 Call TransformItem to transform item 88 ("A stone slab") into item 89 ("A shimmering stone slab with a sword laying upon it").
62930 CALL TransformItem
The sword has been used so handle the inventory count.
62933 LD HL,42896 Decrease *Count_InventoryItems by one.
62936 DEC (HL)
Is this the first time the player has placed the sword on the stone slab?
62937 LD HL,42861 Jump to Response_OK_Duplicate if bit 4 of *Flag_GameStates_02 is set, which relates to placing the sword on the stone slab.
62940 BIT 4,(HL)
62942 JP NZ,Response_OK_Duplicate
62945 SET 4,(HL) Set bit 4 of *Flag_GameStates_02 to signify that the sword has been placed on the stone slab. This is to prevent the points from being awarded more than one time.
62947 LD A,4 Call AddToScore to add 4 points to the score.
62949 CALL AddToScore
62952 JP Response_OK_Duplicate Jump to Response_OK_Duplicate.
Prev: 62843 Up: Map Next: 62955