From 49f55ff0052340d29cffe2767fdc7d2ee5adb9f4 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Fri, 5 Nov 2021 19:15:47 -0700 Subject: EnvFlags OK (#404) * Matched * Remove magic number * Rename system to EnvFlags --- src/code/code_800F12D0.c | 9 --------- src/code/z_env_flags.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 9 deletions(-) delete mode 100644 src/code/code_800F12D0.c create mode 100644 src/code/z_env_flags.c (limited to 'src/code') diff --git a/src/code/code_800F12D0.c b/src/code/code_800F12D0.c deleted file mode 100644 index d34f11e81..000000000 --- a/src/code/code_800F12D0.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F12D0/func_800F12D0.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F12D0/func_800F1304.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F12D0/func_800F1374.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F12D0/func_800F13E8.s") diff --git a/src/code/z_env_flags.c b/src/code/z_env_flags.c new file mode 100644 index 000000000..d76681512 --- /dev/null +++ b/src/code/z_env_flags.c @@ -0,0 +1,33 @@ +#include "global.h" + +void EnvFlags_UnsetAll(GlobalContext* globalCtx) { + u8 i; + + for (i = 0; i < ARRAY_COUNT(globalCtx->envFlags); i++) { + globalCtx->envFlags[i] = 0; + } +} + +void EnvFlags_Set(GlobalContext* globalCtx, s16 flag) { + s16 index = flag / 16; + s16 bit = flag % 16; + s16 mask = 1 << bit; + + globalCtx->envFlags[index] |= mask; +} + +void EnvFlags_Unset(GlobalContext* globalCtx, s16 flag) { + s16 index = flag / 16; + s16 bit = flag % 16; + s16 mask = (1 << bit) ^ 0xFFFF; + + globalCtx->envFlags[index] &= mask; +} + +s32 EnvFlags_Get(GlobalContext* globalCtx, s16 flag) { + s16 index = flag / 16; + s16 bit = flag % 16; + s16 mask = 1 << bit; + + return globalCtx->envFlags[index] & mask; +} -- cgit v1.2.3