mirror of
https://github.com/ValveSoftware/source-sdk-2013.git
synced 2025-04-09 03:24:52 +00:00
Merge branch 'ValveSoftware:master' into ejectbrass_fix
This commit is contained in:
commit
edbbc0b37f
10 changed files with 69 additions and 54 deletions
|
@ -121,7 +121,7 @@ inline ClientThinkHandle_t CClientThinkList::GetInvalidThinkHandle()
|
|||
|
||||
inline CClientThinkList::ThinkEntry_t* CClientThinkList::GetThinkEntry( ClientThinkHandle_t hThink )
|
||||
{
|
||||
return &m_ThinkEntries[ (unsigned long)hThink ];
|
||||
return &m_ThinkEntries[ (uintp)hThink ];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -146,6 +146,7 @@ CParticleEffectBinding::CParticleEffectBinding()
|
|||
m_LastMin = m_Min;
|
||||
m_LastMax = m_Max;
|
||||
|
||||
m_flParticleCullRadius = -1.f; // dummy value, is overwritten below
|
||||
SetParticleCullRadius( 0.0f );
|
||||
m_nActiveParticles = 0;
|
||||
|
||||
|
|
|
@ -574,6 +574,17 @@ void CTFHudMatchStatus::FireGameEvent( IGameEvent * event )
|
|||
}
|
||||
|
||||
const IMatchGroupDescription* pMatchDesc = GetMatchGroupDescription( TFGameRules()->GetCurrentMatchGroup() );
|
||||
|
||||
// FIX: Refresh versus doors so late-joiners do not see the wrong skin
|
||||
int nSkin = 0;
|
||||
int nSubModel = 0;
|
||||
if (pMatchDesc->BGetRoundDoorParameters(nSkin, nSubModel))
|
||||
{
|
||||
m_pMatchStartModelPanel->SetBodyGroup( "logos", nSubModel );
|
||||
m_pMatchStartModelPanel->UpdateModel();
|
||||
m_pMatchStartModelPanel->SetSkin( nSkin );
|
||||
}
|
||||
|
||||
bool bForceDoors = false;
|
||||
if ( bForceDoors || ( pMatchDesc && pMatchDesc->BUsesPostRoundDoors() ) )
|
||||
{
|
||||
|
|
|
@ -385,14 +385,6 @@ void CTFMapInfoMenu::LoadMapPage()
|
|||
{
|
||||
m_pMapInfo->SetText( wszMapDescription );
|
||||
}
|
||||
else if ( StringHasPrefix( m_szMapName, "vsh_" ) )
|
||||
{
|
||||
m_pMapInfo->SetText( "#default_vsh_description" );
|
||||
}
|
||||
else if ( StringHasPrefix( m_szMapName, "zi_" ) )
|
||||
{
|
||||
m_pMapInfo->SetText( "#default_zi_description" );
|
||||
}
|
||||
else
|
||||
{
|
||||
// try loading map descriptions from .txt files first
|
||||
|
@ -497,7 +489,15 @@ void CTFMapInfoMenu::LoadMapPage()
|
|||
|
||||
if( !g_pVGuiLocalize->Find( mapInfoKey ) )
|
||||
{
|
||||
if ( TFGameRules() )
|
||||
if ( StringHasPrefix( m_szMapName, "vsh_" ) )
|
||||
{
|
||||
pszDescription = "#default_vsh_description";
|
||||
}
|
||||
else if ( StringHasPrefix( m_szMapName, "zi_" ) )
|
||||
{
|
||||
pszDescription = "#default_zi_description";
|
||||
}
|
||||
else if ( TFGameRules() )
|
||||
{
|
||||
if ( TFGameRules()->IsMannVsMachineMode() )
|
||||
{
|
||||
|
|
|
@ -29,7 +29,8 @@ ActionResult< CTFBot > CTFBotEngineerBuildTeleportEntrance::OnStart( CTFBot *me,
|
|||
ActionResult< CTFBot > CTFBotEngineerBuildTeleportEntrance::Update( CTFBot *me, float interval )
|
||||
{
|
||||
CTeamControlPoint *point = me->GetMyControlPoint();
|
||||
if ( !point )
|
||||
CCaptureZone *zone = me->GetFlagCaptureZone();
|
||||
if ( !point && !zone )
|
||||
{
|
||||
// wait until a control point becomes available
|
||||
return Continue();
|
||||
|
@ -64,7 +65,14 @@ ActionResult< CTFBot > CTFBotEngineerBuildTeleportEntrance::Update( CTFBot *me,
|
|||
if ( !m_path.IsValid() )
|
||||
{
|
||||
CTFBotPathCost cost( me, FASTEST_ROUTE );
|
||||
m_path.Compute( me, point->GetAbsOrigin(), cost );
|
||||
if ( point )
|
||||
{
|
||||
m_path.Compute( me, point->GetAbsOrigin(), cost );
|
||||
}
|
||||
else if ( zone )
|
||||
{
|
||||
m_path.Compute( me, zone->WorldSpaceCenter(), cost );
|
||||
}
|
||||
}
|
||||
|
||||
m_path.Update( me );
|
||||
|
|
|
@ -243,7 +243,7 @@ ActionResult< CTFBot > CTFBotDeliverFlag::Update( CTFBot *me, float interval )
|
|||
|
||||
m_flTotalTravelDistance = NavAreaTravelDistance( me->GetLastKnownArea(), TheNavMesh->GetNavArea( zone->WorldSpaceCenter() ), cost );
|
||||
|
||||
if ( flOldTravelDistance != -1.0f && m_flTotalTravelDistance - flOldTravelDistance > 2000.0f )
|
||||
if ( TFGameRules()->IsMannVsMachineMode() && flOldTravelDistance != -1.0f && m_flTotalTravelDistance - flOldTravelDistance > 2000.0f )
|
||||
{
|
||||
TFGameRules()->BroadcastSound( 255, "Announcer.MVM_Bomb_Reset" );
|
||||
|
||||
|
|
|
@ -9096,44 +9096,40 @@ int CTFPlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo )
|
|||
}
|
||||
}
|
||||
|
||||
if ( pTFAttacker && pTFAttacker->IsPlayerClass( TF_CLASS_MEDIC ) )
|
||||
if ( pTFAttacker && pTFAttacker->IsPlayerClass( TF_CLASS_MEDIC ) && pWeapon && pWeapon->GetWeaponID() == TF_WEAPON_BONESAW )
|
||||
{
|
||||
CTFWeaponBase *pAttackerWeapon = pTFAttacker->GetActiveTFWeapon();
|
||||
if ( pAttackerWeapon && pAttackerWeapon->GetWeaponID() == TF_WEAPON_BONESAW )
|
||||
CTFBonesaw *pBoneSaw = static_cast< CTFBonesaw* >( pWeapon );
|
||||
if ( pBoneSaw->GetBonesawType() == BONESAW_UBER_SAVEDONDEATH )
|
||||
{
|
||||
CTFBonesaw *pBoneSaw = static_cast< CTFBonesaw* >( pAttackerWeapon );
|
||||
if ( pBoneSaw->GetBonesawType() == BONESAW_UBER_SAVEDONDEATH )
|
||||
// Spawn their spleen
|
||||
CPhysicsProp *pRandomInternalOrgan = dynamic_cast< CPhysicsProp* >( CreateEntityByName( "prop_physics_override" ) );
|
||||
if ( pRandomInternalOrgan )
|
||||
{
|
||||
// Spawn their spleen
|
||||
CPhysicsProp *pRandomInternalOrgan = dynamic_cast< CPhysicsProp* >( CreateEntityByName( "prop_physics_override" ) );
|
||||
if ( pRandomInternalOrgan )
|
||||
{
|
||||
pRandomInternalOrgan->SetCollisionGroup( COLLISION_GROUP_DEBRIS );
|
||||
pRandomInternalOrgan->AddFlag( FL_GRENADE );
|
||||
char buf[512];
|
||||
Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsOrigin().x, GetAbsOrigin().y, GetAbsOrigin().z );
|
||||
pRandomInternalOrgan->KeyValue( "origin", buf );
|
||||
Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsAngles().x, GetAbsAngles().y, GetAbsAngles().z );
|
||||
pRandomInternalOrgan->KeyValue( "angles", buf );
|
||||
pRandomInternalOrgan->KeyValue( "model", "models/player/gibs/random_organ.mdl" );
|
||||
pRandomInternalOrgan->KeyValue( "fademindist", "-1" );
|
||||
pRandomInternalOrgan->KeyValue( "fademaxdist", "0" );
|
||||
pRandomInternalOrgan->KeyValue( "fadescale", "1" );
|
||||
pRandomInternalOrgan->KeyValue( "inertiaScale", "1.0" );
|
||||
pRandomInternalOrgan->KeyValue( "physdamagescale", "0.1" );
|
||||
DispatchSpawn( pRandomInternalOrgan );
|
||||
pRandomInternalOrgan->m_takedamage = DAMAGE_YES; // Take damage, otherwise this can block trains
|
||||
pRandomInternalOrgan->SetHealth( 100 );
|
||||
pRandomInternalOrgan->Activate();
|
||||
pRandomInternalOrgan->SetCollisionGroup( COLLISION_GROUP_DEBRIS );
|
||||
pRandomInternalOrgan->AddFlag( FL_GRENADE );
|
||||
char buf[512];
|
||||
Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsOrigin().x, GetAbsOrigin().y, GetAbsOrigin().z );
|
||||
pRandomInternalOrgan->KeyValue( "origin", buf );
|
||||
Q_snprintf( buf, sizeof( buf ), "%.10f %.10f %.10f", GetAbsAngles().x, GetAbsAngles().y, GetAbsAngles().z );
|
||||
pRandomInternalOrgan->KeyValue( "angles", buf );
|
||||
pRandomInternalOrgan->KeyValue( "model", "models/player/gibs/random_organ.mdl" );
|
||||
pRandomInternalOrgan->KeyValue( "fademindist", "-1" );
|
||||
pRandomInternalOrgan->KeyValue( "fademaxdist", "0" );
|
||||
pRandomInternalOrgan->KeyValue( "fadescale", "1" );
|
||||
pRandomInternalOrgan->KeyValue( "inertiaScale", "1.0" );
|
||||
pRandomInternalOrgan->KeyValue( "physdamagescale", "0.1" );
|
||||
DispatchSpawn( pRandomInternalOrgan );
|
||||
pRandomInternalOrgan->m_takedamage = DAMAGE_YES; // Take damage, otherwise this can block trains
|
||||
pRandomInternalOrgan->SetHealth( 100 );
|
||||
pRandomInternalOrgan->Activate();
|
||||
|
||||
Vector vecImpulse = RandomVector( -1.f, 1.f );
|
||||
vecImpulse.z = 1.f;
|
||||
VectorNormalize( vecImpulse );
|
||||
Vector vecVelocity = vecImpulse * 250.0;
|
||||
pRandomInternalOrgan->ApplyAbsVelocityImpulse( vecVelocity );
|
||||
Vector vecImpulse = RandomVector( -1.f, 1.f );
|
||||
vecImpulse.z = 1.f;
|
||||
VectorNormalize( vecImpulse );
|
||||
Vector vecVelocity = vecImpulse * 250.0;
|
||||
pRandomInternalOrgan->ApplyAbsVelocityImpulse( vecVelocity );
|
||||
|
||||
pRandomInternalOrgan->ThinkSet( &CBaseEntity::SUB_Remove, gpGlobals->curtime + 5.f, "DieContext" );
|
||||
}
|
||||
pRandomInternalOrgan->ThinkSet( &CBaseEntity::SUB_Remove, gpGlobals->curtime + 5.f, "DieContext" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -325,6 +325,7 @@ void CSave::Log( const char *pName, fieldtype_t fieldType, void *value, int coun
|
|||
char chValue = pValue[iCount];
|
||||
Q_snprintf( szTempBuf, sizeof( szTempBuf ), "%c", chValue );
|
||||
Q_strncat( szBuf, szTempBuf, sizeof( szTempBuf ), COPY_ALL_CHARACTERS );
|
||||
break;
|
||||
}
|
||||
case FIELD_COLOR32:
|
||||
{
|
||||
|
|
|
@ -16967,7 +16967,7 @@ int CTFGameRules::CalcPlayerScore( RoundStats_t *pRoundStats, CTFPlayer *pPlayer
|
|||
( pRoundStats->m_iStat[TFSTAT_TELEPORTS] / TF_SCORE_TELEPORTS_PER_POINT ) +
|
||||
( pRoundStats->m_iStat[TFSTAT_INVULNS] / TF_SCORE_INVULN ) +
|
||||
( pRoundStats->m_iStat[TFSTAT_REVENGE] / TF_SCORE_REVENGE ) +
|
||||
( pRoundStats->m_iStat[TFSTAT_BONUS_POINTS] / TF_SCORE_BONUS_POINT_DIVISOR );
|
||||
( pRoundStats->m_iStat[TFSTAT_BONUS_POINTS] / TF_SCORE_BONUS_POINT_DIVISOR ) +
|
||||
( pRoundStats->m_iStat[TFSTAT_CURRENCY_COLLECTED] / TF_SCORE_CURRENCY_COLLECTED );
|
||||
|
||||
if ( pPlayer )
|
||||
|
|
|
@ -2386,16 +2386,15 @@ int Menu::GetCurrentlyHighlightedItem()
|
|||
// Purpose: Respond to cursor entering a menuItem.
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Josh: Slightly annoying, but need to completely ensure compatiblity with the SDK + GameUI interactions.
|
||||
// Josh: Slightly annoying, but need to completely ensure compatibility with the SDK + GameUI interactions.
|
||||
#ifdef PLATFORM_64BITS
|
||||
void Menu::OnCursorEnteredMenuItem( vgui::Panel* VPanel )
|
||||
{
|
||||
VPANEL menuItem = (VPANEL) VPanel;
|
||||
#else
|
||||
void Menu::OnCursorEnteredMenuItem(int VPanel)
|
||||
#endif
|
||||
{
|
||||
VPANEL menuItem = (VPANEL)VPanel;
|
||||
#endif
|
||||
|
||||
// if we are in mouse mode
|
||||
if (m_iInputMode == MOUSE)
|
||||
{
|
||||
|
@ -2419,13 +2418,12 @@ void Menu::OnCursorEnteredMenuItem(int VPanel)
|
|||
//-----------------------------------------------------------------------------
|
||||
#ifdef PLATFORM_64BITS
|
||||
void Menu::OnCursorExitedMenuItem( vgui::Panel* VPanel )
|
||||
{
|
||||
VPANEL menuItem = (VPANEL) VPanel;
|
||||
#else
|
||||
void Menu::OnCursorExitedMenuItem( int VPanel )
|
||||
#endif
|
||||
{
|
||||
VPANEL menuItem = (VPANEL) VPanel;
|
||||
#endif
|
||||
|
||||
// only care if we are in mouse mode
|
||||
if (m_iInputMode == MOUSE)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue