3#include <heap/seadDisposer.h>
4#include <thread/seadDelegateThread.h>
21 static_assert(
sizeof(
Header) == 0x10,
"SaveData::Header size mismatch");
29 static_assert(
sizeof(
CSLocation) == 0x3,
"SaveData::CSLocation size mismatch");
45 static_assert(
sizeof(
WorldCompletionFlag) == 0x2,
"SaveData::WorldCompletionFlag size mismatch");
55 static_assert(
sizeof(
GameCompletionFlag) == 0x1,
"SaveData::GameCompletionFlag size mismatch");
75 static_assert(
sizeof(
ActiveChibiYoshi) == 0x1,
"SaveData::ActiveChibiYoshi size mismatch");
87 static_assert(
sizeof(
LevelCompletionFlag) == 0x1,
"SaveData::LevelCompletionFlag size mismatch");
94 static_assert(
sizeof(
LevelStatData) == 0xB9,
"SaveData::LevelStatData size mismatch");
101 static_assert(
sizeof(
LevelStarCoinFlag) == 0x1,
"SaveData::LevelStarCoinFlag size mismatch");
116 static_assert(
sizeof(
InventoryItem) == 0x1,
"SaveData::InventoryItem size mismatch");
124 static_assert(
sizeof(
AmbushEnemy) == 0x5,
"SaveData::AmbushEnemy size mismatch");
137 static_assert(
sizeof(
AmbushData) == 0x6D,
"SaveData::AmbushData size mismatch");
156 static_assert(
sizeof(
Records) == 0x38,
"SaveData::Statistics size mismatch");
214 static_assert(
sizeof(
SaveSlot) == 0x204,
"SaveData::SaveSlot size mismatch");
221 static_assert(
sizeof(
SaveSlots) == 0xC18,
"SaveData::SaveSlots size mismatch");
232 static_assert(
sizeof(
ChallengeReplay) == 0x6C,
"SaveData::ChallengeReplay size mismatch");
244 static_assert(
sizeof(
ChallengeData) == 0x360C,
"SaveData::ChallengeData size mismatch");
256 static_assert(
sizeof(
BoostRushData) == 0xA8,
"SaveData::BoostRushData size mismatch");
270 static_assert(
sizeof(
CoinEditCoin) == 0x8,
"SaveData::CoinEditCoin size mismatch");
280 static_assert(
sizeof(
CoinEditStarCoin) == 0xC,
"SaveData::CoinEditStarCoin size mismatch");
287 static_assert(
sizeof(
CoinEditLevel) == 0x984,
"SaveData::CoinEditLevel size mismatch");
295 static_assert(
sizeof(
CoinEditData) == 0x5F38,
"SaveData::CoinEditData size mismatch");
345 static_assert(
sizeof(
Statistics) == 0x94,
"SaveData::Statistics size mismatch");
347 struct [[gnu::packed, gnu::aligned(1)]]
MiiData
354 static_assert(
sizeof(
MiiData) == 0x274,
"SaveData::MiiData size mismatch");
365static_assert(
sizeof(
SaveData) == 0xB134,
"SaveData size mismatch");
380 static_assert(
sizeof(
Status) == 4);
405 return mStatus == cStatus_Writing || _30 != -1;
410 return mStatus != cStatus_Writing;
445static_assert(
sizeof(
SaveMgr) == 0x50);
struct FFLStoreData FFLStoreData
u8 _2e
Definition SaveMgr.h:438
s64 mStoryPlayInitTime
Definition SaveMgr.h:442
bool mButtonLayoutChanged
Definition SaveMgr.h:436
const FFLStoreData & getStoreData(s32 index) const
WriteError mWriteError
Definition SaveMgr.h:432
u8 _2d
Definition SaveMgr.h:437
sead::DelegateThread * mDelegateThread
Definition SaveMgr.h:429
void startQuickSaveGame(u8 file)
s32 _30
Definition SaveMgr.h:440
bool isSaving() const
Definition SaveMgr.h:403
void * mPersonalSavedata
Definition SaveMgr.h:435
WriteError
Definition SaveMgr.h:392
@ cWriteError_OK
Definition SaveMgr.h:393
@ cWriteError_FileDeviceUnavailable
Definition SaveMgr.h:394
@ cWriteError_FileWriteFailed
Definition SaveMgr.h:395
void startSaveGame(u8 file)
const SaveData * mSavedata
Definition SaveMgr.h:434
s64 mInitTime
Definition SaveMgr.h:441
Status mStatus
Definition SaveMgr.h:430
bool isSavingDone() const
Definition SaveMgr.h:408
ReadError
Definition SaveMgr.h:383
@ cReadError_FileInvalid
Definition SaveMgr.h:387
@ cReadError_FileDeviceUnavailable
Definition SaveMgr.h:385
@ cReadError_OK
Definition SaveMgr.h:384
@ cReadError_FileUnavailable
Definition SaveMgr.h:386
void startQuickSaveGame()
Definition SaveMgr.h:423
void startSaveGame()
Definition SaveMgr.h:418
u8 _2f
Definition SaveMgr.h:439
s32 _20
Definition SaveMgr.h:433
ReadError mReadError
Definition SaveMgr.h:431
AmbushEnemy world_5[3]
Definition SaveMgr.h:132
u8 _6c
Definition SaveMgr.h:135
AmbushEnemy world_1[2]
Definition SaveMgr.h:128
AmbushEnemy world_3[2]
Definition SaveMgr.h:130
AmbushEnemy world_2[3]
Definition SaveMgr.h:129
AmbushEnemy world_4[5]
Definition SaveMgr.h:131
u8 _5a[18]
Definition SaveMgr.h:134
AmbushEnemy world_7[3]
Definition SaveMgr.h:133
u8 _3
Definition SaveMgr.h:121
u8 _4
Definition SaveMgr.h:122
CSLocation location
Definition SaveMgr.h:120
u32 high_scores[32]
Definition SaveMgr.h:252
u8 _2
Definition SaveMgr.h:250
u8 _84[0xA4 - 0x84]
Definition SaveMgr.h:253
u32 crc32
Definition SaveMgr.h:254
u8 _3
Definition SaveMgr.h:251
u8 _1
Definition SaveMgr.h:249
u8 _0
Definition SaveMgr.h:248
u8 node
Definition SaveMgr.h:27
u8 subworld
Definition SaveMgr.h:26
u8 world
Definition SaveMgr.h:25
bool is_valid
Definition SaveMgr.h:236
u32 crc32
Definition SaveMgr.h:242
u8 _7
Definition SaveMgr.h:239
u8 num_category_medals[5]
Definition SaveMgr.h:237
ChallengeReplay replays[80]
Definition SaveMgr.h:240
u8 _6
Definition SaveMgr.h:238
u8 _21c8[0x3608 - 0x21c8]
Definition SaveMgr.h:241
u8 completion_player
Definition SaveMgr.h:226
FFLStoreData completion_mii
Definition SaveMgr.h:228
u32 high_score
Definition SaveMgr.h:229
bool is_valid
Definition SaveMgr.h:225
u32 crc32
Definition SaveMgr.h:230
u16 _2
Definition SaveMgr.h:227
u8 area
Definition SaveMgr.h:261
bool exists
Definition SaveMgr.h:262
u8 file
Definition SaveMgr.h:260
u16 x
Definition SaveMgr.h:266
u16 y
Definition SaveMgr.h:267
u8 _3
Definition SaveMgr.h:263
u8 unlocked_levels[12]
Definition SaveMgr.h:292
CoinEditLevel levels[10]
Definition SaveMgr.h:291
u32 crc32
Definition SaveMgr.h:293
CoinEditStarCoin star_coins[3]
Definition SaveMgr.h:285
CoinEditCoin coins[300]
Definition SaveMgr.h:284
sead::Vector2f pos
Definition SaveMgr.h:278
u8 _3
Definition SaveMgr.h:277
u8 _2
Definition SaveMgr.h:276
u8 file
Definition SaveMgr.h:274
u8 area
Definition SaveMgr.h:275
u8 death_counter[62]
Definition SaveMgr.h:92
LevelCompletionFlag completion_flag[123]
Definition SaveMgr.h:91
u32 crc32
Definition SaveMgr.h:352
u8 padding[3]
Definition SaveMgr.h:351
u8 entry_num
Definition SaveMgr.h:349
FFLCreateID mii_ids[62]
Definition SaveMgr.h:350
u32 goals_reached_with_chibi_yoshi
Definition SaveMgr.h:151
u32 boost_block_distance
Definition SaveMgr.h:145
u32 lives_earned_at_goal
Definition SaveMgr.h:152
u32 goals_reached_with_yoshi
Definition SaveMgr.h:150
u32 coins_collected
Definition SaveMgr.h:141
u32 times_applauded
Definition SaveMgr.h:144
u32 mini_boost_block_distance
Definition SaveMgr.h:146
u32 star_coins_collected
Definition SaveMgr.h:142
u32 goombas_stomped
Definition SaveMgr.h:148
u32 life_moons_collected
Definition SaveMgr.h:154
u32 items_collected
Definition SaveMgr.h:149
u32 goals_reached
Definition SaveMgr.h:143
u32 fireworks_at_goal
Definition SaveMgr.h:153
u32 nabbits_caught
Definition SaveMgr.h:147
u8 ambush_items[4]
Definition SaveMgr.h:203
u8 _51
Definition SaveMgr.h:191
u8 caught_nabbit_flags
Definition SaveMgr.h:210
u8 padding[3]
Definition SaveMgr.h:211
u8 balloon_chibi_yoshi_reappear_counter
Definition SaveMgr.h:200
bool is_nabbit_in_world[7]
Definition SaveMgr.h:204
u8 _58
Definition SaveMgr.h:198
CSLocation cs_airship_location
Definition SaveMgr.h:183
u8 _2f
Definition SaveMgr.h:179
u32 score
Definition SaveMgr.h:180
u16 credits_highscore
Definition SaveMgr.h:182
u8 _54
Definition SaveMgr.h:194
AmbushData ambush
Definition SaveMgr.h:208
u8 _57
Definition SaveMgr.h:197
Records records
Definition SaveMgr.h:209
u8 _a
Definition SaveMgr.h:166
u8 _4b
Definition SaveMgr.h:185
CSLocation cs_player_location
Definition SaveMgr.h:164
sead::Vector3f _20
Definition SaveMgr.h:175
u8 _4c
Definition SaveMgr.h:186
u8 ambush_item_reappear_counter[4]
Definition SaveMgr.h:202
u8 _4e
Definition SaveMgr.h:188
u8 _4f
Definition SaveMgr.h:189
u8 _1f
Definition SaveMgr.h:174
GameCompletionFlag game_completion_flag
Definition SaveMgr.h:173
bool is_valid
Definition SaveMgr.h:160
u8 player_lives[4]
Definition SaveMgr.h:168
u8 _4d
Definition SaveMgr.h:187
u8 nabbit_world_id[2]
Definition SaveMgr.h:184
ActiveChibiYoshi active_chibi_yoshi
Definition SaveMgr.h:196
ChibiYoshiAvailableFlag cs_chibi_yoshi_flag
Definition SaveMgr.h:195
WorldCompletionFlag world_completion_flag
Definition SaveMgr.h:172
CSLocation cs_unknown_location
Definition SaveMgr.h:165
u8 _59
Definition SaveMgr.h:199
u8 _2c
Definition SaveMgr.h:176
LevelStatData level_stat
Definition SaveMgr.h:205
u8 last_session_player_count
Definition SaveMgr.h:161
LevelStarCoinFlag level_star_coins[41]
Definition SaveMgr.h:206
u8 bubble_chibi_yoshi_reappear_counter
Definition SaveMgr.h:201
u8 _53
Definition SaveMgr.h:193
u8 _2e
Definition SaveMgr.h:178
u8 player_character[4]
Definition SaveMgr.h:169
u8 player_game_over[4]
Definition SaveMgr.h:171
u8 player_powerup[4]
Definition SaveMgr.h:170
u8 num_coins
Definition SaveMgr.h:162
InventoryItem inventory[10]
Definition SaveMgr.h:207
u8 _50
Definition SaveMgr.h:190
u8 _34[0x44 - 0x34]
Definition SaveMgr.h:181
u8 _b
Definition SaveMgr.h:167
u8 cs_active_w6_switch
Definition SaveMgr.h:163
u32 crc32
Definition SaveMgr.h:212
u8 _52
Definition SaveMgr.h:192
u8 _2d
Definition SaveMgr.h:177
SaveSlot nsmbu[3]
Definition SaveMgr.h:218
SaveSlot nslu[3]
Definition SaveMgr.h:219
u32 boost_rush_played_2p
Definition SaveMgr.h:311
u32 challenge_replays_watched
Definition SaveMgr.h:326
u32 levels_played_special
Definition SaveMgr.h:306
u32 coin_battles_played_mii
Definition SaveMgr.h:322
u32 boost_rush_played_special
Definition SaveMgr.h:314
u8 story_star_coins_collected
Definition SaveMgr.h:333
u8 nslu_star_coins_collected
Definition SaveMgr.h:336
u32 levels_played
Definition SaveMgr.h:301
u8 boost_mode_challenges_completed
Definition SaveMgr.h:341
u32 total_play_time
Definition SaveMgr.h:299
u32 coin_battles_played_1p
Definition SaveMgr.h:317
u32 coin_battles_played
Definition SaveMgr.h:316
bool _86
Definition SaveMgr.h:334
u8 nslu_reached_world
Definition SaveMgr.h:337
u32 coin_edit_battles_played
Definition SaveMgr.h:323
u8 challenge_silver_medals
Definition SaveMgr.h:339
bool _87
Definition SaveMgr.h:335
u32 _78
Definition SaveMgr.h:329
u32 coin_battles_played_2p
Definition SaveMgr.h:318
u32 boost_rush_played_3p
Definition SaveMgr.h:312
u32 story_play_time
Definition SaveMgr.h:300
u32 crc32
Definition SaveMgr.h:343
u32 challenges_retried
Definition SaveMgr.h:325
u32 coin_battles_played_3p
Definition SaveMgr.h:319
u32 boost_mode_challenges_played
Definition SaveMgr.h:327
u32 super_guides
Definition SaveMgr.h:308
u32 levels_played_2p
Definition SaveMgr.h:303
u32 levels_played_4p
Definition SaveMgr.h:305
u32 coin_battles_played_special
Definition SaveMgr.h:321
u32 boost_rush_played_4p
Definition SaveMgr.h:313
u32 levels_played_1p
Definition SaveMgr.h:302
u8 challenge_gold_medals
Definition SaveMgr.h:338
u8 padding[2]
Definition SaveMgr.h:342
u8 challenge_bronze_medals
Definition SaveMgr.h:340
u32 boost_rush_played
Definition SaveMgr.h:309
u32 _7c
Definition SaveMgr.h:330
u32 coin_battles_played_4p
Definition SaveMgr.h:320
u32 nabbits_chased
Definition SaveMgr.h:307
u32 nslu_levels_played
Definition SaveMgr.h:328
u32 boost_rush_played_1p
Definition SaveMgr.h:310
u32 levels_played_3p
Definition SaveMgr.h:304
u32 challenges_played
Definition SaveMgr.h:324
u8 story_reached_world
Definition SaveMgr.h:332
u32 inventory_powerups_used
Definition SaveMgr.h:331
u32 boost_rush_played_mii
Definition SaveMgr.h:315
InventoryItem
Definition SaveMgr.h:104
@ cInventoryItem_Propeller
Definition SaveMgr.h:109
@ cInventoryItem_None
Definition SaveMgr.h:114
@ cInventoryItem_SuperStar
Definition SaveMgr.h:107
@ cInventoryItem_Mushroom
Definition SaveMgr.h:105
@ cInventoryItem_IceFlower
Definition SaveMgr.h:108
@ cInventoryItem_Penguin
Definition SaveMgr.h:111
@ cInventoryItem_Acorn
Definition SaveMgr.h:112
@ cInventoryItem_FireFlower
Definition SaveMgr.h:106
@ cInventoryItem_PAcorn
Definition SaveMgr.h:113
@ cInventoryItem_Mini
Definition SaveMgr.h:110
SaveSlots quick_save_slots
Definition SaveMgr.h:358
ActiveChibiYoshi
Definition SaveMgr.h:68
@ cActiveChibiYoshi_World6
Definition SaveMgr.h:72
@ cActiveChibiYoshi_World3
Definition SaveMgr.h:70
@ cActiveChibiYoshi_World4
Definition SaveMgr.h:71
@ cActiveChibiYoshi_World1
Definition SaveMgr.h:69
@ cActiveChibiYoshi_None
Definition SaveMgr.h:73
Statistics statistics
Definition SaveMgr.h:362
CoinEditData coin_edit
Definition SaveMgr.h:361
LevelStarCoinFlag
Definition SaveMgr.h:97
@ cLevelStarCoinFlag_All
Definition SaveMgr.h:99
@ cLevelStarCoinFlag_None
Definition SaveMgr.h:98
LevelCompletionFlag
Definition SaveMgr.h:78
@ cLevelCompletionFlag_ClearedOrUsedToadHouse
Definition SaveMgr.h:84
@ cLevelCompletionFlag_ForeverUnlockedToadHouse
Definition SaveMgr.h:82
@ cLevelCompletionFlag_Locked
Definition SaveMgr.h:79
@ cLevelCompletionFlag_Unlocked
Definition SaveMgr.h:80
@ cLevelCompletionFlag_ClearedOrSecretExitCleared
Definition SaveMgr.h:85
@ cLevelCompletionFlag_PlayedOnce
Definition SaveMgr.h:81
@ cLevelCompletionFlag_AmbushCleared
Definition SaveMgr.h:83
ChallengeData challenge
Definition SaveMgr.h:359
BoostRushData boost_rush
Definition SaveMgr.h:360
ChibiYoshiAvailableFlag
Definition SaveMgr.h:58
@ cChibiYoshiAvailableFlag_All
Definition SaveMgr.h:63
@ cChibiYoshiAvailableFlag_World3
Definition SaveMgr.h:60
@ cChibiYoshiAvailableFlag_World6
Definition SaveMgr.h:62
@ cChibiYoshiAvailableFlag_World4
Definition SaveMgr.h:61
@ cChibiYoshiAvailableFlag_World1
Definition SaveMgr.h:59
Header header
Definition SaveMgr.h:356
SaveSlots main_slots
Definition SaveMgr.h:357
WorldCompletionFlag
Definition SaveMgr.h:32
@ cWorldCompletionFlag_1
Definition SaveMgr.h:34
@ cWorldCompletionFlag_Opening
Definition SaveMgr.h:33
@ cWorldCompletionFlag_4
Definition SaveMgr.h:37
@ cWorldCompletionFlag_6
Definition SaveMgr.h:39
@ cWorldCompletionFlag_7
Definition SaveMgr.h:40
@ cWorldCompletionFlag_8
Definition SaveMgr.h:41
@ cWorldCompletionFlag_All
Definition SaveMgr.h:43
@ cWorldCompletionFlag_5
Definition SaveMgr.h:38
@ cWorldCompletionFlag_3
Definition SaveMgr.h:36
@ cWorldCompletionFlag_2
Definition SaveMgr.h:35
MiiData mii
Definition SaveMgr.h:363
GameCompletionFlag
Definition SaveMgr.h:48
@ cGameCompletionFlag_AllStarCoins
Definition SaveMgr.h:52
@ cGameCompletionFlag_Unknown2
Definition SaveMgr.h:51
@ cGameCompletionFlag_AllLevels
Definition SaveMgr.h:50
@ cGameCompletionFlag_AllExits
Definition SaveMgr.h:53
@ cGameCompletionFlag_Unknown1
Definition SaveMgr.h:49