This commit is contained in:
Martin Pham 2024-01-12 08:32:39 -07:00 committed by GitHub
commit 1c9c7451e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 65 additions and 0 deletions

View File

@ -85,6 +85,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
@ -149,6 +153,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

View File

@ -1408,6 +1408,35 @@ 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 {
// m->flags &= ~MARIO_WING_CAP;
// }
if(Cheats.MetalCap) {
m->flags |= MARIO_METAL_CAP;
}
// 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);
update_mario_joystick_inputs(m);
update_mario_geometry_inputs(m);

View File

@ -105,6 +105,10 @@ 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 },
{ TEXT_OPT_NORMAL_CAP },
};
static const u8 bindStr[][32] = {
@ -218,6 +222,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;
}
static void setCap_Metal(UNUSED struct Option *self, s32 arg) {
Cheats.MetalCap = true;
}
static void setCap_Vanish(UNUSED struct Option *self, s32 arg) {
Cheats.VanishCap = true;
}
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 */
#ifdef BETTERCAMERA
@ -282,6 +302,10 @@ 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 ),
DEF_OPT_BUTTON( optsCheatsStr[12], setCap_Normal ),
};

View File

@ -13,6 +13,10 @@ struct CheatList {
bool ExitAnywhere;
bool HugeMario;
bool TinyMario;
bool WingCap;
bool MetalCap;
bool VanishCap;
bool NormalCap;
};
extern struct CheatList Cheats;