enum exampleEnum { //it's just easier to use bitshifting to do this, then you don't need to use our brains because we're lazy fuckers
flag_0 = (1 << 0),
flag_1 = (1 << 1),
flag_2 = (1 << 2)
}
void exampleFunction(exampleEnum ee) {
if ((ee & exampleEnum.flag_0) != 0)
Console.WriteLine("ee contains 'flag_0'");
if ((ee & exampleEnum.flag_1) != 0)
Console.WriteLine("ee contains 'flag_1'");
if ((ee & exampleEnum.flag_2) != 0)
Console.WriteLine("ee contains 'flag_2'");
}
yes I know you could a handler so you don't need to add a if for each new flag you add
ee contains 'flag_0'
ee contains 'flag_2'
int findFlagExp(int flag)
{
// note: after the flag value exceeds 4, you'll have to subtract each count e.g. 8 >> 1 == 4, 4-1 == 3
return flag >> 1;
}
char*enumNames[3] = { "active", "fire", "flood" };
typedef enum : int
{
E_ACTIVE,E_FIRE,E_FLOOD
}example_t;
bool flag_exist(int flag, int value)
{
return (flag & ~value) != flag;
}
inline void yek(example_t yee)
{
if(!flag_exist(yee, example_t::E_ACTIVE)) { printf("Error! flag must contain active!\n"); return;}
printf("flag: %s\n", enumNames[findFlagExp(yee & ~example_t::E_ACTIVE)]);
// check for flag container and do your magic
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.