mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-29 07:23:01 +00:00
Remove built-in cheats
This commit is contained in:
parent
a33f8592f8
commit
8ab0e17876
26 changed files with 22 additions and 162 deletions
|
@ -84,6 +84,10 @@ override_field_invisible = {
|
||||||
"GraphNode": [ "_guard1", "_guard2" ],
|
"GraphNode": [ "_guard1", "_guard2" ],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override_field_deprecated = {
|
||||||
|
"ServerSettings": [ "enableCheats" ],
|
||||||
|
}
|
||||||
|
|
||||||
override_field_immutable = {
|
override_field_immutable = {
|
||||||
"MarioState": [ "playerIndex", "controller", "marioObj", "marioBodyState", "statusForCamera", "area" ],
|
"MarioState": [ "playerIndex", "controller", "marioObj", "marioBodyState", "statusForCamera", "area" ],
|
||||||
"MarioAnimation": [ "animDmaTable" ],
|
"MarioAnimation": [ "animDmaTable" ],
|
||||||
|
@ -521,6 +525,10 @@ def doc_struct_field(struct, field):
|
||||||
if fid in override_field_invisible[sid]:
|
if fid in override_field_invisible[sid]:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
if sid in override_field_deprecated:
|
||||||
|
if fid in override_field_deprecated[sid]:
|
||||||
|
return ''
|
||||||
|
|
||||||
if '???' in lvt or '???' in lot:
|
if '???' in lvt or '???' in lot:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
|
@ -2494,7 +2494,6 @@
|
||||||
| Field | Type | Access |
|
| Field | Type | Access |
|
||||||
| ----- | ---- | ------ |
|
| ----- | ---- | ------ |
|
||||||
| bubbleDeath | `integer` | |
|
| bubbleDeath | `integer` | |
|
||||||
| enableCheats | `integer` | |
|
|
||||||
| enablePlayerList | `integer` | |
|
| enablePlayerList | `integer` | |
|
||||||
| enablePlayersInLevelDisplay | `integer` | |
|
| enablePlayersInLevelDisplay | `integer` | |
|
||||||
| headlessServer | `integer` | |
|
| headlessServer | `integer` | |
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "hardcoded.h"
|
#include "hardcoded.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/djui/djui.h"
|
#include "pc/djui/djui.h"
|
||||||
#include "src/pc/djui/djui_panel_pause.h"
|
#include "src/pc/djui/djui_panel_pause.h"
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/network/lag_compensation.h"
|
#include "pc/network/lag_compensation.h"
|
||||||
#include "pc/lua/smlua_hooks.h"
|
#include "pc/lua/smlua_hooks.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
u8 sDelayInvincTimer;
|
u8 sDelayInvincTimer;
|
||||||
s16 gInteractionInvulnerable;
|
s16 gInteractionInvulnerable;
|
||||||
|
@ -2398,7 +2397,7 @@ void check_lava_boost(struct MarioState *m) {
|
||||||
if (!m) { return; }
|
if (!m) { return; }
|
||||||
bool allow = true;
|
bool allow = true;
|
||||||
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_LAVA_FLOOR, &allow);
|
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_LAVA_FLOOR, &allow);
|
||||||
if (m->action == ACT_BUBBLED || (gServerSettings.enableCheats && gCheats.godMode) || (!allow)) { return; }
|
if (m->action == ACT_BUBBLED || (!allow)) { return; }
|
||||||
if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) {
|
if (!(m->action & ACT_FLAG_RIDING_SHELL) && m->pos[1] < m->floorHeight + 10.0f) {
|
||||||
if (!(m->flags & MARIO_METAL_CAP)) {
|
if (!(m->flags & MARIO_METAL_CAP)) {
|
||||||
m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18;
|
m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 12 : 18;
|
||||||
|
|
|
@ -39,7 +39,6 @@
|
||||||
#include "obj_behaviors.h"
|
#include "obj_behaviors.h"
|
||||||
#include "hardcoded.h"
|
#include "hardcoded.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "pc/network/socket/socket.h"
|
#include "pc/network/socket/socket.h"
|
||||||
|
@ -1685,23 +1684,6 @@ void update_mario_inputs(struct MarioState *m) {
|
||||||
|
|
||||||
debug_print_speed_action_normal(m);
|
debug_print_speed_action_normal(m);
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.moonJump && m->playerIndex == 0 && m->controller->buttonDown & L_TRIG) {
|
|
||||||
if (m->action == ACT_FORWARD_GROUND_KB ||
|
|
||||||
m->action == ACT_BACKWARD_GROUND_KB ||
|
|
||||||
m->action == ACT_SOFT_FORWARD_GROUND_KB ||
|
|
||||||
m->action == ACT_HARD_BACKWARD_GROUND_KB ||
|
|
||||||
m->action == ACT_FORWARD_AIR_KB ||
|
|
||||||
m->action == ACT_BACKWARD_AIR_KB ||
|
|
||||||
m->action == ACT_HARD_FORWARD_AIR_KB ||
|
|
||||||
m->action == ACT_HARD_BACKWARD_AIR_KB ||
|
|
||||||
m->action == ACT_AIR_HIT_WALL) {
|
|
||||||
set_mario_action(m, ACT_FREEFALL, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800);
|
|
||||||
m->vel[1] = 40;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Developer stuff */
|
/* Developer stuff */
|
||||||
#ifdef DEVELOPMENT
|
#ifdef DEVELOPMENT
|
||||||
if (gNetworkSystem == &gNetworkSystemSocket) {
|
if (gNetworkSystem == &gNetworkSystemSocket) {
|
||||||
|
@ -2130,18 +2112,6 @@ s32 execute_mario_action(UNUSED struct Object *o) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gServerSettings.enableCheats) {
|
|
||||||
if (gCheats.godMode) {
|
|
||||||
gMarioState->health = 0x880;
|
|
||||||
gMarioState->healCounter = 0;
|
|
||||||
gMarioState->hurtCounter = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gCheats.infiniteLives && gMarioState->numLives < 100) {
|
|
||||||
gMarioState->numLives = 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gMarioState->action) {
|
if (gMarioState->action) {
|
||||||
if (gMarioState->action != ACT_BUBBLED) {
|
if (gMarioState->action != ACT_BUBBLED) {
|
||||||
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE;
|
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_INVISIBLE;
|
||||||
|
@ -2254,10 +2224,6 @@ s32 execute_mario_action(UNUSED struct Object *o) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.bljAnywhere && gMarioState->playerIndex == 0 && gMarioState->action == ACT_LONG_JUMP && gMarioState->forwardVel < -15 && gMarioState->input & INPUT_Z_DOWN && gMarioState->pos[1] - gMarioState->floorHeight < 90) {
|
|
||||||
gMarioState->vel[1] = -30;
|
|
||||||
}
|
|
||||||
|
|
||||||
play_infinite_stairs_music();
|
play_infinite_stairs_music();
|
||||||
gMarioState->marioObj->oInteractStatus = 0;
|
gMarioState->marioObj->oInteractStatus = 0;
|
||||||
queue_particle_rumble();
|
queue_particle_rumble();
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "hardcoded.h"
|
#include "hardcoded.h"
|
||||||
|
|
||||||
void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) {
|
void play_flip_sounds(struct MarioState *m, s16 frame1, s16 frame2, s16 frame3) {
|
||||||
|
@ -58,7 +57,7 @@ s32 lava_boost_on_wall(struct MarioState *m) {
|
||||||
if (!m) { return 0; }
|
if (!m) { return 0; }
|
||||||
bool allow = true;
|
bool allow = true;
|
||||||
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_LAVA_WALL, &allow);
|
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_LAVA_WALL, &allow);
|
||||||
if ((gServerSettings.enableCheats && gCheats.godMode) || (!allow) || gDjuiInMainMenu) { return FALSE; }
|
if ((!allow) || gDjuiInMainMenu) { return FALSE; }
|
||||||
m->faceAngle[1] = atan2s(m->wallNormal[2], m->wallNormal[0]);
|
m->faceAngle[1] = atan2s(m->wallNormal[2], m->wallNormal[0]);
|
||||||
|
|
||||||
if (m->forwardVel < 24.0f) {
|
if (m->forwardVel < 24.0f) {
|
||||||
|
@ -76,7 +75,6 @@ s32 lava_boost_on_wall(struct MarioState *m) {
|
||||||
|
|
||||||
s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) {
|
s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) {
|
||||||
if (!m) { return 0; }
|
if (!m) { return 0; }
|
||||||
if (gServerSettings.enableCheats && gCheats.godMode && m->playerIndex == 0) { return FALSE; }
|
|
||||||
|
|
||||||
f32 fallHeight;
|
f32 fallHeight;
|
||||||
f32 damageHeight;
|
f32 damageHeight;
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
#define POLE_NONE 0
|
#define POLE_NONE 0
|
||||||
#define POLE_TOUCHED_FLOOR 1
|
#define POLE_TOUCHED_FLOOR 1
|
||||||
|
@ -343,11 +342,6 @@ s32 perform_hanging_step(struct MarioState *m, Vec3f nextPos) {
|
||||||
s32 returnValue = 0;
|
s32 returnValue = 0;
|
||||||
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_HANG, &returnValue)) return returnValue;
|
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_HANG, &returnValue)) return returnValue;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.superSpeed && m->playerIndex == 0) {
|
|
||||||
m->vel[0] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
m->vel[2] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct WallCollisionData wcd = { 0 };
|
struct WallCollisionData wcd = { 0 };
|
||||||
resolve_and_return_wall_collisions_data(nextPos, 50.0f, 50.0f, &wcd);
|
resolve_and_return_wall_collisions_data(nextPos, 50.0f, 50.0f, &wcd);
|
||||||
m->wall = (wcd.numWalls > 0)
|
m->wall = (wcd.numWalls > 0)
|
||||||
|
|
|
@ -633,15 +633,13 @@ s32 act_debug_free_move(struct MarioState *m) {
|
||||||
u32 action = ACT_IDLE;
|
u32 action = ACT_IDLE;
|
||||||
|
|
||||||
#ifndef DEVELOPMENT
|
#ifndef DEVELOPMENT
|
||||||
if (gServerSettings.enableCheats == 0) {
|
if (m->pos[1] <= m->waterLevel - 100) {
|
||||||
if (m->pos[1] <= m->waterLevel - 100) {
|
action = ACT_WATER_IDLE;
|
||||||
action = ACT_WATER_IDLE;
|
} else {
|
||||||
} else {
|
action = ACT_FREEFALL;
|
||||||
action = ACT_FREEFALL;
|
|
||||||
}
|
|
||||||
set_mario_action(m, action, 0);
|
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
set_mario_action(m, action, 0);
|
||||||
|
return FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// integer immediates, generates convert instructions for some reason
|
// integer immediates, generates convert instructions for some reason
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "rumble_init.h"
|
#include "rumble_init.h"
|
||||||
#include "pc/debuglog.h"
|
#include "pc/debuglog.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
|
|
||||||
|
@ -160,7 +159,7 @@ s32 set_triple_jump_action(struct MarioState *m, UNUSED u32 action, UNUSED u32 a
|
||||||
|
|
||||||
if (m->flags & MARIO_WING_CAP) {
|
if (m->flags & MARIO_WING_CAP) {
|
||||||
return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0);
|
return set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0);
|
||||||
} else if (m->forwardVel > 20.0f || (gServerSettings.enableCheats && gCheats.alwaysTripleJump && m->playerIndex == 0)) {
|
} else if (m->forwardVel > 20.0f) {
|
||||||
return set_mario_action(m, ACT_TRIPLE_JUMP, 0);
|
return set_mario_action(m, ACT_TRIPLE_JUMP, 0);
|
||||||
} else {
|
} else {
|
||||||
return set_mario_action(m, ACT_JUMP, 0);
|
return set_mario_action(m, ACT_JUMP, 0);
|
||||||
|
@ -483,12 +482,7 @@ void update_walking_speed(struct MarioState *m) {
|
||||||
m->forwardVel = 48.0f;
|
m->forwardVel = 48.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// handles the "Super responsive controls" cheat. The content of the "else" is Mario's original code for turning around.
|
m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800);
|
||||||
if (gServerSettings.enableCheats && gCheats.responsiveControls && m->playerIndex == 0) {
|
|
||||||
m->faceAngle[1] = m->intendedYaw;
|
|
||||||
} else {
|
|
||||||
m->faceAngle[1] = m->intendedYaw - approach_s32((s16)(m->intendedYaw - m->faceAngle[1]), 0, 0x800, 0x800);
|
|
||||||
}
|
|
||||||
apply_slope_accel(m);
|
apply_slope_accel(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "pc/lua/smlua_hooks.h"
|
#include "pc/lua/smlua_hooks.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
#define MIN_SWIM_STRENGTH 160
|
#define MIN_SWIM_STRENGTH 160
|
||||||
#define MIN_SWIM_SPEED 16.0f
|
#define MIN_SWIM_SPEED 16.0f
|
||||||
|
@ -195,11 +194,6 @@ u32 perform_water_step(struct MarioState *m) {
|
||||||
s32 returnValue = 0;
|
s32 returnValue = 0;
|
||||||
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_WATER, &returnValue)) return (u32) returnValue;
|
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_WATER, &returnValue)) return (u32) returnValue;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.superSpeed && m->playerIndex == 0) {
|
|
||||||
m->vel[0] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
m->vel[2] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3f_copy(step, m->vel);
|
vec3f_copy(step, m->vel);
|
||||||
|
|
||||||
if (m->action & ACT_FLAG_SWIMMING) {
|
if (m->action & ACT_FLAG_SWIMMING) {
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include "mario_step.h"
|
#include "mario_step.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "game/hardcoded.h"
|
#include "game/hardcoded.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
static s16 sMovingSandSpeeds[] = { 12, 8, 4, 0 };
|
static s16 sMovingSandSpeeds[] = { 12, 8, 4, 0 };
|
||||||
|
|
||||||
|
@ -114,7 +113,7 @@ u32 mario_update_quicksand(struct MarioState *m, f32 sinkingSpeed) {
|
||||||
bool allow = true;
|
bool allow = true;
|
||||||
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_QUICKSAND, &allow);
|
smlua_call_event_hooks_mario_param_and_int_ret_bool(HOOK_ALLOW_HAZARD_SURFACE, m, HAZARD_TYPE_QUICKSAND, &allow);
|
||||||
extern bool gDjuiInMainMenu;
|
extern bool gDjuiInMainMenu;
|
||||||
if (m->action & ACT_FLAG_RIDING_SHELL || (gServerSettings.enableCheats && gCheats.godMode && m->playerIndex == 0) || (!allow) || gDjuiInMainMenu) {
|
if (m->action & ACT_FLAG_RIDING_SHELL || (!allow) || gDjuiInMainMenu) {
|
||||||
m->quicksandDepth = 0.0f;
|
m->quicksandDepth = 0.0f;
|
||||||
} else {
|
} else {
|
||||||
if (m->quicksandDepth < 1.1f) {
|
if (m->quicksandDepth < 1.1f) {
|
||||||
|
@ -353,11 +352,6 @@ s32 perform_ground_step(struct MarioState *m) {
|
||||||
s32 returnValue = 0;
|
s32 returnValue = 0;
|
||||||
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_GROUND, &returnValue)) return returnValue;
|
if (smlua_call_event_hooks_mario_param_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_GROUND, &returnValue)) return returnValue;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.superSpeed && m->playerIndex == 0 && m->action != ACT_BUBBLED) {
|
|
||||||
m->vel[0] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
m->vel[2] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
Vec3f step = { 0 };
|
Vec3f step = { 0 };
|
||||||
if (m->floor) {
|
if (m->floor) {
|
||||||
|
@ -719,11 +713,6 @@ s32 perform_air_step(struct MarioState *m, u32 stepArg) {
|
||||||
s32 returnValue = 0;
|
s32 returnValue = 0;
|
||||||
if (smlua_call_event_hooks_mario_param_and_int_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_AIR, stepArg, &returnValue)) return returnValue;
|
if (smlua_call_event_hooks_mario_param_and_int_and_int_ret_int(HOOK_BEFORE_PHYS_STEP, m, STEP_TYPE_AIR, stepArg, &returnValue)) return returnValue;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.superSpeed && m->playerIndex == 0 && m->action != ACT_BUBBLED) {
|
|
||||||
m->vel[0] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
m->vel[2] *= SUPER_SPEED_MULTIPLIER;
|
|
||||||
}
|
|
||||||
|
|
||||||
m->wall = NULL;
|
m->wall = NULL;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "engine/math_util.h"
|
#include "engine/math_util.h"
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/lua/smlua.h"
|
#include "pc/lua/smlua.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flags controlling what debug info is displayed.
|
* Flags controlling what debug info is displayed.
|
||||||
|
@ -294,10 +293,6 @@ void bhv_mario_update(void) {
|
||||||
particleFlags |= gMarioState->particleFlags;
|
particleFlags |= gMarioState->particleFlags;
|
||||||
gCurrentObject->oMarioParticleFlags = particleFlags;
|
gCurrentObject->oMarioParticleFlags = particleFlags;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats && gCheats.rapidFireA && gMarioState->playerIndex == 0) {
|
|
||||||
gMarioState->controller->buttonDown &= ~A_BUTTON;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This code is meant to preserve old Lua mods' ability to set overridePaletteIndex and paletteIndex and still work
|
// This code is meant to preserve old Lua mods' ability to set overridePaletteIndex and paletteIndex and still work
|
||||||
// as they expected. USE_REAL_PALETTE_VAR is meant to help support cases where mods will do:
|
// as they expected. USE_REAL_PALETTE_VAR is meant to help support cases where mods will do:
|
||||||
// np.overridePaletteIndex = np.paletteIndex
|
// np.overridePaletteIndex = np.paletteIndex
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
#include "cheats.h"
|
|
||||||
|
|
||||||
struct Cheats gCheats;
|
|
|
@ -1,22 +0,0 @@
|
||||||
#ifndef _CHEATS_H
|
|
||||||
#define _CHEATS_H
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "network/network.h"
|
|
||||||
|
|
||||||
#define SUPER_SPEED_MULTIPLIER 4
|
|
||||||
|
|
||||||
struct Cheats {
|
|
||||||
bool moonJump;
|
|
||||||
bool godMode;
|
|
||||||
bool infiniteLives;
|
|
||||||
bool superSpeed;
|
|
||||||
bool responsiveControls;
|
|
||||||
bool rapidFireA;
|
|
||||||
bool alwaysTripleJump;
|
|
||||||
bool bljAnywhere;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern struct Cheats gCheats;
|
|
||||||
|
|
||||||
#endif // _CHEATS_H
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "cliopts.h"
|
#include "cliopts.h"
|
||||||
#include "configfile.h"
|
#include "configfile.h"
|
||||||
#include "cheats.h"
|
|
||||||
#include "pc_main.h"
|
#include "pc_main.h"
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
@ -15,7 +14,6 @@ struct PCCLIOptions gCLIOpts;
|
||||||
|
|
||||||
static void print_help(void) {
|
static void print_help(void) {
|
||||||
printf("\nsm64ex-coop\n");
|
printf("\nsm64ex-coop\n");
|
||||||
printf("%-20s\tEnables the cheat menu.\n", "--cheats");
|
|
||||||
printf("%-20s\tSaves the configuration file as CONFIGNAME.\n", "--configfile CONFIGNAME");
|
printf("%-20s\tSaves the configuration file as CONFIGNAME.\n", "--configfile CONFIGNAME");
|
||||||
printf("%-20s\tSets additional data directory name (only 'res' is used by default).\n", "--gamedir DIRNAME");
|
printf("%-20s\tSets additional data directory name (only 'res' is used by default).\n", "--gamedir DIRNAME");
|
||||||
printf("%-20s\tOverrides the default save/config path ('!' expands to executable path).\n", "--savepath SAVEPATH");
|
printf("%-20s\tOverrides the default save/config path ('!' expands to executable path).\n", "--savepath SAVEPATH");
|
||||||
|
@ -72,10 +70,7 @@ bool parse_cli_opts(int argc, char* argv[]) {
|
||||||
gCLIOpts.NetworkPort = 7777;
|
gCLIOpts.NetworkPort = 7777;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (strcmp(argv[i], "--cheats") == 0) // Enable cheats menu
|
} else if (strcmp(argv[i], "--poolsize") == 0) // Main pool size
|
||||||
gServerSettings.enableCheats = true;
|
|
||||||
|
|
||||||
else if (strcmp(argv[i], "--poolsize") == 0) // Main pool size
|
|
||||||
arg_uint("--poolsize", argv[++i], &gCLIOpts.PoolSize);
|
arg_uint("--poolsize", argv[++i], &gCLIOpts.PoolSize);
|
||||||
|
|
||||||
else if (strcmp(argv[i], "--configfile") == 0 && (i + 1) < argc)
|
else if (strcmp(argv[i], "--configfile") == 0 && (i + 1) < argc)
|
||||||
|
|
|
@ -115,7 +115,6 @@ bool configEnableCamera = false;
|
||||||
bool configCameraAnalog = false;
|
bool configCameraAnalog = false;
|
||||||
bool configCameraMouse = false;
|
bool configCameraMouse = false;
|
||||||
bool configSkipIntro = 0;
|
bool configSkipIntro = 0;
|
||||||
bool configEnableCheats = 0;
|
|
||||||
bool configBubbleDeath = true;
|
bool configBubbleDeath = true;
|
||||||
unsigned int configAmountofPlayers = 16;
|
unsigned int configAmountofPlayers = 16;
|
||||||
bool configHUD = true;
|
bool configHUD = true;
|
||||||
|
@ -214,7 +213,6 @@ static const struct ConfigOption options[] = {
|
||||||
{.name = "bettercam_pan_level", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraPan},
|
{.name = "bettercam_pan_level", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraPan},
|
||||||
{.name = "bettercam_degrade", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraDegrade},
|
{.name = "bettercam_degrade", .type = CONFIG_TYPE_UINT, .uintValue = &configCameraDegrade},
|
||||||
{.name = "skip_intro", .type = CONFIG_TYPE_BOOL, .boolValue = &configSkipIntro},
|
{.name = "skip_intro", .type = CONFIG_TYPE_BOOL, .boolValue = &configSkipIntro},
|
||||||
{.name = "enable_cheats", .type = CONFIG_TYPE_BOOL, .boolValue = &configEnableCheats},
|
|
||||||
// debug
|
// debug
|
||||||
{.name = "debug_offset", .type = CONFIG_TYPE_U64 , .u64Value = &gPcDebug.bhvOffset},
|
{.name = "debug_offset", .type = CONFIG_TYPE_U64 , .u64Value = &gPcDebug.bhvOffset},
|
||||||
{.name = "debug_tags", .type = CONFIG_TYPE_U64 , .u64Value = gPcDebug.tags},
|
{.name = "debug_tags", .type = CONFIG_TYPE_U64 , .u64Value = gPcDebug.tags},
|
||||||
|
|
|
@ -76,7 +76,6 @@ extern bool configCameraMouse;
|
||||||
extern bool configCameraAnalog;
|
extern bool configCameraAnalog;
|
||||||
extern bool configHUD;
|
extern bool configHUD;
|
||||||
extern bool configSkipIntro;
|
extern bool configSkipIntro;
|
||||||
extern bool configEnableCheats;
|
|
||||||
extern bool configBubbleDeath;
|
extern bool configBubbleDeath;
|
||||||
extern unsigned int configAmountofPlayers;
|
extern unsigned int configAmountofPlayers;
|
||||||
extern char configJoinIp[];
|
extern char configJoinIp[];
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
#include "djui.h"
|
|
||||||
#include "djui_panel.h"
|
|
||||||
#include "djui_panel_menu.h"
|
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
void djui_panel_cheats_create(struct DjuiBase* caller) {
|
|
||||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CHEATS, CHEATS));
|
|
||||||
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
|
||||||
{
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, MOON_JUMP), &gCheats.moonJump, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, GOD_MODE), &gCheats.godMode, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, INFINITE_LIVES), &gCheats.infiniteLives, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, SUPER_SPEED), &gCheats.superSpeed, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, RESPONSIVE_CONTROLS), &gCheats.responsiveControls, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, RAPID_FIRE), &gCheats.rapidFireA, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, BLJ_ANYWHERE), &gCheats.bljAnywhere, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(CHEATS, ALWAYS_TRIPLE_JUMP), &gCheats.alwaysTripleJump, NULL);
|
|
||||||
|
|
||||||
djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back);
|
|
||||||
}
|
|
||||||
|
|
||||||
djui_panel_add(caller, panel, NULL);
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
#pragma once
|
|
||||||
#include "djui.h"
|
|
||||||
|
|
||||||
void djui_panel_cheats_create(struct DjuiBase* caller);
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
|
|
||||||
static struct DjuiRect* sRectPort = NULL;
|
static struct DjuiRect* sRectPort = NULL;
|
||||||
static struct DjuiRect* sRectPassword = NULL;
|
static struct DjuiRect* sRectPassword = NULL;
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/mods/mods.h"
|
#include "pc/mods/mods.h"
|
||||||
#include "pc/mods/mods_utils.h"
|
#include "pc/mods/mods_utils.h"
|
||||||
#include "djui_panel_main.h"
|
#include "djui_panel_main.h"
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/pc_main.h"
|
|
||||||
#include "djui_inputbox.h"
|
#include "djui_inputbox.h"
|
||||||
|
|
||||||
static unsigned int sKnockbackIndex = 0;
|
static unsigned int sKnockbackIndex = 0;
|
||||||
|
@ -61,7 +59,6 @@ void djui_panel_host_settings_create(struct DjuiBase* caller) {
|
||||||
djui_selectionbox_create(body, DLANG(HOST_SETTINGS, ON_STAR_COLLECTION), lChoices, 3, &configStayInLevelAfterStar, NULL);
|
djui_selectionbox_create(body, DLANG(HOST_SETTINGS, ON_STAR_COLLECTION), lChoices, 3, &configStayInLevelAfterStar, NULL);
|
||||||
|
|
||||||
djui_checkbox_create(body, DLANG(HOST_SETTINGS, SKIP_INTRO_CUTSCENE), &configSkipIntro, NULL);
|
djui_checkbox_create(body, DLANG(HOST_SETTINGS, SKIP_INTRO_CUTSCENE), &configSkipIntro, NULL);
|
||||||
djui_checkbox_create(body, DLANG(HOST_SETTINGS, ENABLE_CHEATS), &configEnableCheats, NULL);
|
|
||||||
djui_checkbox_create(body, DLANG(HOST_SETTINGS, BUBBLE_ON_DEATH), &configBubbleDeath, NULL);
|
djui_checkbox_create(body, DLANG(HOST_SETTINGS, BUBBLE_ON_DEATH), &configBubbleDeath, NULL);
|
||||||
if (!gCoopCompatibility) djui_checkbox_create(body, DLANG(HOST_SETTINGS, NAMETAGS), &configNametags, NULL);
|
if (!gCoopCompatibility) djui_checkbox_create(body, DLANG(HOST_SETTINGS, NAMETAGS), &configNametags, NULL);
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,9 @@
|
||||||
#include "djui_panel_player.h"
|
#include "djui_panel_player.h"
|
||||||
#include "djui_panel_dynos.h"
|
#include "djui_panel_dynos.h"
|
||||||
#include "djui_panel_options.h"
|
#include "djui_panel_options.h"
|
||||||
#include "djui_panel_cheats.h"
|
|
||||||
#include "djui_panel_host.h"
|
#include "djui_panel_host.h"
|
||||||
#include "djui_panel_menu.h"
|
#include "djui_panel_menu.h"
|
||||||
#include "djui_panel_confirm.h"
|
#include "djui_panel_confirm.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/pc_main.h"
|
#include "pc/pc_main.h"
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "game/object_helpers.h"
|
#include "game/object_helpers.h"
|
||||||
|
@ -68,10 +66,6 @@ void djui_panel_pause_create(struct DjuiBase* caller) {
|
||||||
struct DjuiButton* button3 = djui_button_create(body, DLANG(PAUSE, OPTIONS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_create);
|
struct DjuiButton* button3 = djui_button_create(body, DLANG(PAUSE, OPTIONS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_create);
|
||||||
defaultBase = &button3->base;
|
defaultBase = &button3->base;
|
||||||
|
|
||||||
if (gServerSettings.enableCheats) {
|
|
||||||
djui_button_create(body, DLANG(PAUSE, CHEATS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_cheats_create);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gNetworkType == NT_SERVER) {
|
if (gNetworkType == NT_SERVER) {
|
||||||
djui_button_create(body, DLANG(PAUSE, SERVER_SETTINGS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_create);
|
djui_button_create(body, DLANG(PAUSE, SERVER_SETTINGS), DJUI_BUTTON_STYLE_NORMAL, djui_panel_host_create);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include "src/game/hardcoded.h"
|
#include "src/game/hardcoded.h"
|
||||||
#include "src/game/scroll_targets.h"
|
#include "src/game/scroll_targets.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/djui/djui.h"
|
#include "pc/djui/djui.h"
|
||||||
#include "pc/djui/djui_panel.h"
|
#include "pc/djui/djui_panel.h"
|
||||||
#include "pc/djui/djui_hud_utils.h"
|
#include "pc/djui/djui_hud_utils.h"
|
||||||
|
@ -117,7 +116,7 @@ bool network_init(enum NetworkType inNetworkType, bool reconnecting) {
|
||||||
gServerSettings.playerKnockbackStrength = configPlayerKnockbackStrength;
|
gServerSettings.playerKnockbackStrength = configPlayerKnockbackStrength;
|
||||||
gServerSettings.stayInLevelAfterStar = configStayInLevelAfterStar;
|
gServerSettings.stayInLevelAfterStar = configStayInLevelAfterStar;
|
||||||
gServerSettings.skipIntro = configSkipIntro;
|
gServerSettings.skipIntro = configSkipIntro;
|
||||||
gServerSettings.enableCheats = configEnableCheats;
|
gServerSettings.enableCheats = 0;
|
||||||
gServerSettings.bubbleDeath = configBubbleDeath;
|
gServerSettings.bubbleDeath = configBubbleDeath;
|
||||||
gServerSettings.enablePlayersInLevelDisplay = TRUE;
|
gServerSettings.enablePlayersInLevelDisplay = TRUE;
|
||||||
gServerSettings.enablePlayerList = TRUE;
|
gServerSettings.enablePlayerList = TRUE;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "pc/djui/djui_panel_playerlist.h"
|
#include "pc/djui/djui_panel_playerlist.h"
|
||||||
#include "pc/djui/djui_panel_menu.h"
|
#include "pc/djui/djui_panel_menu.h"
|
||||||
#include "pc/djui/djui_panel_join_message.h"
|
#include "pc/djui/djui_panel_join_message.h"
|
||||||
#include "pc/cheats.h"
|
|
||||||
#include "pc/utils/string_builder.h"
|
#include "pc/utils/string_builder.h"
|
||||||
//#define DISABLE_MODULE_LOG 1
|
//#define DISABLE_MODULE_LOG 1
|
||||||
#include "pc/debuglog.h"
|
#include "pc/debuglog.h"
|
||||||
|
|
|
@ -387,7 +387,7 @@ void network_receive_player(struct Packet* p) {
|
||||||
np->currPositionValid = true;
|
np->currPositionValid = true;
|
||||||
|
|
||||||
#ifndef DEVELOPMENT
|
#ifndef DEVELOPMENT
|
||||||
if (gNetworkType == NT_SERVER && gServerSettings.enableCheats == 0) {
|
if (gNetworkType == NT_SERVER) {
|
||||||
if (m->action == ACT_DEBUG_FREE_MOVE) {
|
if (m->action == ACT_DEBUG_FREE_MOVE) {
|
||||||
network_send_kick(np->localIndex, EKT_CLOSE_CONNECTION);
|
network_send_kick(np->localIndex, EKT_CLOSE_CONNECTION);
|
||||||
network_player_disconnected(np->localIndex);
|
network_player_disconnected(np->localIndex);
|
||||||
|
|
Loading…
Reference in a new issue