Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions include/text_options_strings.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
29 changes: 29 additions & 0 deletions src/game/mario.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
24 changes: 24 additions & 0 deletions src/game/options_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,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] = {
Expand Down Expand Up @@ -215,6 +219,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
Expand Down Expand Up @@ -279,6 +299,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 ),

};

Expand Down
4 changes: 4 additions & 0 deletions src/pc/cheats.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ struct CheatList {
bool ExitAnywhere;
bool HugeMario;
bool TinyMario;
bool WingCap;
bool MetalCap;
bool VanishCap;
bool NormalCap;
};

extern struct CheatList Cheats;
Expand Down