本文整理汇总了C++中IshipIGC::SeenBySide方法的典型用法代码示例。如果您正苦于以下问题:C++ IshipIGC::SeenBySide方法的具体用法?C++ IshipIGC::SeenBySide怎么用?C++ IshipIGC::SeenBySide使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IshipIGC
的用法示例。
在下文中一共展示了IshipIGC::SeenBySide方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IsFriendlyCluster
bool CclusterIGC::IsFriendlyCluster(IsideIGC* pside, ClusterQuality cqlty) //Spunky #288
{
int balanceOfPower = 0;
//carrier or ASS in sector = not friendly - Spunky #290
ShipLinkIGC* pshipl = GetShips()->first();
if (pshipl)
{
do
{
IshipIGC* pship = pshipl->data();
if (pship->GetParentShip() == NULL)
if (pship->GetSide() != pside && pship->SeenBySide(pside) && !IsideIGC::AlliedSides(pside, pship->GetSide()))
{
if (pship->GetHullType()->HasCapability(c_habmIsRipcordTarget | c_habmIsLtRipcordTarget))
return false;
if (pship->GetBaseHullType()->GetScannerRange() > 800 && cqlty & cqNoEye)
return false;
balanceOfPower--;
}
else if (pship->GetSide() == pside || IsideIGC::AlliedSides(pside, pship->GetSide()))
balanceOfPower++;
pshipl = pshipl->next();
} while (pshipl);
}
if (balanceOfPower < 0 && cqlty & cqPositiveBOP)
return false;
//Spunky #333
StationLinkIGC* psl = GetStations()->first();
bool ourBaseInCluster = false;
if (psl)
{
do
{
IstationIGC* ps = psl->data();
if (!ps->GetStationType()->HasCapability(c_sabmPedestal) && ps->SeenBySide(pside))
{
if (pside != ps->GetSide() && !IsideIGC::AlliedSides(pside, ps->GetSide())) // #ALLY FIXED 7/10/09 imago
return false;
else
ourBaseInCluster = true;
}
psl = psl->next();
}
while (psl != NULL);
}
if (cqlty & cqIncludeNeutral || ourBaseInCluster)
return true;
else
return false;
}