From 528abe1211412048baffb497e66613d17790a2b8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 16 Jun 2025 20:28:18 +0200 Subject: [PATCH] Clean up event flag and script vars info headers --- include/constants/event_flag.h | 123 ++++++++++++++++++++++++++++++ include/data_script.h | 2 +- include/event_flag.h | 135 +-------------------------------- include/script_vars_info.h | 19 +++++ src/event_flag.c | 1 + src/ground_script.c | 1 - src/script_vars_info.c | 4 +- 7 files changed, 148 insertions(+), 137 deletions(-) create mode 100644 include/constants/event_flag.h create mode 100644 include/script_vars_info.h diff --git a/include/constants/event_flag.h b/include/constants/event_flag.h new file mode 100644 index 000000000..93cd1c0aa --- /dev/null +++ b/include/constants/event_flag.h @@ -0,0 +1,123 @@ +#ifndef GUARD_CONSTANTS_EVENT_FLAG_H +#define GUARD_CONSTANTS_EVENT_FLAG_H + +enum FlagCalcOperation { + CALC_SET, + CALC_SUB, + CALC_ADD, + CALC_MUL, + CALC_DIV, + CALC_MOD, + CALC_AND, + CALC_OR, + CALC_XOR, + CALC_SETBIT, + CALC_CLEARBIT, + CALC_RANDOM, +}; + +enum FlagJudgeOperation { + JUDGE_TRUE, + JUDGE_FALSE, + JUDGE_EQ, + JUDGE_GT, + JUDGE_LT, + JUDGE_GE, + JUDGE_LE, + JUDGE_NE, + JUDGE_AND_NONZERO, + JUDGE_XOR_NONZERO, // logically identical to JUDGE_NE + JUDGE_BIT_SET, +}; + +enum ScriptVarId { + /* 0x00 */ VERSION, + /* 0x01 */ CONDITION, + /* 0x02 */ SCENARIO_SELECT, + /* 0x03 */ SCENARIO_MAIN, + /* 0x04 */ SCENARIO_SUB1, + /* 0x05 */ SCENARIO_SUB2, + /* 0x06 */ SCENARIO_SUB3, + /* 0x07 */ SCENARIO_SUB4, + /* 0x08 */ SCENARIO_SUB5, + /* 0x09 */ SCENARIO_SUB6, + /* 0x0a */ SCENARIO_SUB7, + /* 0x0b */ SCENARIO_SUB8, + /* 0x0c */ SCENARIO_SUB9, + /* 0x0d */ GROUND_ENTER, + /* 0x0e */ GROUND_ENTER_LINK, + /* 0x0f */ GROUND_GETOUT, + /* 0x10 */ GROUND_MAP, + /* 0x11 */ GROUND_PLACE, + /* 0x12 */ DUNGEON_SELECT, + /* 0x13 */ DUNGEON_ENTER, + /* 0x14 */ DUNGEON_ENTER_INDEX, + /* 0x15 */ DUNGEON_ENTER_FREQUENCY, + /* 0x16 */ DUNGEON_RESULT, + /* 0x17 */ SCRIPT_MODE, + /* 0x18 */ START_MODE, + /* 0x19 */ CLEAR_COUNT, + /* 0x1a */ CONDITION_KIND, + /* 0x1b */ WEATHER_KIND, + /* 0x1c */ PLAYER_KIND, + /* 0x1d */ PARTNER1_KIND, + /* 0x1e */ PARTNER2_KIND, + /* 0x1f */ NEW_FRIEND_KIND, + /* 0x20 */ FRIEND_SUM, + /* 0x21 */ UNIT_SUM, + /* 0x22 */ GOLD, + /* 0x23 */ BANK_GOLD, + /* 0x24 */ WARP_LIST, + /* 0x25 */ WARP_LOCK, + /* 0x26 */ PARTNER_TALK_KIND, + /* 0x27 */ BASE_KIND, + /* 0x28 */ BASE_LEVEL, + /* 0x29 */ FLAG_KIND, + /* 0x2a */ FLAG_KIND_CHANGE_REQUEST, + /* 0x2b */ RESCUE_SCENARIO_ORDER_LIST, + /* 0x2c */ RESCUE_SCENARIO_JOB_LIST, + /* 0x2d */ RESCUE_SCENARIO_CONQUEST_LIST, + /* 0x2e */ TRAINING_CONQUEST_LIST, + /* 0x2f */ TRAINING_PRESENT_LIST, + /* 0x30 */ DUNGEON_ENTER_LIST, + /* 0x31 */ DUNGEON_CLEAR_LIST, + /* 0x32 */ POSITION_X, + /* 0x33 */ POSITION_Y, + /* 0x34 */ POSITION_HEIGHT, + /* 0x35 */ POSITION_DIRECTION, + /* 0x36 */ GROUND_LOCAL, + /* 0x37 */ MAP_LOCAL, + /* 0x38 */ MAP_LOCAL_DOOR, + /* 0x39 */ EVENT_LOCAL, + /* 0x3a */ STATION_ITEM_STATIC, + /* 0x3b */ STATION_ITEM_TEMP, + /* 0x3c */ DELIVER_ITEM_STATIC, + /* 0x3d */ DELIVER_ITEM_TEMP, + /* 0x3e */ SHOP_TEMP, + /* 0x3f */ INN_TEMP, + /* 0x40 */ EVENT_S07E01, + /* 0x41 */ EVENT_S08E01, + /* 0x42 */ EVENT_GONBE, + /* 0x43 */ EVENT_ORNAMENT_01, + /* 0x44 */ EVENT_ORNAMENT_02, + /* 0x45 */ EVENT_ORNAMENT_03, + /* 0x46 */ EVENT_ORNAMENT_04, + /* 0x47 */ EVENT_B01P01, + /* 0x48 */ EVENT_T01P01, + /* 0x49 */ EVENT_T01P02, + /* 0x4a */ EVENT_T01P03, + /* 0x4b */ EVENT_M01E09A_2N, + /* 0x4c */ EVENT_M01E09A_8N, + /* 0x4d */ EVENT_M01E10A_1N, + /* 0x4e */ EVENT_M01E10A_3N, + /* 0x4f */ EVENT_M01E10A_5N, + /* 0x50 */ EVENT_M02E01A_2N, + /* 0x51 */ SUM, + /* 0x52 */ SCRIPT_VARS_COUNT, + /* 0x400 */ LOCAL0 = 0x400, + /* 0x401 */ LOCAL1, + /* 0x402 */ LOCAL2, + /* 0x403 */ LOCAL3, +}; + +#endif // GUARD_CONSTANTS_EVENT_FLAG_H diff --git a/include/data_script.h b/include/data_script.h index de2256f57..904d8031f 100644 --- a/include/data_script.h +++ b/include/data_script.h @@ -1,4 +1,4 @@ -#include "event_flag.h" +#include "constants/event_flag.h" #include "constants/item.h" #include "constants/ground_map.h" #include "structs/str_ground_script.h" diff --git a/include/event_flag.h b/include/event_flag.h index 840b8c0ea..be8dad175 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -1,134 +1,7 @@ #ifndef GUARD_EVENT_FLAG_H #define GUARD_EVENT_FLAG_H -enum FlagCalcOperation { - CALC_SET, - CALC_SUB, - CALC_ADD, - CALC_MUL, - CALC_DIV, - CALC_MOD, - CALC_AND, - CALC_OR, - CALC_XOR, - CALC_SETBIT, - CALC_CLEARBIT, - CALC_RANDOM, -}; - -enum FlagJudgeOperation { - JUDGE_TRUE, - JUDGE_FALSE, - JUDGE_EQ, - JUDGE_GT, - JUDGE_LT, - JUDGE_GE, - JUDGE_LE, - JUDGE_NE, - JUDGE_AND_NONZERO, - JUDGE_XOR_NONZERO, // logically identical to JUDGE_NE - JUDGE_BIT_SET, -}; - -enum ScriptVarId { - /* 0x00 */ VERSION, - /* 0x01 */ CONDITION, - /* 0x02 */ SCENARIO_SELECT, - /* 0x03 */ SCENARIO_MAIN, - /* 0x04 */ SCENARIO_SUB1, - /* 0x05 */ SCENARIO_SUB2, - /* 0x06 */ SCENARIO_SUB3, - /* 0x07 */ SCENARIO_SUB4, - /* 0x08 */ SCENARIO_SUB5, - /* 0x09 */ SCENARIO_SUB6, - /* 0x0a */ SCENARIO_SUB7, - /* 0x0b */ SCENARIO_SUB8, - /* 0x0c */ SCENARIO_SUB9, - /* 0x0d */ GROUND_ENTER, - /* 0x0e */ GROUND_ENTER_LINK, - /* 0x0f */ GROUND_GETOUT, - /* 0x10 */ GROUND_MAP, - /* 0x11 */ GROUND_PLACE, - /* 0x12 */ DUNGEON_SELECT, - /* 0x13 */ DUNGEON_ENTER, - /* 0x14 */ DUNGEON_ENTER_INDEX, - /* 0x15 */ DUNGEON_ENTER_FREQUENCY, - /* 0x16 */ DUNGEON_RESULT, - /* 0x17 */ SCRIPT_MODE, - /* 0x18 */ START_MODE, - /* 0x19 */ CLEAR_COUNT, - /* 0x1a */ CONDITION_KIND, - /* 0x1b */ WEATHER_KIND, - /* 0x1c */ PLAYER_KIND, - /* 0x1d */ PARTNER1_KIND, - /* 0x1e */ PARTNER2_KIND, - /* 0x1f */ NEW_FRIEND_KIND, - /* 0x20 */ FRIEND_SUM, - /* 0x21 */ UNIT_SUM, - /* 0x22 */ GOLD, - /* 0x23 */ BANK_GOLD, - /* 0x24 */ WARP_LIST, - /* 0x25 */ WARP_LOCK, - /* 0x26 */ PARTNER_TALK_KIND, - /* 0x27 */ BASE_KIND, - /* 0x28 */ BASE_LEVEL, - /* 0x29 */ FLAG_KIND, - /* 0x2a */ FLAG_KIND_CHANGE_REQUEST, - /* 0x2b */ RESCUE_SCENARIO_ORDER_LIST, - /* 0x2c */ RESCUE_SCENARIO_JOB_LIST, - /* 0x2d */ RESCUE_SCENARIO_CONQUEST_LIST, - /* 0x2e */ TRAINING_CONQUEST_LIST, - /* 0x2f */ TRAINING_PRESENT_LIST, - /* 0x30 */ DUNGEON_ENTER_LIST, - /* 0x31 */ DUNGEON_CLEAR_LIST, - /* 0x32 */ POSITION_X, - /* 0x33 */ POSITION_Y, - /* 0x34 */ POSITION_HEIGHT, - /* 0x35 */ POSITION_DIRECTION, - /* 0x36 */ GROUND_LOCAL, - /* 0x37 */ MAP_LOCAL, - /* 0x38 */ MAP_LOCAL_DOOR, - /* 0x39 */ EVENT_LOCAL, - /* 0x3a */ STATION_ITEM_STATIC, - /* 0x3b */ STATION_ITEM_TEMP, - /* 0x3c */ DELIVER_ITEM_STATIC, - /* 0x3d */ DELIVER_ITEM_TEMP, - /* 0x3e */ SHOP_TEMP, - /* 0x3f */ INN_TEMP, - /* 0x40 */ EVENT_S07E01, - /* 0x41 */ EVENT_S08E01, - /* 0x42 */ EVENT_GONBE, - /* 0x43 */ EVENT_ORNAMENT_01, - /* 0x44 */ EVENT_ORNAMENT_02, - /* 0x45 */ EVENT_ORNAMENT_03, - /* 0x46 */ EVENT_ORNAMENT_04, - /* 0x47 */ EVENT_B01P01, - /* 0x48 */ EVENT_T01P01, - /* 0x49 */ EVENT_T01P02, - /* 0x4a */ EVENT_T01P03, - /* 0x4b */ EVENT_M01E09A_2N, - /* 0x4c */ EVENT_M01E09A_8N, - /* 0x4d */ EVENT_M01E10A_1N, - /* 0x4e */ EVENT_M01E10A_3N, - /* 0x4f */ EVENT_M01E10A_5N, - /* 0x50 */ EVENT_M02E01A_2N, - /* 0x51 */ SUM, - /* 0x400 */ LOCAL0 = 0x400, - /* 0x401 */ LOCAL1, - /* 0x402 */ LOCAL2, - /* 0x403 */ LOCAL3, -}; - -// size: 0x10 -struct ScriptVarInfo { - s16 type; - s16 unk2; - s16 bufOffset; - s16 bitOffset; - s16 arrayLen; - s16 defaultValue; - char *name; -}; +#include "constants/event_flag.h" // size: 0x8 struct ScriptVarPtr @@ -137,8 +10,7 @@ struct ScriptVarPtr /* 0x4 */ u8 *ptr; }; -// event_flag.s - +// event_flag.c void ThoroughlyResetScriptVars(void); void ResetScriptVarArray(u8 *localVarBuf, s16 varId); void ClearScriptVarArray(u8 *localVarBuf, s16 varId); @@ -170,9 +42,6 @@ void sub_80026E8(s16 r0, bool8 r1); bool8 SaveGlobalScriptVars(void *r0); bool8 RestoreGlobalScriptVars(u8 *r0); -// script_vars_info.c -extern const struct ScriptVarInfo gScriptVarInfo[]; // NDS=0210FAC4 - // EWRAM extern u8 gScriptVarBuffer[0x400]; diff --git a/include/script_vars_info.h b/include/script_vars_info.h new file mode 100644 index 000000000..70eb0307e --- /dev/null +++ b/include/script_vars_info.h @@ -0,0 +1,19 @@ +#ifndef GUARD_SCRIPT_VARS_INFO_H +#define GUARD_SCRIPT_VARS_INFO_H + +#include "constants/event_flag.h" + +// size: 0x10 +struct ScriptVarInfo { + s16 type; + s16 unk2; + s16 bufOffset; + s16 bitOffset; + s16 arrayLen; + s16 defaultValue; + char *name; +}; + +extern const struct ScriptVarInfo gScriptVarInfo[SCRIPT_VARS_COUNT]; + +#endif // GUARD_SCRIPT_VARS_INFO_H diff --git a/src/event_flag.c b/src/event_flag.c index f142f691a..4acef5ef2 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -15,6 +15,7 @@ #include "code_8097670.h" #include "pokemon.h" #include "pokemon_3.h" +#include "script_vars_info.h" EWRAM_DATA u8 gScriptVarBuffer[0x400] = {0}; // NDS=020876DC diff --git a/src/ground_script.c b/src/ground_script.c index 4204bde1f..01b946291 100644 --- a/src/ground_script.c +++ b/src/ground_script.c @@ -131,7 +131,6 @@ PixelPos SetVecFromDirectionSpeed(s8, s32); bool8 sub_8098DCC(u32 speed); void sub_8099220(void *param_1, s32 param_2); -s16 FriendAreaIdToMapId(u8 param_1); // value -> GroundEnter lookup bool8 sub_809B260(void *dst); bool8 sub_809B18C(s32 *sp); bool8 sub_809AFFC(u8 *); diff --git a/src/script_vars_info.c b/src/script_vars_info.c index 7ba2242c5..c6af05efc 100644 --- a/src/script_vars_info.c +++ b/src/script_vars_info.c @@ -1,8 +1,8 @@ #include "global.h" #include "globaldata.h" -#include "event_flag.h" +#include "script_vars_info.h" -const struct ScriptVarInfo gScriptVarInfo[] = { +const struct ScriptVarInfo gScriptVarInfo[SCRIPT_VARS_COUNT] = { [VERSION] = {6, 2, 0, 0, 1, 29, "VERSION"}, [CONDITION] = {6, 2, 4, 0, 1, 0, "CONDITION"}, [SCENARIO_SELECT] = {2, 2, 110, 0, 2, 0, "SCENARIO_SELECT"},