Merge branch 'minor-cherrypicks-270123' into 'master'

Minor cherrypicks 270123

Closes STJr/SRB2#900

See merge request KartKrew/Kart!905
This commit is contained in:
toaster 2023-02-06 22:19:32 +00:00
commit 5a97dab6d4
7 changed files with 33 additions and 22 deletions

View file

@ -730,7 +730,7 @@ static void COM_ExecuteString(char *ptext)
// check cvars // check cvars
// Hurdler: added at Ebola's request ;) // Hurdler: added at Ebola's request ;)
// (don't flood the console in software mode with bad gl_xxx command) // (don't flood the console in software mode with bad gl_xxx command)
if (!CV_Command() && con_destlines) if (!CV_Command() && (con_destlines || dedicated))
CONS_Printf(M_GetText("Unknown command '%s'\n"), COM_Argv(0)); CONS_Printf(M_GetText("Unknown command '%s'\n"), COM_Argv(0));
} }

View file

@ -5362,21 +5362,24 @@ static void HWR_ProjectSprite(mobj_t *thing)
if (thing->renderflags & RF_SHADOWEFFECTS) if (thing->renderflags & RF_SHADOWEFFECTS)
{ {
mobj_t *caster = thing->target; mobj_t *caster = thing->target;
interpmobjstate_t casterinterp = {0};
if (R_UsingFrameInterpolation() && !paused)
{
R_InterpolateMobjState(caster, rendertimefrac, &casterinterp);
}
else
{
R_InterpolateMobjState(caster, FRACUNIT, &casterinterp);
}
if (caster && !P_MobjWasRemoved(caster)) if (caster && !P_MobjWasRemoved(caster))
{ {
fixed_t groundz = R_GetShadowZ(thing, NULL); interpmobjstate_t casterinterp = {0};
fixed_t floordiff = abs(((thing->eflags & MFE_VERTICALFLIP) ? caster->height : 0) + casterinterp.z - groundz); fixed_t groundz;
fixed_t floordiff;
if (R_UsingFrameInterpolation() && !paused)
{
R_InterpolateMobjState(caster, rendertimefrac, &casterinterp);
}
else
{
R_InterpolateMobjState(caster, FRACUNIT, &casterinterp);
}
groundz = R_GetShadowZ(thing, NULL);
floordiff = abs(((thing->eflags & MFE_VERTICALFLIP) ? caster->height : 0) + casterinterp.z - groundz);
shadowheight = FIXED_TO_FLOAT(floordiff); shadowheight = FIXED_TO_FLOAT(floordiff);
shadowscale = FIXED_TO_FLOAT(FixedMul(FRACUNIT - floordiff/640, casterinterp.scale)); shadowscale = FIXED_TO_FLOAT(FixedMul(FRACUNIT - floordiff/640, casterinterp.scale));

View file

@ -591,7 +591,6 @@ void T_BounceCheese(bouncecheese_t *bouncer)
if (bouncer->sector->crumblestate == CRUMBLE_RESTORE || bouncer->sector->crumblestate == CRUMBLE_WAIT if (bouncer->sector->crumblestate == CRUMBLE_RESTORE || bouncer->sector->crumblestate == CRUMBLE_WAIT
|| bouncer->sector->crumblestate == CRUMBLE_ACTIVATED) // Oops! Crumbler says to remove yourself! || bouncer->sector->crumblestate == CRUMBLE_ACTIVATED) // Oops! Crumbler says to remove yourself!
{ {
bouncer->sector->crumblestate = CRUMBLE_WAIT;
bouncer->sector->ceilingdata = NULL; bouncer->sector->ceilingdata = NULL;
bouncer->sector->ceilspeed = 0; bouncer->sector->ceilspeed = 0;
bouncer->sector->floordata = NULL; bouncer->sector->floordata = NULL;
@ -2149,12 +2148,11 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
} }
} }
#undef controlsec sec->soundorg.z = (controlsec->floorheight + controlsec->ceilingheight)/2;
// soundorg z height never gets set normally, so MEH.
sec->soundorg.z = sec->floorheight;
S_StartSound(&sec->soundorg, mobjinfo[type].activesound); S_StartSound(&sec->soundorg, mobjinfo[type].activesound);
#undef controlsec
// Find the outermost vertexes in the subsector // Find the outermost vertexes in the subsector
for (i = 0; i < sec->linecount; i++) for (i = 0; i < sec->linecount; i++)
{ {

View file

@ -4588,7 +4588,7 @@ static void P_ConvertBinaryLinedefTypes(void)
//Flags //Flags
if (lines[i].flags & ML_BLOCKPLAYERS) if (lines[i].flags & ML_BLOCKPLAYERS)
lines[i].args[6] |= TMFR_REVERSE; lines[i].args[6] |= TMFR_REVERSE;
if (lines[i].flags & ML_BLOCKPLAYERS) if (lines[i].flags & ML_NOCLIMB)
lines[i].args[6] |= TMFR_SPINDASH; lines[i].args[6] |= TMFR_SPINDASH;
lines[i].special = 190; lines[i].special = 190;

View file

@ -201,10 +201,14 @@ void P_ReconfigureViaVertexes (pslope_t *slope, const vector3_t v1, const vector
static void ReconfigureViaConstants (pslope_t *slope, const fixed_t a, const fixed_t b, const fixed_t c, const fixed_t d) static void ReconfigureViaConstants (pslope_t *slope, const fixed_t a, const fixed_t b, const fixed_t c, const fixed_t d)
{ {
fixed_t m; fixed_t m;
fixed_t o = 0;
vector3_t *normal = &slope->normal; vector3_t *normal = &slope->normal;
if (c)
o = abs(c) <= FRACUNIT ? -FixedMul(d, FixedDiv(FRACUNIT, c)) : -FixedDiv(d, c);
// Set origin. // Set origin.
FV3_Load(&slope->o, 0, 0, c ? -FixedDiv(d, c) : 0); FV3_Load(&slope->o, 0, 0, o);
// Get slope's normal. // Get slope's normal.
FV3_Load(normal, a, b, c); FV3_Load(normal, a, b, c);

View file

@ -1608,7 +1608,7 @@ boolean P_RunTriggerLinedef(line_t *triggerline, mobj_t *actor, sector_t *caller
// "Trigger on X calls" linedefs reset if args[2] is set // "Trigger on X calls" linedefs reset if args[2] is set
if (specialtype == 321 && triggerline->args[2]) if (specialtype == 321 && triggerline->args[2])
triggerline->callcount = triggerline->args[3]; triggerline->callcount = triggerline->args[1];
else else
{ {
// These special types work only once // These special types work only once

View file

@ -675,7 +675,13 @@ void SCR_ClosedCaptions(void)
y = basey-((i + 2)*10); y = basey-((i + 2)*10);
if (closedcaptions[i].b) if (closedcaptions[i].b)
y -= (closedcaptions[i].b--)*vid.dupy; {
y -= closedcaptions[i].b * vid.dupy;
if (renderisnewtic)
{
closedcaptions[i].b--;
}
}
if (closedcaptions[i].t < CAPTIONFADETICS) if (closedcaptions[i].t < CAPTIONFADETICS)
flags |= (((CAPTIONFADETICS-closedcaptions[i].t)/2)*V_10TRANS); flags |= (((CAPTIONFADETICS-closedcaptions[i].t)/2)*V_10TRANS);