From 47acc11df77b947a18887b0f92291596585b25f4 Mon Sep 17 00:00:00 2001 From: Borja Ferrer Date: Fri, 9 Feb 2007 22:12:39 +0000 Subject: [PATCH] expanded data pack natives --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40467 --- plugins/include/datapack.inc | 57 ++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/plugins/include/datapack.inc b/plugins/include/datapack.inc index 3f40df8d..5e491d6d 100644 --- a/plugins/include/datapack.inc +++ b/plugins/include/datapack.inc @@ -35,6 +35,26 @@ native Handle:CreateDataPack(); */ native WritePackCell(Handle:pack, cell); +/** + * Packs a float into a data pack. + * + * @param pack Handle to the data pack. + * @param val Float to add. + * @noreturn + * @error Invalid handle. + */ +native WritePackFloat(Handle:pack, Float:val); + +/** + * Packs a string into a data pack. + * + * @param pack Handle to the data pack. + * @param str String to add. + * @noreturn + * @error Invalid handle. + */ +native WritePackString(Handle:pack, String:str[]); + /** * Reads a cell from a data pack. * @@ -44,12 +64,33 @@ native WritePackCell(Handle:pack, cell); */ native ReadPackCell(Handle:pack); +/** + * Reads a float from a data pack. + * + * @param pack Handle to the data pack. + * @return Float value. + * @error Invalid handle, or bounds error. + */ +native Float:ReadPackFloat(Handle:pack); + +/** + * Reads a string from a data pack. + * + * @param pack Handle to the data pack. + * @param buffer Destination string buffer. + * @param maxlen Maximum length of output string buffer. + * @noreturn + * @error Invalid handle, or bounds error. + */ +native ReadPackString(Handle:pack, String:buffer[], maxlen); + /** * Resets the position in a data pack. * * @param pack Handle to the data pack. * @param clear If true, clears the contained data. * @noreturn + * @error Invalid handle. */ native ResetPack(Handle:pack, bool:clear=false); @@ -58,6 +99,7 @@ native ResetPack(Handle:pack, bool:clear=false); * * @param pack Handle to the data pack. * @return Numerical position in the data pack. + * @error Invalid handle. */ native GetPackPosition(Handle:pack); @@ -67,6 +109,17 @@ native GetPackPosition(Handle:pack); * @param pack Handle to the data pack. * @param position New position to set. * @noreturn - * @error Position is beyond the pack bounds. + * @error Invalid handle, or position is beyond the pack bounds. */ -native SetPackPosition(Handle:pack, position); \ No newline at end of file +native SetPackPosition(Handle:pack, position); + +/** + * Returns whether or not a specified number of bytes from the data pack + * position to the end can be read. + * + * @param pack Handle to the data pack. + * @param bytes Number of bytes to simulate reading. + * @return True if can be read, false otherwise. + * @error Invalid handle. + */ +native bool:IsPackReadable(Handle:pack, bytes);