Prev: 9138 Up: Map Next: 9171
914A: Action: Test The Shared Flag Bits
Used by the routines at Action_Shoot and Action_Attack.
Stops the verb when bits 4-6 of the current object's flag byte overlap the same bits of the character's flag byte. On the player's turn bit 4 of the object's flag byte is cleared first.
Action_TestTheSharedFlagBits 914A LD IX,($B708) Read *B708.
Test whose turn it is.
914E LD A,($B6EA) Jump to Action_TestTheSharedFlagBits_CompareTheFlags if *CurrentCharacter is not zero.
9151 AND A
9152 JR NZ,Action_TestTheSharedFlagBits_CompareTheFlags
9154 BIT 4,(IX+$04) Jump to Action_TestTheSharedFlagBits_CompareTheFlags if bit 4 of the object's second flag is clear.
9158 JR Z,Action_TestTheSharedFlagBits_CompareTheFlags
915A RES 4,(IX+$04) Clear the object's second flag so bit 4 is off.
Action_TestTheSharedFlagBits_CompareTheFlags 915E LD A,(IX+$04) Read the object's flag byte.
9161 AND $70 Keep bits 4-6 of the object's flag byte and read the character at Pointer_CurrentCharacter.
9163 LD IX,($B70C)
9167 AND (IX+$04) Return when those bits do not overlap the character's flag byte.
916A RET Z
916B POP HL Drop the return address and clear the message-suppressed flag.
916C XOR A
916D LD ($B6FB),A
9170 RET Return.
Prev: 9138 Up: Map Next: 9171