diff --git a/code/doit.sh b/code/doit.sh index 13680702..fe89b300 100755 --- a/code/doit.sh +++ b/code/doit.sh @@ -66,12 +66,12 @@ if [ "$1" == "clean" ]; then rm bin -rf exit 1 else - if [ "$1" == "nomysql" ] || [ "$2" == "nomysql" ] || [ "$3" == "nomysql" ]; then + if [ "$1" == "nomysql" ] || [ "$2" == "nomysql" ] || [ "$3" == "nomysql" ] || [ "$4" == "nomysql" ]; then mysql_link="" mysql_variant=0 fi - if [ "$1" == "nospeex" ] || [ "$2" == "nospeex" ] || [ "$3" == "nospeex" ]; then + if [ "$1" == "nospeex" ] || [ "$2" == "nospeex" ] || [ "$3" == "nospeex" ] || [ "$4" == "nospeex" ]; then speex_link="" sed -i "/#define COMPILE_CUSTOM_VOICE 1/c\#define COMPILE_CUSTOM_VOICE 0" config.hpp else @@ -79,6 +79,12 @@ else sed -i "/#define COMPILE_CUSTOM_VOICE 0/c\#define COMPILE_CUSTOM_VOICE 1" config.hpp fi + if [ "$1" == "unsafe" ] || [ "$2" == "unsafe" ] || [ "$3" == "unsafe" ] || [ "$4" == "unsafe" ]; then + sed -i "/#define ENABLE_UNSAFE 0/c\#define ENABLE_UNSAFE 1" config.hpp + else + sed -i "/#define ENABLE_UNSAFE 1/c\#define ENABLE_UNSAFE 0" config.hpp + fi + if [ "$1" == "debug" ] || [ "$2" == "debug" ] || [ "$3" == "debug" ]; then debug="-g -ggdb -O0" else diff --git a/code/gsc_player.cpp b/code/gsc_player.cpp index 9c834c0a..2115b2d5 100644 --- a/code/gsc_player.cpp +++ b/code/gsc_player.cpp @@ -10,6 +10,8 @@ extern customPlayerState_t customPlayerState[MAX_CLIENTS]; extern customStringIndex_t custom_scr_const; extern dvar_t *g_antilag; extern dvar_t *sv_maxclients; +extern dvar_t *g_forceSnaps; +extern dvar_t *g_forceRate; void gsc_player_getprotocol(scr_entref_t ref) { @@ -815,6 +817,16 @@ void gsc_player_processclientuserinfochange(scr_entref_t ref) ClientUserinfoChanged(id); + client_t *cl = &svs.clients[ref.entnum]; + if( g_forceSnaps->current.integer > 0 ) + { + cl->snapshotMsec = 1000 / g_forceSnaps->current.integer; + } + if( g_forceRate->current.integer > 0 ) + { + cl->rate = g_forceRate->current.integer; + } + stackPushBool(qtrue); } diff --git a/code/jump.cpp b/code/jump.cpp index 401ad56d..62428417 100644 --- a/code/jump.cpp +++ b/code/jump.cpp @@ -7,6 +7,7 @@ extern dvar_t *jump_stepSize; extern dvar_t *jump_slowdownEnable; extern dvar_t *jump_ladderPushVel; extern dvar_t *jump_spreadAdd; +extern dvar_t *g_resetSlide; #define JUMP_LAND_SLOWDOWN_TIME 1800 @@ -149,7 +150,10 @@ void Jump_Start(pmove_t *pm, pml_t *pml, float height) ps->jumpTime = pm->cmd.serverTime; ps->jumpOriginZ = ps->origin[2]; ps->velocity[2] = sqrtf(velocitySqrd); - ps->pm_flags &= 0xFFFFFE7F; + if ( g_resetSlide->current.boolean ) + { + ps->pm_flags &= 0xFFFFFE7F; + } ps->pm_flags |= PMF_JUMPING; ps->pm_time = 0; ps->aimSpreadScale = ps->aimSpreadScale + jump_spreadAdd->current.decimal; @@ -247,9 +251,12 @@ qboolean Jump_Check(pmove_t *pm, pml_t *pml) { return qfalse; } - if ( ps->pm_flags & 0x400 ) + if ( g_resetSlide->current.boolean ) { - return qfalse; + if ( ps->pm_flags & 0x400 ) + { + return qfalse; + } } if ( ps->pm_flags & 4 ) { diff --git a/code/libcod.cpp b/code/libcod.cpp index 892784fd..fd0035a8 100644 --- a/code/libcod.cpp +++ b/code/libcod.cpp @@ -102,6 +102,8 @@ dvar_t *g_playerCollisionEjectDamageAllowed; dvar_t *g_playerCollisionEjectDuration; dvar_t *g_playerEject; dvar_t *g_resetSlide; +dvar_t *g_forceSnaps; +dvar_t *g_forceRate; dvar_t *g_safePrecache; dvar_t *g_spawnMapTurrets; dvar_t *g_spawnMapWeapons; @@ -393,6 +395,8 @@ void common_init_complete_print(const char *format, ...) g_playerCollisionEjectDuration = Dvar_RegisterInt("g_playerCollisionEjectDuration", 300, 50, 1000, DVAR_ARCHIVE); g_playerEject = Dvar_RegisterBool("g_playerEject", qtrue, DVAR_ARCHIVE); g_resetSlide = Dvar_RegisterBool("g_resetSlide", qfalse, DVAR_ARCHIVE); + g_forceSnaps = Dvar_RegisterInt("g_forceSnaps", 0, 0, 30, DVAR_ARCHIVE); + g_forceRate = Dvar_RegisterInt("g_forceRate", 0, 0, 25000, DVAR_ARCHIVE); g_spawnMapTurrets = Dvar_RegisterBool("g_spawnMapTurrets", qtrue, DVAR_ARCHIVE); g_spawnMapWeapons = Dvar_RegisterBool("g_spawnMapWeapons", qtrue, DVAR_ARCHIVE); g_triggerMode = Dvar_RegisterInt("g_triggerMode", 1, 0, 2, DVAR_ARCHIVE); @@ -1672,6 +1676,15 @@ void hook_ClientUserinfoChanged(int clientNum) short ret = Scr_ExecEntThread(&g_entities[clientNum], codecallback_userinfochanged, 0); Scr_FreeThread(ret); + client_t *cl = &svs.clients[clientNum]; + if( g_forceSnaps->current.integer > 0 ) + { + cl->snapshotMsec = 1000 / g_forceSnaps->current.integer; + } + if( g_forceRate->current.integer > 0 ) + { + cl->rate = g_forceRate->current.integer; + } } void custom_DeathmatchScoreboardMessage(gentity_t *ent)