tww/include/d/d_bg_s_grp_pass_chk.h
2023-10-02 22:26:24 -07:00

42 lines
1.3 KiB
C++

#ifndef D_BG_D_BG_S_GRP_PASS_CHK_H
#define D_BG_D_BG_S_GRP_PASS_CHK_H
#include "SSystem/SComponent/c_bg_s_chk.h"
class dBgS_GrpPassChk : public cBgS_GrpPassChk {
public:
enum {
NORMAL_GRP = 0x01,
WATER_GRP = 0x02,
YOGAN_GRP = 0x04, // Lava
DOKU_GRP = 0x08, // Unused, for poison?
SPL_GRP = WATER_GRP | YOGAN_GRP | DOKU_GRP,
FULL_GRP = NORMAL_GRP | SPL_GRP,
LIGHT_GRP = 0x10,
};
dBgS_GrpPassChk() { mGrp = NORMAL_GRP; }
virtual ~dBgS_GrpPassChk() {}
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
void OnWaterGrp() { mGrp |= WATER_GRP; }
void OnYoganGrp() { mGrp |= YOGAN_GRP; }
void OnSpl() { mGrp |= SPL_GRP; }
void OnAll() { mGrp |= FULL_GRP; }
void OnLightGrp() { mGrp |= LIGHT_GRP; }
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
void OffWaterGrp() { mGrp &= ~WATER_GRP; }
void OffFullGrp() { mGrp &= ~FULL_GRP; }
u32 MaskNormalGrp() const { return mGrp & NORMAL_GRP; }
u32 MaskWaterGrp() const { return mGrp & WATER_GRP; }
u32 MaskYoganGrp() const { return mGrp & YOGAN_GRP; }
u32 MaskDokuGrp() const { return mGrp & DOKU_GRP; }
u32 MaskLightGrp() const { return mGrp & LIGHT_GRP; }
private:
/* 0x4 */ u32 mGrp;
};
STATIC_ASSERT(sizeof(dBgS_GrpPassChk) == 0x8);
#endif /* D_BG_D_BG_S_GRP_PASS_CHK_H */