Prev: A898 Up: Map Next: A8CF
A8B2: Condition: Group Item Differs
Succeeds when the active item in the group operand is not the second operand.
Stores the active item ID at ScriptMatchedItem.
Input
IX Pointer to the script entry (opcode, group, item)
Output
F The zero flag is set when the item differs
The first operand selects a group from Table_ItemGrouping.
Condition_GroupItemDiffers A8B2 PUSH IX Stash IX on the stack.
A8B4 LD E,(IX+$01) Fetch the group number (the operand) from *IX+01 into E.
A8B7 LD IX,$B60E Point IX at the item-group table at Table_ItemGrouping.
A8BB CALL GetTableEntry Call GetTableEntry to fetch the address of the group's item list into HL.
A8BE POP IX Restore the script pointer from the stack.
Remember the group's active item at ScriptMatchedItem, and succeed when it is not the second operand.
A8C0 CALL CheckActiveScenicEvents Call CheckActiveScenicEvents to find the first present item in that list.
A8C3 LD ($A805),A Store the active item ID at ScriptMatchedItem.
A8C6 CP (IX+$02) Compare it with the second operand.
A8C9 CALL RunScript_InvertConditionResult Call RunScript_InvertConditionResult so the condition succeeds when the items differ.
A8CC JP RunScript_SkipCondition_ThreeBytes Jump to RunScript_SkipCondition_ThreeBytes.
Prev: A898 Up: Map Next: A8CF