Use trainer constants in flags, automatically update flags/vars count

This commit is contained in:
GriffinR
2021-01-29 15:37:52 -05:00
parent 419c897292
commit 1f6dc0e86b
88 changed files with 929 additions and 945 deletions
+10 -6
View File
@@ -5,6 +5,9 @@
#include "gba/gba.h"
#include <string.h>
#include "constants/global.h"
#include "constants/flags.h"
#include "constants/vars.h"
#include "constants/species.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -87,6 +90,11 @@ extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
#define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0))
#define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(NUM_SPECIES))
#define NUM_FLAG_BYTES (ROUND_BITS_TO_BYTES(FLAGS_COUNT))
struct Coords8
{
s8 x;
@@ -131,8 +139,6 @@ struct Time
/*0x04*/ s8 seconds;
};
#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
struct Pokedex
{
/*0x00*/ u8 order;
@@ -549,8 +555,6 @@ struct QuestLogNPCData
};
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 288 // 300
#define VARS_COUNT 256
#define MAIL_COUNT (PARTY_SIZE + 10)
#define PC_MAIL_NUM(i) (PARTY_SIZE + (i))
@@ -603,7 +607,7 @@ struct QuestLog
// These arrays hold the game state for
// playing back the quest log
/*0x0148*/ u8 flags[FLAGS_COUNT];
/*0x0148*/ u8 flags[NUM_FLAG_BYTES];
/*0x02c8*/ u16 vars[VARS_COUNT];
/*0x0468*/ struct QuestLogNPCData npcData[64];
/*0x0568*/ u16 script[128];
@@ -744,7 +748,7 @@ struct SaveBlock1
/*0x063A*/ u8 ALIGNED(2) trainerRematches[100];
/*0x06A0*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
/*0x08E0*/ struct ObjectEventTemplate objectEventTemplates[64];
/*0x0EE0*/ u8 flags[FLAGS_COUNT];
/*0x0EE0*/ u8 flags[NUM_FLAG_BYTES];
/*0x1000*/ u16 vars[VARS_COUNT];
/*0x1200*/ u32 gameStats[NUM_GAME_STATS];
/*0x1300*/ struct QuestLog questLog[QUEST_LOG_SCENE_COUNT];