Fixed memory leak in detach
This commit is contained in:
@ -1351,167 +1351,6 @@ static cell AMX_NATIVE_CALL entity_set_size(AMX *amx, cell *params)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/***********************
|
||||
Offset control natives
|
||||
***********************/
|
||||
|
||||
static cell AMX_NATIVE_CALL get_offset_short(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
return *((short *)pEnt->pvPrivateData + off);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL set_offset_short(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
*((short *)pEnt->pvPrivateData + off) = (short)params[3];
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL get_offset_char(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
char r = *((char *)pEnt->pvPrivateData + off);
|
||||
return r;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL set_offset_char(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
char data = params[3];
|
||||
*((char *)pEnt->pvPrivateData + off) = data;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL get_offset_int(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
return *((int *)pEnt->pvPrivateData + off);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL set_offset_int(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
*((int *)pEnt->pvPrivateData + off) = params[3];
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL get_offset_float(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
REAL fRet = (REAL)(*((REAL*)pEnt->pvPrivateData + off));
|
||||
|
||||
return amx_ftoc(fRet);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL set_offset_float(AMX *amx, cell *params)
|
||||
{
|
||||
int idx = params[1];
|
||||
int off = params[2];
|
||||
|
||||
if (!is_ent_valid(idx)) {
|
||||
EngineError(amx, "Invalid Entity %d", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
edict_t *pEnt = INDEXENT2(idx);
|
||||
#ifdef __linux__
|
||||
off += params[3];
|
||||
#endif
|
||||
|
||||
REAL fVal = amx_ctof(params[3]);
|
||||
*((float *)pEnt->pvPrivateData + off) = fVal;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL get_entity_pointer(AMX *amx, cell *params) // get_entity_pointer(index, pointer[], len); = 3 params
|
||||
{
|
||||
return 0;
|
||||
@ -1780,16 +1619,6 @@ AMX_NATIVE_INFO ent_Natives[] = {
|
||||
{"fake_touch", fake_touch},
|
||||
{"force_use", force_use},
|
||||
|
||||
{"get_offset_short", get_offset_short},
|
||||
{"set_offset_short", set_offset_short},
|
||||
{"get_offset_char", get_offset_char},
|
||||
{"set_offset_char", set_offset_char},
|
||||
{"get_offset", get_offset_int},
|
||||
{"set_offset", set_offset_int},
|
||||
{"get_offset_int", get_offset_int},
|
||||
{"set_offset_int", set_offset_int},
|
||||
{"get_offset_float", get_offset_float},
|
||||
{"set_offset_float", set_offset_float},
|
||||
{"get_entity_pointer", get_entity_pointer},
|
||||
|
||||
{"find_ent_in_sphere", find_ent_in_sphere},
|
||||
|
Reference in New Issue
Block a user