mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-30 05:59:20 +00:00
upload "kind" alien swarm
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Squad classes
|
||||
//
|
||||
@@ -153,7 +153,7 @@ END_DATADESC()
|
||||
|
||||
//-------------------------------------
|
||||
|
||||
CAI_Squad::CAI_Squad(string_t newName)
|
||||
CAI_Squad::CAI_Squad(string_t newName)
|
||||
#ifndef PER_ENEMY_SQUADSLOTS
|
||||
: m_squadSlotsUsed(MAX_SQUADSLOTS)
|
||||
#endif
|
||||
@@ -163,7 +163,7 @@ CAI_Squad::CAI_Squad(string_t newName)
|
||||
|
||||
//-------------------------------------
|
||||
|
||||
CAI_Squad::CAI_Squad()
|
||||
CAI_Squad::CAI_Squad()
|
||||
#ifndef PER_ENEMY_SQUADSLOTS
|
||||
: m_squadSlotsUsed(MAX_SQUADSLOTS)
|
||||
#endif
|
||||
@@ -175,7 +175,7 @@ CAI_Squad::CAI_Squad()
|
||||
|
||||
void CAI_Squad::Init(string_t newName)
|
||||
{
|
||||
m_Name = newName;
|
||||
m_Name = AllocPooledString( STRING(newName) );
|
||||
m_pNextSquad = NULL;
|
||||
m_flSquadSoundWaitTime = 0;
|
||||
m_SquadMembers.RemoveAll();
|
||||
@@ -263,9 +263,10 @@ void CAI_Squad::AddToSquad(CAI_BaseNPC *pNPC)
|
||||
|
||||
if (m_SquadMembers.Count() == MAX_SQUAD_MEMBERS)
|
||||
{
|
||||
DevMsg("Error!! Squad %s is too big!!! Replacing last member\n", STRING( this->m_Name ));
|
||||
DevMsg("Error!! Squad %s is too big!!! Replacing last member\n", STRING(this->m_Name) );
|
||||
m_SquadMembers.Remove(m_SquadMembers.Count()-1);
|
||||
}
|
||||
|
||||
m_SquadMembers.AddToTail(pNPC);
|
||||
pNPC->SetSquad( this );
|
||||
pNPC->SetSquadName( m_Name );
|
||||
@@ -273,6 +274,7 @@ void CAI_Squad::AddToSquad(CAI_BaseNPC *pNPC)
|
||||
if ( m_SquadMembers.Count() > 1 )
|
||||
{
|
||||
CAI_BaseNPC *pCopyFrom = m_SquadMembers[0];
|
||||
Assert( pCopyFrom != NULL );
|
||||
CAI_Enemies *pEnemies = pCopyFrom->GetEnemies();
|
||||
AIEnemiesIter_t iter;
|
||||
AI_EnemyInfo_t *pInfo = pEnemies->GetFirst( &iter );
|
||||
@@ -294,7 +296,7 @@ CAI_BaseNPC *CAI_Squad::SquadMemberInRange( const Vector &vecLocation, float flD
|
||||
if (m_SquadMembers[i] != NULL && (vecLocation - m_SquadMembers[i]->GetAbsOrigin() ).Length2D() <= flDist)
|
||||
return m_SquadMembers[i];
|
||||
}
|
||||
return NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
@@ -420,7 +422,7 @@ CAI_BaseNPC *CAI_Squad::GetLeader( void )
|
||||
//-----------------------------------------------------------------------------
|
||||
CAI_BaseNPC *CAI_Squad::GetFirstMember( AISquadIter_t *pIter, bool bIgnoreSilentMembers )
|
||||
{
|
||||
intp i = 0;
|
||||
int i = 0;
|
||||
if ( bIgnoreSilentMembers )
|
||||
{
|
||||
for ( ; i < m_SquadMembers.Count(); i++ )
|
||||
@@ -459,6 +461,29 @@ CAI_BaseNPC *CAI_Squad::GetNextMember( AISquadIter_t *pIter, bool bIgnoreSilentM
|
||||
return m_SquadMembers[i];
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
// Purpose: Returns the average of the
|
||||
// positions of all squad members.
|
||||
// Optionally, you may exclude one
|
||||
// member.
|
||||
//-------------------------------------
|
||||
Vector CAI_Squad::ComputeSquadCentroid( bool bIncludeSilentMembers, CBaseCombatCharacter *pExcludeMember )
|
||||
{
|
||||
int count = 0;
|
||||
Vector vecSumOfOrigins = Vector( 0, 0, 0 );
|
||||
|
||||
for ( int i = 0; i < m_SquadMembers.Count(); i++ )
|
||||
{
|
||||
if ( (m_SquadMembers[i] != pExcludeMember) && (bIncludeSilentMembers||!IsSilentMember(m_SquadMembers[i]) ) )
|
||||
{
|
||||
count++;
|
||||
vecSumOfOrigins+= m_SquadMembers[i]->GetAbsOrigin();
|
||||
}
|
||||
}
|
||||
|
||||
return vecSumOfOrigins / count;
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
// Purpose: Alert everyone in the squad to the presence of a new enmey
|
||||
//-------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user