diff options
| author | robojumper <robojumper@gmail.com> | 2024-10-25 10:35:34 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2024-10-25 10:35:34 +0200 |
| commit | e689fbaa42fabb893df00b72d5e411d5fd953610 (patch) | |
| tree | 511217b5eb4699c23b2bee8988283ac0507f11b9 /src/toBeSorted/unk_flag_stuff.cpp | |
| parent | 5995604387f36b9860ce69491f81b00bd7952013 (diff) | |
Flag managers WIP, broken after rebase
Diffstat (limited to 'src/toBeSorted/unk_flag_stuff.cpp')
| -rw-r--r-- | src/toBeSorted/unk_flag_stuff.cpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/src/toBeSorted/unk_flag_stuff.cpp b/src/toBeSorted/unk_flag_stuff.cpp deleted file mode 100644 index 17cbaa87..00000000 --- a/src/toBeSorted/unk_flag_stuff.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "toBeSorted/unk_flag_stuff.h" - -u16 UnkFlagStuff::calculateMask(s32 shift) { - return (2 << (shift & 0xF)) - 1; -} - -void UnkFlagStuff::doNothing(u32 unused) {} - -UnkFlagStuff::UnkFlagStuff(u16 count, UnkFlagDefinition *definitions) { - this->mDefinitionsCount = count; - this->mpDefinitions = definitions; -} - -void UnkFlagStuff::prepareIndexShiftMask(u16 counterIdx, u32 unused, u16 *indexPtr, u8 *shiftPtr, u16 *maskPtr) { - doNothing(counterIdx); - *indexPtr = mpDefinitions[counterIdx].mIndex; - *shiftPtr = mpDefinitions[counterIdx].mShiftMask >> 4; - *maskPtr = calculateMask(mpDefinitions[counterIdx].mShiftMask); -} - -u16 UnkFlagStuff::maskForIdx(u16 index) { - doNothing(index); - - return calculateMask(mpDefinitions[index].mShiftMask); -} - -u32 UnkFlagStuff::getCounterOrFlag(u16 counterIdx, u16 *dataPtr, u32 param4) { - u16 index = 0; - u8 shift = 0; - u16 mask = 0; - prepareIndexShiftMask(counterIdx, param4, &index, &shift, &mask); - return mask & (dataPtr[index] >> shift); -} - -void UnkFlagStuff::setCounterOrFlag(u16 counterIdx, u16 *dataPtr, u32 flagCount, u32 value) { - u16 index = 0; - u8 shift = 0; - u16 mask = 0; - prepareIndexShiftMask(counterIdx, flagCount, &index, &shift, &mask); - dataPtr[index] &= ~(mask << shift); - dataPtr[index] = (u16)(value << shift) | dataPtr[index]; -} - -inline bool isLessThan(int a, int b) { - return a <= b; -} - -u32 UnkFlagStuff::checkFlagValid(u16 counterIdx, u32 flagCount) { - if (mpDefinitions == nullptr) { - return 0; - } - if (mDefinitionsCount <= counterIdx || mpDefinitions[counterIdx].mIndex == 0xFF) { - return 0; - } else { - if (isLessThan(flagCount, mpDefinitions[counterIdx].mIndex)) { - return 0; - } else { - return 1; - } - } -} |
