Merge pull request #1082 from GriffinRichards/add-flagvarsave
Allow flag/var counts to be updated alongside values
This commit is contained in:
@@ -1573,7 +1573,9 @@
|
||||
#define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag
|
||||
|
||||
// Daily Flags
|
||||
#define DAILY_FLAGS_START 0x920
|
||||
// These flags are cleared once per day
|
||||
// The start and end are byte-aligned because the flags are cleared in byte increments
|
||||
#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + (8 - FLAG_UNUSED_0x91F % 8))
|
||||
#define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag
|
||||
#define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1)
|
||||
#define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2)
|
||||
@@ -1639,7 +1641,9 @@
|
||||
#define FLAG_UNUSED_0x95D (DAILY_FLAGS_START + 0x3D) // Unused Flag
|
||||
#define FLAG_UNUSED_0x95E (DAILY_FLAGS_START + 0x3E) // Unused Flag
|
||||
#define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag
|
||||
#define DAILY_FLAGS_END FLAG_UNUSED_0x95F
|
||||
#define DAILY_FLAGS_END (FLAG_UNUSED_0x95F + (7 - FLAG_UNUSED_0x95F % 8))
|
||||
|
||||
#define FLAGS_COUNT (DAILY_FLAGS_END + 1)
|
||||
|
||||
// Special Flags (Stored in EWRAM (gSpecialFlags), not in the SaveBlock)
|
||||
#define SPECIAL_FLAGS_START 0x4000
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
#define POKEBLOCKS_COUNT 40
|
||||
#define OBJECT_EVENTS_COUNT 16
|
||||
#define BERRY_TREES_COUNT 128
|
||||
#define FLAGS_COUNT 300
|
||||
#define VARS_COUNT 256
|
||||
#define MAIL_COUNT 16
|
||||
#define SECRET_BASES_COUNT 20
|
||||
#define TV_SHOWS_COUNT 25
|
||||
|
||||
@@ -859,6 +859,7 @@
|
||||
|
||||
// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows
|
||||
// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled
|
||||
// MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space
|
||||
|
||||
#define TRAINERS_COUNT 855
|
||||
#define MAX_TRAINERS_COUNT 864
|
||||
|
||||
@@ -274,6 +274,7 @@
|
||||
#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
|
||||
|
||||
#define VARS_END 0x40FF
|
||||
#define VARS_COUNT (VARS_END - VARS_START + 1)
|
||||
|
||||
#define SPECIAL_VARS_START 0x8000
|
||||
// special vars
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#ifndef GUARD_EVENT_DATA_H
|
||||
#define GUARD_EVENT_DATA_H
|
||||
|
||||
#include "constants/flags.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
void InitEventData(void);
|
||||
void ClearTempFieldEventData(void);
|
||||
void ClearDailyFlags(void);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
|
||||
#include "gba/gba.h"
|
||||
#include "constants/global.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
// Prevent cross-jump optimization.
|
||||
#define BLOCK_CROSS_JUMP asm("");
|
||||
@@ -109,6 +111,11 @@
|
||||
f; \
|
||||
})
|
||||
|
||||
#define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0))
|
||||
|
||||
#define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(POKEMON_SLOTS_NUMBER))
|
||||
#define NUM_FLAG_BYTES (ROUND_BITS_TO_BYTES(FLAGS_COUNT))
|
||||
|
||||
struct Coords8
|
||||
{
|
||||
s8 x;
|
||||
@@ -153,8 +160,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;
|
||||
@@ -923,7 +928,7 @@ struct SaveBlock1
|
||||
/*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES];
|
||||
/*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
|
||||
/*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT];
|
||||
/*0x1270*/ u8 flags[FLAGS_COUNT];
|
||||
/*0x1270*/ u8 flags[NUM_FLAG_BYTES];
|
||||
/*0x139C*/ u16 vars[VARS_COUNT];
|
||||
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
|
||||
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
|
||||
|
||||
Reference in New Issue
Block a user