De/UTIL EntitiesInBox: Difference between revisions
< De
Jump to navigation
Jump to search
(Created page with "{{otherlang2 |en=UTIL_EntitiesInBox }} {{DISPLAYTITLE:UTIL_EntitiesInBox}} '''UTIL_EntitiesInBox''' ist ein UTIL, bereitgestellt durch den Sourcecode, u...") |
m (obsolete language category) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|UTIL_EntitiesInBox|title=UTIL_EntitiesInBox}} | ||
| | '''UTIL_EntitiesInBox''' ist ein {{L|UTIL}}, bereitgestellt durch den {{L|Source}}code, um {{L|Entity|Entities}} innerhalb einer Box zu finden. Es nimmt eine Entity-Liste, Minimum, Maximum und {{L|flag|Flags}} und liefert eine Anzahl von Entities und eine Liste der Entities. | ||
'''UTIL_EntitiesInBox''' ist ein | |||
Line 75: | Line 72: | ||
</source> | </source> | ||
{{ACategory|Programming}} | |||
{{ACategory|UTIL}} |
Latest revision as of 03:18, 22 August 2024
UTIL_EntitiesInBox ist ein UTIL , bereitgestellt durch den Source code, um Entities innerhalb einer Box zu finden. Es nimmt eine Entity-Liste, Minimum, Maximum und Flags und liefert eine Anzahl von Entities und eine Liste der Entities.
Benutzung
//-----------------------------------------------------------------------------
// Zweck : Liefert die Anzahl der Entities in der Box plus ein Array von Pointern auf die Entities.
//
// Input : CBaseEntity - *pList | Ein Pointer auf ein Array, in dem die Funktion die Pointer auf die Entities speichern wird.
// Input : int - listMax | Maximale Anzahl der zurückzugebenden Entities.
// Input : Vector - &mins | Das Minimum der zu prüfenden Box. Weltkoordinaten.
// Input : Vector - &maxs | Das Maximum der zu prüfenden Box. Weltkoordinaten.
// Input : int - flagmask |
// Output: *pList
// Output: int - Liefert die Anzahl der gefundenen Entities
//-----------------------------------------------------------------------------
inline int UTIL_EntitiesInBox( CBaseEntity **pList, int listMax, const Vector &mins, const Vector &maxs, int flagMask )
//-----------------------------------------------------------------------------
// Zweck : Liefert die Anzahl der Entities in der Box.
//
// Input : Vector - &mins | Das Minimum der zu prüfenden Box. Weltkoordinaten.
// Input : Vector - &maxs | Das Maximum der zu prüfenden Box. Weltkoordinaten.
// Input : CFlaggedEntitiesEnum *pEnum | TODO
// Output: int - Liefert die Anzahl der gefundenen Entities
//-----------------------------------------------------------------------------
int UTIL_EntitiesInBox( const Vector &mins, const Vector &maxs, CFlaggedEntitiesEnum *pEnum );
flagmask ist in const.h, Zeilen 97-132, verfügbar
Beispiele
//Erzeugt ein Array mit CBaseEntity-Pointern
CBaseEntity* pList[20];
//Legt die Pointer in pList und speichert die Anzahl der Entities
int count = UTIL_EntitiesInBox( pList, 20, spawnOrigin + NAI_Hull::Mins( HULL_MEDIUM ), spawnOrigin + NAI_Hull::Maxs( HULL_MEDIUM ), 0 );
//Iteriert über alle möglichen Ziele
for ( int i = 0; i < count; i++ )
{
//Wenn ein einzelner movetype einer Entity nicht MOVETYPE_VPHYSICS ist, wird der Rest der Schleife übersprungen und am Anfang vortgesetzt
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;
}
}
//verwendet die überladene Funktion und liefert nur die Anzahl der 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 );