3 * ===============================================================
4 * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
5 * ===============================================================
7 * This file is part of the SourceMod/SourcePawn SDK. This file may only be used
8 * or modified under the Terms and Conditions of its License Agreement, which is found
9 * in LICENSE.txt. The Terms and Conditions for making SourceMod extensions/plugins
10 * may change at any time. To view the latest information, see:
11 * http://www.sourcemod.net/license.php
16 #if defined _bitbuffer_included
19 #define _bitbuffer_included
22 * Writes a single bit to a writable bitbuffer (bf_write).
24 * @param bf bf_write handle to write to.
25 * @param bit Bit to write (true for 1, false for 0).
27 * @error Invalid or incorrect Handle.
29 native BfWriteBool(Handle:bf, bool:bit);
32 * Writes a byte to a writable bitbuffer (bf_write).
34 * @param bf bf_write handle to write to.
35 * @param byte Byte to write (value will be written as 8bit).
37 * @error Invalid or incorrect Handle.
39 native BfWriteByte(Handle:bf, byte);
42 * Writes a byte to a writable bitbuffer (bf_write).
44 * @param bf bf_write handle to write to.
45 * @param chr Character to write.
47 * @error Invalid or incorrect Handle.
49 native BfWriteChar(Handle:bf, chr);
52 * Writes a 16bit integer to a writable bitbuffer (bf_write).
54 * @param bf bf_write handle to write to.
55 * @param num Integer to write (value will be written as 16bit).
57 * @error Invalid or incorrect Handle.
59 native BfWriteShort(Handle:bf, num);
62 * Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).
64 * @param bf bf_write handle to write to.
65 * @param num Integer to write (value will be written as 16bit).
67 * @error Invalid or incorrect Handle.
69 native BfWriteWord(Handle:bf, num);
72 * Writes a normal integer to a writable bitbuffer (bf_write).
74 * @param bf bf_write handle to write to.
75 * @param num Integer to write (value will be written as 32bit).
77 * @error Invalid or incorrect Handle.
79 native BfWriteNum(Handle:bf, num);
82 * Writes a floating point number to a writable bitbuffer (bf_write).
84 * @param bf bf_write handle to write to.
85 * @param num Number to write.
87 * @error Invalid or incorrect Handle.
89 native BfWriteFloat(Handle:bf, Float:num);
92 * Writes a string to a writable bitbuffer (bf_write).
94 * @param bf bf_write handle to write to.
95 * @param string Text string to write.
97 * @error Invalid or incorrect Handle.
99 native BfWriteString(Handle:bf, const String:string[]);
102 * Writes an entity to a writable bitbuffer (bf_write).
103 * @note This is a wrapper around BfWriteShort().
105 * @param bf bf_write handle to write to.
106 * @param ent Entity index to write.
108 * @error Invalid or incorrect Handle, or invalid entity.
110 native BfWriteEntity(Handle:bf, ent);
113 * Writes a bit angle to a writable bitbuffer (bf_write).
115 * @param bf bf_write handle to write to.
116 * @param angle Angle to write.
117 * @param numBits Optional number of bits to use.
119 * @error Invalid or incorrect Handle.
121 native BfWriteAngle(Handle:bf, Float:angle, numBits=8);
124 * Writes a coordinate to a writable bitbuffer (bf_write).
126 * @param bf bf_write handle to write to.
127 * @param coord Coordinate to write.
129 * @error Invalid or incorrect Handle.
131 native BfWriteCoord(Handle:bf, Float:coord);
134 * Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).
136 * @param bif bf_write handle to write to.
137 * @param coord Coordinate array to write.
139 * @error Invalid or incorrect Handle.
141 native BfWriteVecCoord(Handle:bf, Float:coord[3]);
144 * Writes a 3D normal vector to a writable bitbuffer (bf_write).
146 * @param bif bf_write handle to write to.
147 * @param vec Vector to write.
149 * @error Invalid or incorrect Handle.
151 native BfWriteVecNormal(Handle:bf, Float:vec[3]);
154 * Writes a 3D angle vector to a writable bitbuffer (bf_write).
156 * @param bif bf_write handle to write to.
157 * @param angles Angle vector to write.
159 * @error Invalid or incorrect Handle.
161 native BfWriteAngles(Handle:bf, Float:angles[3]);