2004-08-11 05:06:27 +00:00
|
|
|
#include "fakemeta_amxx.h"
|
|
|
|
|
|
|
|
static cell AMX_NATIVE_CALL set_pdata_int(AMX *amx, cell *params)
|
|
|
|
{
|
|
|
|
int index=params[1];
|
|
|
|
CHECK_ENTITY(index);
|
|
|
|
int iOffset=params[2];
|
|
|
|
if (iOffset <0)
|
|
|
|
return 1;
|
|
|
|
#ifdef __linux__
|
|
|
|
iOffset += params[4];
|
|
|
|
#endif
|
|
|
|
int iValue=params[3];
|
|
|
|
*((int *)INDEXENT2(index)->pvPrivateData + iOffset) = iValue;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
static cell AMX_NATIVE_CALL get_pdata_int(AMX *amx, cell *params)
|
|
|
|
{
|
|
|
|
int index=params[1];
|
|
|
|
CHECK_ENTITY(index);
|
|
|
|
int iOffset=params[2];
|
|
|
|
if (iOffset <0)
|
|
|
|
return 0;
|
|
|
|
#ifdef __linux__
|
|
|
|
iOffset += params[3];
|
|
|
|
#endif
|
|
|
|
return *((int *)INDEXENT2(index)->pvPrivateData + iOffset);
|
|
|
|
}
|
|
|
|
// Float
|
|
|
|
static cell AMX_NATIVE_CALL set_pdata_float(AMX *amx, cell *params)
|
|
|
|
{
|
|
|
|
int index=params[1];
|
|
|
|
CHECK_ENTITY(index);
|
|
|
|
int iOffset=params[2];
|
|
|
|
if (iOffset <0)
|
|
|
|
return 1;
|
|
|
|
#ifdef __linux__
|
|
|
|
iOffset += params[4];
|
|
|
|
#endif
|
|
|
|
float fValue=amx_ctof(params[3]);
|
|
|
|
*((float *)INDEXENT2(index)->pvPrivateData + iOffset) = fValue;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
static cell AMX_NATIVE_CALL get_pdata_float(AMX *amx, cell *params)
|
|
|
|
{
|
|
|
|
int index=params[1];
|
|
|
|
CHECK_ENTITY(index);
|
|
|
|
int iOffset=params[2];
|
|
|
|
if (iOffset <0)
|
|
|
|
return 1;
|
|
|
|
#ifdef __linux__
|
|
|
|
iOffset += params[3];
|
|
|
|
#endif
|
|
|
|
return amx_ftoc(*((float *)INDEXENT2(index)->pvPrivateData + iOffset));
|
|
|
|
}
|
|
|
|
AMX_NATIVE_INFO pdata_natives[] = {
|
|
|
|
{ "get_pdata_int", get_pdata_int },
|
|
|
|
{ "set_pdata_int", set_pdata_int },
|
|
|
|
{ "get_pdata_float", get_pdata_float },
|
|
|
|
{ "set_pdata_float", set_pdata_float },
|
|
|
|
{ NULL, NULL }
|
2004-09-12 00:13:46 +00:00
|
|
|
};
|