本文整理汇总了C++中ratl::vector_vs::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ vector_vs::push_back方法的具体用法?C++ vector_vs::push_back怎么用?C++ vector_vs::push_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ratl::vector_vs
的用法示例。
在下文中一共展示了vector_vs::push_back方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SP_rail_lane
void SP_rail_lane(gentity_t *ent)
{
gi.SetBrushModel(ent, ent->model);
G_SpawnInt("delay", "0", &ent->delay);
mRailLanes.push_back().Setup(ent);
G_FreeEntity(ent);
}
示例2: SP_rail_track
void SP_rail_track(gentity_t *ent)
{
gi.SetBrushModel(ent, ent->model);
G_SpawnInt("delay", "0", &ent->delay);
mRailTracks.push_back().Setup(ent);
G_FreeEntity(ent);
mRailSystemActive = true;
}
示例3:
void Pilot_Update(void)
{
mActivePilotCount = 0;
mRegistered.clear();
for (int i=0; i<ENTITYNUM_WORLD; i++)
{
if (g_entities[i].inuse &&
g_entities[i].client &&
g_entities[i].NPC &&
g_entities[i].NPC->greetEnt &&
g_entities[i].NPC->greetEnt->owner==(&g_entities[i])
)
{
mActivePilotCount++;
}
if ( g_entities[i].inuse &&
g_entities[i].client &&
g_entities[i].m_pVehicle &&
!g_entities[i].owner &&
g_entities[i].health>0 &&
g_entities[i].m_pVehicle->m_pVehicleInfo->type==VH_SPEEDER &&
!mRegistered.full())
{
mRegistered.push_back(&g_entities[i]);
}
}
if (player &&
player->inuse &&
TIMER_Done(player, "FlybySoundArchitectureDebounce"))
{
TIMER_Set(player, "FlybySoundArchitectureDebounce", 300);
Vehicle_t* pVeh = G_IsRidingVehicle(player);
if (pVeh &&
(pVeh->m_pVehicleInfo->soundFlyBy || pVeh->m_pVehicleInfo->soundFlyBy2) &&
//fabsf(pVeh->m_pParentEntity->currentAngles[2])<15.0f &&
VectorLength(pVeh->m_pParentEntity->client->ps.velocity)>500.0f)
{
vec3_t projectedPosition;
vec3_t projectedDirection;
vec3_t projectedRight;
vec3_t anglesNoRoll;
VectorCopy(pVeh->m_pParentEntity->currentAngles, anglesNoRoll);
anglesNoRoll[2] = 0;
AngleVectors(anglesNoRoll, projectedDirection, projectedRight, 0);
VectorMA(player->currentOrigin, 1.2f, pVeh->m_pParentEntity->client->ps.velocity, projectedPosition);
VectorMA(projectedPosition, Q_flrand(-200.0f, 200.0f), projectedRight, projectedPosition);
gi.trace(&mPilotViewTrace,
player->currentOrigin,
0,
0,
projectedPosition,
player->s.number,
MASK_SHOT, G2_NOCOLLIDE, 0);
if ((mPilotViewTrace.allsolid==qfalse) &&
(mPilotViewTrace.startsolid==qfalse) &&
(mPilotViewTrace.fraction<0.99f) &&
(mPilotViewTrace.plane.normal[2]<0.5f) &&
(DotProduct(projectedDirection, mPilotViewTrace.plane.normal)<-0.5f)
)
{
// CG_DrawEdge(player->currentOrigin, mPilotViewTrace.endpos, EDGE_IMPACT_POSSIBLE);
TIMER_Set(player, "FlybySoundArchitectureDebounce", Q_irand(1000, 2000));
int soundFlyBy = pVeh->m_pVehicleInfo->soundFlyBy;
if (pVeh->m_pVehicleInfo->soundFlyBy2 && (!soundFlyBy || !Q_irand(0,1)))
{
soundFlyBy = pVeh->m_pVehicleInfo->soundFlyBy2;
}
G_SoundAtSpot(mPilotViewTrace.endpos, soundFlyBy, qtrue);
}
else
{
// CG_DrawEdge(player->currentOrigin, mPilotViewTrace.endpos, EDGE_IMPACT_SAFE);
}
}
}
}
示例4:
void CRailTrack::Update()
{
mNextUpdateTime = level.time + mNextUpdateDelay;
// Now, Attempt To Add A Number Of Movers To The Track
//-----------------------------------------------------
int attempt;
int startCol;
int stopCol;
int atCol;
int testColIndex;
for (attempt=0; attempt<mNumMoversPerRow; attempt++)
{
// Randomly Select A Mover And Test To See If It Is Active
//---------------------------------------------------------
CRailMover* mover = mMovers[Q_irand(0, mMovers.size()-1)];
if (mover->Active())
{
continue;
}
// Don't Spawn Until Start Time Has Expired
//------------------------------------------
if (level.time < ((mover->mLane)?(mover->mLane->mStartTime):(mStartTime)))
{
continue;
}
// If Center Locked, Stop Spawning Center Track Movers
//-----------------------------------------------------
if (mover->mCenter && mCenterLocked)
{
continue;
}
// Restrict It To A Lane
//-----------------------
if (mover->mLane)
{
startCol = mover->mLane->mMinCol;
stopCol = mover->mLane->mMaxCol+1;
}
// Or Let It Go Anywhere On The Track
//------------------------------------
else
{
startCol = 0;
stopCol = mCols;
}
stopCol -= (mover->mCols-1);
// If The Mover Is Too Big To Fit In The Lane, Go On To Next Attempt
//-------------------------------------------------------------------
if (stopCol<=startCol)
{
assert(0); // Should Not Happen
continue;
}
// Force It To Center
//--------------------
if (mover->mCenter && stopCol!=(startCol+1))
{
startCol = ((mCols/2) - (mover->mCols/2));
stopCol = startCol+1;
}
// Construct A List Of Columns To Test For Insertion
//---------------------------------------------------
mTestCols.clear();
for (int i=startCol; i<stopCol; i++)
{
mTestCols.push_back(i);
}
// Now Try All The Cols To See If The Building Can Fit
//-----------------------------------------------------
while (!mTestCols.empty())
{
// Randomly Pick A Column, Then Remove It From The Vector
//--------------------------------------------------------
testColIndex = Q_irand(0, mTestCols.size()-1);
atCol = mTestCols[testColIndex];
mTestCols.erase_swap(testColIndex);
if (TestMoverInCells(mover, atCol))
{
// Ok, We've Found A Safe Column To Insert This Mover
//----------------------------------------------------
InsertMoverInCells(mover, atCol);
// Now Transport The Actual Mover Entity Into Position, Link It & Send It Off
//----------------------------------------------------------------------------
CVec3 StartPos(mGridBottomLeftCorner);
//.........这里部分代码省略.........
示例5: SP_rail_mover
void SP_rail_mover(gentity_t *ent)
{
gi.SetBrushModel(ent, ent->model);
mRailMovers.push_back().Setup(ent);
}
示例6: NPC_AnimalUpdateLeader
//.........这里部分代码省略.........
//---------------------------------------------------
gentity_t* closestLeader = 0;
float closestDist = 0;
int myLeaderNum = 0;
for (int i=0; i<mPacks.size(); i++)
{
// Dump Dead Leaders
//-------------------
if (mPacks[i]==0 || mPacks[i]->health<=0)
{
if (mPacks[i]==NPC->client->leader)
{
NPC->client->leader = 0;
}
mPacks.erase_swap(i);
if (i>=mPacks.size())
{
closestLeader = 0;
break;
}
}
// Don't Count Self
//------------------
if (mPacks[i]==NPC)
{
myLeaderNum = i;
continue;
}
float Dist = Distance(mPacks[i]->currentOrigin, NPC->currentOrigin);
if (!closestLeader || Dist<closestDist)
{
closestDist = Dist;
closestLeader = mPacks[i];
}
}
// In Joining Distance?
//----------------------
if (closestLeader && closestDist<JOIN_PACK_DISTANCE)
{
// Am I Already A Leader?
//------------------------
if (NPC->client->leader==NPC)
{
mPacks.erase_swap(myLeaderNum); // Erase Myself From The Leader List
}
// Join The Pack!
//----------------
NPC->client->leader = closestLeader;
}
// Do I Have A Leader?
//---------------------
if (NPC->client->leader)
{
// AM I A Leader?
//----------------
if (NPC->client->leader!=NPC)
{
// If Our Leader Is Dead, Clear Him Out
if ( NPC->client->leader->health<=0 || NPC->client->leader->inuse == 0)
{
NPC->client->leader = 0;
}
// If My Leader Isn't His Own Leader, Then, Use His Leader
//---------------------------------------------------------
else if (NPC->client->leader->client->leader!=NPC->client->leader)
{
// Eh. Can this get more confusing?
NPC->client->leader = NPC->client->leader->client->leader;
}
// If Our Leader Is Too Far Away, Clear Him Out
//------------------------------------------------------
else if ( Distance(NPC->client->leader->currentOrigin, NPC->currentOrigin)>LEAVE_PACK_DISTANCE)
{
NPC->client->leader = 0;
}
}
}
// If We Couldn't Find A Leader, Then Become One
//-----------------------------------------------
else if (!mPacks.full())
{
NPC->client->leader = NPC;
mPacks.push_back(NPC);
}
return NPC->client->leader;
}