Add IsPackEnded native (IsPackReadable replacement)

This commit is contained in:
Valentin Grünbacher 2015-03-30 03:56:26 +02:00
parent 9d4c02f7ca
commit 9abe6cd8f6
2 changed files with 25 additions and 0 deletions

View File

@ -197,6 +197,19 @@ static cell AMX_NATIVE_CALL SetPackPosition(AMX* amx, cell* params)
return 1;
}
static cell AMX_NATIVE_CALL IsPackEnded(AMX* amx, cell* params)
{
CDataPack *d = g_DataPackHandles.lookup(params[1]);
if (d == NULL)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid datapack handle provided (%d)", params[1]);
return 0;
}
return d->IsReadable(1) ? false : true;
}
static cell AMX_NATIVE_CALL DestroyDataPack(AMX* amx, cell* params)
{
cell *ptr = get_amxaddr(amx, params[1]);
@ -230,6 +243,7 @@ AMX_NATIVE_INFO g_DatapackNatives[] =
{ "ResetPack", ResetPack },
{ "GetPackPosition", GetPackPosition },
{ "SetPackPosition", SetPackPosition },
{ "IsPackEnded", IsPackEnded },
{ "DestroyDataPack", DestroyDataPack },
{NULL, NULL}
};

View File

@ -141,6 +141,17 @@ native GetPackPosition(DataPack:pack);
*/
native SetPackPosition(DataPack:pack, position);
/**
* Returns if the datapack has reached its end and no more data can be read.
*
* @param pack Datapack handle
*
* @return True if datapack has reached the end, false otherwise
* @error If an invalid handle is provided, or the new position is
* out of datapack bounds, an error will be thrown.
*/
native bool:IsPackEnded(DataPack:pack);
/**
* Destroys the datapack and frees its memory.
*