Prev: EECF Up: Map Next: EF09
EEE9: Process: Get Urn
The player wants to pick up the urn, check if there are any issues with allowing this (if the inventory is full, or the player is already carrying it).
Process_GetUrn EEE9 LD A,$1C Call Check_PlayerInventory with item 1C: "An urn".
EEEB CALL Check_PlayerInventory
All is good, but check if "A bronze helmet (worn)" is present.
EEEE LD A,$20 Call ValidateItemPresent with item 20: "A bronze helmet (worn)".
EEF0 CALL ValidateItemPresent
Print "You cannot move it." if the player isn't wearing the helmet.
EEF3 JP NZ,Response_YouCannotMoveIt Jump to Response_YouCannotMoveIt if "A bronze helmet (worn)" isn't present in the room or in the players inventory (note, it can only be in the "worn" state in the players inventory).
Is this the first time the player has picked up the urn?
EEF6 LD HL,$A76C Jump to GetUrn if bit 4 of *Flag_GameStates_01 is set, which relates to carrying the urn.
EEF9 BIT 4,(HL)
EEFB JR NZ,GetUrn
EEFD SET 4,(HL) Set bit 4 of *HL to signify that the urn has been picked up. This is to prevent the points from being awarded more than one time.
EEFF LD A,$04 Call AddToScore to add 04 points to the score.
EF01 CALL AddToScore
GetUrn EF04 LD B,$1C Jump to Handler_PickUpItem with item 1C: "An urn".
EF06 JP Handler_PickUpItem
Prev: EECF Up: Map Next: EF09