Engine: Add entity_intersects native.
This commit is contained in:
parent
7d69a78d06
commit
dbe95c849b
|
@ -1540,11 +1540,35 @@ static cell AMX_NATIVE_CALL set_ent_rendering(AMX *amx, cell *params) // set_use
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL entity_intersects(AMX *amx, cell *params) // bool:entity_intersects(entity, other); = 2 arguments
|
||||||
|
{
|
||||||
|
// params[1] = entity
|
||||||
|
// params[2] = other
|
||||||
|
|
||||||
|
CHECK_ENTITY_SIMPLE(params[1]);
|
||||||
|
CHECK_ENTITY_SIMPLE(params[2]);
|
||||||
|
|
||||||
|
entvars_s *pevEntity = VARS(INDEXENT2(params[1]));
|
||||||
|
entvars_s *pevOther = VARS(INDEXENT2(params[2]));
|
||||||
|
|
||||||
|
if (pevOther->absmin.x > pevEntity->absmax.x ||
|
||||||
|
pevOther->absmin.y > pevEntity->absmax.y ||
|
||||||
|
pevOther->absmin.z > pevEntity->absmax.z ||
|
||||||
|
pevOther->absmax.x < pevEntity->absmin.x ||
|
||||||
|
pevOther->absmax.y < pevEntity->absmin.y ||
|
||||||
|
pevOther->absmax.z < pevEntity->absmin.z)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
AMX_NATIVE_INFO ent_NewNatives[] =
|
AMX_NATIVE_INFO ent_NewNatives[] =
|
||||||
{
|
{
|
||||||
{"DispatchKeyValue", DispatchKeyValue},
|
{"DispatchKeyValue", DispatchKeyValue},
|
||||||
{"set_ent_rendering", set_ent_rendering},
|
{"set_ent_rendering", set_ent_rendering},
|
||||||
|
{"entity_intersects", entity_intersects},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -250,4 +250,15 @@ native trace_forward(const Float:start[3], const Float:angle[3], Float:give, ign
|
||||||
*/
|
*/
|
||||||
native set_ent_rendering(index, fx = kRenderFxNone, r = 0, g = 0, b = 0, render = kRenderNormal, amount = 0);
|
native set_ent_rendering(index, fx = kRenderFxNone, r = 0, g = 0, b = 0, render = kRenderNormal, amount = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether two entities intersect by comparing
|
||||||
|
* their absolute minimum and maximum coordinates.
|
||||||
|
*
|
||||||
|
* @param entity The first entity index to check.
|
||||||
|
* @param other The second entity index to check.
|
||||||
|
*
|
||||||
|
* @return true on success, false otherwise.
|
||||||
|
*/
|
||||||
|
native bool:entity_intersects(entity, other);
|
||||||
|
|
||||||
#include <engine_stocks>
|
#include <engine_stocks>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user