Open duncanc opened 1 month ago
Hold the ring state in two variables, vUNDO_RING_LO
and vUNDO_RING_HI
. Store these when setting up an undo and restore them on completing it, unless it is certain that the ring cannot be worn at this point due to the rules above.
vUNDO_RING_HI == 100
, we never had the ring.vUNDO_RING_HI == 101
, we are carrying but not wearing the ring.vUNDO_RING_HI == 102
, we are wearing the ring but it is not activated.vUNDO_RING_HI == 103
, we have lost the ring.vINVISIBLE_COUNTDOWN_HI/LO
needs to be set to the corresponding values.
Stages:
!fIMPRESSED_ELF && !fCARRYING_RING && !fWEARING_RING && !fEGO_INVISIBLE && !fLOST_RING
fIMPRESSED_ELF && fCARRYING_RING && !fWEARING_RING && !fEGO_INVISIBLE && !fLOST_RING
fIMPRESSED_ELF && fCARRYING_RING && fWEARING_RING && !fEGO_INVISIBLE && !fLOST_RING
fIMPRESSED_ELF && fCARRYING_RING && fWEARING_RING && fEGO_INVISIBLE && !fLOST_RING
vINVISIBLE_COUNTDOWN_LO = 250; vINVISIBLE_COUNTDOWN_HI = 10;
vINVISIBLE_COUNTDOWN_HI == 0 && vINVISIBLE_COUNTDOWN_LO == 1
fIMPRESSED_ELF && !fCARRYING_RING && !fWEARING_RING && !fEGO_INVISIBLE && fLOST_RING
Ring cannot be rubbed/will wear off immediately if: