From 30b684ed8a5a80f3dca4088be5dfffd7b984f087 Mon Sep 17 00:00:00 2001 From: RavePossum Date: Sun, 14 Apr 2024 08:31:56 -0400 Subject: [PATCH] document options, add constants file for options --- include/constants/game_options.h | 54 ++++++++++++++ include/game_options.h | 34 ++++----- src/battle/ov16_0223DF00.c | 4 +- src/game_options.c | 118 +++++++++++++++---------------- src/overlay057/ov57_021D0D80.c | 2 +- src/overlay074/ov74_021D0D80.c | 28 ++++---- src/unk_02025E08.c | 2 +- src/unk_0202F1D4.c | 4 +- src/unk_02051D8C.c | 10 +-- 9 files changed, 154 insertions(+), 102 deletions(-) create mode 100644 include/constants/game_options.h diff --git a/include/constants/game_options.h b/include/constants/game_options.h new file mode 100644 index 0000000000..2b1ddf4b2c --- /dev/null +++ b/include/constants/game_options.h @@ -0,0 +1,54 @@ +#ifndef POKEPLATINUM_CONSTANTS_GAME_OPTIONS_H +#define POKEPLATINUM_CONSTANTS_GAME_OPTIONS_H + +enum OptionsTextSpeed { + OPTIONS_TEXT_SPEED_SLOW = 0, + OPTIONS_TEXT_SPEED_NORMAL, + OPTIONS_TEXT_SPEED_FAST +}; + +enum OptionsSoundMethod { + OPTIONS_SOUND_METHOD_STEREO = 0, + OPTIONS_SOUND_METHOD_MONO +}; + +enum OptionsBattleStyle { + OPTIONS_BATTLE_STYLE_SHIFT = 0, + OPTIONS_BATTLE_STYLE_SET +}; + +enum OptionsBattleScene { + OPTIONS_BATTLE_SCENE_ON = 0, + OPTIONS_BATTLE_SCENE_OFF +}; + +enum OptionsButtonMode { + OPTIONS_BUTTON_MODE_NORMAL = 0, + OPTIONS_BUTTON_MODE_START_IS_X, + OPTIONS_BUTTON_MODE_L_IS_A +}; + +enum OptionsFrame { + OPTIONS_FRAME_1 = 0, + OPTIONS_FRAME_2, + OPTIONS_FRAME_3, + OPTIONS_FRAME_4, + OPTIONS_FRAME_5, + OPTIONS_FRAME_6, + OPTIONS_FRAME_7, + OPTIONS_FRAME_8, + OPTIONS_FRAME_9, + OPTIONS_FRAME_10, + OPTIONS_FRAME_11, + OPTIONS_FRAME_12, + OPTIONS_FRAME_13, + OPTIONS_FRAME_14, + OPTIONS_FRAME_15, + OPTIONS_FRAME_16, + OPTIONS_FRAME_17, + OPTIONS_FRAME_18, + OPTIONS_FRAME_19, + OPTIONS_FRAME_20 +}; + +#endif // POKEPLATINUM_CONSTANTS_GAME_OPTIONS_H diff --git a/include/game_options.h b/include/game_options.h index 6b38b8452d..8c5bbd1891 100644 --- a/include/game_options.h +++ b/include/game_options.h @@ -13,22 +13,22 @@ typedef struct Options { u16 : 1; } Options; -Options * sub_020279FC(u32 param0); -void sub_02027A10(const Options * param0, Options * param1); -void sub_02027A1C(Options * param0); -void sub_02027A68(SaveData * param0, int param1); -int sub_02027AA4(const Options * param0); -void sub_02027AAC(Options * param0, int param1); -u8 sub_02027AC0(const Options * param0); -int sub_02027ADC(const Options * param0); -void sub_02027AE4(Options * param0, int param1); -int GameConfig_BattleAnimations(const Options * param0); -void sub_02027B00(Options * param0, int param1); -int sub_02027B14(const Options * param0); -void sub_02027B1C(Options * param0, int param1); -int sub_02027B30(const Options * param0); -void sub_02027B38(Options * param0, int param1); -int sub_02027B50(const Options * param0); -void sub_02027B58(Options * param0, int param1); +Options* Options_AllocMemory(u32 heapID); +void Options_Copy(const Options *src, Options *dest); +void Options_Init(Options *options); +void Options_SetSystemButtonMode(SaveData *saveData, int buttonMode); +int Options_TextSpeed(const Options *options); +void Options_SetTextSpeed(Options *options, int textSpeed); +u8 sub_02027AC0(const Options *options); +int Options_SoundMethod(const Options *options); +void Options_SetSoundMethod(Options *options, int soundMethod); +int Options_BattleScene(const Options *options); +void Options_SetBattleScene(Options *options, int battleScene); +int Options_BattleStyle(const Options *options); +void Options_SetBattleStyle(Options *options, int battleStyle); +int Options_ButtonMode(const Options *options); +void Options_SetButtonMode(Options *options, int buttonMode); +int sub_02027B50(const Options *options); +void Options_SetFrame(Options *options, int frame); #endif // POKEPLATINUM_GAME_OPTIONS_H diff --git a/src/battle/ov16_0223DF00.c b/src/battle/ov16_0223DF00.c index 00fa1c4f88..7d804400b9 100644 --- a/src/battle/ov16_0223DF00.c +++ b/src/battle/ov16_0223DF00.c @@ -1027,7 +1027,7 @@ BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys) return TRUE; } - return GameConfig_BattleAnimations(battleSys->unk_1B0) == 0; + return Options_BattleScene(battleSys->unk_1B0) == 0; } int ov16_0223EDE0 (BattleSystem * param0) @@ -1046,7 +1046,7 @@ u8 BattleSystem_TextSpeed (BattleSystem * param0) int BattleSystem_Ruleset (BattleSystem * param0) { - return sub_02027B14(param0->unk_1B0); + return Options_BattleStyle(param0->unk_1B0); } PokemonAnimationSys * ov16_0223EE28 (BattleSystem * param0) diff --git a/src/game_options.c b/src/game_options.c index a026f37c4e..3065fa43e4 100644 --- a/src/game_options.c +++ b/src/game_options.c @@ -1,133 +1,131 @@ #include #include + +#include "constants/game_options.h" + #include "core_sys.h" - #include "savedata.h" - - #include "heap.h" #include "unk_02025E08.h" #include "game_options.h" +#include "core_sys.h" -Options * sub_020279FC (u32 param0) +Options* Options_AllocMemory (u32 heapID) { - Options * v0; + Options *options = Heap_AllocFromHeap(heapID, sizeof(Options)); + Options_Init(options); - v0 = Heap_AllocFromHeap(param0, sizeof(Options)); - sub_02027A1C(v0); - - return v0; + return options; } -void sub_02027A10 (const Options * param0, Options * param1) +void Options_Copy (const Options *src, Options *dest) { - MI_CpuCopy8(param0, param1, sizeof(Options)); + MI_CpuCopy8(src, dest, sizeof(Options)); } -void sub_02027A1C (Options * param0) +void Options_Init (Options *options) { - MI_CpuFill8(param0, 0, sizeof(Options)); + MI_CpuFill8(options, 0, sizeof(Options)); - param0->textSpeed = 1; - param0->soundMethod = 0; - param0->battleStyle = 0; - param0->battleScene = 0; - param0->buttonMode = 0; - param0->frame = 0; + options->textSpeed = OPTIONS_TEXT_SPEED_NORMAL; + options->soundMethod = OPTIONS_SOUND_METHOD_STEREO; + options->battleStyle = OPTIONS_BATTLE_STYLE_SHIFT; + options->battleScene = OPTIONS_BATTLE_SCENE_ON; + options->buttonMode = OPTIONS_BUTTON_MODE_NORMAL; + options->frame = OPTIONS_FRAME_1; } -void sub_02027A68 (SaveData * param0, int param1) +void Options_SetSystemButtonMode (SaveData *saveData, int buttonMode) { - Options * v0; - - if (param0 != NULL) { - param1 = sub_02027B30(sub_02025E44(param0)); + if (saveData != NULL) { + buttonMode = Options_ButtonMode(sub_02025E44(saveData)); } - switch (param1) { - case 1: - gCoreSys.buttonMode = 1; + switch (buttonMode) { + case OPTIONS_BUTTON_MODE_START_IS_X: + gCoreSys.buttonMode = BUTTON_MODE_START_IS_X; break; - case 2: - gCoreSys.buttonMode = 3; + case OPTIONS_BUTTON_MODE_L_IS_A: + gCoreSys.buttonMode = BUTTON_MODE_L_IS_A; break; - case 0: + case OPTIONS_BUTTON_MODE_NORMAL: default: - gCoreSys.buttonMode = 0; + gCoreSys.buttonMode = BUTTON_MODE_NORMAL; break; } } -int sub_02027AA4 (const Options * param0) +int Options_TextSpeed (const Options *options) { - return param0->textSpeed; + return options->textSpeed; } -void sub_02027AAC (Options * param0, int param1) +void Options_SetTextSpeed (Options *options, int textSpeed) { - param0->textSpeed = param1; + options->textSpeed = textSpeed; } - -u8 sub_02027AC0 (const Options * param0) +//ravetodo Options_GetTextFrameDelay +u8 sub_02027AC0 (const Options *options) { - int v0 = sub_02027AA4(param0); + int speed = Options_TextSpeed(options); - if (v0 == 0) { + if (speed == OPTIONS_TEXT_SPEED_SLOW) { return 8; - } else if (v0 == 1) { + } else if (speed == OPTIONS_TEXT_SPEED_NORMAL) { return 4; } else { return 1; } } -int sub_02027ADC (const Options * param0) +int Options_SoundMethod (const Options *options) { - return param0->soundMethod; + return options->soundMethod; } -void sub_02027AE4 (Options * param0, int param1) +void Options_SetSoundMethod (Options *options, int soundMethod) { - param0->soundMethod = param1; + options->soundMethod = soundMethod; } -int GameConfig_BattleAnimations (const Options * param0) +int Options_BattleScene (const Options *options) { - return param0->battleScene; + return options->battleScene; } -void sub_02027B00 (Options * param0, int param1) +void Options_SetBattleScene (Options *options, int battleScene) { - param0->battleScene = param1; + options->battleScene = battleScene; } -int sub_02027B14 (const Options * param0) +int Options_BattleStyle (const Options *options) { - return param0->battleStyle; + return options->battleStyle; } -void sub_02027B1C (Options * param0, int param1) +void Options_SetBattleStyle (Options *options, int battleStyle) { - param0->battleStyle = param1; + options->battleStyle = battleStyle; } -int sub_02027B30 (const Options * param0) +int Options_ButtonMode (const Options *options) { - return param0->buttonMode; + return options->buttonMode; } -void sub_02027B38 (Options * param0, int param1) +void Options_SetButtonMode (Options *options, int buttonMode) { - param0->buttonMode = param1; + options->buttonMode = buttonMode; } -int sub_02027B50 (const Options * param0) +//ravetodo Options_Frame +int sub_02027B50 (const Options *options) { - return param0->frame; + return options->frame; } -void sub_02027B58 (Options * param0, int param1) +void Options_SetFrame (Options *options, int frame) { - param0->frame = param1; + options->frame = frame; } diff --git a/src/overlay057/ov57_021D0D80.c b/src/overlay057/ov57_021D0D80.c index 48775fdd2d..d378a43769 100644 --- a/src/overlay057/ov57_021D0D80.c +++ b/src/overlay057/ov57_021D0D80.c @@ -130,7 +130,7 @@ static int ov57_021D0E34 (OverlayManager * param0, int * param1) UnkStruct_02025CCC * v1 = sub_02025CCC(v0); ov57_021D0F30(77, v0); - sub_02027A68(v0, 0); + Options_SetSystemButtonMode(v0, 0); if (!sub_02025D10(v1) || !sub_02025D40(v1)) { sub_02025DE8(sub_02025CD8(v0)); diff --git a/src/overlay074/ov74_021D0D80.c b/src/overlay074/ov74_021D0D80.c index 97a65bf534..876ed09bc3 100644 --- a/src/overlay074/ov74_021D0D80.c +++ b/src/overlay074/ov74_021D0D80.c @@ -110,11 +110,11 @@ int ov74_021D0D80 (OverlayManager * param0, int * param1) v0 = OverlayManager_NewData(param0, sizeof(UnkStruct_ov74_021D0D80), 38); memset(v0, 0, sizeof(UnkStruct_ov74_021D0D80)); - v0->unk_18.unk_00_0 = sub_02027AA4(v1); - v0->unk_18.unk_00_6 = GameConfig_BattleAnimations(v1); - v0->unk_18.unk_00_7 = sub_02027B14(v1); - v0->unk_18.unk_00_4 = sub_02027ADC(v1); - v0->unk_18.unk_00_8 = sub_02027B30(v1); + v0->unk_18.unk_00_0 = Options_TextSpeed(v1); + v0->unk_18.unk_00_6 = Options_BattleScene(v1); + v0->unk_18.unk_00_7 = Options_BattleStyle(v1); + v0->unk_18.unk_00_4 = Options_SoundMethod(v1); + v0->unk_18.unk_00_8 = Options_ButtonMode(v1); v0->unk_18.unk_00_10 = sub_02027B50(v1); v0->unk_00 = 38; v0->unk_1C = v1; @@ -137,14 +137,14 @@ int ov74_021D0E58 (OverlayManager * param0, int * param1) v0->unk_18.unk_00_10 = v0->unk_5C[5].unk_02; } - sub_02027AAC(v0->unk_1C, v0->unk_18.unk_00_0); - sub_02027B00(v0->unk_1C, v0->unk_18.unk_00_6); - sub_02027B1C(v0->unk_1C, v0->unk_18.unk_00_7); - sub_02027AE4(v0->unk_1C, v0->unk_18.unk_00_4); - sub_02027B38(v0->unk_1C, v0->unk_18.unk_00_8); - sub_02027B58(v0->unk_1C, v0->unk_18.unk_00_10); + Options_SetTextSpeed(v0->unk_1C, v0->unk_18.unk_00_0); + Options_SetBattleScene(v0->unk_1C, v0->unk_18.unk_00_6); + Options_SetBattleStyle(v0->unk_1C, v0->unk_18.unk_00_7); + Options_SetSoundMethod(v0->unk_1C, v0->unk_18.unk_00_4); + Options_SetButtonMode(v0->unk_1C, v0->unk_18.unk_00_8); + Options_SetFrame(v0->unk_1C, v0->unk_18.unk_00_10); sub_02004FB8(v0->unk_18.unk_00_4); - sub_02027A68(NULL, v0->unk_18.unk_00_8); + Options_SetSystemButtonMode(NULL, v0->unk_18.unk_00_8); sub_02002AC8(1); OverlayManager_FreeData(param0); Heap_Destroy(v0->unk_00); @@ -632,9 +632,9 @@ static void ov74_021D17CC (UnkStruct_ov74_021D0D80 * param0, u16 param1) if (param1 == 1) { sub_02004FB8(param0->unk_5C[param1].unk_02); } else if (param1 == 4) { - sub_02027A68(NULL, param0->unk_5C[param1].unk_02); + Options_SetSystemButtonMode(NULL, param0->unk_5C[param1].unk_02); } else if (param1 == 0) { - sub_02027AAC(param0->unk_1C, param0->unk_5C[param1].unk_02); + Options_SetTextSpeed(param0->unk_1C, param0->unk_5C[param1].unk_02); ov74_021D1BE4(param0, param1, 0); } diff --git a/src/unk_02025E08.c b/src/unk_02025E08.c index 04c5622f80..ebbe3b642a 100644 --- a/src/unk_02025E08.c +++ b/src/unk_02025E08.c @@ -29,7 +29,7 @@ void Player_Init (UnkStruct_02025E0C * param0) { MI_CpuClearFast(param0, sizeof(UnkStruct_02025E0C)); - sub_02027A1C(¶m0->unk_00); + Options_Init(¶m0->unk_00); TrainerInfo_Init(¶m0->unk_04); Coins_Init(¶m0->unk_24); sub_0202CBE4(¶m0->unk_26); diff --git a/src/unk_0202F1D4.c b/src/unk_0202F1D4.c index 9b21ba30ae..2249adda86 100644 --- a/src/unk_0202F1D4.c +++ b/src/unk_0202F1D4.c @@ -494,7 +494,7 @@ void sub_0202F8AC (BattleParams * param0) v2->unk_14C[v0] = Sound_Chatter(param0->unk_F0[v0]); } - sub_02027A10(param0->unk_108, &v1->unk_1BE8); + Options_Copy(param0->unk_108, &v1->unk_1BE8); } void sub_0202FAA8 (int param0, u32 param1) @@ -572,7 +572,7 @@ void sub_0202FAFC (BattleParams * param0, SaveData * param1) param0->unk_194[v0] = v1->unk_00.unk_14C[v0]; } - sub_02027A10(sub_02025E44(param1), param0->unk_108); + Options_Copy(sub_02025E44(param1), param0->unk_108); param0->unk_108->frame = v1->unk_1BE8.frame; if (param0->unk_108->frame >= 20) { diff --git a/src/unk_02051D8C.c b/src/unk_02051D8C.c index 5fc6304eeb..461373de6c 100644 --- a/src/unk_02051D8C.c +++ b/src/unk_02051D8C.c @@ -104,7 +104,7 @@ BattleParams * sub_02051D8C (int param0, u32 param1) v1->unk_E0 = sub_0207D3C0(param0); v1->unk_E8 = sub_02026324(param0); - v1->unk_108 = sub_020279FC(param0); + v1->unk_108 = Options_AllocMemory(param0); v1->unk_10C = sub_0206D140(param0); v1->unk_E4 = NULL; v1->unk_190 = NULL; @@ -173,7 +173,7 @@ BattleParams * sub_02051F4C (int param0, const FieldSystem * param1) MessageLoader_Free(v2); TrainerInfo_SetGender(v4->unk_D0[0], TrainerInfo_Gender(v0) ^ 1); sub_0205281C(v4, param1); - sub_02027A10(v1, v4->unk_108); + Options_Copy(v1, v4->unk_108); v4->unk_138 = sub_02055BA8(param1); sub_0207D570(v4->unk_E0, 4, 20, param0); @@ -276,7 +276,7 @@ void sub_020521B8 (BattleParams * param0, const FieldSystem * param1, SaveData * sub_02052164(param0, v1, 0); sub_0207D3EC(v2, param0->unk_E0); sub_02026338(v3, param0->unk_E8); - sub_02027A10(v5, param0->unk_108); + Options_Copy(v5, param0->unk_108); sub_020521A4(param0, v4, 0); param0->unk_EC = SaveData_PCBoxes(param2); @@ -337,7 +337,7 @@ void sub_02052348 (BattleParams * param0, const FieldSystem * param1, int param2 Heap_FreeToHeap(v8); sub_0207D3EC(v4, param0->unk_E0); sub_02026338(v5, param0->unk_E8); - sub_02027A10(v7, param0->unk_108); + Options_Copy(v7, param0->unk_108); sub_020521A4(param0, v6, 0); param0->unk_EC = SaveData_PCBoxes(param1->saveData); @@ -407,7 +407,7 @@ void sub_020524E4 (BattleParams * param0, const FieldSystem * param1, const Part sub_0207D3EC(v1, param0->unk_E0); sub_02026338(v2, param0->unk_E8); - sub_02027A10(v4, param0->unk_108); + Options_Copy(v4, param0->unk_108); sub_020521A4(param0, v3, 0); param0->unk_EC = SaveData_PCBoxes(param1->saveData);