本文整理汇总了C++中C4PlayerInfo::SetRemoved方法的典型用法代码示例。如果您正苦于以下问题:C++ C4PlayerInfo::SetRemoved方法的具体用法?C++ C4PlayerInfo::SetRemoved怎么用?C++ C4PlayerInfo::SetRemoved使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类C4PlayerInfo
的用法示例。
在下文中一共展示了C4PlayerInfo::SetRemoved方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
bool C4PlayerList::Remove(C4Player *pPlr, bool fDisconnect, bool fNoCalls)
{
if (!pPlr) return false;
// inform script
if (!fNoCalls)
::Game.GRBroadcast(PSF_RemovePlayer, &C4AulParSet(C4VInt(pPlr->Number), C4VInt(pPlr->Team)));
// Transfer ownership of other objects to team members
if (!fNoCalls) pPlr->NotifyOwnedObjects();
// NET2: update player info list
if (pPlr->ID)
{
C4PlayerInfo *pInfo = Game.PlayerInfos.GetPlayerInfoByID(pPlr->ID);
if (pInfo)
{
pInfo->SetRemoved();
if (fDisconnect)
pInfo->SetDisconnected();
}
// if player wasn't evaluated, store round results anyway
if (!pPlr->Evaluated) Game.RoundResults.EvaluatePlayer(pPlr);
}
C4Player *pPrev=First;
while (pPrev && pPrev->Next!=pPlr) pPrev=pPrev->Next;
if (pPrev) pPrev->Next=pPlr->Next;
else First=pPlr->Next;
// Remove eliminated crew
if (!fNoCalls) pPlr->RemoveCrewObjects();
// Clear object info pointers
pPlr->CrewInfoList.DetachFromObjects();
// Clear viewports
::Viewports.CloseViewport(pPlr->Number, fNoCalls);
// Check fullscreen viewports
FullScreen.ViewportCheck();
// Remove player
delete pPlr;
// Validate object owners
::Objects.ValidateOwners();
// Update console
Console.UpdateMenus();
return true;
}