Defines for Expansion version number (#3454)
This commit is contained in:
parent
7ccdd4b5b3
commit
3fc47d137a
7 changed files with 81 additions and 0 deletions
|
@ -206,4 +206,13 @@ DebugText_DaycareOnePokemon:
|
||||||
DebugText_DaycarePokemonNotCompatible:
|
DebugText_DaycarePokemonNotCompatible:
|
||||||
.string "Your Pokémon at Daycare can't\nhave babies together!$"
|
.string "Your Pokémon at Daycare can't\nhave babies together!$"
|
||||||
|
|
||||||
|
Debug_ShowExpansionVersion::
|
||||||
|
callnative BufferExpansionVersion
|
||||||
|
msgbox Debug_ExpansionVersion, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
Debug_ExpansionVersion:
|
||||||
|
.string "pokeemerald-expansion {STR_VAR_1}$"
|
||||||
|
|
||||||
.endif
|
.endif
|
||||||
|
|
12
include/constants/expansion.h
Normal file
12
include/constants/expansion.h
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#ifndef GUARD_CONSTANTS_EXPANSION_H
|
||||||
|
#define GUARD_CONSTANTS_EXPANSION_H
|
||||||
|
|
||||||
|
#define EXPANSION_VERSION_MAJOR 1
|
||||||
|
#define EXPANSION_VERSION_MINOR 7
|
||||||
|
#define EXPANSION_VERSION_PATCH 0
|
||||||
|
|
||||||
|
// FALSE if this this version of Expansion is not a tagged commit, i.e.
|
||||||
|
// it contains unreleased changes.
|
||||||
|
#define EXPANSION_TAGGED_RELEASE FALSE
|
||||||
|
|
||||||
|
#endif
|
|
@ -52,6 +52,7 @@ SECTIONS {
|
||||||
{
|
{
|
||||||
src/rom_header.o(.text);
|
src/rom_header.o(.text);
|
||||||
src/rom_header_gf.o(.text.*);
|
src/rom_header_gf.o(.text.*);
|
||||||
|
src/rom_header_rhh.o(.text.*);
|
||||||
src/crt0.o(.text);
|
src/crt0.o(.text);
|
||||||
src/main.o(.text);
|
src/main.o(.text);
|
||||||
gflib/malloc.o(.text);
|
gflib/malloc.o(.text);
|
||||||
|
|
|
@ -51,6 +51,7 @@ SECTIONS {
|
||||||
{
|
{
|
||||||
src/rom_header.o(.text*);
|
src/rom_header.o(.text*);
|
||||||
src/rom_header_gf.o(.text.*);
|
src/rom_header_gf.o(.text.*);
|
||||||
|
src/rom_header_rhh.o(.text.*);
|
||||||
src/crt0.o(.text);
|
src/crt0.o(.text);
|
||||||
src/main.o(.text);
|
src/main.o(.text);
|
||||||
gflib/*.o(.text*);
|
gflib/*.o(.text*);
|
||||||
|
|
|
@ -62,6 +62,7 @@ SECTIONS {
|
||||||
{
|
{
|
||||||
src/rom_header.o(.text);
|
src/rom_header.o(.text);
|
||||||
src/rom_header_gf.o(.text.*);
|
src/rom_header_gf.o(.text.*);
|
||||||
|
src/rom_header_rhh.o(.text.*);
|
||||||
src/*.o(.text);
|
src/*.o(.text);
|
||||||
gflib/*.o(.text);
|
gflib/*.o(.text);
|
||||||
} =0
|
} =0
|
||||||
|
|
31
src/debug.c
31
src/debug.c
|
@ -55,6 +55,7 @@
|
||||||
#include "constants/battle_ai.h"
|
#include "constants/battle_ai.h"
|
||||||
#include "constants/battle_frontier.h"
|
#include "constants/battle_frontier.h"
|
||||||
#include "constants/coins.h"
|
#include "constants/coins.h"
|
||||||
|
#include "constants/expansion.h"
|
||||||
#include "constants/flags.h"
|
#include "constants/flags.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/map_groups.h"
|
#include "constants/map_groups.h"
|
||||||
|
@ -97,6 +98,7 @@ enum UtilMenu
|
||||||
DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES,
|
DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES,
|
||||||
DEBUG_UTIL_MENU_ITEM_CHEAT,
|
DEBUG_UTIL_MENU_ITEM_CHEAT,
|
||||||
DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG,
|
DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG,
|
||||||
|
DEBUG_UTIL_MENU_ITEM_EXPANSION_VER,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ScriptMenu
|
enum ScriptMenu
|
||||||
|
@ -339,6 +341,7 @@ static void DebugAction_Util_Player_Id(u8 taskId);
|
||||||
static void DebugAction_Util_Clear_Boxes(u8 taskId);
|
static void DebugAction_Util_Clear_Boxes(u8 taskId);
|
||||||
static void DebugAction_Util_CheatStart(u8 taskId);
|
static void DebugAction_Util_CheatStart(u8 taskId);
|
||||||
static void DebugAction_Util_HatchAnEgg(u8 taskId);
|
static void DebugAction_Util_HatchAnEgg(u8 taskId);
|
||||||
|
static void DebugAction_Util_ExpansionVersion(u8 taskId);
|
||||||
|
|
||||||
static void DebugAction_FlagsVars_Flags(u8 taskId);
|
static void DebugAction_FlagsVars_Flags(u8 taskId);
|
||||||
static void DebugAction_FlagsVars_FlagsSelect(u8 taskId);
|
static void DebugAction_FlagsVars_FlagsSelect(u8 taskId);
|
||||||
|
@ -418,6 +421,7 @@ extern const u8 PlayersHouse_2F_EventScript_CheckWallClock[];
|
||||||
extern const u8 Debug_CheckSaveBlock[];
|
extern const u8 Debug_CheckSaveBlock[];
|
||||||
extern const u8 Debug_CheckROMSpace[];
|
extern const u8 Debug_CheckROMSpace[];
|
||||||
extern const u8 Debug_BoxFilledMessage[];
|
extern const u8 Debug_BoxFilledMessage[];
|
||||||
|
extern const u8 Debug_ShowExpansionVersion[];
|
||||||
|
|
||||||
#include "data/map_group_count.h"
|
#include "data/map_group_count.h"
|
||||||
|
|
||||||
|
@ -471,6 +475,7 @@ static const u8 sDebugText_Util_Player_Id[] = _("New Trainer Id")
|
||||||
static const u8 sDebugText_Util_Clear_Boxes[] = _("Clear Storage Boxes");
|
static const u8 sDebugText_Util_Clear_Boxes[] = _("Clear Storage Boxes");
|
||||||
static const u8 sDebugText_Util_CheatStart[] = _("CHEAT Start");
|
static const u8 sDebugText_Util_CheatStart[] = _("CHEAT Start");
|
||||||
static const u8 sDebugText_Util_HatchAnEgg[] = _("Hatch an Egg");
|
static const u8 sDebugText_Util_HatchAnEgg[] = _("Hatch an Egg");
|
||||||
|
static const u8 sDebugText_Util_ExpansionVersion[] = _("Expansion Version");
|
||||||
// Flags/Vars Menu
|
// Flags/Vars Menu
|
||||||
static const u8 sDebugText_FlagsVars_Flags[] = _("Set Flag XYZ…{CLEAR_TO 110}{RIGHT_ARROW}");
|
static const u8 sDebugText_FlagsVars_Flags[] = _("Set Flag XYZ…{CLEAR_TO 110}{RIGHT_ARROW}");
|
||||||
static const u8 sDebugText_FlagsVars_Flag[] = _("Flag: {STR_VAR_1}{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}\n{STR_VAR_3}");
|
static const u8 sDebugText_FlagsVars_Flag[] = _("Flag: {STR_VAR_1}{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}\n{STR_VAR_3}");
|
||||||
|
@ -637,6 +642,7 @@ static const struct ListMenuItem sDebugMenu_Items_Utilities[] =
|
||||||
[DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = {sDebugText_Util_Clear_Boxes, DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES},
|
[DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = {sDebugText_Util_Clear_Boxes, DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES},
|
||||||
[DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT},
|
[DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT},
|
||||||
[DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = {sDebugText_Util_HatchAnEgg, DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG},
|
[DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = {sDebugText_Util_HatchAnEgg, DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG},
|
||||||
|
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = {sDebugText_Util_ExpansionVersion,DEBUG_UTIL_MENU_ITEM_EXPANSION_VER},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ListMenuItem sDebugMenu_Items_Scripts[] =
|
static const struct ListMenuItem sDebugMenu_Items_Scripts[] =
|
||||||
|
@ -780,6 +786,7 @@ static void (*const sDebugMenu_Actions_Utilities[])(u8) =
|
||||||
[DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = DebugAction_Util_Clear_Boxes,
|
[DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = DebugAction_Util_Clear_Boxes,
|
||||||
[DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart,
|
[DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart,
|
||||||
[DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = DebugAction_Util_HatchAnEgg,
|
[DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = DebugAction_Util_HatchAnEgg,
|
||||||
|
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = DebugAction_Util_ExpansionVersion,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void (*const sDebugMenu_Actions_Scripts[])(u8) =
|
static void (*const sDebugMenu_Actions_Scripts[])(u8) =
|
||||||
|
@ -2122,6 +2129,30 @@ static void DebugAction_Util_HatchAnEgg(u8 taskId)
|
||||||
Debug_DestroyMenu_Full_Script(taskId, Debug_HatchAnEgg);
|
Debug_DestroyMenu_Full_Script(taskId, Debug_HatchAnEgg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void DebugAction_Util_ExpansionVersion(u8 taskId)
|
||||||
|
{
|
||||||
|
Debug_DestroyMenu_Full(taskId);
|
||||||
|
LockPlayerFieldControls();
|
||||||
|
ScriptContext_SetupScript(Debug_ShowExpansionVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BufferExpansionVersion(struct ScriptContext *ctx)
|
||||||
|
{
|
||||||
|
static const u8 sText_Released[] = _("\nRelease Build");
|
||||||
|
static const u8 sText_Unreleased[] = _("\nDevelopment Build");
|
||||||
|
u8 *string = gStringVar1;
|
||||||
|
*string++ = CHAR_v;
|
||||||
|
string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_MAJOR, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
|
*string++ = CHAR_PERIOD;
|
||||||
|
string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_MINOR, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
|
*string++ = CHAR_PERIOD;
|
||||||
|
string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_PATCH, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||||
|
if (EXPANSION_TAGGED_RELEASE)
|
||||||
|
string = StringCopy(string, sText_Released);
|
||||||
|
else
|
||||||
|
string = StringCopy(string, sText_Unreleased);
|
||||||
|
}
|
||||||
|
|
||||||
// *******************************
|
// *******************************
|
||||||
// Actions Scripts
|
// Actions Scripts
|
||||||
static void DebugAction_Util_Script_1(u8 taskId)
|
static void DebugAction_Util_Script_1(u8 taskId)
|
||||||
|
|
26
src/rom_header_rhh.c
Normal file
26
src/rom_header_rhh.c
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "constants/expansion.h"
|
||||||
|
|
||||||
|
// Similar to the GF ROM header, this struct allows external programs to
|
||||||
|
// detect details about Expansion.
|
||||||
|
// For this structure to be useful we have to maintain backwards binary
|
||||||
|
// compatibility. This means that we should only ever append data to the
|
||||||
|
// end. If there are any structs as members then those structs should
|
||||||
|
// not be modified after being introduced.
|
||||||
|
struct RHHRomHeader
|
||||||
|
{
|
||||||
|
/*0x00*/ char rhh_magic[6]; // 'RHHEXP'. Useful to locate the header if it shifts.
|
||||||
|
/*0x06*/ u8 expansionVersionMajor;
|
||||||
|
/*0x07*/ u8 expansionVersionMinor;
|
||||||
|
/*0x08*/ u8 expansionVersionPatch;
|
||||||
|
/*0x09*/ u8 expansionVersionFlags;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct RHHRomHeader sRHHRomHeader =
|
||||||
|
{
|
||||||
|
.rhh_magic = { 'R', 'H', 'H', 'E', 'X', 'P' },
|
||||||
|
.expansionVersionMajor = EXPANSION_VERSION_MAJOR,
|
||||||
|
.expansionVersionMinor = EXPANSION_VERSION_MINOR,
|
||||||
|
.expansionVersionPatch = EXPANSION_VERSION_PATCH,
|
||||||
|
.expansionVersionFlags = (EXPANSION_TAGGED_RELEASE << 0),
|
||||||
|
};
|
Loading…
Reference in a new issue