Decompile flag code
This commit is contained in:
parent
bf300c37d1
commit
f96afa27da
9 changed files with 77 additions and 23 deletions
41
src/game/flag.c
Normal file
41
src/game/flag.c
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#include "common.h"
|
||||
|
||||
static u8 _Sys_Flag[16];
|
||||
|
||||
static u8 *GetFlagPtr(u32 flag)
|
||||
{
|
||||
u8 *ret;
|
||||
u32 group = flag >> 16;
|
||||
if((flag & 0xFFFF0000) == 0x30000) {
|
||||
ret = _Sys_Flag;
|
||||
} else {
|
||||
ret = &GWSystem.flag[group][0];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
u32 _CheckFlag(u32 flag)
|
||||
{
|
||||
u8 *flag_ptr = GetFlagPtr(flag);
|
||||
u16 index = flag;
|
||||
return flag_ptr[index/8] & (1 << (index % 8));
|
||||
}
|
||||
|
||||
void _SetFlag(u32 flag)
|
||||
{
|
||||
u8 *flag_ptr = GetFlagPtr(flag);
|
||||
u16 index = flag;
|
||||
flag_ptr[index/8] |= (1 << (index % 8));
|
||||
}
|
||||
|
||||
void _ClearFlag(u32 flag)
|
||||
{
|
||||
u8 *flag_ptr = GetFlagPtr(flag);
|
||||
u16 index = flag;
|
||||
flag_ptr[index/8] &= ~(1 << (index % 8));
|
||||
}
|
||||
|
||||
void _InitFlag(void)
|
||||
{
|
||||
memset(_Sys_Flag, 0, sizeof(_Sys_Flag));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue