Prev: 61257 Up: Map Next: 61308
61274: Process: Get Rope
The player wants to pick up the rope, check which version of it is in the current room.
Process_GetRope 61274 LD HL,58288 Call CheckItemGroupPresent with Data_ItemGroup_Rope.
61277 CALL CheckItemGroupPresent
Print "You can't." if the player is trying to pick up a version of the rope where the rope is "in-use" (e.g. "A wild ox,tethered to the pen by a length of rope").
61280 CP 81 Jump to Response_YouCant_Duplicate if the rope state in the current room is not "A piece of rope".
61282 JP NZ,Response_YouCant_Duplicate
The player wants to pick up the rope, check if there are any issues with allowing this (if the inventory is full, or the player is already carrying it).
61285 CALL Check_PlayerInventory Call Check_PlayerInventory.
Is this the first time the player has picked up the rope?
61288 LD HL,42860 Jump to Handler_PickUpItem if bit 2 of *Flag_GameStates_01 is set, which relates to carrying the rope.
61291 BIT 2,(HL)
61293 JP NZ,Handler_PickUpItem
61296 SET 2,(HL) Set bit 2 of *Flag_GameStates_01 to signify that the rope has been picked up. This is to prevent the points from being awarded more than one time.
61298 LD A,4 Call AddToScore to add 4 points to the score.
61300 CALL AddToScore
61303 LD B,81 Jump to Handler_PickUpItem with item 81: "A piece of rope".
61305 JP Handler_PickUpItem
Prev: 61257 Up: Map Next: 61308