Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

BUFFER.C File Reference

#include <Windows.h>
#include <Assert.h>
#include "Genesis.h"
#include "Buffer.h"

Go to the source code of this file.

Compounds

struct  Pos2

Typedefs

typedef Pos2 Pos2

Functions

geBoolean Buffer_FillByte (Buffer_Data *Buffer, uint8 Byte)
geBoolean Buffer_FillShort (Buffer_Data *Buffer, uint16 Short)
geBoolean Buffer_FillLong (Buffer_Data *Buffer, uint32 Long)
geBoolean Buffer_FillSLong (Buffer_Data *Buffer, int32 Long)
geBoolean Buffer_FillFloat (Buffer_Data *Buffer, float Float)
geBoolean Buffer_FillFloat2 (Buffer_Data *Buffer, float Float, float Max)
geBoolean Buffer_FillAngle (Buffer_Data *Buffer, geVec3d Angle)
geBoolean Buffer_FillPos (Buffer_Data *Buffer, geVec3d Pos)
geBoolean Buffer_FillString (Buffer_Data *Buffer, uint8 *Str)
geBoolean Buffer_FillBuffer (Buffer_Data *Buffer1, Buffer_Data *Buffer2)
geBoolean Buffer_FillData (Buffer_Data *Buffer1, uint8 *Data, int32 Size)
geBoolean Buffer_GetByte (Buffer_Data *Buffer, uint8 *Byte)
geBoolean Buffer_GetShort (Buffer_Data *Buffer, uint16 *Short)
geBoolean Buffer_GetLong (Buffer_Data *Buffer, uint32 *Long)
geBoolean Buffer_GetSLong (Buffer_Data *Buffer, int32 *Long)
geBoolean Buffer_GetFloat (Buffer_Data *Buffer, float *Float)
geBoolean Buffer_GetFloat2 (Buffer_Data *Buffer, float *Float, float Max)
geBoolean Buffer_GetAngle (Buffer_Data *Buffer, geVec3d *Angle)
geBoolean Buffer_GetPos (Buffer_Data *Buffer, geVec3d *Pos)
geBoolean Buffer_GetString (Buffer_Data *Buffer, uint8 *Str)
geBoolean Buffer_GetData (Buffer_Data *Buffer1, uint8 *Data, int32 Size)
geBoolean Buffer_Set (Buffer_Data *Buffer, char *Data, int32 Size)


Typedef Documentation

typedef struct Pos2 Pos2
 

Referenced by Bot_CanSeePlayerToPlayer(), Bot_CanSeePlayerToPoint(), Bot_CanSeePointToPoint(), Bot_FindItem(), Bot_FindRandomItem(), Bot_OverLedge(), Bot_OverLedgeScan(), Bot_PickTgtPlayer(), DistWeightedY(), gePuppet_ComputeAmbientLight(), gePuppet_DrawShadow(), MovePlayerUpStep(), RadiusDammage(), and SendPlayersToClients().


Function Documentation

geBoolean Buffer_FillAngle Buffer_Data Buffer,
geVec3d  Angle
 

Definition at line 132 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_SendMove(), and FillBufferWithPlayerData().

00133 {
00134         geVec3d *Data;
00135 
00136         assert(Buffer->Pos + (int32)sizeof(geVec3d) < Buffer->Size);
00137         
00138         if (Buffer->Pos + (int32)sizeof(geVec3d) >= Buffer->Size)
00139                 return GE_FALSE;
00140 
00141         Data = (geVec3d*)&Buffer->Data[Buffer->Pos];
00142 
00143         *Data = Angle;
00144 
00145         Buffer->Pos += sizeof(geVec3d);
00146 
00147         return GE_TRUE;
00148 }

geBoolean Buffer_FillBuffer Buffer_Data Buffer1,
Buffer_Data Buffer2
 

Definition at line 183 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_SendMove(), NetMgr_SendClientMessage(), and NetMgr_SendServerMessage().

00184 {
00185         int32           i;
00186 
00187         assert(Buffer2->Pos + Buffer1->Pos < Buffer1->Size);
00188 
00189         if (Buffer2->Pos + Buffer1->Pos >= Buffer1->Size)
00190                 return GE_FALSE;
00191 
00192         for (i=0; i< Buffer2->Pos; i++)
00193                 Buffer1->Data[Buffer1->Pos++] = Buffer2->Data[i];
00194 
00195         return GE_TRUE;
00196 }

geBoolean Buffer_FillByte Buffer_Data Buffer,
uint8  Byte
 

Definition at line 27 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint8.

Referenced by Client_ChangeNetState(), Client_SendMove(), FillBufferWithClientInfo(), FillBufferWithPlayerData(), SendClientPlayerData(), SendPlayersToClients(), Server_ChangeClientState(), Server_ClientConnect(), Server_ClientDisconnect(), Server_ClientDisconnectByHandle(), Server_ConsoleHeaderPrintf(), Server_Destroy(), Server_PlaySound(), Server_SendClientCurrentWorldData(), Server_SendClientStartupData(), Server_SetClientHealth(), Server_SetClientInventory(), Server_SetClientScore(), Server_SetClientWeapon(), Server_SetViewPlayer(), Server_SpawnFx(), and Server_ValidateClient().

00028 {
00029         assert(Buffer->Pos + (int32)sizeof(uint8) < Buffer->Size);
00030 
00031         if (Buffer->Pos + (int32)sizeof(uint8) >= Buffer->Size)
00032                 return GE_FALSE;
00033 
00034         Buffer->Data[Buffer->Pos] = Byte;
00035 
00036         Buffer->Pos += sizeof(uint8);
00037 
00038         return GE_TRUE;
00039 }

geBoolean Buffer_FillData Buffer_Data Buffer1,
uint8 Data,
int32  Size
 

Definition at line 198 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

00199 {
00200         int32           i;
00201 
00202         assert(Buffer1->Pos + Size < Buffer1->Size);
00203 
00204         if (Buffer1->Pos + Size >= Buffer1->Size)
00205                 return GE_FALSE;
00206 
00207         for (i=0; i< Size; i++)
00208                 Buffer1->Data[Buffer1->Pos++] = Data[i];
00209 
00210         return GE_TRUE;
00211 }

geBoolean Buffer_FillFloat Buffer_Data Buffer,
float  Float
 

Definition at line 95 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_SendMove(), FillBufferWithPlayerData(), SendClientPlayerData(), and SendPlayersToClients().

00096 {
00097         float *Data;
00098 
00099         assert(Buffer->Pos + (int32)sizeof(float) < Buffer->Size);
00100 
00101         if (Buffer->Pos + (int32)sizeof(float) >= Buffer->Size)
00102                 return GE_FALSE;
00103 
00104         Data = (float*)&Buffer->Data[Buffer->Pos];
00105 
00106         *Data = Float;
00107 
00108         Buffer->Pos += sizeof(float);
00109 
00110         return GE_TRUE;
00111 }

geBoolean Buffer_FillFloat2 Buffer_Data Buffer,
float  Float,
float  Max
 

Definition at line 113 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint16.

Referenced by FillBufferWithPlayerData().

00114 {
00115         uint16 *Data;
00116 
00117         assert(Float <= Max);
00118         assert(Buffer->Pos + (int32)sizeof(uint16) < Buffer->Size);
00119 
00120         if (Buffer->Pos + (int32)sizeof(uint16) >= Buffer->Size)
00121                 return GE_FALSE;
00122 
00123         Data = (uint16*)&Buffer->Data[Buffer->Pos];
00124 
00125         *Data = (uint16)((Float/Max)*65535);
00126 
00127         Buffer->Pos += sizeof(uint16);
00128 
00129         return GE_TRUE;
00130 }

geBoolean Buffer_FillLong Buffer_Data Buffer,
uint32  Long
 

Definition at line 59 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint32.

Referenced by Server_ClientConnect().

00060 {
00061         uint32  *Data;
00062 
00063         assert(Buffer->Pos + (int32)sizeof(uint32) < Buffer->Size);
00064 
00065         if (Buffer->Pos + (int32)sizeof(uint32) >= Buffer->Size)
00066                 return GE_FALSE;
00067 
00068         Data = (uint32*)&Buffer->Data[Buffer->Pos];
00069 
00070         *Data = Long;
00071 
00072         Buffer->Pos += sizeof(uint32);
00073 
00074         return GE_TRUE;
00075 }

geBoolean Buffer_FillPos Buffer_Data Buffer,
geVec3d  Pos
 

Definition at line 150 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by FillBufferWithPlayerData(), Server_PlaySound(), and Server_SpawnFx().

00151 {
00152         geVec3d         *Data;
00153 
00154         assert(Buffer->Pos + (int32)sizeof(geVec3d) < Buffer->Size);
00155 
00156         if (Buffer->Pos + (int32)sizeof(geVec3d) >= Buffer->Size)
00157                 return GE_FALSE;
00158 
00159         Data = (geVec3d*)&Buffer->Data[Buffer->Pos];
00160 
00161         *Data = Pos;
00162 
00163         Buffer->Pos += sizeof(geVec3d);
00164 
00165         return GE_TRUE;
00166 }

geBoolean Buffer_FillShort Buffer_Data Buffer,
uint16  Short
 

Definition at line 41 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint16.

Referenced by Client_SendMove(), FillBufferWithPlayerData(), Server_PlaySound(), Server_SetClientInventory(), Server_SetClientWeapon(), and Server_SetViewPlayer().

00042 {
00043         uint16  *Data;
00044 
00045         assert(Buffer->Pos + (int32)sizeof(uint16) < Buffer->Size);
00046 
00047         if (Buffer->Pos + (int32)sizeof(uint16) >= Buffer->Size)
00048                 return GE_FALSE;
00049 
00050         Data = (uint16*)&Buffer->Data[Buffer->Pos];
00051 
00052         *Data = Short;
00053 
00054         Buffer->Pos += sizeof(uint16);
00055 
00056         return GE_TRUE;
00057 }

geBoolean Buffer_FillSLong Buffer_Data Buffer,
int32  Long
 

Definition at line 77 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_ChangeNetState(), FillBufferWithClientInfo(), Server_ChangeClientState(), Server_SendClientCurrentWorldData(), Server_SetClientHealth(), Server_SetClientScore(), and Server_ValidateClient().

00078 {
00079         int32   *Data;
00080 
00081         assert(Buffer->Pos + (int32)sizeof(int32) < Buffer->Size);
00082 
00083         if (Buffer->Pos + (int32)sizeof(int32) >= Buffer->Size)
00084                 return GE_FALSE;
00085 
00086         Data = (int32*)&Buffer->Data[Buffer->Pos];
00087 
00088         *Data = Long;
00089 
00090         Buffer->Pos += sizeof(int32);
00091 
00092         return GE_TRUE;
00093 }

geBoolean Buffer_FillString Buffer_Data Buffer,
uint8 Str
 

Definition at line 168 of file BUFFER.C.

References Buffer_Data::Data, GE_FALSE, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by FillBufferWithClientInfo(), Server_ConsoleHeaderPrintf(), and Server_SendClientCurrentWorldData().

00169 {
00170         int32           i;
00171 
00172         assert(Buffer->Pos + (int32)strlen((char*)Str)+1 < Buffer->Size);
00173         
00174         if (Buffer->Pos + (int32)strlen((char*)Str)+1 >= Buffer->Size)
00175                 return GE_FALSE;
00176 
00177         for (i=0; i< (int32)strlen((char*)Str)+1; i++)
00178                 Buffer->Data[Buffer->Pos++] = Str[i];
00179 
00180         return GE_TRUE;
00181 }

geBoolean Buffer_GetAngle Buffer_Data Buffer,
geVec3d Angle
 

Definition at line 283 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_ParsePlayerData(), and ParseClientMove().

00284 {
00285         assert(Buffer->Pos + (int32)sizeof(geVec3d) <= Buffer->Size);
00286 
00287         *Angle = *(geVec3d*)&Buffer->Data[Buffer->Pos];
00288 
00289         Buffer->Pos += sizeof(geVec3d);
00290         
00291         return GE_TRUE;
00292 }

geBoolean Buffer_GetByte Buffer_Data Buffer,
uint8 Byte
 

Definition at line 213 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint8.

Referenced by Client_ParsePlayerData(), ParseClientMessage(), and ReadServerMessages().

00214 {
00215         assert(Buffer->Pos + (int32)sizeof(uint8) <= Buffer->Size);
00216 
00217         *Byte = Buffer->Data[Buffer->Pos];
00218 
00219         Buffer->Pos += sizeof(uint8);
00220 
00221         return GE_TRUE;
00222 }

geBoolean Buffer_GetData Buffer_Data Buffer1,
uint8 Data,
int32  Size
 

Definition at line 321 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, and Buffer_Data::Pos.

00322 {
00323         int32           i;
00324 
00325         assert(Buffer1->Pos + Size <= Buffer1->Size);
00326 
00327         for (i=0; i< Size; i++)
00328                 Data[i] = Buffer1->Data[Buffer1->Pos++];
00329 
00330         return GE_TRUE;
00331 }

geBoolean Buffer_GetFloat Buffer_Data Buffer,
float *  Float
 

Definition at line 257 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_ParsePlayerData(), ParseClientMove(), and ReadServerMessages().

00258 {
00259         assert(Buffer->Pos + (int32)sizeof(float) <= Buffer->Size);
00260 
00261         *Float = *((float*)&Buffer->Data[Buffer->Pos]);
00262 
00263         Buffer->Pos += sizeof(float);
00264         
00265         return GE_TRUE;
00266 }

geBoolean Buffer_GetFloat2 Buffer_Data Buffer,
float *  Float,
float  Max
 

Definition at line 268 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint16.

Referenced by Client_ParsePlayerData().

00269 {
00270         uint16  Temp16;
00271 
00272         assert(Buffer->Pos + (int32)sizeof(uint16) <= Buffer->Size);
00273 
00274         Temp16 = *((uint16*)&Buffer->Data[Buffer->Pos]);
00275 
00276         *Float = ((float)Temp16 / 65535.0f) * Max;
00277 
00278         Buffer->Pos += sizeof(uint16);
00279         
00280         return GE_TRUE;
00281 }

geBoolean Buffer_GetLong Buffer_Data Buffer,
uint32 Long
 

Definition at line 235 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint32.

Referenced by ReadServerMessages().

00236 {
00237         assert(Buffer->Pos + (int32)sizeof(uint32) <= Buffer->Size);
00238 
00239         *Long = *((uint32*)&Buffer->Data[Buffer->Pos]);
00240 
00241         Buffer->Pos += sizeof(uint32);
00242         
00243         return GE_TRUE;
00244 }

geBoolean Buffer_GetPos Buffer_Data Buffer,
geVec3d Pos
 

Definition at line 294 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_ParsePlayerData(), and ReadServerMessages().

00295 {
00296         assert(Buffer->Pos + (int32)sizeof(geVec3d) <= Buffer->Size);
00297 
00298         *Pos = *(geVec3d*)&Buffer->Data[Buffer->Pos];
00299         
00300         Buffer->Pos += sizeof(geVec3d);
00301         
00302         return GE_TRUE;
00303 }

geBoolean Buffer_GetShort Buffer_Data Buffer,
uint16 Short
 

Definition at line 224 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint16.

Referenced by Client_ParsePlayerData(), ParseClientMove(), and ReadServerMessages().

00225 {
00226         assert(Buffer->Pos + (int32)sizeof(uint16) <= Buffer->Size);
00227 
00228         *Short = *((uint16*)&Buffer->Data[Buffer->Pos]);
00229 
00230         Buffer->Pos += sizeof(uint16);
00231 
00232         return GE_TRUE;
00233 }

geBoolean Buffer_GetSLong Buffer_Data Buffer,
int32 Long
 

Definition at line 246 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by ParseClientMessage(), and ReadServerMessages().

00247 {
00248         assert(Buffer->Pos + (int32)sizeof(int32) <= Buffer->Size);
00249 
00250         *Long = *((int32*)&Buffer->Data[Buffer->Pos]);
00251 
00252         Buffer->Pos += sizeof(int32);
00253         
00254         return GE_TRUE;
00255 }

geBoolean Buffer_GetString Buffer_Data Buffer,
uint8 Str
 

Definition at line 305 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, int32, Buffer_Data::Pos, Buffer_Data::Size, and uint8.

Referenced by ReadServerMessages().

00306 {
00307         int32   i = 0;
00308         uint8   c = 0;
00309 
00310         do 
00311         {
00312                 assert(Buffer->Pos+1 <= Buffer->Size);
00313 
00314                 c = Buffer->Data[Buffer->Pos++];
00315                 Str[i++] = c;
00316         } while (c != -1 && c != 0);
00317 
00318         return GE_TRUE;
00319 }

geBoolean Buffer_Set Buffer_Data Buffer,
char *  Data,
int32  Size
 

Definition at line 333 of file BUFFER.C.

References Buffer_Data::Data, GE_TRUE, geBoolean, Buffer_Data::Pos, and Buffer_Data::Size.

Referenced by Client_ChangeNetState(), Client_Create(), Client_SendMove(), ForceServerPlayerOnLocalClient(), NetMgr_Create(), SendClientPlayerData(), SendPlayersToClients(), Server_ChangeClientState(), Server_ClientConnect(), Server_ClientDisconnect(), Server_ClientDisconnectByHandle(), Server_ConsoleHeaderPrintf(), Server_Destroy(), Server_PlaySound(), Server_SendClientCurrentWorldData(), Server_SendClientStartupData(), Server_SetClientHealth(), Server_SetClientInventory(), Server_SetClientScore(), Server_SetClientWeapon(), Server_SpawnFx(), and Server_ValidateClient().

00334 {
00335         assert(Buffer);
00336 
00337         Buffer->Data = Data;
00338         Buffer->Size = Size;
00339         Buffer->Pos = 0;
00340 
00341         return GE_TRUE;
00342 }


Generated on Tue Sep 30 12:37:10 2003 for GTestAndEngine by doxygen 1.3.2