diff options
Diffstat (limited to 'sourcemod/scripting/include/datapack.inc')
| -rw-r--r-- | sourcemod/scripting/include/datapack.inc | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/sourcemod/scripting/include/datapack.inc b/sourcemod/scripting/include/datapack.inc deleted file mode 100644 index ae8b4d9..0000000 --- a/sourcemod/scripting/include/datapack.inc +++ /dev/null @@ -1,255 +0,0 @@ -/** - * vim: set ts=4 sw=4 tw=99 noet : - * ============================================================================= - * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved. - * ============================================================================= - * - * This file is part of the SourceMod/SourcePawn SDK. - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, version 3.0, as published by the - * Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see <http://www.gnu.org/licenses/>. - * - * As a special exception, AlliedModders LLC gives you permission to link the - * code of this program (as well as its derivative works) to "Half-Life 2," the - * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software - * by the Valve Corporation. You must obey the GNU General Public License in - * all respects for all other code used. Additionally, AlliedModders LLC grants - * this exception to all derivative works. AlliedModders LLC defines further - * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), - * or <http://www.sourcemod.net/license.php>. - * - * Version: $Id$ - */ - -#if defined _datapack_included - #endinput -#endif -#define _datapack_included - - -/** - * Opaque handle to a datapack position. - */ -enum DataPackPos: {}; - -// A DataPack allows serializing multiple variables into a single stream. -methodmap DataPack < Handle -{ - // Creates a new data pack. - public native DataPack(); - - // Packs a normal cell into a data pack. - // - // @param cell Cell to add. - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteCell(any cell, bool insert = false); - - // Packs a float into a data pack. - // - // @param val Float to add. - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteFloat(float val, bool insert = false); - - // Packs a string into a data pack. - // - // @param str String to add. - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteString(const char[] str, bool insert = false); - - // Packs a function pointer into a data pack. - // - // @param fktptr Function pointer to add. - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteFunction(Function fktptr, bool insert = false); - - // Packs an array of cells into a data pack. - // - // @param array Array to add. - // @param count Number of elements - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteCellArray(const any[] array, int count, bool insert = false); - - // Packs an array of floats into a data pack. - // - // @param array Array to add. - // @param count Number of elements - // @param insert Determines whether mid-pack writes will insert instead of overwrite. - public native void WriteFloatArray(const float[] array, int count, bool insert = false); - - // Reads a cell from a data pack. - // - // @return A cell at this position - public native any ReadCell(); - - // Reads a float from a data pack. - // - // @return Float at this position - public native float ReadFloat(); - - // Reads a string from a data pack. - // - // @param buffer Destination string buffer. - // @param maxlen Maximum length of output string buffer. - public native void ReadString(char[] buffer, int maxlen); - - // Reads a function pointer from a data pack. - // - // @return Function pointer. - public native Function ReadFunction(); - - // Reads an array of cells a data pack. - // - // @param buffer Destination buffer. - // @param count Maximum length of output buffer. - public native void ReadCellArray(any[] buffer, int count); - - // Reads an array of floats from a data pack. - // - // @param buffer Destination buffer. - // @param count Maximum length of output buffer. - public native void ReadFloatArray(float[] buffer, int count); - - // Resets the position in a data pack. - // - // @param clear If true, clears the contained data. - public native void Reset(bool clear=false); - - // Returns whether or not a specified number of bytes from the data pack - // position to the end can be read. - // - // @param unused Unused variable. Exists for backwards compatability. - public native bool IsReadable(int unused = 0); - - // The read or write position in a data pack. - property DataPackPos Position { - public native get(); - public native set(DataPackPos pos); - } -}; - -/** - * Creates a new data pack. - * - * @return A Handle to the data pack. Must be closed with CloseHandle(). - */ -native DataPack CreateDataPack(); - -/** - * Packs a normal cell into a data pack. - * - * @param pack Handle to the data pack. - * @param cell Cell to add. - * @error Invalid handle. - */ -native void WritePackCell(Handle pack, any cell); - -/** - * Packs a float into a data pack. - * - * @param pack Handle to the data pack. - * @param val Float to add. - * @error Invalid handle. - */ -native void WritePackFloat(Handle pack, float val); - -/** - * Packs a string into a data pack. - * - * @param pack Handle to the data pack. - * @param str String to add. - * @error Invalid handle. - */ -native void WritePackString(Handle pack, const char[] str); - -/** - * Packs a function pointer into a data pack. - * - * @param pack Handle to the data pack. - * @param fktptr Function pointer to add. - * @error Invalid handle. - */ -native void WritePackFunction(Handle pack, Function fktptr); - -/** - * Reads a cell from a data pack. - * - * @param pack Handle to the data pack. - * @return Cell value. - * @error Invalid handle, or bounds error. - */ -native any 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. - * @error Invalid handle, or bounds error. - */ -native void ReadPackString(Handle pack, char[] buffer, int maxlen); - -/** - * Reads a function pointer from a data pack. - * - * @param pack Handle to the data pack. - * @return Function pointer. - * @error Invalid handle, or bounds error. - */ -native Function ReadPackFunction(Handle pack); - -/** - * Resets the position in a data pack. - * - * @param pack Handle to the data pack. - * @param clear If true, clears the contained data. - * @error Invalid handle. - */ -native void ResetPack(Handle pack, bool clear=false); - -/** - * Returns the read or write position in a data pack. - * - * @param pack Handle to the data pack. - * @return Position in the data pack, only usable with calls to SetPackPosition. - * @error Invalid handle. - */ -native DataPackPos GetPackPosition(Handle pack); - -/** - * Sets the read/write position in a data pack. - * - * @param pack Handle to the data pack. - * @param position New position to set. Must have been previously retrieved from a call to GetPackPosition. - * @error Invalid handle, or position is beyond the pack bounds. - */ -native void SetPackPosition(Handle pack, DataPackPos 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, int bytes); |
