Prev: 37176 Up: Map Next: 37233
37194: 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 37194 LD IX,(46856) Read *46856.
Test whose turn it is.
37198 LD A,(46826) Jump to Action_TestTheSharedFlagBits_CompareTheFlags if *CurrentCharacter is not zero.
37201 AND A
37202 JR NZ,Action_TestTheSharedFlagBits_CompareTheFlags
37204 BIT 4,(IX+4) Jump to Action_TestTheSharedFlagBits_CompareTheFlags if bit 4 of the object's second flag is clear.
37208 JR Z,Action_TestTheSharedFlagBits_CompareTheFlags
37210 RES 4,(IX+4) Clear the object's second flag so bit 4 is off.
Action_TestTheSharedFlagBits_CompareTheFlags 37214 LD A,(IX+4) Read the object's flag byte.
37217 AND 112 Keep bits 4-6 of the object's flag byte and read the character at Pointer_CurrentCharacter.
37219 LD IX,(46860)
37223 AND (IX+4) Return when those bits do not overlap the character's flag byte.
37226 RET Z
37227 POP HL Drop the return address and clear the message-suppressed flag.
37228 XOR A
37229 LD (46843),A
37232 RET Return.
Prev: 37176 Up: Map Next: 37233