SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
BitArray.cpp
1#include "Game/Util/BitArray.hpp"
2#include "Game/Util.hpp"
3
4namespace MR {
5 BitArray::BitArray(int num) :
6 mArray(0)
7 {
8 int arr_size = (num + 7 & (~7)) / 8;
9 mArraySize = num;
10 mArray = new u8[arr_size];
11 MR::zeroMemory(mArray, arr_size);
12 }
13
14 bool BitArray::isOn(int bitIdx) const {
15 s32 bit = mArray[bitIdx / 8];
16 return (bit & (1 << (bitIdx & 0x7))) != 0;
17 }
18
19 void BitArray::set(int bitIdx, bool flag) {
20 int byteIdx = bitIdx / 8;
21 u8* arr = mArray;
22
23 if (flag) {
24 arr[byteIdx] |= (1 << (bitIdx & 0x7));
25 }
26 else {
27 arr[byteIdx] &= ~(1 << (bitIdx & 0x7));
28 }
29 }
30};