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
6/**
7 * @details Combination of NSMBW's @c dSwitchFlagMng_c & @c dPSwManager_c
8 */
10{
11 // sInstance Address: 0x101DB06C
13
14public:
15 static const s32 cFlag_Num = 64;
16
18 {
20 };
21
29
30private:
32 {
33 u32 duration; // In seconds
36 };
37 static_assert(sizeof(FlagStruct1) == 0xC);
38
47 static_assert(sizeof(FlagStruct2) == 0x18);
48
49public:
50 // duration: 0 = permanent, N = 10 * N sec
51 /**
52 * @param duration 0 = permanent, N = 10*N seconds.
53 * @par Address: 0x0269CD68
54 */
55 void set(u8 flag_bit, u8 duration, bool activate, bool timed_reverse = false, bool = false, u32 = 0, FlagType type = cFlagType_Normal);
56
57 // Address: 0x0269D654
58 u64 condenseEventIds(u32 event_id_1, u32 event_id_2);
59
61 {
62 return mSwitchFlag;
63 }
64
65 bool isActivated(u8 flag_bit) const
66 {
67 return mSwitchFlag & (1ULL << flag_bit);
68 }
69
71
72 bool isPSwitch()
73 {
74 return checkPSwitch(PSwitchType(0)) != 0;
75 }
76
77private:
81 u32 _918[(0x91C - 0x918) / sizeof(u32)];
85 u32 _938[(0x940 - 0x938) / sizeof(u32)];
86};
87static_assert(sizeof(SwitchFlagMgr) == 0x940);
Definition SwitchFlagMgr.h:10
bool isActivated(u8 flag_bit) const
Definition SwitchFlagMgr.h:65
sead::SafeArray< u32, cPSwitchType_Num > _920
Definition SwitchFlagMgr.h:83
sead::SafeArray< FlagStruct2, cFlag_Num > _318
Definition SwitchFlagMgr.h:80
sead::SafeArray< s32, cPSwitchType_Num > mPSwitchTimer
Definition SwitchFlagMgr.h:84
u32 _938[(0x940 - 0x938)/sizeof(u32)]
Definition SwitchFlagMgr.h:85
u64 condenseEventIds(u32 event_id_1, u32 event_id_2)
u32 mPSwitchFlag
Definition SwitchFlagMgr.h:82
u64 getSwitchFlag() const
Definition SwitchFlagMgr.h:60
bool isPSwitch()
Definition SwitchFlagMgr.h:72
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:78
u32 _918[(0x91C - 0x918)/sizeof(u32)]
Definition SwitchFlagMgr.h:81
sead::SafeArray< FlagStruct1, cFlag_Num > _18
Definition SwitchFlagMgr.h:79
FlagType
Definition SwitchFlagMgr.h:23
@ cFlagType_Switch
Definition SwitchFlagMgr.h:26
@ cFlagType_SwitchMultiUse
Definition SwitchFlagMgr.h:27
@ cFlagType_Normal
Definition SwitchFlagMgr.h:24
@ cFlagType_GreenCoin
Definition SwitchFlagMgr.h:25
u32 checkPSwitch(PSwitchType type)
PSwitchType
Definition SwitchFlagMgr.h:18
@ cPSwitchType_Num
Definition SwitchFlagMgr.h:19
Definition SwitchFlagMgr.h:32
u8 flag
Definition SwitchFlagMgr.h:35
u32 _4
Definition SwitchFlagMgr.h:34
u32 duration
Definition SwitchFlagMgr.h:33
Definition SwitchFlagMgr.h:40
f32 _c
Definition SwitchFlagMgr.h:43
f32 _8
Definition SwitchFlagMgr.h:42
u8 _10
Definition SwitchFlagMgr.h:44
u64 _0
Definition SwitchFlagMgr.h:41
u8 _11
Definition SwitchFlagMgr.h:45