mirror of https://github.com/sm64pc/sm64pc.git
Merge pull request #166 from Leon422/nightly
Enabled a Cheat menu Thanks for the contribution, @Leon422!
This commit is contained in:
commit
15dabb7c22
|
@ -1,4 +1,4 @@
|
||||||
#ifndef TEXT_STRINGS_H
|
#ifndef TEXT_STRINGS_H
|
||||||
#define TEXT_STRINGS_H
|
#define TEXT_STRINGS_H
|
||||||
|
|
||||||
#include "text_menu_strings.h"
|
#include "text_menu_strings.h"
|
||||||
|
@ -45,6 +45,13 @@
|
||||||
#define TEXT_BIND_LEFT _("Stick Left")
|
#define TEXT_BIND_LEFT _("Stick Left")
|
||||||
#define TEXT_BIND_RIGHT _("Stick Right")
|
#define TEXT_BIND_RIGHT _("Stick Right")
|
||||||
|
|
||||||
|
#define TEXT_OPT_CHEATS _("CHEATS")
|
||||||
|
#define TEXT_OPT_CHEAT1 _("Enable cheats")
|
||||||
|
#define TEXT_OPT_CHEAT2 _("Moonjump (Press L)")
|
||||||
|
#define TEXT_OPT_CHEAT3 _("Invincible Mario")
|
||||||
|
#define TEXT_OPT_CHEAT4 _("Infinite lives")
|
||||||
|
#define TEXT_OPT_CHEAT5 _("Super speed")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Global Symbols
|
* Global Symbols
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "engine/surface_collision.h"
|
#include "engine/surface_collision.h"
|
||||||
#include "level_table.h"
|
#include "level_table.h"
|
||||||
#include "thread6.h"
|
#include "thread6.h"
|
||||||
|
#include "pc/configfile.h"
|
||||||
#ifdef BETTERCAMERA
|
#ifdef BETTERCAMERA
|
||||||
#include "bettercamera.h"
|
#include "bettercamera.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -1396,7 +1397,12 @@ void update_mario_inputs(struct MarioState *m) {
|
||||||
update_mario_geometry_inputs(m);
|
update_mario_geometry_inputs(m);
|
||||||
|
|
||||||
debug_print_speed_action_normal(m);
|
debug_print_speed_action_normal(m);
|
||||||
|
/* Moonjump cheat */
|
||||||
|
while (cheatMoonjump == true && cheatEnablecheats == true && m->controller->buttonDown & L_TRIG ){
|
||||||
|
m->vel[1] = 25;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/*End of moonjump cheat */
|
||||||
if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) {
|
if (gCameraMovementFlags & CAM_MOVE_C_UP_MODE) {
|
||||||
if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) {
|
if (m->action & ACT_FLAG_ALLOW_FIRST_PERSON) {
|
||||||
m->input |= INPUT_FIRST_PERSON;
|
m->input |= INPUT_FIRST_PERSON;
|
||||||
|
@ -1717,7 +1723,24 @@ void func_sh_8025574C(void) {
|
||||||
*/
|
*/
|
||||||
s32 execute_mario_action(UNUSED struct Object *o) {
|
s32 execute_mario_action(UNUSED struct Object *o) {
|
||||||
s32 inLoop = TRUE;
|
s32 inLoop = TRUE;
|
||||||
|
/**
|
||||||
|
* Cheat stuff
|
||||||
|
*/
|
||||||
|
while (cheatGodmode == true && cheatEnablecheats == true){
|
||||||
|
gMarioState->health = 0x880;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
while (cheatInfinitelives == true && cheatEnablecheats == true && gMarioState->numLives < 99){
|
||||||
|
gMarioState->numLives += 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
while (cheatSuperspeed == true && cheatEnablecheats == true && gMarioState->forwardVel > 0 ){
|
||||||
|
gMarioState->forwardVel += 100;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* End of cheat stuff
|
||||||
|
*/
|
||||||
if (gMarioState->action) {
|
if (gMarioState->action) {
|
||||||
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE;
|
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE;
|
||||||
mario_reset_bodystate(gMarioState);
|
mario_reset_bodystate(gMarioState);
|
||||||
|
|
|
@ -50,6 +50,8 @@ static const u8 menuStr[][32] = {
|
||||||
{ TEXT_OPT_VIDEO },
|
{ TEXT_OPT_VIDEO },
|
||||||
{ TEXT_OPT_AUDIO },
|
{ TEXT_OPT_AUDIO },
|
||||||
{ TEXT_EXIT_GAME },
|
{ TEXT_EXIT_GAME },
|
||||||
|
{ TEXT_OPT_CHEATS },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 optsCameraStr[][32] = {
|
static const u8 optsCameraStr[][32] = {
|
||||||
|
@ -75,6 +77,14 @@ static const u8 optsAudioStr[][32] = {
|
||||||
{ TEXT_OPT_MVOLUME },
|
{ TEXT_OPT_MVOLUME },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const u8 optsCheatsStr[][64] = {
|
||||||
|
{ TEXT_OPT_CHEAT1 },
|
||||||
|
{ TEXT_OPT_CHEAT2 },
|
||||||
|
{ TEXT_OPT_CHEAT3 },
|
||||||
|
{ TEXT_OPT_CHEAT4 },
|
||||||
|
{ TEXT_OPT_CHEAT5 },
|
||||||
|
};
|
||||||
|
|
||||||
static const u8 bindStr[][32] = {
|
static const u8 bindStr[][32] = {
|
||||||
{ TEXT_OPT_UNBOUND },
|
{ TEXT_OPT_UNBOUND },
|
||||||
{ TEXT_OPT_PRESSKEY },
|
{ TEXT_OPT_PRESSKEY },
|
||||||
|
@ -207,6 +217,15 @@ static struct Option optsAudio[] = {
|
||||||
DEF_OPT_SCROLL( optsAudioStr[0], &configMasterVolume, 0, MAX_VOLUME, 1 ),
|
DEF_OPT_SCROLL( optsAudioStr[0], &configMasterVolume, 0, MAX_VOLUME, 1 ),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct Option optsCheats[] = {
|
||||||
|
DEF_OPT_TOGGLE( optsCheatsStr[0], &cheatEnablecheats ),
|
||||||
|
DEF_OPT_TOGGLE( optsCheatsStr[1], &cheatMoonjump ),
|
||||||
|
DEF_OPT_TOGGLE( optsCheatsStr[2], &cheatGodmode ),
|
||||||
|
DEF_OPT_TOGGLE( optsCheatsStr[3], &cheatInfinitelives ),
|
||||||
|
DEF_OPT_TOGGLE( optsCheatsStr[4], &cheatSuperspeed),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
/* submenu definitions */
|
/* submenu definitions */
|
||||||
|
|
||||||
#ifdef BETTERCAMERA
|
#ifdef BETTERCAMERA
|
||||||
|
@ -215,6 +234,7 @@ static struct SubMenu menuCamera = DEF_SUBMENU( menuStr[4], optsCamera );
|
||||||
static struct SubMenu menuControls = DEF_SUBMENU( menuStr[5], optsControls );
|
static struct SubMenu menuControls = DEF_SUBMENU( menuStr[5], optsControls );
|
||||||
static struct SubMenu menuVideo = DEF_SUBMENU( menuStr[6], optsVideo );
|
static struct SubMenu menuVideo = DEF_SUBMENU( menuStr[6], optsVideo );
|
||||||
static struct SubMenu menuAudio = DEF_SUBMENU( menuStr[7], optsAudio );
|
static struct SubMenu menuAudio = DEF_SUBMENU( menuStr[7], optsAudio );
|
||||||
|
static struct SubMenu menuCheats = DEF_SUBMENU( menuStr[9], optsCheats );
|
||||||
|
|
||||||
/* main options menu definition */
|
/* main options menu definition */
|
||||||
|
|
||||||
|
@ -226,6 +246,8 @@ static struct Option optsMain[] = {
|
||||||
DEF_OPT_SUBMENU( menuStr[6], &menuVideo ),
|
DEF_OPT_SUBMENU( menuStr[6], &menuVideo ),
|
||||||
DEF_OPT_SUBMENU( menuStr[7], &menuAudio ),
|
DEF_OPT_SUBMENU( menuStr[7], &menuAudio ),
|
||||||
DEF_OPT_BUTTON ( menuStr[8], optmenu_act_exit ),
|
DEF_OPT_BUTTON ( menuStr[8], optmenu_act_exit ),
|
||||||
|
DEF_OPT_SUBMENU( menuStr[9], &menuCheats ),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct SubMenu menuMain = DEF_SUBMENU( menuStr[3], optsMain );
|
static struct SubMenu menuMain = DEF_SUBMENU( menuStr[3], optsMain );
|
||||||
|
|
|
@ -37,6 +37,14 @@ bool configFullscreen = false;
|
||||||
unsigned int configFiltering = 1; // 0=force nearest, 1=linear, (TODO) 2=three-point
|
unsigned int configFiltering = 1; // 0=force nearest, 1=linear, (TODO) 2=three-point
|
||||||
unsigned int configMasterVolume = MAX_VOLUME; // 0 - MAX_VOLUME
|
unsigned int configMasterVolume = MAX_VOLUME; // 0 - MAX_VOLUME
|
||||||
|
|
||||||
|
// Cheat stuff
|
||||||
|
bool cheatEnablecheats = false;
|
||||||
|
bool cheatMoonjump = false;
|
||||||
|
bool cheatGodmode = false;
|
||||||
|
bool cheatInfinitelives = false;
|
||||||
|
bool cheatSuperspeed = false;
|
||||||
|
|
||||||
|
|
||||||
// Keyboard mappings (VK_ values, by default keyboard/gamepad/mouse)
|
// Keyboard mappings (VK_ values, by default keyboard/gamepad/mouse)
|
||||||
unsigned int configKeyA[MAX_BINDS] = { 0x0026, 0x1000, 0x1103 };
|
unsigned int configKeyA[MAX_BINDS] = { 0x0026, 0x1000, 0x1103 };
|
||||||
unsigned int configKeyB[MAX_BINDS] = { 0x0033, 0x1002, 0x1101 };
|
unsigned int configKeyB[MAX_BINDS] = { 0x0033, 0x1002, 0x1101 };
|
||||||
|
|
|
@ -24,6 +24,12 @@ extern unsigned int configKeyStickUp[];
|
||||||
extern unsigned int configKeyStickDown[];
|
extern unsigned int configKeyStickDown[];
|
||||||
extern unsigned int configKeyStickLeft[];
|
extern unsigned int configKeyStickLeft[];
|
||||||
extern unsigned int configKeyStickRight[];
|
extern unsigned int configKeyStickRight[];
|
||||||
|
extern bool cheatMoonjump;
|
||||||
|
extern bool cheatGodmode;
|
||||||
|
extern bool cheatEnablecheats;
|
||||||
|
extern bool cheatInfinitelives;
|
||||||
|
extern bool cheatSuperspeed;
|
||||||
|
|
||||||
#ifdef BETTERCAMERA
|
#ifdef BETTERCAMERA
|
||||||
extern unsigned int configCameraXSens;
|
extern unsigned int configCameraXSens;
|
||||||
extern unsigned int configCameraYSens;
|
extern unsigned int configCameraYSens;
|
||||||
|
|
Loading…
Reference in New Issue