Prev: 41730 Up: Map Next: 41958
41916: Action: Remove The Ring
Used by the routine at Event_TheRing.
Takes the ring off. If the ring is not being worn (it is visible), prints "You are not wearing" and its name; otherwise the ring and the character become visible again, the strength is multiplied by four, and 51887 is cleared. Reached through the action list of 16 - "Valuable Golden Ring" for action 22, dispatched by TriggerAction.
Action_RemoveTheRing 41916 LD IX,(46860) Read the character.
41920 LD IY,49946 Point IY at the ring.
41924 BIT 7,(IY+7) Test whether the ring is visible.
41928 LD HL,45172 Point HL at "You are not wearing[0x07]".
41931 JP NZ,PrintMessage Jump back to PrintMessage if the ring is not being worn.
If the message is held back, the ring is not taken off.
41934 CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the ring is not taken off.
41937 SET 7,(IY+7) Show the ring again.
41941 SET 7,(IX+7) Make the character visible again.
41945 SLA (IX+5) Double the strength and keep the overflow.
41949 SLA (IX+5) Double the strength and keep the overflow.
41953 SUB A Clear the byte at 51887.
41954 LD (51887),A Store the result at 51887.
41957 RET Return.
Prev: 41730 Up: Map Next: 41958