Ejemplo n.º 1
0
// ---------------------------------------------------------------------
// Deselects all units for the player
unsigned int selDroidDeselect(unsigned int player)
{
	unsigned int count = 0;

	for (DROID *psDroid = apsDroidLists[player]; psDroid; psDroid = psDroid->psNext)
	{
		if (psDroid->selected)
		{
			count++;
			DeSelectDroid(psDroid);
		}
	}

	return count;
}
Ejemplo n.º 2
0
// ---------------------------------------------------------------------
// Deselects all units for the player
UDWORD	selDroidDeselect( UDWORD player )
{
UDWORD	count;
DROID	*psDroid;

	for(psDroid = apsDroidLists[player], count = 0;
		psDroid; psDroid = psDroid->psNext)
		{
			if(psDroid->selected)
			{
				count++;
			}
//			psDroid->selected = false;
			DeSelectDroid(psDroid);
		}
	return(count);
}
Ejemplo n.º 3
0
// Call this whenever a droid gets killed or removed.
// returns true if ok, returns false if resulted in driving mode being stopped, ie could'nt find
// a selected droid to drive.
//
bool driveDroidKilled(DROID *psDroid)
{
	if(driveModeActive()) {
		if(psDroid == psDrivenDroid) {
			ChangeDriver();

			psDrivenDroid = NULL;
			DeSelectDroid(psDroid);

			if(!StartDriverMode(psDroid))
			{
				return false;
			}
		}
	}

	return true;
}
Ejemplo n.º 4
0
static unsigned selSelectUnitsIf(unsigned player, T condition, bool onlyOnScreen)
{
	unsigned count = 0;

	selDroidDeselect(player);

	// Go through all.
	for (DROID *psDroid = apsDroidLists[player]; psDroid != nullptr; psDroid = psDroid->psNext)
	{
		bool shouldSelect = (!onlyOnScreen || droidOnScreen(psDroid, 0)) &&
		                    condition(psDroid);
		count += shouldSelect;
		if (shouldSelect && !psDroid->selected)
		{
			SelectDroid(psDroid);
		}
		else if (!shouldSelect && psDroid->selected)
		{
			DeSelectDroid(psDroid);
		}
	}

	return count;
}