UTIL EntitiesInBox: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
m (linked the german translation)
Line 1: Line 1:
{{otherlang2
|de=UTIL_EntitiesInBox:de
}}
{{DISPLAYTITLE:UTIL_EntitiesInBox}}
{{DISPLAYTITLE:UTIL_EntitiesInBox}}
'''UTIL_EntitiesInBox''' is a [[UTIL]] provided in the [[Source]] code for finding [[entity|entities]] within a specified box. It takes an Entity List, Mins, Maxes, and [[flag|flags]], returning a count of entities, as well as a list of the entities.
'''UTIL_EntitiesInBox''' is a [[UTIL]] provided in the [[Source]] code for finding [[entity|entities]] within a specified box. It takes an Entity List, Mins, Maxes, and [[flag|flags]], returning a count of entities, as well as a list of the entities.

Revision as of 04:06, 24 April 2013

Template:Otherlang2

UTIL_EntitiesInBox is a UTIL provided in the Source code for finding entities within a specified box. It takes an Entity List, Mins, Maxes, and flags, returning a count of entities, as well as a list of the entities.


Usage

//-----------------------------------------------------------------------------
// Purpose: Returns the number of entities in the box, plus an array of pointers to the entities.
//          
// Input  : CBaseEntity - *pList   | A pointer to an array, the function will store a pointer to the Entities it finds in this array.
// Input  : int - listMax     | Maximum number of entities to return
// Input  : Vector - &mins    | The mins of a box to check. World space coordinate.
// Input  : Vector - &maxs    | The maxs of a box to check. World space coordinate.
// Input  : int - flagmask    | 
// Output : *pList
// Output : int - Returns the amount of entities it finds
//-----------------------------------------------------------------------------
inline int UTIL_EntitiesInBox( CBaseEntity **pList, int listMax, const Vector &mins, const Vector &maxs, int flagMask )
//-----------------------------------------------------------------------------
// Purpose: Returns the number of entities in the box.
//          
// Input  : Vector - &mins    | The mins of a box to check. World space coordinate.
// Input  : Vector - &maxs    | The maxs of a box to check. World space coordinate.
// Input  : CFlaggedEntitiesEnum *pEnum    | TODO
// Output : int - Returns the amount of entities it finds
//-----------------------------------------------------------------------------
int  UTIL_EntitiesInBox( const Vector &mins, const Vector &maxs, CFlaggedEntitiesEnum *pEnum  );

flagmask is avaible in const.h, lines 97-132

Examples

//Create an array of CBaseEntity pointers
CBaseEntity*	pList[20];

//Put the pointers in the pList, and get how many entities there are
int count = UTIL_EntitiesInBox( pList, 20, spawnOrigin + NAI_Hull::Mins( HULL_MEDIUM ), spawnOrigin + NAI_Hull::Maxs( HULL_MEDIUM ), 0 );

//Iterate over all the possible targets
for ( int i = 0; i < count; i++ )
{
        //If the particular entity's movetype isn't MOVETYPE_VPHYSICS, skip the rest of this loop, and go to the next entity
	if ( pList[i]->GetMoveType() != MOVETYPE_VPHYSICS )
		continue;

	if ( PhysGetEntityMass( pList[i] ) > ANTLION_MAKER_BLOCKED_MASS )
	{
		bBlocked = true;
		iNumBlocked++;
		pBlocker = pList[i];

		if ( pTestHint == pNode )
		{
			bChosenHintBlocked = true;
		}

		break;
	}
}
//This uses the overloaded function, and only returns the number of entities.
CBaseEntity *entityList[64];
Vector range(ROLLERMINE_WAKEUP_DIST,ROLLERMINE_WAKEUP_DIST,64);
int boxCount = UTIL_EntitiesInBox( entityList, ARRAYSIZE(entityList), GetAbsOrigin()-range, GetAbsOrigin()+range, FL_NPC );