3#include <heap/seadDisposer.h>
4#include <thread/seadDelegateThread.h>
6#include <math/seadVector.h>
22 static_assert(
sizeof(
Header) == 0x10,
"SaveData::Header size mismatch");
30 static_assert(
sizeof(
CSLocation) == 0x3,
"SaveData::CSLocation size mismatch");
46 static_assert(
sizeof(
WorldCompletionFlag) == 0x2,
"SaveData::WorldCompletionFlag size mismatch");
56 static_assert(
sizeof(
GameCompletionFlag) == 0x1,
"SaveData::GameCompletionFlag size mismatch");
76 static_assert(
sizeof(
ActiveChibiYoshi) == 0x1,
"SaveData::ActiveChibiYoshi size mismatch");
89 static_assert(
sizeof(
LevelCompletionFlag) == 0x1,
"SaveData::LevelCompletionFlag size mismatch");
99 static_assert(
sizeof(
LevelStat) == 0xB9,
"SaveData::LevelStat size mismatch");
106 static_assert(
sizeof(
LevelStarCoinFlag) == 0x1,
"SaveData::LevelStarCoinFlag size mismatch");
121 static_assert(
sizeof(
InventoryItem) == 0x1,
"SaveData::InventoryItem size mismatch");
129 static_assert(
sizeof(
AmbushEnemy) == 0x5,
"SaveData::AmbushEnemy size mismatch");
142 static_assert(
sizeof(
AmbushData) == 0x6D,
"SaveData::AmbushData size mismatch");
161 static_assert(
sizeof(
Records) == 0x38,
"SaveData::Statistics size mismatch");
219 static_assert(
sizeof(
SaveSlot) == 0x204,
"SaveData::SaveSlot size mismatch");
226 static_assert(
sizeof(
SaveSlots) == 0xC18,
"SaveData::SaveSlots size mismatch");
237 static_assert(
sizeof(
ChallengeReplay) == 0x6C,
"SaveData::ChallengeReplay size mismatch");
249 static_assert(
sizeof(
ChallengeData) == 0x360C,
"SaveData::ChallengeData size mismatch");
261 static_assert(
sizeof(
BoostRushData) == 0xA8,
"SaveData::BoostRushData size mismatch");
275 static_assert(
sizeof(
CoinEditCoin) == 0x8,
"SaveData::CoinEditCoin size mismatch");
285 static_assert(
sizeof(
CoinEditStarCoin) == 0xC,
"SaveData::CoinEditStarCoin size mismatch");
292 static_assert(
sizeof(
CoinEditLevel) == 0x984,
"SaveData::CoinEditLevel size mismatch");
300 static_assert(
sizeof(
CoinEditData) == 0x5F38,
"SaveData::CoinEditData size mismatch");
350 static_assert(
sizeof(
Statistics) == 0x94,
"SaveData::Statistics size mismatch");
352 struct [[gnu::packed, gnu::aligned(1)]]
MiiData
359 static_assert(
sizeof(
MiiData) == 0x274,
"SaveData::MiiData size mismatch");
363 return header.last_file;
375static_assert(
sizeof(
SaveData) == 0xB134,
"SaveData size mismatch");
390 static_assert(
sizeof(
Status) == 4);
415 return mStatus == cStatus_Writing || _30 != -1;
420 return mStatus != cStatus_Writing;
460static_assert(
sizeof(
SaveMgr) == 0x50);
struct FFLStoreData FFLStoreData
u8 _2e
Definition SaveMgr.h:453
s64 mStoryPlayInitTime
Definition SaveMgr.h:457
bool mButtonLayoutChanged
Definition SaveMgr.h:451
const FFLStoreData & getStoreData(s32 index) const
WriteError mWriteError
Definition SaveMgr.h:447
u8 _2d
Definition SaveMgr.h:452
sead::DelegateThread * mDelegateThread
Definition SaveMgr.h:444
void startQuickSaveGame(u8 file)
s32 _30
Definition SaveMgr.h:455
bool isSaving() const
Definition SaveMgr.h:413
void * mPersonalSavedata
Definition SaveMgr.h:450
const SaveData * getSaveData() const
Definition SaveMgr.h:438
WriteError
Definition SaveMgr.h:402
@ cWriteError_OK
Definition SaveMgr.h:403
@ cWriteError_FileDeviceUnavailable
Definition SaveMgr.h:404
@ cWriteError_FileWriteFailed
Definition SaveMgr.h:405
void startSaveGame(u8 file)
const SaveData * mSavedata
Definition SaveMgr.h:449
s64 mInitTime
Definition SaveMgr.h:456
Status mStatus
Definition SaveMgr.h:445
bool isSavingDone() const
Definition SaveMgr.h:418
ReadError
Definition SaveMgr.h:393
@ cReadError_FileInvalid
Definition SaveMgr.h:397
@ cReadError_FileDeviceUnavailable
Definition SaveMgr.h:395
@ cReadError_OK
Definition SaveMgr.h:394
@ cReadError_FileUnavailable
Definition SaveMgr.h:396
void startQuickSaveGame()
Definition SaveMgr.h:433
void startSaveGame()
Definition SaveMgr.h:428
u8 _2f
Definition SaveMgr.h:454
s32 _20
Definition SaveMgr.h:448
ReadError mReadError
Definition SaveMgr.h:446
AmbushEnemy world_5[3]
Definition SaveMgr.h:137
u8 _6c
Definition SaveMgr.h:140
AmbushEnemy world_1[2]
Definition SaveMgr.h:133
AmbushEnemy world_3[2]
Definition SaveMgr.h:135
AmbushEnemy world_2[3]
Definition SaveMgr.h:134
AmbushEnemy world_4[5]
Definition SaveMgr.h:136
u8 _5a[18]
Definition SaveMgr.h:139
AmbushEnemy world_7[3]
Definition SaveMgr.h:138
u8 _3
Definition SaveMgr.h:126
u8 _4
Definition SaveMgr.h:127
CSLocation location
Definition SaveMgr.h:125
u32 high_scores[32]
Definition SaveMgr.h:257
u8 _2
Definition SaveMgr.h:255
u8 _84[0xA4 - 0x84]
Definition SaveMgr.h:258
u32 crc32
Definition SaveMgr.h:259
u8 _3
Definition SaveMgr.h:256
u8 _1
Definition SaveMgr.h:254
u8 _0
Definition SaveMgr.h:253
u8 sub_world_no
Definition SaveMgr.h:27
u8 point_idx
Definition SaveMgr.h:28
u8 world_no
Definition SaveMgr.h:26
bool is_valid
Definition SaveMgr.h:241
u32 crc32
Definition SaveMgr.h:247
u8 _7
Definition SaveMgr.h:244
u8 num_category_medals[5]
Definition SaveMgr.h:242
ChallengeReplay replays[80]
Definition SaveMgr.h:245
u8 _6
Definition SaveMgr.h:243
u8 _21c8[0x3608 - 0x21c8]
Definition SaveMgr.h:246
u8 completion_player
Definition SaveMgr.h:231
FFLStoreData completion_mii
Definition SaveMgr.h:233
u32 high_score
Definition SaveMgr.h:234
bool is_valid
Definition SaveMgr.h:230
u32 crc32
Definition SaveMgr.h:235
u16 _2
Definition SaveMgr.h:232
u8 area
Definition SaveMgr.h:266
bool exists
Definition SaveMgr.h:267
u8 file
Definition SaveMgr.h:265
u16 x
Definition SaveMgr.h:271
u16 y
Definition SaveMgr.h:272
u8 _3
Definition SaveMgr.h:268
u8 unlocked_levels[12]
Definition SaveMgr.h:297
CoinEditLevel levels[10]
Definition SaveMgr.h:296
u32 crc32
Definition SaveMgr.h:298
CoinEditStarCoin star_coins[3]
Definition SaveMgr.h:290
CoinEditCoin coins[300]
Definition SaveMgr.h:289
sead::Vector2f pos
Definition SaveMgr.h:283
u8 _3
Definition SaveMgr.h:282
u8 _2
Definition SaveMgr.h:281
u8 file
Definition SaveMgr.h:279
u8 area
Definition SaveMgr.h:280
LevelCompletionFlag completion_flag[123]
Definition SaveMgr.h:93
u8 death_counter[62]
Definition SaveMgr.h:94
LevelCompletionFlag * getCompletionFlag(u8 worldNo, u8 courseNo)
u32 crc32
Definition SaveMgr.h:357
u8 padding[3]
Definition SaveMgr.h:356
u8 entry_num
Definition SaveMgr.h:354
FFLCreateID mii_ids[62]
Definition SaveMgr.h:355
u32 goals_reached_with_chibi_yoshi
Definition SaveMgr.h:156
u32 boost_block_distance
Definition SaveMgr.h:150
u32 lives_earned_at_goal
Definition SaveMgr.h:157
u32 goals_reached_with_yoshi
Definition SaveMgr.h:155
u32 coins_collected
Definition SaveMgr.h:146
u32 times_applauded
Definition SaveMgr.h:149
u32 mini_boost_block_distance
Definition SaveMgr.h:151
u32 star_coins_collected
Definition SaveMgr.h:147
u32 goombas_stomped
Definition SaveMgr.h:153
u32 life_moons_collected
Definition SaveMgr.h:159
u32 items_collected
Definition SaveMgr.h:154
u32 goals_reached
Definition SaveMgr.h:148
u32 fireworks_at_goal
Definition SaveMgr.h:158
u32 nabbits_caught
Definition SaveMgr.h:152
u8 ambush_items[4]
Definition SaveMgr.h:208
u8 _51
Definition SaveMgr.h:196
u8 caught_nabbit_flags
Definition SaveMgr.h:215
u8 padding[3]
Definition SaveMgr.h:216
u8 balloon_chibi_yoshi_reappear_counter
Definition SaveMgr.h:205
bool is_nabbit_in_world[7]
Definition SaveMgr.h:209
u8 _58
Definition SaveMgr.h:203
CSLocation cs_airship_location
Definition SaveMgr.h:188
u8 _2f
Definition SaveMgr.h:184
u32 score
Definition SaveMgr.h:185
u16 credits_highscore
Definition SaveMgr.h:187
u8 _54
Definition SaveMgr.h:199
AmbushData ambush
Definition SaveMgr.h:213
u8 _57
Definition SaveMgr.h:202
Records records
Definition SaveMgr.h:214
u8 _a
Definition SaveMgr.h:171
u8 _4b
Definition SaveMgr.h:190
CSLocation cs_player_location
Definition SaveMgr.h:169
sead::Vector3f _20
Definition SaveMgr.h:180
u8 _4c
Definition SaveMgr.h:191
u8 ambush_item_reappear_counter[4]
Definition SaveMgr.h:207
u8 _4e
Definition SaveMgr.h:193
u8 _4f
Definition SaveMgr.h:194
u8 _1f
Definition SaveMgr.h:179
GameCompletionFlag game_completion_flag
Definition SaveMgr.h:178
bool is_valid
Definition SaveMgr.h:165
u8 player_lives[4]
Definition SaveMgr.h:173
u8 _4d
Definition SaveMgr.h:192
u8 nabbit_world_id[2]
Definition SaveMgr.h:189
ActiveChibiYoshi active_chibi_yoshi
Definition SaveMgr.h:201
ChibiYoshiAvailableFlag cs_chibi_yoshi_flag
Definition SaveMgr.h:200
WorldCompletionFlag world_completion_flag
Definition SaveMgr.h:177
LevelStat level_stat
Definition SaveMgr.h:210
CSLocation cs_unknown_location
Definition SaveMgr.h:170
u8 _59
Definition SaveMgr.h:204
u8 _2c
Definition SaveMgr.h:181
u8 last_session_player_count
Definition SaveMgr.h:166
LevelStarCoinFlag level_star_coins[41]
Definition SaveMgr.h:211
u8 bubble_chibi_yoshi_reappear_counter
Definition SaveMgr.h:206
u8 _53
Definition SaveMgr.h:198
u8 _2e
Definition SaveMgr.h:183
u8 player_character[4]
Definition SaveMgr.h:174
u8 player_game_over[4]
Definition SaveMgr.h:176
u8 player_powerup[4]
Definition SaveMgr.h:175
u8 num_coins
Definition SaveMgr.h:167
InventoryItem inventory[10]
Definition SaveMgr.h:212
u8 _50
Definition SaveMgr.h:195
u8 _34[0x44 - 0x34]
Definition SaveMgr.h:186
u8 _b
Definition SaveMgr.h:172
u8 cs_active_w6_switch
Definition SaveMgr.h:168
u32 crc32
Definition SaveMgr.h:217
u8 _52
Definition SaveMgr.h:197
u8 _2d
Definition SaveMgr.h:182
SaveSlot nsmbu[3]
Definition SaveMgr.h:223
SaveSlot nslu[3]
Definition SaveMgr.h:224
u32 boost_rush_played_2p
Definition SaveMgr.h:316
u32 challenge_replays_watched
Definition SaveMgr.h:331
u32 levels_played_special
Definition SaveMgr.h:311
u32 coin_battles_played_mii
Definition SaveMgr.h:327
u32 boost_rush_played_special
Definition SaveMgr.h:319
u8 story_star_coins_collected
Definition SaveMgr.h:338
u8 nslu_star_coins_collected
Definition SaveMgr.h:341
u32 levels_played
Definition SaveMgr.h:306
u8 boost_mode_challenges_completed
Definition SaveMgr.h:346
u32 total_play_time
Definition SaveMgr.h:304
u32 coin_battles_played_1p
Definition SaveMgr.h:322
u32 coin_battles_played
Definition SaveMgr.h:321
bool _86
Definition SaveMgr.h:339
u8 nslu_reached_world
Definition SaveMgr.h:342
u32 coin_edit_battles_played
Definition SaveMgr.h:328
u8 challenge_silver_medals
Definition SaveMgr.h:344
bool _87
Definition SaveMgr.h:340
u32 _78
Definition SaveMgr.h:334
u32 coin_battles_played_2p
Definition SaveMgr.h:323
u32 boost_rush_played_3p
Definition SaveMgr.h:317
u32 story_play_time
Definition SaveMgr.h:305
u32 crc32
Definition SaveMgr.h:348
u32 challenges_retried
Definition SaveMgr.h:330
u32 coin_battles_played_3p
Definition SaveMgr.h:324
u32 boost_mode_challenges_played
Definition SaveMgr.h:332
u32 super_guides
Definition SaveMgr.h:313
u32 levels_played_2p
Definition SaveMgr.h:308
u32 levels_played_4p
Definition SaveMgr.h:310
u32 coin_battles_played_special
Definition SaveMgr.h:326
u32 boost_rush_played_4p
Definition SaveMgr.h:318
u32 levels_played_1p
Definition SaveMgr.h:307
u8 challenge_gold_medals
Definition SaveMgr.h:343
u8 padding[2]
Definition SaveMgr.h:347
u8 challenge_bronze_medals
Definition SaveMgr.h:345
u32 boost_rush_played
Definition SaveMgr.h:314
u32 _7c
Definition SaveMgr.h:335
u32 coin_battles_played_4p
Definition SaveMgr.h:325
u32 nabbits_chased
Definition SaveMgr.h:312
u32 nslu_levels_played
Definition SaveMgr.h:333
u32 boost_rush_played_1p
Definition SaveMgr.h:315
u32 levels_played_3p
Definition SaveMgr.h:309
u32 challenges_played
Definition SaveMgr.h:329
u8 story_reached_world
Definition SaveMgr.h:337
u32 inventory_powerups_used
Definition SaveMgr.h:336
u32 boost_rush_played_mii
Definition SaveMgr.h:320
InventoryItem
Definition SaveMgr.h:109
@ cInventoryItem_SuperStar
Definition SaveMgr.h:112
@ cInventoryItem_Propeller
Definition SaveMgr.h:114
@ cInventoryItem_FireFlower
Definition SaveMgr.h:111
@ cInventoryItem_Acorn
Definition SaveMgr.h:117
@ cInventoryItem_Mushroom
Definition SaveMgr.h:110
@ cInventoryItem_Mini
Definition SaveMgr.h:115
@ cInventoryItem_None
Definition SaveMgr.h:119
@ cInventoryItem_Penguin
Definition SaveMgr.h:116
@ cInventoryItem_PAcorn
Definition SaveMgr.h:118
@ cInventoryItem_IceFlower
Definition SaveMgr.h:113
SaveSlots quick_save_slots
Definition SaveMgr.h:368
ActiveChibiYoshi
Definition SaveMgr.h:69
@ cActiveChibiYoshi_World4
Definition SaveMgr.h:72
@ cActiveChibiYoshi_World1
Definition SaveMgr.h:70
@ cActiveChibiYoshi_None
Definition SaveMgr.h:74
@ cActiveChibiYoshi_World3
Definition SaveMgr.h:71
@ cActiveChibiYoshi_World6
Definition SaveMgr.h:73
Statistics statistics
Definition SaveMgr.h:372
CoinEditData coin_edit
Definition SaveMgr.h:371
LevelStarCoinFlag
Definition SaveMgr.h:102
@ cLevelStarCoinFlag_All
Definition SaveMgr.h:104
@ cLevelStarCoinFlag_None
Definition SaveMgr.h:103
LevelCompletionFlag
Definition SaveMgr.h:79
@ cLevelCompletionFlag_BeatenOtehonReplay
Definition SaveMgr.h:82
@ cLevelCompletionFlag_SecretBeaten
Definition SaveMgr.h:87
@ cLevelCompletionFlag_PlayedOnce
Definition SaveMgr.h:81
@ cLevelCompletionFlag_SecretBeatenOtehonReplay
Definition SaveMgr.h:83
@ cLevelCompletionFlag_SecretBeatenReserved
Cleared but never set.
Definition SaveMgr.h:85
@ cLevelCompletionFlag_Unlocked
Definition SaveMgr.h:80
@ cLevelCompletionFlag_BeatenReserved
Cleared but never set.
Definition SaveMgr.h:84
@ cLevelCompletionFlag_Beaten
Definition SaveMgr.h:86
ChallengeData challenge
Definition SaveMgr.h:369
BoostRushData boost_rush
Definition SaveMgr.h:370
u8 getLastSlot() const
Definition SaveMgr.h:361
ChibiYoshiAvailableFlag
Definition SaveMgr.h:59
@ cChibiYoshiAvailableFlag_World3
Definition SaveMgr.h:61
@ cChibiYoshiAvailableFlag_All
Definition SaveMgr.h:64
@ cChibiYoshiAvailableFlag_World4
Definition SaveMgr.h:62
@ cChibiYoshiAvailableFlag_World1
Definition SaveMgr.h:60
@ cChibiYoshiAvailableFlag_World6
Definition SaveMgr.h:63
Header header
Definition SaveMgr.h:366
SaveSlots main_slots
Definition SaveMgr.h:367
WorldCompletionFlag
Definition SaveMgr.h:33
@ cWorldCompletionFlag_1
Definition SaveMgr.h:35
@ cWorldCompletionFlag_4
Definition SaveMgr.h:38
@ cWorldCompletionFlag_Opening
Definition SaveMgr.h:34
@ cWorldCompletionFlag_2
Definition SaveMgr.h:36
@ cWorldCompletionFlag_8
Definition SaveMgr.h:42
@ cWorldCompletionFlag_5
Definition SaveMgr.h:39
@ cWorldCompletionFlag_3
Definition SaveMgr.h:37
@ cWorldCompletionFlag_6
Definition SaveMgr.h:40
@ cWorldCompletionFlag_All
Definition SaveMgr.h:44
@ cWorldCompletionFlag_7
Definition SaveMgr.h:41
MiiData mii
Definition SaveMgr.h:373
GameCompletionFlag
Definition SaveMgr.h:49
@ cGameCompletionFlag_Unknown1
Definition SaveMgr.h:50
@ cGameCompletionFlag_AllStarCoins
Definition SaveMgr.h:53
@ cGameCompletionFlag_AllExits
Definition SaveMgr.h:54
@ cGameCompletionFlag_AllLevels
Definition SaveMgr.h:51
@ cGameCompletionFlag_Unknown2
Definition SaveMgr.h:52