Added BC7 compression.

This commit is contained in:
Justin Marshall
2026-05-29 19:41:58 -07:00
parent fae1adf30d
commit 1bc7df9614
49 changed files with 448379 additions and 426132 deletions
+10 -13
View File
@@ -167,7 +167,7 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
FIRE_DONE
};
if( ammoClip == 0 && owner->AmmoAvailable() && parms->stage == 0 )
if( ammoClip == 0 && owner->AmmoAvailable() && owner->AutoReload() && parms->stage == 0 )
{
//owner->WeaponState( WP_RELOAD, PISTOL_IDLE_TO_RELOAD );
owner->Reload();
@@ -184,21 +184,17 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
return SRESULT_WAIT;
case FIRE_FUSING:
if( !owner->IsFiring() )
if( ( gameLocal.time > fuse_start + SEC2MS( BFG_MINRELEASETIME ) ) && !owner->IsFiring() )
{
parms->stage = FIRE_FIRE;
}
else if( gameLocal.time > gameLocal.time + SEC2MS( BFG_MINRELEASETIME ) && !owner->IsFiring() )
{
parms->stage = FIRE_SHORTFUSE;
}
else if( gameLocal.time >= fuse_end )
{
parms->stage = FIRE_SHORTFUSE;
}
else
{
powerLevel = ( gameLocal.time - fuse_start ) / BFG_FUSE;
powerLevel = (float)( gameLocal.time - fuse_start ) / SEC2MS( BFG_FUSE );
owner->Event_SetColor( powerLevel, powerLevel, powerLevel );
owner->Event_SetGuiFloat( "powerlevel", powerLevel );
}
@@ -219,7 +215,7 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
case FIRE_SHORTFUSEWAIT:
if( !owner->IsFiring() || gameLocal.time >= fuse_end )
{
powerLevel = ( gameLocal.time - fuse_start ) / BFG_FUSE;
powerLevel = (float)( gameLocal.time - fuse_start ) / SEC2MS( BFG_FUSE );
owner->Event_SetGuiFloat( "powerlevel", powerLevel );
parms->stage = FIRE_FIRE;
}
@@ -233,7 +229,8 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
}
else
{
time_held = gameLocal.time - fuse_start;
time_held = MS2SEC( gameLocal.time - fuse_start );
power = BFG_MAXPOWER * ( time_held / BFG_FUSE );
if( power > BFG_MAXPOWER )
{
power = BFG_MAXPOWER;
@@ -242,7 +239,7 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
owner->Event_PlayAnim( ANIMCHANNEL_ALL, "fire", false );
fire_time = gameLocal.time;
owner->Event_LaunchProjectiles( BFG_NUMPROJECTILES, spread, 0, 1, 1 );
owner->Event_LaunchProjectiles( BFG_NUMPROJECTILES, spread, time_held, 1, power );
parms->stage = FIRE_FIRE_ANIMWAIT;
}
return SRESULT_WAIT;
@@ -254,7 +251,7 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
}
else
{
intensity = 1 - ( ( gameLocal.time - fire_time ) / 0.5 );
intensity = 1.0f - ( (float)( gameLocal.time - fire_time ) / SEC2MS( 0.5f ) );
if( intensity < 0 )
{
intensity = 0;
@@ -270,7 +267,7 @@ stateResult_t rvmWeaponBFG::Fire( stateParms_t* parms )
}
else
{
powerLevel -= SEC2MS( 0.05 ); // TODO: DELTA TIME THIS!!
powerLevel -= 0.05f;
owner->Event_SetGuiFloat( "powerlevel", powerLevel );
}
return SRESULT_WAIT;
@@ -350,4 +347,4 @@ stateResult_t rvmWeaponBFG::Reload( stateParms_t* parms )
return SRESULT_WAIT;
}
return SRESULT_ERROR;
}
}