From e53335ae8cbe792526a388c8b7d38eeca7b7c301 Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 18:56:25 +0200 Subject: [PATCH 1/8] Update cheats.h Add cap cheats --- src/pc/cheats.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pc/cheats.h b/src/pc/cheats.h index eaf71ab4..fbc40ab7 100644 --- a/src/pc/cheats.h +++ b/src/pc/cheats.h @@ -13,6 +13,9 @@ struct CheatList { bool ExitAnywhere; bool HugeMario; bool TinyMario; + bool WingCap; + bool MetalCap; + bool VanishCap; }; extern struct CheatList Cheats; From 084512b4b11cf3aa4eca48c550f5b3736d2844db Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 18:58:23 +0200 Subject: [PATCH 2/8] Update options_menu.c add cheat menu item --- src/game/options_menu.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/game/options_menu.c b/src/game/options_menu.c index 56dba619..212356fd 100644 --- a/src/game/options_menu.c +++ b/src/game/options_menu.c @@ -102,6 +102,9 @@ static const u8 optsCheatsStr[][64] = { { TEXT_OPT_CHEAT7 }, { TEXT_OPT_CHEAT8 }, { TEXT_OPT_CHEAT9 }, + { TEXT_OPT_WING_CAP }, + { TEXT_OPT_METAL_CAP }, + { TEXT_OPT_VANISH_CAP }, }; static const u8 bindStr[][32] = { @@ -215,6 +218,22 @@ static void optvideo_apply(UNUSED struct Option *self, s32 arg) { if (!arg) configWindow.settings_changed = true; } +static void setCap_Wing(UNUSED struct Option *self, s32 arg) { + Cheats.WingCap = true; + Cheats.MetalCap = false; + Cheats.VanishCap = false; +} +static void setCap_Metal(UNUSED struct Option *self, s32 arg) { + Cheats.WingCap = false; + Cheats.MetalCap = true; + Cheats.VanishCap = false; +} +static void setCap_Vanish(UNUSED struct Option *self, s32 arg) { + Cheats.WingCap = false; + Cheats.MetalCap = false; + Cheats.VanishCap = true; +} + /* submenu option lists */ #ifdef BETTERCAMERA @@ -279,6 +298,9 @@ static struct Option optsCheats[] = { DEF_OPT_TOGGLE( optsCheatsStr[6], &Cheats.ExitAnywhere ), DEF_OPT_TOGGLE( optsCheatsStr[7], &Cheats.HugeMario ), DEF_OPT_TOGGLE( optsCheatsStr[8], &Cheats.TinyMario ), + DEF_OPT_BUTTON( optsCheatsStr[9], setCap_Wing ), + DEF_OPT_BUTTON( optsCheatsStr[10], setCap_Metal ), + DEF_OPT_BUTTON( optsCheatsStr[11], setCap_Vanish ), }; From a8910563408d4970fafb0d0082e6546b59a27a45 Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 18:59:27 +0200 Subject: [PATCH 3/8] Update mario.c set cap flags --- src/game/mario.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/game/mario.c b/src/game/mario.c index 5f8e5114..251247c9 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -1408,6 +1408,16 @@ void update_mario_inputs(struct MarioState *m) { m->collidedObjInteractTypes = m->marioObj->collidedObjInteractTypes; m->flags &= 0xFFFFFF; + if(Cheats.EnableCheats) { + if(Cheats.WingCap) { + m->flags |= MARIO_WING_CAP; + } else if(Cheats.MetalCap) { + m->flags |= MARIO_METAL_CAP; + } else if(Cheats.VanishCap) { + m->flags |= MARIO_VANISH_CAP; + } + } + update_mario_button_inputs(m); update_mario_joystick_inputs(m); update_mario_geometry_inputs(m); From 7928407188bdb50dd6556afa81ef4b62b81cd769 Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 19:15:26 +0200 Subject: [PATCH 4/8] Update cheats.h Reset cap --- src/pc/cheats.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pc/cheats.h b/src/pc/cheats.h index fbc40ab7..77f7f319 100644 --- a/src/pc/cheats.h +++ b/src/pc/cheats.h @@ -16,6 +16,7 @@ struct CheatList { bool WingCap; bool MetalCap; bool VanishCap; + bool NormalCap; }; extern struct CheatList Cheats; From 59b34230f02b2506af27e2b1c155756c9ffd52d3 Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 19:16:26 +0200 Subject: [PATCH 5/8] Update text_options_strings.h.in Menu text --- include/text_options_strings.h.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/text_options_strings.h.in b/include/text_options_strings.h.in index a1ce481f..07a9d5d4 100644 --- a/include/text_options_strings.h.in +++ b/include/text_options_strings.h.in @@ -84,6 +84,10 @@ #define TEXT_OPT_CHEAT7 _("EXIT COURSE AT ANY TIME") #define TEXT_OPT_CHEAT8 _("HUGE MARIO") #define TEXT_OPT_CHEAT9 _("TINY MARIO") +#define TEXT_OPT_WING_CAP _("GET WING CAP") +#define TEXT_OPT_METAL_CAP _("GET METAL CAP") +#define TEXT_OPT_VANISH_CAP _("GET VANISH CAP") +#define TEXT_OPT_NORMAL_CAP _("RESET CAP") #else // VERSION @@ -148,6 +152,10 @@ #define TEXT_OPT_CHEAT7 _("Exit course at any time") #define TEXT_OPT_CHEAT8 _("Huge Mario") #define TEXT_OPT_CHEAT9 _("Tiny Mario") +#define TEXT_OPT_WING_CAP _("Get WING Cap") +#define TEXT_OPT_METAL_CAP _("Get METAL Cap") +#define TEXT_OPT_VANISH_CAP _("Get VANISH Cap") +#define TEXT_OPT_NORMAL_CAP _("Reset Cap") #endif // VERSION From 7f01997211b639637ed13d8e9d4e2d3be21f3ff2 Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 19:17:51 +0200 Subject: [PATCH 6/8] Update options_menu.c reset cap menu --- src/game/options_menu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/game/options_menu.c b/src/game/options_menu.c index 212356fd..021ffe6f 100644 --- a/src/game/options_menu.c +++ b/src/game/options_menu.c @@ -105,6 +105,7 @@ static const u8 optsCheatsStr[][64] = { { TEXT_OPT_WING_CAP }, { TEXT_OPT_METAL_CAP }, { TEXT_OPT_VANISH_CAP }, + { TEXT_OPT_NORMAL_CAP }, }; static const u8 bindStr[][32] = { @@ -222,16 +223,25 @@ static void setCap_Wing(UNUSED struct Option *self, s32 arg) { Cheats.WingCap = true; Cheats.MetalCap = false; Cheats.VanishCap = false; + Cheats.NormalCap = false; } static void setCap_Metal(UNUSED struct Option *self, s32 arg) { Cheats.WingCap = false; Cheats.MetalCap = true; Cheats.VanishCap = false; + Cheats.NormalCap = false; } static void setCap_Vanish(UNUSED struct Option *self, s32 arg) { Cheats.WingCap = false; Cheats.MetalCap = false; Cheats.VanishCap = true; + Cheats.NormalCap = false; +} +static void setCap_Normal(UNUSED struct Option *self, s32 arg) { + Cheats.WingCap = false; + Cheats.MetalCap = false; + Cheats.VanishCap = false; + Cheats.NormalCap = true; } /* submenu option lists */ @@ -301,6 +311,7 @@ static struct Option optsCheats[] = { DEF_OPT_BUTTON( optsCheatsStr[9], setCap_Wing ), DEF_OPT_BUTTON( optsCheatsStr[10], setCap_Metal ), DEF_OPT_BUTTON( optsCheatsStr[11], setCap_Vanish ), + DEF_OPT_BUTTON( optsCheatsStr[12], setCap_Normal ), }; From ea7ba1aafe0a8f617a7007f92fff9359661369ea Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 19:18:49 +0200 Subject: [PATCH 7/8] Update mario.c reset cap flags --- src/game/mario.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/game/mario.c b/src/game/mario.c index 251247c9..4318c502 100644 --- a/src/game/mario.c +++ b/src/game/mario.c @@ -1411,11 +1411,30 @@ void update_mario_inputs(struct MarioState *m) { if(Cheats.EnableCheats) { if(Cheats.WingCap) { m->flags |= MARIO_WING_CAP; - } else if(Cheats.MetalCap) { + } + // else { + // m->flags &= ~MARIO_WING_CAP; + // } + if(Cheats.MetalCap) { m->flags |= MARIO_METAL_CAP; - } else if(Cheats.VanishCap) { + } + // else { + // m->flags &= ~MARIO_METAL_CAP; + // } + if(Cheats.VanishCap) { m->flags |= MARIO_VANISH_CAP; - } + } + // else { + // m->flags &= ~MARIO_VANISH_CAP; + // } + + + if(Cheats.NormalCap) { + m->flags &= ~MARIO_WING_CAP; + m->flags &= ~MARIO_METAL_CAP; + m->flags &= ~MARIO_VANISH_CAP; + Cheats.NormalCap = false; + } } update_mario_button_inputs(m); From 8aef12e09c2e6d85d5c6c79fab4baf68e732376d Mon Sep 17 00:00:00 2001 From: Martin Pham Date: Mon, 3 Aug 2020 20:09:17 +0200 Subject: [PATCH 8/8] Update options_menu.c --- src/game/options_menu.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/game/options_menu.c b/src/game/options_menu.c index 021ffe6f..39e08ffd 100644 --- a/src/game/options_menu.c +++ b/src/game/options_menu.c @@ -221,21 +221,12 @@ static void optvideo_apply(UNUSED struct Option *self, s32 arg) { static void setCap_Wing(UNUSED struct Option *self, s32 arg) { Cheats.WingCap = true; - Cheats.MetalCap = false; - Cheats.VanishCap = false; - Cheats.NormalCap = false; } static void setCap_Metal(UNUSED struct Option *self, s32 arg) { - Cheats.WingCap = false; Cheats.MetalCap = true; - Cheats.VanishCap = false; - Cheats.NormalCap = false; } static void setCap_Vanish(UNUSED struct Option *self, s32 arg) { - Cheats.WingCap = false; - Cheats.MetalCap = false; Cheats.VanishCap = true; - Cheats.NormalCap = false; } static void setCap_Normal(UNUSED struct Option *self, s32 arg) { Cheats.WingCap = false;