18 flagMask = 1 << (7 & flag);
21 flagValue = flagBytes[flag] & flagMask;
22 return (
u32)((0 - flagValue) | flagValue) >> 0x1F;
31 flagMask = 1 << (7 & flag);
34 flagBytes[flag] |= flagMask;
44 flagMask = ~(1 << (7 & flag));
47 flagBytes[flag] &= flagMask;
57 flagMask = 1 << (7 & flag);
60 flagBytes[flag] ^= flagMask;
61 flagValue = flagBytes[flag] & flagMask;
62 return (
u32)((0 - flagValue) | flagValue) >> 31;
71 byteIndex = (
u32)flag << 20;
72 flag = byteIndex >> 23;
79 u32 shifted = (
u32)flag << 20;
91 if (flagBytes[flag] <= 0xFE) {
94 return flagBytes[flag];
104 if (flagBytes[flag] != 0) {
105 flagBytes[flag] += 0xFF;
107 return flagBytes[flag];
113 u32 shifted = (
u32)flag << 20;
120 flag = shifted >> 23;
122 result &= mask << shift;
123 return result >> shift;
130 s32 shift = 4 & flag;
131 s32 mask = fieldMask << shift;
135 bytes[flag] = (bytes[flag] & ~mask) | ((value & fieldMask) << shift);
s32 GameFlag_Test(s32 flag)
Returns 1 when flag is set.
u8 GameFlag_DecrementByte(s32 flag)
Takes 1 from the byte flag is in, stopping at 0, and returns it.
u32 GameFlag_Toggle(s32 flag)
Flips flag and returns its new value.
s32 GameFlag_SetBit(s32 flag)
Sets flag and returns its byte number.
void GameFlag_SetNibble(s32 flag, s32 value)
Sets the four bits flag is in.
void GameFlag_SetByte(s32 flag, s32 value)
Sets the whole byte flag is in.
void GameFlag_ClearBit(s32 flag)
Clears flag.
s32 GameFlag_GetByte(s32 flag)
Returns the whole byte flag is in, a counter kept among the flags.
s32 GameFlag_GetNibble(u32 flag)
Returns the four bits flag is in (bit 2 of the number picks the half).
u8 GameFlag_IncrementByte(s32 flag)
Adds 1 to the byte flag is in, stopping at 255, and returns it.
#define GAME_FLAG_BYTE(flag)
The byte of gGameFlagBytes that holds flag: bits 3 to 11 of its number, isolated by shifting up and b...
What every part of the game object shares: its includes and the inventory helper two parts use.