本文整理汇总了C++中MoverPtr::getContactStatus方法的典型用法代码示例。如果您正苦于以下问题:C++ MoverPtr::getContactStatus方法的具体用法?C++ MoverPtr::getContactStatus怎么用?C++ MoverPtr::getContactStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MoverPtr
的用法示例。
在下文中一共展示了MoverPtr::getContactStatus方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getVisualContacts
long TeamSensorSystem::getVisualContacts (MoverPtr* moverList) {
long numVisualContacts = 0;
for (long i = 0; i < numContacts; i++) {
MoverPtr contact = (MoverPtr)ObjectManager->get(contacts[i]);
if (!contact->getFlag(OBJECT_FLAG_REMOVED))
if (contact->getContactStatus(teamId, true) == CONTACT_VISUAL)
moverList[numVisualContacts++] = contact;
}
return(numVisualContacts);
}
示例2: hasSensorContact
bool TeamSensorSystem::hasSensorContact (long teamID) {
for (long i = 0; i < numContacts; i++) {
MoverPtr mover = (MoverPtr)ObjectManager->get(contacts[i]);
if (!mover->getFlag(OBJECT_FLAG_REMOVED)) {
static bool isSensor[NUM_CONTACT_STATUSES] = {false, true, true, true, true, false};
if (isSensor[mover->getContactStatus(teamID, true)])
return(true);
}
}
return(false);
}
示例3: getSensorContacts
long TeamSensorSystem::getSensorContacts (MoverPtr* moverList) {
static bool isSensor[NUM_CONTACT_STATUSES] = {false, true, true, true, true, false};
long numSensorContacts = 0;
for (long i = 0; i < numContacts; i++) {
MoverPtr contact = (MoverPtr)ObjectManager->get(contacts[i]);
if (!contact->getFlag(OBJECT_FLAG_REMOVED))
if (isSensor[contact->getContactStatus(teamId, true)])
moverList[numSensorContacts++] = contact;
}
return(numSensorContacts);
}
示例4: meetsCriteria
bool TeamSensorSystem::meetsCriteria (GameObjectPtr looker, MoverPtr mover, long contactCriteria) {
bool isSensor[NUM_CONTACT_STATUSES] = {false, true, true, true, true, false};
long status = mover->getContactStatus(teamId, true);
if (mover->getFlag(OBJECT_FLAG_REMOVED))
return(false);
if (status == CONTACT_NONE)
return(false);
if (contactCriteria & CONTACT_CRITERIA_VISUAL_OR_SENSOR)
if ((status != CONTACT_VISUAL) && !isSensor[status])
return(false);
if (contactCriteria & CONTACT_CRITERIA_VISUAL)
if (status != CONTACT_VISUAL)
return(false);
if (contactCriteria & CONTACT_CRITERIA_SENSOR)
if (!isSensor[status])
return(false);
if (contactCriteria & CONTACT_CRITERIA_NOT_CHALLENGED) {
if (mover->getChallenger() != NULL)
return(false);
}
if (contactCriteria & CONTACT_CRITERIA_NOT_DISABLED) {
if (mover->isDisabled())
return(false);
}
if (contactCriteria & CONTACT_CRITERIA_ENEMY) {
if ((teamId == -1) || !mover->getTeam())
return(false);
if (!Team::teams[teamId]->isEnemy(mover->getTeam()))
return(false);
}
if (contactCriteria & CONTACT_CRITERIA_ARMED) {
if (mover->numFunctionalWeapons == 0)
return(false);
}
return(true);
}
示例5: render
//.........这里部分代码省略.........
s_lastBlinkTime += g_deltaTime;
if ( s_lastBlinkTime > s_blinkLength )
{
colorBlip = 0;
colorRing = 0;
s_lastBlinkTime = 0.f;
}
}
colors[count] = colorBlip;
ringColors[count] = colorRing;
ranges[count] = pSensor->getRange();
selected[count] = 0;
positions[count] = pSensor->owner->getPosition();
count++;
}
}
}
}
unsigned long colorBlip, colorRing;
//-----------------------------------------------------
// draw the movers
for (i=0;i<(ObjectManager->numMovers);i++)
{
MoverPtr mover = ObjectManager->getMover(i);
if (mover && mover->getExists() && !(mover->isDestroyed() || mover->isDisabled()))
{
SensorSystem* pSensor = mover->getSensorSystem();
float range = pSensor ? pSensor->getRange() : 0;
long contactStatus = mover->getContactStatus(Team::home->getId(), true);
if (mover->getTeamId() == Team::home->id)
{
if (mover->getCommanderId() == Commander::home->getId())
{
if (mover->isOnGUI())
{
colorBlip = mover->getSelected() ? 0xff4bff4b : 0xff00cc00;
mover->getStatus() == OBJECT_STATUS_SHUTDOWN ? colorRing = 0 : colorRing = 0xff00cc00;
}
else
continue;
}
else
{
if (mover->isOnGUI() && land->IsGameSelectTerrainPosition(mover->getPosition()) && mover->pathLocks)
{
colorBlip = mover->getSelected() ? 0xff4b4bff : 0xff0000cc;
mover->getStatus() == OBJECT_STATUS_SHUTDOWN ? colorRing = 0 : colorRing = 0xff0000cc;
}
else
continue;
}
}
else if (g_dbgShowMovers || (MPlayer && MPlayer->allUnitsDestroyed[MPlayer->commanderID]) || ((mover->getTeamId() != Team::home->id)
&& ( contactStatus != CONTACT_NONE )
&& (mover->getStatus() != OBJECT_STATUS_SHUTDOWN)
&& (!mover->hasNullSignature())
&& (mover->getEcmRange() <= 0.0f) ) ) //Do not draw ECM mechs!!)
{
//Not on our side. Draw by contact status
colorBlip = mover->getSelected() ? 0xffff3f3f : 0xffff0000;
colorRing = 0xffff0000;