当前位置: 首页>>代码示例>>C++>>正文


C++ MoverPtr::getTeamId方法代码示例

本文整理汇总了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;
			}
		}
	}
}
开发者ID:BobrDobr69,项目名称:mechcommander2,代码行数:25,代码来源:team.cpp

示例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);
}
开发者ID:Ariemeth,项目名称:MechCommander2HD,代码行数:50,代码来源:Contact.cpp

示例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];
}
开发者ID:BobrDobr69,项目名称:mechcommander2,代码行数:18,代码来源:team.cpp

示例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);
}
开发者ID:Ariemeth,项目名称:MechCommander2HD,代码行数:25,代码来源:Contact.cpp

示例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
}
开发者ID:,项目名称:,代码行数:64,代码来源:

示例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;
				
开发者ID:Ariemeth,项目名称:MechCommander2HD,代码行数:66,代码来源:gameTacMap.cpp


注:本文中的MoverPtr::getTeamId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。