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)
currentindice = max;
// The following options will NOT handle netsyncing.
if (var == &cv_chooseskin)
{
// 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)
{
INT32 maxspeed = (M_SecretUnlocked(SECRET_HARDSPEED) ? 2 : 1);
// 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;
}
max = (M_SecretUnlocked(SECRET_HARDSPEED) ? 3 : 2);
}
#ifdef PARANOIA
if (currentindice == -1)

View file

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

View file

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

View file

@ -21,6 +21,7 @@ Documentation available here.
#include "doomdef.h"
#include "d_clisrv.h"
#include "command.h"
#include "console.h"
#include "m_argv.h"
#include "m_menu.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
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)
sprintf(&url[seek], "&token=%s", quack_token);
CONS_Printf("HMS: connecting '%s'...\n", url);
Printf_url(url);
buffer = malloc(sizeof *buffer);
buffer->curl = curl;

View file

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

View file

@ -3089,14 +3089,22 @@ static void K_GetKartBoostPower(player_t *player)
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
}
else
{
ADDBOOST(FRACUNIT/4, 4*FRACUNIT, 0); // + 25% top speed, + 400% acceleration, +0% handling
// Purple/Rainbow drift boost
driftSpeed = FixedMul(driftSpeed, 4*FRACUNIT/3); // 25% -> 33%
}
// 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

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_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_server_contact = CVAR_INIT ("server_contact", "", CV_SAVE|CV_CALL|CV_NOINIT, NULL, Update_parameters);
@ -434,7 +434,7 @@ void UnregisterServer(void)
static boolean
Online (void)
{
return ( serverrunning && cv_advertise.value );
return ( serverrunning && netgame && cv_advertise.value );
}
static inline void SendPingToMasterServer(void)
@ -532,7 +532,7 @@ Advertise_OnChange(void)
if (cv_advertise.value)
{
if (serverrunning)
if (serverrunning && netgame)
{
Lock_state();
{

View file

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

View file

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