Fixed memory leak in detach

This commit is contained in:
David Anderson
2004-08-31 02:05:27 +00:00
parent 91aacb1036
commit b34179e997
3 changed files with 21 additions and 182 deletions

View File

@ -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},