本文整理汇总了C++中MoverPtr::getTeamId方法的典型用法代码示例。如果您正苦于以下问题:C++ MoverPtr::getTeamId方法的具体用法?C++ MoverPtr::getTeamId怎么用?C++ MoverPtr::getTeamId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MoverPtr
的用法示例。
在下文中一共展示了MoverPtr::getTeamId方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: markRadiusSeenToTeams
void Team::markRadiusSeenToTeams(Stuff::Vector3D& location, float radius, bool shrinkForNight)
{
if(radius < 0.0)
radius = fireVisualRange;
if(shrinkForNight)
radius -= (radius * 0.25f);
bool didTeam[MAX_TEAMS] = {false, false, false, false, false, false, false, false};
for(size_t i = 0; i < ObjectManager->getNumMovers(); i++)
{
MoverPtr mover = ObjectManager->getMover(i);
if(mover->getTeam() && !didTeam[mover->getTeamId()] && !isFriendly(mover->getTeam()))
{
Stuff::Vector3D result;
result.x = location.x - mover->getPosition().x;
result.y = location.y - mover->getPosition().y;
result.z = 0.0;
float dist = result.GetLength() * metersPerWorldUnit;
if(dist < maxVisualRange)
{
markRadiusSeen(location, radius);
didTeam[mover->getTeamId()] = true;
}
}
}
}
示例2: scanBattlefield
//---------------------------------------------------------------------------
long SensorSystem::scanBattlefield (void)
{
//NOW returns size of largest contact!
long currentLargest = -1;
if (!owner)
Fatal(0, " Sensor has no owner ");
if (!master)
Fatal(0, " Sensor has no master ");
if ((masterIndex == -1) || (range < 0.0))
return(0);
long numNewContacts = 0;
long numMovers = ObjectManager->getNumMovers();
for (long i = 0; i < numMovers; i++)
{
MoverPtr mover = (MoverPtr)ObjectManager->getMover(i);
if (mover->getExists() && (mover->getTeamId() != owner->getTeamId()))
{
long contactStatus = calcContactStatus(mover);
if (isContact(mover))
{
if (contactStatus == CONTACT_NONE)
removeContact(mover);
else
{
modifyContact(mover, contactStatus == CONTACT_VISUAL ? true : false);
getLargest(currentLargest,mover,contactStatus);
}
}
else
{
if (contactStatus != CONTACT_NONE)
{
addContact(mover, contactStatus == CONTACT_VISUAL ? true : false);
getLargest(currentLargest,mover,contactStatus);
numNewContacts++;
}
}
}
}
totalContacts += numNewContacts;
return(currentLargest);
}
示例3: buildRoster
void Team::buildRoster(void)
{
//---------------------------------------------------------------------
// This function builds a roster for the team from the movers currently
// registered in the object manager. It assumes the teamId is already
// set for each mover, and compares this team's id to that of the
// objects to determine which objects belong on this team...
rosterSize = 0;
for(size_t i = 0; i < ObjectManager->getNumMovers(); i++)
{
MoverPtr mover = ObjectManager->getMover(i);
if(mover->getTeamId() == id)
roster[rosterSize++] = mover->getWatchID();
}
// numMechs = objClassTally[0];
// numVehicles = objClassTally[1];
// numElementals = objClassTally[2];
}
示例4: findBestSpotter
SensorSystemPtr TeamSensorSystem::findBestSpotter (MoverPtr contact, long* status) {
ContactInfoPtr contactInfo = contact->getContactInfo();
if (!contactInfo) {
char s[256];
sprintf(s, "TeamSensorSystem.findBestSpotter: NULL contactInfo for objClass %d partID %d team %d", contact->getObjectClass(), contact->getPartId(), contact->getTeamId());
STOP((s));
}
SensorSystemPtr bestSensor = NULL;
long bestStatus = CONTACT_NONE;
for (long i = 0; i < MAX_SENSORS; i++)
if (contactInfo->sensors[i] != 255) {
SensorSystemPtr sensor = SensorManager->getSensor(i);
if (sensor && sensor->owner && (teamId == sensor->owner->getTeamId())) {
long status = sensor->calcContactStatus(contact);
if (status >= bestStatus) {
bestSensor = sensor;
bestStatus = status;
}
}
}
if (status)
*status = bestStatus;
return(bestSensor);
}
示例5: setHit
void TriggerAreaManager::setHit (MoverPtr mover) {
#if 1
for (long i = 0; i < MAX_TRIGGER_AREAS; i++) {
if (triggerAreas[i].type == TRIGGER_AREA_NONE)
continue;
if (mover->cellPositionRow >= triggerAreas[i].dim[0])
if (mover->cellPositionRow < triggerAreas[i].dim[2])
if (mover->cellPositionCol >= triggerAreas[i].dim[1])
if (mover->cellPositionCol < triggerAreas[i].dim[3])
switch (triggerAreas[i].type) {
case TRIGGER_AREA_MOVER:
if (triggerAreas[i].param > 0) {
if (mover->getWatchID() == triggerAreas[i].param)
triggerAreas[i].hit = true;
}
else
triggerAreas[i].hit = true;
break;
case TRIGGER_AREA_TEAM:
if (mover->getTeamId() == triggerAreas[i].param) {
triggerAreas[i].hit = true;
//sprintf(s, "AREA HIT: %d", i);
//DEBUGWINS_print(s, 0);
}
break;
case TRIGGER_AREA_GROUP:
if (mover->getGroupId() == triggerAreas[i].param)
triggerAreas[i].hit = true;
break;
case TRIGGER_AREA_COMMANDER:
if (mover->getCommanderId() == triggerAreas[i].param)
triggerAreas[i].hit = true;
break;
}
}
#else
long areaHandle = map[mover->cellPositionRow / 3][mover->cellPositionCol / 3];
if (areaHandle > 0) {
switch (triggerAreas[areaHandle].type) {
case TRIGGER_AREA_MOVER:
if (triggerAreas[areaHandle].param > 0) {
if (mover->getWatchID() == triggerAreas[areaHandle].param)
triggerAreas[areaHandle].hit = true;
}
else
triggerAreas[areaHandle].hit = true;
break;
case TRIGGER_AREA_TEAM:
if (mover->getTeamId() == triggerAreas[areaHandle].param)
triggerAreas[areaHandle].hit = true;
break;
case TRIGGER_AREA_GROUP:
if (mover->getGroupId() == triggerAreas[areaHandle].param)
triggerAreas[areaHandle].hit = true;
break;
case TRIGGER_AREA_COMMANDER:
if (mover->getCommanderId() == triggerAreas[areaHandle].param)
triggerAreas[areaHandle].hit = true;
break;
}
}
#endif
}
示例6: render
//.........这里部分代码省略.........
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;