New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
SwitchFlagMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadSafeArray.h>
4#include <heap/seadDisposer.h>
5
7{
8 // Combination of NSMBW's dSwitchFlagMng_c & dPSwManager_c
9
11
12public:
13 static const s32 cFlag_Num = 64;
14
16 {
18 };
19
27
28private:
30 {
31 u32 duration; // In seconds
34 };
35 static_assert(sizeof(FlagStruct1) == 0xC);
36
45 static_assert(sizeof(FlagStruct2) == 0x18);
46
47public:
48 // duration: 0 = permanent, N = 10 * N sec
49 void set(u8 flag_bit, u8 duration, bool activate, bool timed_reverse = false, bool = false, u32 = 0, FlagType type = cFlagType_Normal);
50
51 bool isActivated(u8 flag_bit) const
52 {
53 return mSwitchFlag & (1ULL << flag_bit);
54 }
55
57
58 bool isPSwitch()
59 {
60 return checkPSwitch(PSwitchType(0)) != 0;
61 }
62
63private:
67 u32 _918[(0x91C - 0x918) / sizeof(u32)];
71 u32 _938[(0x940 - 0x938) / sizeof(u32)];
72};
73static_assert(sizeof(SwitchFlagMgr) == 0x940);
Definition SwitchFlagMgr.h:7
bool isActivated(u8 flag_bit) const
Definition SwitchFlagMgr.h:51
sead::SafeArray< u32, cPSwitchType_Num > _920
Definition SwitchFlagMgr.h:69
sead::SafeArray< FlagStruct2, cFlag_Num > _318
Definition SwitchFlagMgr.h:66
sead::SafeArray< s32, cPSwitchType_Num > mPSwitchTimer
Definition SwitchFlagMgr.h:70
u32 _938[(0x940 - 0x938)/sizeof(u32)]
Definition SwitchFlagMgr.h:71
u32 mPSwitchFlag
Definition SwitchFlagMgr.h:68
bool isPSwitch()
Definition SwitchFlagMgr.h:58
void set(u8 flag_bit, u8 duration, bool activate, bool timed_reverse=false, bool=false, u32=0, FlagType type=cFlagType_Normal)
u64 mSwitchFlag
Definition SwitchFlagMgr.h:64
u32 _918[(0x91C - 0x918)/sizeof(u32)]
Definition SwitchFlagMgr.h:67
sead::SafeArray< FlagStruct1, cFlag_Num > _18
Definition SwitchFlagMgr.h:65
FlagType
Definition SwitchFlagMgr.h:21
@ cFlagType_Switch
Definition SwitchFlagMgr.h:24
@ cFlagType_SwitchMultiUse
Definition SwitchFlagMgr.h:25
@ cFlagType_Normal
Definition SwitchFlagMgr.h:22
@ cFlagType_GreenCoin
Definition SwitchFlagMgr.h:23
u32 checkPSwitch(PSwitchType type)
PSwitchType
Definition SwitchFlagMgr.h:16
@ cPSwitchType_Num
Definition SwitchFlagMgr.h:17
Definition SwitchFlagMgr.h:30
u8 flag
Definition SwitchFlagMgr.h:33
u32 _4
Definition SwitchFlagMgr.h:32
u32 duration
Definition SwitchFlagMgr.h:31
Definition SwitchFlagMgr.h:38
f32 _c
Definition SwitchFlagMgr.h:41
f32 _8
Definition SwitchFlagMgr.h:40
u8 _10
Definition SwitchFlagMgr.h:42
u64 _0
Definition SwitchFlagMgr.h:39
u8 _11
Definition SwitchFlagMgr.h:43