Static assertion for size of save structs

This commit is contained in:
Martin Griffin
2022-05-25 17:46:48 +01:00
parent 2a6e57c082
commit 1cc59acca9
5 changed files with 16 additions and 0 deletions
+2
View File
@@ -15,6 +15,8 @@
#include "constants/items.h"
#include "constants/trainer_hill.h"
STATIC_ASSERT(sizeof(struct TrainerHillChallenge) <= SECTOR_DATA_SIZE, TrainerHillChallengeFreeSpace);
struct SendRecvMgr
{
bool8 isParent;
+2
View File
@@ -52,6 +52,8 @@ struct HallofFameTeam
struct HallofFameMon mon[PARTY_SIZE];
};
STATIC_ASSERT(sizeof(struct HallofFameTeam) * HALL_OF_FAME_MAX_TEAMS <= SECTOR_DATA_SIZE * NUM_HOF_SECTORS, HallOfFameFreeSpace);
struct HofGfx
{
u16 state;
+2
View File
@@ -67,6 +67,8 @@ struct RecordedBattleSave
u32 checksum;
};
STATIC_ASSERT(sizeof(struct RecordedBattleSave) <= SECTOR_DATA_SIZE, RecordedBattleSaveFreeSpace);
EWRAM_DATA u32 gRecordedBattleRngSeed = 0;
EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0;
EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE] = {0};
+6
View File
@@ -73,6 +73,12 @@ struct
SAVEBLOCK_CHUNK(struct PokemonStorage, 8), // SECTOR_ID_PKMN_STORAGE_END
};
// These will produce an error if a save struct is larger than the space
// alloted for it in the flash.
STATIC_ASSERT(sizeof(struct SaveBlock2) <= SECTOR_DATA_SIZE, SaveBlock2FreeSpace);
STATIC_ASSERT(sizeof(struct SaveBlock1) <= SECTOR_DATA_SIZE * (SECTOR_ID_SAVEBLOCK1_END - SECTOR_ID_SAVEBLOCK1_START + 1), SaveBlock1FreeSpace);
STATIC_ASSERT(sizeof(struct PokemonStorage) <= SECTOR_DATA_SIZE * (SECTOR_ID_PKMN_STORAGE_END - SECTOR_ID_PKMN_STORAGE_START + 1), PokemonStorageFreeSpace);
u16 gLastWrittenSector;
u32 gLastSaveCounter;
u16 gLastKnownGoodSector;