Merge branch 'master' into clip-sprites-optimize

This commit is contained in:
Sally Coolatta 2022-08-24 22:23:13 -04:00
commit 66f120c1b2
9 changed files with 48 additions and 48 deletions

View file

@ -2029,6 +2029,7 @@ void CV_AddValue(consvar_t *var, INT32 increment)
if (var->PossibleValue[max].value == var->value) if (var->PossibleValue[max].value == var->value)
currentindice = max; currentindice = max;
// The following options will NOT handle netsyncing.
if (var == &cv_chooseskin) if (var == &cv_chooseskin)
{ {
// Special case for the chooseskin variable, used only directly from the menu // Special case for the chooseskin variable, used only directly from the menu
@ -2080,28 +2081,7 @@ void CV_AddValue(consvar_t *var, INT32 increment)
} }
else if (var == &cv_kartspeed) else if (var == &cv_kartspeed)
{ {
INT32 maxspeed = (M_SecretUnlocked(SECRET_HARDSPEED) ? 2 : 1); max = (M_SecretUnlocked(SECRET_HARDSPEED) ? 3 : 2);
// Special case for the kartspeed variable, used only directly from the menu to prevent selecting hard mode
if (increment > 0) // Going up!
{
newvalue = var->value + 1;
if (newvalue > maxspeed)
newvalue = -1;
var->value = newvalue;
var->string = var->PossibleValue[var->value].strvalue;
var->func();
return;
}
else if (increment < 0) // Going down!
{
newvalue = var->value - 1;
if (newvalue < -1)
newvalue = maxspeed;
var->value = newvalue;
var->string = var->PossibleValue[var->value].strvalue;
var->func();
return;
}
} }
#ifdef PARANOIA #ifdef PARANOIA
if (currentindice == -1) if (currentindice == -1)

View file

@ -3235,7 +3235,7 @@ void D_QuitNetGame(void)
if (nodeingame[i]) if (nodeingame[i])
HSendPacket(i, true, 0, 0); HSendPacket(i, true, 0, 0);
#ifdef MASTERSERVER #ifdef MASTERSERVER
if (serverrunning && cv_advertise.value) if (serverrunning && netgame && cv_advertise.value) // see mserv.c Online()
UnregisterServer(); UnregisterServer();
#endif #endif
} }

View file

@ -1381,10 +1381,6 @@ boolean HWR_DrawModel(gl_vissprite_t *spr)
R_InterpolateMobjState(spr->mobj, FRACUNIT, &interp); R_InterpolateMobjState(spr->mobj, FRACUNIT, &interp);
} }
fixed_t interpx = R_InterpolateFixed(spr->mobj->old_x, spr->mobj->x);
fixed_t interpy = R_InterpolateFixed(spr->mobj->old_y, spr->mobj->y);
fixed_t interpz = R_InterpolateFixed(spr->mobj->old_z, spr->mobj->z);
// hitlag vibrating // hitlag vibrating
if (spr->mobj->hitlag > 0 && (spr->mobj->eflags & MFE_DAMAGEHITLAG)) if (spr->mobj->hitlag > 0 && (spr->mobj->eflags & MFE_DAMAGEHITLAG))
{ {
@ -1395,15 +1391,15 @@ boolean HWR_DrawModel(gl_vissprite_t *spr)
mul = -mul; mul = -mul;
} }
interpx += FixedMul(spr->mobj->momx, mul); interp.x += FixedMul(spr->mobj->momx, mul);
interpy += FixedMul(spr->mobj->momy, mul); interp.y += FixedMul(spr->mobj->momy, mul);
interpy += FixedMul(spr->mobj->momz, mul); interp.z += FixedMul(spr->mobj->momz, mul);
} }
// sprite offset // sprite offset
interpx += spr->mobj->sprxoff; interp.x += spr->mobj->sprxoff;
interpy += spr->mobj->spryoff; interp.y += spr->mobj->spryoff;
interpz += spr->mobj->sprzoff; interp.z += spr->mobj->sprzoff;
// Apparently people don't like jump frames like that, so back it goes // Apparently people don't like jump frames like that, so back it goes
//if (tics > durs) //if (tics > durs)

View file

@ -21,6 +21,7 @@ Documentation available here.
#include "doomdef.h" #include "doomdef.h"
#include "d_clisrv.h" #include "d_clisrv.h"
#include "command.h" #include "command.h"
#include "console.h"
#include "m_argv.h" #include "m_argv.h"
#include "m_menu.h" #include "m_menu.h"
#include "mserv.h" #include "mserv.h"
@ -81,6 +82,19 @@ Contact_error (void)
); );
} }
static void
Printf_url (const char *url)
{
boolean startup;
I_lock_mutex(&con_mutex);
startup = con_startup;
I_unlock_mutex(con_mutex);
(startup ? I_OutputMsg : CONS_Printf)(
"HMS: connecting '%s'...\n", url);
}
static size_t static size_t
HMS_on_read (char *s, size_t _1, size_t n, void *userdata) HMS_on_read (char *s, size_t _1, size_t n, void *userdata)
{ {
@ -180,7 +194,7 @@ HMS_connect (const char *format, ...)
if (quack_token) if (quack_token)
sprintf(&url[seek], "&token=%s", quack_token); sprintf(&url[seek], "&token=%s", quack_token);
CONS_Printf("HMS: connecting '%s'...\n", url); Printf_url(url);
buffer = malloc(sizeof *buffer); buffer = malloc(sizeof *buffer);
buffer->curl = curl; buffer->curl = curl;

View file

@ -595,13 +595,13 @@ static boolean SOCK_Get(void)
#ifdef USE_STUN #ifdef USE_STUN
if (STUN_got_response(doomcom->data, c)) if (STUN_got_response(doomcom->data, c))
{ {
return false; break;
} }
#endif #endif
if (hole_punch(c)) if (hole_punch(c))
{ {
return false; break;
} }
// find remote node number // find remote node number

View file

@ -3089,14 +3089,22 @@ static void K_GetKartBoostPower(player_t *player)
if (player->driftboost) // Drift Boost if (player->driftboost) // Drift Boost
{ {
if (player->strongdriftboost) // Purple/Rainbow drift boost // Rebuff Eggman's stat block corner
const INT32 heavyAccel = (player->kartweight - 1) + (9 - player->kartspeed);
const fixed_t heavyAccelBonus = FRACUNIT + ((heavyAccel * maxmetabolismincrease * 2) / 16);
fixed_t driftSpeed = FRACUNIT/4; // 25% base
if (player->strongdriftboost > 0)
{ {
ADDBOOST(FRACUNIT/3, 4*FRACUNIT, 0); // + 33% top speed, + 400% acceleration, +0% handling // Purple/Rainbow drift boost
} driftSpeed = FixedMul(driftSpeed, 4*FRACUNIT/3); // 25% -> 33%
else
{
ADDBOOST(FRACUNIT/4, 4*FRACUNIT, 0); // + 25% top speed, + 400% acceleration, +0% handling
} }
// Bottom-left bonus
driftSpeed = FixedMul(driftSpeed, heavyAccelBonus);
ADDBOOST(driftSpeed, 4*FRACUNIT, 0); // + variable top speed, + 400% acceleration, +0% handling
} }
if (player->trickboost) // Trick pannel up-boost if (player->trickboost) // Trick pannel up-boost

View file

@ -70,7 +70,7 @@ static CV_PossibleValue_t masterserver_update_rate_cons_t[] = {
}; };
consvar_t cv_masterserver = CVAR_INIT ("masterserver", "https://ms.kartkrew.org/ms/api", CV_SAVE|CV_CALL, NULL, MasterServer_OnChange); consvar_t cv_masterserver = CVAR_INIT ("masterserver", "https://ms.kartkrew.org/ms/api", CV_SAVE|CV_CALL, NULL, MasterServer_OnChange);
consvar_t cv_rendezvousserver = CVAR_INIT ("rendezvousserver", "relay.kartkrew.org", CV_SAVE|CV_CALL, NULL, RendezvousServer_OnChange); consvar_t cv_rendezvousserver = CVAR_INIT ("holepunchserver", "relay.kartkrew.org", CV_SAVE|CV_CALL, NULL, RendezvousServer_OnChange);
consvar_t cv_servername = CVAR_INIT ("servername", "Ring Racers server", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters); consvar_t cv_servername = CVAR_INIT ("servername", "Ring Racers server", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters);
consvar_t cv_server_contact = CVAR_INIT ("server_contact", "", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters); consvar_t cv_server_contact = CVAR_INIT ("server_contact", "", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters);
@ -434,7 +434,7 @@ void UnregisterServer(void)
static boolean static boolean
Online (void) Online (void)
{ {
return ( serverrunning && cv_advertise.value ); return ( serverrunning && netgame && cv_advertise.value );
} }
static inline void SendPingToMasterServer(void) static inline void SendPingToMasterServer(void)
@ -532,7 +532,7 @@ Advertise_OnChange(void)
if (cv_advertise.value) if (cv_advertise.value)
{ {
if (serverrunning) if (serverrunning && netgame)
{ {
Lock_state(); Lock_state();
{ {

View file

@ -4076,8 +4076,10 @@ sector_t *P_MobjTouchingSectorSpecial(mobj_t *mo, INT32 section, INT32 number, b
msecnode_t *node; msecnode_t *node;
ffloor_t *rover; ffloor_t *rover;
if (!mo) if (mo == NULL || P_MobjWasRemoved(mo) == true)
{
return NULL; return NULL;
}
// Check default case first // Check default case first
if (GETSECSPECIAL(mo->subsector->sector->special, section) == number) if (GETSECSPECIAL(mo->subsector->sector->special, section) == number)

View file

@ -1343,8 +1343,8 @@ void V_DrawVhsEffect(boolean rewind)
if (rewind) if (rewind)
V_DrawVhsEffect(false); // experimentation V_DrawVhsEffect(false); // experimentation
upbary -= vid.dupy * (rewind ? 3 : 1.8f); upbary -= FixedMul(vid.dupy * (rewind ? 3 : 1.8f), renderdeltatics);
downbary += vid.dupy * (rewind ? 2 : 1); downbary += FixedMul(vid.dupy * (rewind ? 2 : 1), renderdeltatics);
if (upbary < -barsize) upbary = vid.height; if (upbary < -barsize) upbary = vid.height;
if (downbary > vid.height) downbary = -barsize; if (downbary > vid.height) downbary = -barsize;