mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Merge branch 'client-vfx' into 'master'
"Reduce VFX" toggle Closes #343 See merge request KartKrew/Kart!786
This commit is contained in:
		
						commit
						c91e46f25d
					
				
					 11 changed files with 95 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -450,6 +450,8 @@ consvar_t cv_kartdebugdirector = CVAR_INIT ("debugdirector", "Off", CV_CHEAT, CV
 | 
			
		|||
consvar_t cv_spbtest = CVAR_INIT ("spbtest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL);
 | 
			
		||||
consvar_t cv_gptest = CVAR_INIT ("gptest", "Off", CV_CHEAT|CV_NETVAR, CV_OnOff, NULL);
 | 
			
		||||
 | 
			
		||||
consvar_t cv_reducevfx = CVAR_INIT ("reducevfx", "No", CV_SAVE, CV_YesNo, NULL);
 | 
			
		||||
 | 
			
		||||
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};
 | 
			
		||||
consvar_t cv_votetime = CVAR_INIT ("votetime", "20", CV_NETVAR, votetime_cons_t, NULL);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -120,7 +120,7 @@ extern consvar_t cv_votetime;
 | 
			
		|||
 | 
			
		||||
extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugdistribution, cv_kartdebughuddrop;
 | 
			
		||||
extern consvar_t cv_kartdebugnodes, cv_kartdebugcolorize, cv_kartdebugdirector;
 | 
			
		||||
extern consvar_t cv_spbtest, cv_gptest;
 | 
			
		||||
extern consvar_t cv_spbtest, cv_gptest, cv_reducevfx;
 | 
			
		||||
extern consvar_t cv_kartdebugwaypoints, cv_kartdebugbotpredict;
 | 
			
		||||
 | 
			
		||||
extern consvar_t cv_itemfinder;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										58
									
								
								src/k_kart.c
									
										
									
									
									
								
							
							
						
						
									
										58
									
								
								src/k_kart.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -195,6 +195,22 @@ UINT32 K_GetPlayerDontDrawFlag(player_t *player)
 | 
			
		|||
	return flag;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void K_ReduceVFX(mobj_t *mo, player_t *owner)
 | 
			
		||||
{
 | 
			
		||||
	if (cv_reducevfx.value == 0)
 | 
			
		||||
	{
 | 
			
		||||
		// Leave the visuals alone.
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mo->renderflags |= RF_DONTDRAW;
 | 
			
		||||
 | 
			
		||||
	if (owner != NULL)
 | 
			
		||||
	{
 | 
			
		||||
		mo->renderflags &= ~K_GetPlayerDontDrawFlag(owner);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
player_t *K_GetItemBoxPlayer(mobj_t *mobj)
 | 
			
		||||
{
 | 
			
		||||
	fixed_t closest = INT32_MAX;
 | 
			
		||||
| 
						 | 
				
			
			@ -334,6 +350,8 @@ void K_RegisterKartStuff(void)
 | 
			
		|||
	CV_RegisterVar(&cv_kartdebugdirector);
 | 
			
		||||
	CV_RegisterVar(&cv_spbtest);
 | 
			
		||||
	CV_RegisterVar(&cv_gptest);
 | 
			
		||||
 | 
			
		||||
	CV_RegisterVar(&cv_reducevfx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//}
 | 
			
		||||
| 
						 | 
				
			
			@ -2432,6 +2450,8 @@ spawn_brake_dust
 | 
			
		|||
 | 
			
		||||
	P_SetScale(spark, (spark->destscale =
 | 
			
		||||
				FixedMul(scale, spark->scale)));
 | 
			
		||||
 | 
			
		||||
	K_ReduceVFX(spark, master->player);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void K_SpawnBrakeVisuals(player_t *player)
 | 
			
		||||
| 
						 | 
				
			
			@ -2474,7 +2494,7 @@ static void K_SpawnBrakeVisuals(player_t *player)
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if (leveltime % 4 == 0)
 | 
			
		||||
		S_StartSound(player->mo, sfx_s3k67);
 | 
			
		||||
		S_ReducedVFXSound(player->mo, sfx_s3k67, player);
 | 
			
		||||
 | 
			
		||||
	/* vertical shaking, scales with speed */
 | 
			
		||||
	player->mo->spriteyoffset = P_RandomFlip(2 * scale);
 | 
			
		||||
| 
						 | 
				
			
			@ -2507,6 +2527,8 @@ void K_SpawnDriftBoostClip(player_t *player)
 | 
			
		|||
	P_InstaThrust(clip, player->mo->angle +
 | 
			
		||||
			P_RandomFlip(P_RandomRange(PR_DECORATION, FRACUNIT/2, FRACUNIT)),
 | 
			
		||||
			FixedMul(scale, player->speed));
 | 
			
		||||
 | 
			
		||||
	K_ReduceVFX(clip, player);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void K_SpawnDriftBoostClipSpark(mobj_t *clip)
 | 
			
		||||
| 
						 | 
				
			
			@ -2557,6 +2579,7 @@ static void K_SpawnGenericSpeedLines(player_t *player, boolean top)
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	K_MatchGenericExtraFlags(fast, player->mo);
 | 
			
		||||
	K_ReduceVFX(fast, player);
 | 
			
		||||
 | 
			
		||||
	if (top)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -2619,6 +2642,7 @@ void K_SpawnInvincibilitySpeedLines(mobj_t *mo)
 | 
			
		|||
	fast->momz = 3*P_GetMobjZMovement(mo)/4;
 | 
			
		||||
 | 
			
		||||
	K_MatchGenericExtraFlags(fast, mo);
 | 
			
		||||
	K_ReduceVFX(fast, mo->player);
 | 
			
		||||
 | 
			
		||||
	fast->color = mo->color;
 | 
			
		||||
	fast->colorized = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -3667,6 +3691,7 @@ void K_SpawnWaterRunParticles(mobj_t *mobj)
 | 
			
		|||
			water->momz = mobj->momz;
 | 
			
		||||
			P_SetScale(water, trailScale);
 | 
			
		||||
			P_SetMobjState(water, curUnderlayFrame);
 | 
			
		||||
			K_ReduceVFX(water, mobj->player);
 | 
			
		||||
 | 
			
		||||
			// overlay
 | 
			
		||||
			water = P_SpawnMobj(x1, y1,
 | 
			
		||||
| 
						 | 
				
			
			@ -3678,6 +3703,7 @@ void K_SpawnWaterRunParticles(mobj_t *mobj)
 | 
			
		|||
			water->momz = mobj->momz;
 | 
			
		||||
			P_SetScale(water, trailScale);
 | 
			
		||||
			P_SetMobjState(water, curOverlayFrame);
 | 
			
		||||
			K_ReduceVFX(water, mobj->player);
 | 
			
		||||
 | 
			
		||||
			// Right
 | 
			
		||||
			// Underlay
 | 
			
		||||
| 
						 | 
				
			
			@ -3690,6 +3716,7 @@ void K_SpawnWaterRunParticles(mobj_t *mobj)
 | 
			
		|||
			water->momz = mobj->momz;
 | 
			
		||||
			P_SetScale(water, trailScale);
 | 
			
		||||
			P_SetMobjState(water, curUnderlayFrame);
 | 
			
		||||
			K_ReduceVFX(water, mobj->player);
 | 
			
		||||
 | 
			
		||||
			// Overlay
 | 
			
		||||
			water = P_SpawnMobj(x2, y2,
 | 
			
		||||
| 
						 | 
				
			
			@ -3701,11 +3728,12 @@ void K_SpawnWaterRunParticles(mobj_t *mobj)
 | 
			
		|||
			water->momz = mobj->momz;
 | 
			
		||||
			P_SetScale(water, trailScale);
 | 
			
		||||
			P_SetMobjState(water, curOverlayFrame);
 | 
			
		||||
			K_ReduceVFX(water, mobj->player);
 | 
			
		||||
 | 
			
		||||
			if (!S_SoundPlaying(mobj, sfx_s3kdbs))
 | 
			
		||||
			{
 | 
			
		||||
				const INT32 volume = (min(trailScale, FRACUNIT) * 255) / FRACUNIT;
 | 
			
		||||
				S_StartSoundAtVolume(mobj, sfx_s3kdbs, volume);
 | 
			
		||||
				S_ReducedVFXSoundAtVolume(mobj, sfx_s3kdbs, volume, mobj->player);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3714,7 +3742,7 @@ void K_SpawnWaterRunParticles(mobj_t *mobj)
 | 
			
		|||
		{
 | 
			
		||||
			if (P_RandomChance(PR_BUBBLE, FRACUNIT/2) && leveltime % TICRATE == 0)
 | 
			
		||||
			{
 | 
			
		||||
				S_StartSound(mobj, sfx_floush);
 | 
			
		||||
				S_ReducedVFXSound(mobj, sfx_floush, mobj->player);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -5453,6 +5481,7 @@ static void K_SpawnDriftElectricity(player_t *player)
 | 
			
		|||
		spark->momz = mo->momz;
 | 
			
		||||
		spark->color = color;
 | 
			
		||||
		K_GenericExtraFlagsNoZAdjust(spark, mo);
 | 
			
		||||
		K_ReduceVFX(spark, player);
 | 
			
		||||
 | 
			
		||||
		spark->spritexscale += scalefactor/3;
 | 
			
		||||
		spark->spriteyscale += scalefactor/8;
 | 
			
		||||
| 
						 | 
				
			
			@ -5502,10 +5531,11 @@ void K_SpawnDriftElectricSparks(player_t *player, int color, boolean shockwave)
 | 
			
		|||
					spark->frame |= FF_ADD;
 | 
			
		||||
 | 
			
		||||
				sparkangle += ANGLE_90;
 | 
			
		||||
				K_ReduceVFX(spark, player);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	S_StartSound(mo, sfx_s3k45);
 | 
			
		||||
	S_ReducedVFXSound(mo, sfx_s3k45, player);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void K_SpawnDriftSparks(player_t *player)
 | 
			
		||||
| 
						 | 
				
			
			@ -5652,6 +5682,7 @@ static void K_SpawnDriftSparks(player_t *player)
 | 
			
		|||
			spark->tics += trail;
 | 
			
		||||
 | 
			
		||||
		K_MatchGenericExtraFlags(spark, player->mo);
 | 
			
		||||
		K_ReduceVFX(spark, player);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (player->driftcharge >= dsthree)
 | 
			
		||||
| 
						 | 
				
			
			@ -9960,7 +9991,7 @@ void K_KartUpdatePosition(player_t *player)
 | 
			
		|||
				soundpos = 15;
 | 
			
		||||
			}
 | 
			
		||||
#endif
 | 
			
		||||
			S_StartSound(player->mo, sfx_pass02 + soundpos); // ...which is why we can start at index 2 for a lower general pitch
 | 
			
		||||
			S_ReducedVFXSound(player->mo, sfx_pass02 + soundpos, NULL); // ...which is why we can start at index 2 for a lower general pitch
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		player->positiondelay = POS_DELAY_TIME + 4; // Position number growth
 | 
			
		||||
| 
						 | 
				
			
			@ -10118,11 +10149,12 @@ void K_KartEbrakeVisuals(player_t *p)
 | 
			
		|||
			wave->momy = p->mo->momy;
 | 
			
		||||
			wave->momz = p->mo->momz;
 | 
			
		||||
			wave->standingslope = p->mo->standingslope;
 | 
			
		||||
			K_ReduceVFX(wave, p);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// sound
 | 
			
		||||
		if (!S_SoundPlaying(p->mo, sfx_s3kd9s))
 | 
			
		||||
			S_StartSound(p->mo, sfx_s3kd9s);
 | 
			
		||||
			S_ReducedVFXSound(p->mo, sfx_s3kd9s, p);
 | 
			
		||||
 | 
			
		||||
		// HOLD! bubble.
 | 
			
		||||
		if (!p->ebrakefor)
 | 
			
		||||
| 
						 | 
				
			
			@ -10144,6 +10176,7 @@ void K_KartEbrakeVisuals(player_t *p)
 | 
			
		|||
			p->mo->hprev->angle = p->mo->angle;
 | 
			
		||||
			p->mo->hprev->fuse = TICRATE/2;		// When we leave spindash for any reason, make sure this bubble goes away soon after.
 | 
			
		||||
			K_FlipFromObject(p->mo->hprev, p->mo);
 | 
			
		||||
			K_ReduceVFX(p->mo->hprev, p);
 | 
			
		||||
			p->mo->hprev->sprzoff = p->mo->sprzoff;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -10157,6 +10190,7 @@ void K_KartEbrakeVisuals(player_t *p)
 | 
			
		|||
			spdl->colorized = true;
 | 
			
		||||
			spdl->color = SKINCOLOR_WHITE;
 | 
			
		||||
			K_MatchGenericExtraFlags(spdl, p->mo);
 | 
			
		||||
			K_ReduceVFX(spdl, p);
 | 
			
		||||
			P_SetScale(spdl, p->mo->scale);
 | 
			
		||||
 | 
			
		||||
			// squish the player a little bit.
 | 
			
		||||
| 
						 | 
				
			
			@ -10256,6 +10290,8 @@ static void K_KartSpindashDust(mobj_t *parent)
 | 
			
		|||
		dust->momx = FixedMul(hmomentum, FINECOSINE(ang >> ANGLETOFINESHIFT));
 | 
			
		||||
		dust->momy = FixedMul(hmomentum, FINESINE(ang >> ANGLETOFINESHIFT));
 | 
			
		||||
		dust->momz = vmomentum * flip;
 | 
			
		||||
 | 
			
		||||
		//K_ReduceVFX(dust, parent->player);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -10280,6 +10316,7 @@ static void K_KartSpindashWind(mobj_t *parent)
 | 
			
		|||
	wind->momz = 3 * P_GetMobjZMovement(parent) / 4;
 | 
			
		||||
 | 
			
		||||
	K_MatchGenericExtraFlags(wind, parent);
 | 
			
		||||
	K_ReduceVFX(wind, parent->player);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Time after which you get a thrust for releasing spindash
 | 
			
		||||
| 
						 | 
				
			
			@ -10325,13 +10362,14 @@ static void K_KartSpindash(player_t *player)
 | 
			
		|||
				P_SetTarget(&grease->target, player->mo);
 | 
			
		||||
				grease->angle = K_MomentumAngle(player->mo);
 | 
			
		||||
				grease->extravalue1 = i;
 | 
			
		||||
				K_ReduceVFX(grease, player);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		player->tiregrease = 2*TICRATE;
 | 
			
		||||
 | 
			
		||||
		player->spindash = 0;
 | 
			
		||||
		S_StartSound(player->mo, sfx_s23c);
 | 
			
		||||
		S_ReducedVFXSound(player->mo, sfx_s23c, player);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -10368,7 +10406,7 @@ static void K_KartSpindash(player_t *player)
 | 
			
		|||
	if (player->speed == 0 && player->steering != 0 && leveltime % 8 == 0)
 | 
			
		||||
	{
 | 
			
		||||
		// Rubber burn turn sfx
 | 
			
		||||
		S_StartSound(player->mo, sfx_ruburn);
 | 
			
		||||
		S_ReducedVFXSound(player->mo, sfx_ruburn, player);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (player->speed < 6*player->mo->scale)
 | 
			
		||||
| 
						 | 
				
			
			@ -10410,7 +10448,7 @@ static void K_KartSpindash(player_t *player)
 | 
			
		|||
				{
 | 
			
		||||
					if (spawnOldEffect == true)
 | 
			
		||||
						K_SpawnDashDustRelease(player);
 | 
			
		||||
					S_StartSound(player->mo, sfx_s3kab);
 | 
			
		||||
					S_ReducedVFXSound(player->mo, sfx_s3kab, player);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (chargetime < -TICRATE)
 | 
			
		||||
| 
						 | 
				
			
			@ -10422,7 +10460,7 @@ static void K_KartSpindash(player_t *player)
 | 
			
		|||
	else
 | 
			
		||||
	{
 | 
			
		||||
		if (leveltime % 4 == 0)
 | 
			
		||||
			S_StartSound(player->mo, sfx_kc2b);
 | 
			
		||||
			S_ReducedVFXSound(player->mo, sfx_kc2b, player);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,10 @@ boolean K_DuelItemAlwaysSpawns(mapthing_t *mt);
 | 
			
		|||
 | 
			
		||||
void K_TimerReset(void);
 | 
			
		||||
void K_TimerInit(void);
 | 
			
		||||
 | 
			
		||||
UINT32 K_GetPlayerDontDrawFlag(player_t *player);
 | 
			
		||||
void K_ReduceVFX(mobj_t *mo, player_t *owner);
 | 
			
		||||
 | 
			
		||||
boolean K_IsPlayerLosing(player_t *player);
 | 
			
		||||
fixed_t K_GetKartGameSpeedScalar(SINT8 value);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -559,8 +559,8 @@ void K_ProcessTerrainEffect(mobj_t *mo)
 | 
			
		|||
	{
 | 
			
		||||
		/* use a shorter sound if not two tics have passed
 | 
			
		||||
		 * since the last step */
 | 
			
		||||
		S_StartSound(mo, player->stairjank
 | 
			
		||||
				>= 16 ?  sfx_s23b : sfx_s268);
 | 
			
		||||
		S_ReducedVFXSound(mo, player->stairjank
 | 
			
		||||
				>= 16 ?  sfx_s23b : sfx_s268, NULL);
 | 
			
		||||
 | 
			
		||||
		if (player->stairjank == 0)
 | 
			
		||||
		{
 | 
			
		||||
| 
						 | 
				
			
			@ -569,6 +569,7 @@ void K_ProcessTerrainEffect(mobj_t *mo)
 | 
			
		|||
			spark->fuse = 9;
 | 
			
		||||
			spark->cusval = K_StairJankFlip(ANGLE_90);
 | 
			
		||||
			P_SetTarget(&spark->target, mo);
 | 
			
		||||
			K_ReduceVFX(spark, player);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		player->stairjank = 17;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3829,12 +3829,13 @@ void A_AttractChase(mobj_t *actor)
 | 
			
		|||
 | 
			
		||||
				// Base add is 3 tics for 9,9, adds 1 tic for each point closer to the 1,1 end
 | 
			
		||||
				actor->target->player->ringboost += K_GetKartRingPower(actor->target->player, true) + 3;
 | 
			
		||||
				S_StartSound(actor->target, sfx_s1b5);
 | 
			
		||||
				S_ReducedVFXSound(actor->target, sfx_s1b5, NULL);
 | 
			
		||||
 | 
			
		||||
				sparkle = P_SpawnMobj(actor->target->x, actor->target->y, actor->target->z, MT_RINGSPARKS);
 | 
			
		||||
				P_SetTarget(&sparkle->target, actor->target);
 | 
			
		||||
				sparkle->angle = (actor->target->angle + (offset>>1)) + (offset * actor->target->player->sparkleanim);
 | 
			
		||||
				actor->target->player->sparkleanim = (actor->target->player->sparkleanim+1) % 20;
 | 
			
		||||
				K_ReduceVFX(sparkle, actor->target->player);
 | 
			
		||||
 | 
			
		||||
				P_KillMobj(actor, actor->target, actor->target, DMG_NORMAL);
 | 
			
		||||
				return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -420,6 +420,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
 | 
			
		|||
				P_SetTarget(&grease->target, object);
 | 
			
		||||
				grease->angle = K_MomentumAngle(object);
 | 
			
		||||
				grease->extravalue1 = i;
 | 
			
		||||
				K_ReduceVFX(grease, object->player);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2873,8 +2874,8 @@ boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y, boolean allowdropoff, Try
 | 
			
		|||
	{
 | 
			
		||||
		/* use a shorter sound if not two tics have passed
 | 
			
		||||
		 * since the last step */
 | 
			
		||||
		S_StartSound(thing, thing->player->stairjank
 | 
			
		||||
				>= 16 ?  sfx_s23b : sfx_s268);
 | 
			
		||||
		S_ReducedVFXSound(thing, thing->player->stairjank
 | 
			
		||||
				>= 16 ?  sfx_s23b : sfx_s268, NULL);
 | 
			
		||||
 | 
			
		||||
		if (!thing->player->stairjank)
 | 
			
		||||
		{
 | 
			
		||||
| 
						 | 
				
			
			@ -2883,6 +2884,7 @@ boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y, boolean allowdropoff, Try
 | 
			
		|||
			spark->fuse = 9;
 | 
			
		||||
			spark->cusval = K_StairJankFlip(ANGLE_90);
 | 
			
		||||
			P_SetTarget(&spark->target, thing);
 | 
			
		||||
			K_ReduceVFX(spark, thing->player);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		thing->player->stairjank = 17;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7408,6 +7408,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
 | 
			
		|||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		K_ReduceVFX(mobj, mobj->target->player);
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	case MT_BOOSTFLAME:
 | 
			
		||||
| 
						 | 
				
			
			@ -7496,6 +7498,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
 | 
			
		|||
				S_StartSound(mobj, sfx_cdfm17);
 | 
			
		||||
 | 
			
		||||
			K_MatchGenericExtraFlags(mobj, mobj->target);
 | 
			
		||||
			K_ReduceVFX(mobj, mobj->target->player);
 | 
			
		||||
			if (leveltime & 1)
 | 
			
		||||
				mobj->renderflags |= RF_DONTDRAW;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -7698,6 +7701,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
 | 
			
		|||
			else
 | 
			
		||||
				mobj->renderflags = (mobj->renderflags & ~RF_TRANSMASK)|(trans << RF_TRANSSHIFT);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		K_ReduceVFX(mobj, mobj->target->player);
 | 
			
		||||
		break;
 | 
			
		||||
	case MT_MAGICIANBOX:
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1237,6 +1237,8 @@ mobj_t *P_SpawnGhostMobj(mobj_t *mobj)
 | 
			
		|||
	ghost->old_pitch = mobj->old_pitch2;
 | 
			
		||||
	ghost->old_roll = mobj->old_roll2;
 | 
			
		||||
 | 
			
		||||
	K_ReduceVFX(ghost, mobj->player);
 | 
			
		||||
 | 
			
		||||
	return ghost;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -732,6 +732,27 @@ void S_StartSound(const void *origin, sfxenum_t sfx_id)
 | 
			
		|||
		S_StartSoundAtVolume(origin, sfx_id, 255);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void S_ReducedVFXSoundAtVolume(const void *origin, sfxenum_t sfx_id, INT32 volume, void *owner)
 | 
			
		||||
{
 | 
			
		||||
	if (S_SoundDisabled())
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	if (cv_reducevfx.value == 1)
 | 
			
		||||
	{
 | 
			
		||||
		if (owner == NULL)
 | 
			
		||||
		{
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (P_IsDisplayPlayer((player_t *)owner) == false)
 | 
			
		||||
		{
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	S_StartSoundAtVolume(origin, sfx_id, volume);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void S_StopSound(void *origin)
 | 
			
		||||
{
 | 
			
		||||
	INT32 cnum;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -139,6 +139,10 @@ void S_StartSound(const void *origin, sfxenum_t sound_id);
 | 
			
		|||
// Will start a sound at a given volume.
 | 
			
		||||
void S_StartSoundAtVolume(const void *origin, sfxenum_t sound_id, INT32 volume);
 | 
			
		||||
 | 
			
		||||
// Will start a sound, but only if VFX reduce is off or the owner isn't a display player.
 | 
			
		||||
void S_ReducedVFXSoundAtVolume(const void *origin, sfxenum_t sfx_id, INT32 volume, void *owner);
 | 
			
		||||
#define S_ReducedVFXSound(a, b, c) S_ReducedVFXSoundAtVolume(a, b, 255, c)
 | 
			
		||||
 | 
			
		||||
// Stop sound for thing at <origin>
 | 
			
		||||
void S_StopSound(void *origin);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue