Prev: 43850 Up: Map Next: 43891
43870: Action: Stop Turn Event
Clears the bit operand in Flags_TurnEvents.
Input
F The zero flag is set when the conditions hold
IX Pointer to the script entry (opcode, event index)
When the condition failed, skip this action.
Action_StopTurnEvent 43870 JP NZ,RunScript_SkipAction_TwoBytes Jump to RunScript_SkipAction_TwoBytes if the condition failed.
The operand selects which turn-based event to disarm in Flags_TurnEvents.
43873 LD B,(IX+1) Fetch the event number from *IX+1 into B.
43876 INC B Start the count at one so event 0 needs a single rotate.
43877 XOR A Clear A and set the carry flag as the seed bit.
43878 SCF
StopTurnEvent_Mask 43879 RLA Rotate the seed bit left into the mask.
43880 DJNZ StopTurnEvent_Mask Decrease the event count by one and loop back to StopTurnEvent_Mask until the bit is in place.
Clear that bit so the turn-based event is disarmed.
43882 LD HL,41160 Clear that bit in *Flags_TurnEvents.
43885 CPL
43886 AND (HL)
43887 LD (HL),A
43888 JP RunScript_SkipAction_TwoBytes Jump to RunScript_SkipAction_TwoBytes.
Prev: 43850 Up: Map Next: 43891