ref: 7f75ad6ef8ca9c1a2b87f860e4287b32c14845f3
dir: /src/Flags.cpp/
#include "Flags.h" #include <string.h> #include "WindowsWrapper.h" unsigned char gFlagNPC[1000]; unsigned char gSkipFlag[8]; // Macros for setting, un-setting and getting bits #define SET_BIT(x, i) ((x)[(i) / 8] |= 1 << (i) % 8) #define UNSET_BIT(x, i) ((x)[(i) / 8] &= ~(1 << (i) % 8)) #define GET_BIT(x, i) ((x)[(i) / 8] & (1 << (i) % 8)) //Flag inits void InitFlags() { memset(gFlagNPC, 0, sizeof(gFlagNPC)); } void InitSkipFlags() { memset(gSkipFlag, 0, sizeof(gSkipFlag)); } //NPC flags void SetNPCFlag(long a) { SET_BIT(gFlagNPC, a); } void CutNPCFlag(long a) { UNSET_BIT(gFlagNPC, a); } BOOL GetNPCFlag(long a) { if (GET_BIT(gFlagNPC, a)) return TRUE; else return FALSE; } //Skip flags void SetSkipFlag(long a) { SET_BIT(gSkipFlag, a); } void CutSkipFlag(long a) { UNSET_BIT(gSkipFlag, a); } BOOL GetSkipFlag(long a) { if (GET_BIT(gSkipFlag, a)) return TRUE; else return FALSE; }