Prev: A302 Up: Map Next: A3E6
A3BC: 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 CAAF is cleared. Reached through the action list of $10 - "Valuable Golden Ring" for action 16, dispatched by TriggerAction.
Action_RemoveTheRing A3BC LD IX,($B70C) Read the character.
A3C0 LD IY,$C31A Point IY at the ring.
A3C4 BIT 7,(IY+$07) Test whether the ring is visible.
A3C8 LD HL,$B074 Point HL at "You are not wearing[0x07]".
A3CB 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.
A3CE CALL ConditionSuppressTheMessage Call ConditionSuppressTheMessage. If the message is held back, the ring is not taken off.
A3D1 SET 7,(IY+$07) Show the ring again.
A3D5 SET 7,(IX+$07) Make the character visible again.
A3D9 SLA (IX+$05) Double the strength and keep the overflow.
A3DD SLA (IX+$05) Double the strength and keep the overflow.
A3E1 SUB A Clear the byte at CAAF.
A3E2 LD ($CAAF),A Store the result at CAAF.
A3E5 RET Return.
Prev: A302 Up: Map Next: A3E6