openmohaa/code/cgame_hook/cgamex86.h

789 lines
23 KiB
C
Raw Normal View History

2016-03-27 11:49:47 +02:00
#ifndef __CGAMEX86_H__
#define __CGAMEX86_H__
#include "hook.h"
#include "renderer_api.h"
#include "../game/bg_public.h"
#define MAX_CVARS 255;
typedef struct {
cvar_t **cvar;
const char *name;
const char *value;
int flags;
} regCvar_t;
typedef struct centity_s
{
entityState_t currentState;
entityState_t nextState;
int teleported;
int interpolate;
int currentValid;
int miscTime;
int snapShotTime;
int errorTime;
vec3_t errorOrigin;
vec3_t errorAngles;
int extrapolated;
vec3_t rawOrigin;
vec3_t rawAngles;
vec3_t beamEnd;
vec3_t lerpOrigin;
vec3_t lerpAngles;
int tikiLoopSound;
float tikiLoopSoundVolume;
float tikiLoopSoundMinDist;
float tikiLoopSoundMaxDist;
float tikiLoopSoundPitch;
int tikiLoopSoundFlags;
vec4_t color;
vec4_t clientColor;
int clientFlags;
int splashLastSpawnTime;
int splashStillCount;
vec4_t boneQuat[ 5 ];
float animLastTimes[ MAX_FRAMEINFOS ];
int animLast[ MAX_FRAMEINFOS ];
int animLastWeight;
int usageIndexLast;
int footOnGround_Right;
int footOnGround_Left;
int nextLandTime;
} centity_t;
typedef void ( __stdcall *CG_PlaySound_f )( char *sound_name, float *origin, int channel,
float volume, float min_distance, float pitch, int argstype );
extern CG_PlaySound_f CG_PlaySound;
typedef void ( *CG_Trace_t )(trace_t *results, const vec3_t start, const vec3_t mins ,
const vec3_t maxs, const vec3_t end, int headnode, int brushmask, int cylinder,
qboolean bClipEntities, char *description);
extern CG_Trace_t CG_Trace;
void CG_ParseCGMessage2( void );
class CPlayer;
extern uintptr_t dwCGameBase;
extern pmove_t * pm;
extern cvar_t *developer;
extern cvar_t *timescale;
extern cvar_t *cg_debugview;
extern cvar_t *cg_hud;
extern cvar_t *cl_run;
extern cvar_t *fs_basepath;
extern cvar_t *r_anaglyph;
extern cvar_t *ui_hud;
extern cvar_t *vm_offset_air_up;
extern cvar_t *vm_offset_air_side;
extern cvar_t *vm_offset_air_front;
extern cvar_t *vm_offset_crouch_side;
extern cvar_t *vm_offset_vel_up;
extern cvar_t *vm_offset_vel_side;
extern cvar_t *vm_offset_vel_front;
extern cvar_t *s_volume;
extern cvar_t *cg_showopcodes;
extern cvar_t *cg_scriptcheck;
extern cvar_t *cl_scriptfiles;
extern regCvar_t r_cvars[];
class Entity;
extern qboolean reborn;
centity_t * CG_GetEntity(int ent_num);
Entity *R_SpawnModel( const char *model, vec3_t origin, vec3_t angles );
const char *CG_GetServerInfo();
const char *CG_GetServerVariable( const char *variable );
#define ITEM_MAX_NAME 255
#define ITEM_MAX_PREFIX 255 // 255 is enough for a list of new items
typedef struct serverSound_s
{
vec3_t origin;
int entityNumber;
int channel;
short int soundIndex;
float volume;
float minDist;
float maxDist;
float pitch;
qboolean stopFlag;
qboolean streamed;
} serverSound_t;
typedef struct snapshot_s
{
int snapFlags;
int ping;
int serverTime;
unsigned char areaMask[ 32 ];
playerState_t ps;
int numEntities;
entityState_t entities[ 1024 ];
int numServerCommands;
int serverCommandSequence;
int numberOfSounds;
serverSound_t sounds[ 64 ];
} snapshot_t;
typedef struct baseShader_s
{
char shader[ MAX_QPATH ];
int surfaceFlags;
int contentFlags;
} baseShader_t;
typedef struct clientInfo_s
{
int team;
} clientInfo_t;
typedef struct objective_s
{
char text[ MAX_STRING_CHARS ];
int flags;
} objective_t;
typedef struct rain_s
{
float density;
float speed;
int speedVary;
int slant;
float length;
float minDist;
float width;
char shader[ 16 ][ MAX_STRING_CHARS ];
int numShaders;
} rain_t;
typedef struct cgs_s
{
gameState_t gameState;
glconfig_t glConfig;
float screenXScale;
float screenYScale;
float screenXBias;
int serverCommandSequence;
int processedSnapshotNum;
qboolean localServer;
int levelStartTime;
int matchEndTime;
int serverLagTime;
int gameType;
int dmFlags;
int teamFlags;
int fragLimit;
int timeLimit;
int maxClients;
int cinematic;
char mapName[MAX_QPATH];
int modelDraw[MAX_MODELS];
int soundPrecache[MAX_SOUNDS];
int numInlineModels;
int inlineDrawModel[MAX_MODELS];
vec3_t inlineModelMidpoints[MAX_MODELS];
media_t media;
} cgs_t;
typedef struct cg_s
{
int clientFrame;
int clientNum;
int demoPlayback;
int levelShot;
int latestSnapshotNum;
int latestSnapshotTime;
snapshot_t *snap;
snapshot_t *nextSnap;
snapshot_t activeSnapshots[ 2 ];
float frameInterpolation;
int thisFrameTeleport;
int nextFrameTeleport;
int nextFrameCameraCut;
int frametime;
int time;
int physicsTime;
int renderingThirdPerson;
int hyperSpace;
playerState_t predictedPlayerState;
int validPPS;
int predictedErrorTime;
vec3_t predictedError;
int weaponCommand;
int weaponCommandSend;
vec3_t autoAngles;
vec3_t autoAxis[3];
vec3_t autoAnglesSlow;
vec3_t autoAxisSlow[3];
vec3_t autoAnglesFast;
vec3_t autoAxisFast[3];
refDef_t refdef;
vec3_t playerHeadPos;
vec3_t refdefViewAngles;
vec3_t currentViewPos;
vec3_t currentViewAngles;
float currentViewHeight;
float currentViewBobPhase;
float currentViewBobAmp;
dtiki_t *lastPlayerWorldModel;
dtiki_t *playerFPSModel;
int playerFPSModelHandle;
int fpsModelLastFrame;
int fpsOnGround;
dtiki_t *alliedPlayerModel;
int alliedPlayerModelHandle;
dtiki_t *axisPlayerModel;
int axisPlayerModelHandle;
vec3_t offsetViewAngles;
vec3_t lastHeadAngles;
vec3_t lastViewAngles;
vec3_t eyeOffsetMax;
float eyeOffsetFrac;
vec3_t soundOrg;
vec3_t soundAxis[3];
vec3_t cameraOrigin;
vec3_t cameraAngles;
float cameraFov;
float zoomSensitivity;
int intermissionDisplay;
int scoresRequestTime;
int showScores;
char scoresMenuName[256];
int instaMessageMenu;
int centerPrintTime;
int centerPrintCharWidth;
int centerPrintY;
char centerPrint[1024];
int centerPrintLines;
int matchStartTime;
refEntity_t testModelEntity;
char testModelName[MAX_QPATH];
int testGun;
float farplaneDistance;
float farplaneColor[3];
int farplaneCull;
int skyPortal;
float skyAlpha;
vec3_t skyOrigin;
vec3_t skyAxis[3];
vec2_t viewKick;
float viewKickRecenter;
float viewKickMinDecay;
float viewKickMaxDecay;
objective_t objectives[ MAX_OBJECTIVES ];
float objectivesAlphaTime;
float objectivesBaseAlpha;
float objectivesDesiredAlpha;
float objectivesCurrentAlpha;
rain_t rain;
clientInfo_t clientinfo[MAX_CLIENTS];
} cg_t;
typedef struct uidef_s
{
int time;
int vidWidth;
int vidHeight;
int mouseX;
int mouseY;
unsigned int mouseFlags;
qboolean uiHasMouse;
} uidef_t;
//
// cl_input
//
typedef struct {
int down[2]; // key nums holding it down
unsigned downtime; // msec timestamp
unsigned msec; // msec down this frame if both a down and up happened
qboolean active; // current state
qboolean wasPressed; // set when down, not cleared when up
} kbutton_t;
typedef struct qkey_s
{
qboolean down;
int repeats;
char *binding;
} qkey_t;
typedef struct fontHandle_s
{
int bla;
} fontHandle_t;
typedef struct clientAnim_s
{
frameInfo_t vmFrameInfo[MAX_FRAMEINFOS];
int lastVMAnim;
int lastVMAnimChanged;
int currentVMAnimSlot;
int currentVMDuration;
qboolean crossBlending;
int lastEquippedWeaponStat;
char lastActiveItem[80];
int lastAnimPrefixIndex;
vec3_t currentVMPosOffset;
unsigned char un1[72];
dtiki_t * tiki;
} clientAnim_t;
typedef struct hdElement_s
{
qhandle_t shader;
char shaderName[MAX_QPATH];
int x;
int y;
int width;
int height;
vec4_t color;
int horizontalAlign;
int verticalAlign;
qboolean virtualScreen;
char string[MAX_STRING_CHARS];
char fontName[MAX_QPATH];
fontHeader_t *font;
} hdElement_t;
typedef struct stopWatch_s
{
int startTime;
int endTime;
} stopWatch_t;
typedef enum keyNum_e
{
K_TAB = 9,
K_ENTER = 13,
K_ESCAPE = 27,
K_SPACE = 32,
K_BACKSPACE = 127,
K_COMMAND,
K_CAPSLOCK,
K_POWER,
K_PAUSE,
K_UPARROW,
K_DOWNARROW,
K_LEFTARROW,
K_RIGHTARROW,
K_LALT,
K_LCTRL,
K_LSHIFT,
K_RALT,
K_RCTRL,
K_RSHIFT,
K_INS,
K_DEL,
K_PGDN,
K_PGUP,
K_HOME,
K_END,
K_F1,
K_F2,
K_F3,
K_F4,
K_F5,
K_F6,
K_F7,
K_F8,
K_F9,
K_F10,
K_F11,
K_F12,
K_F13,
K_F14,
K_F15,
K_KPHOME,
K_KPUPARROW,
K_KPPGUP,
K_KPLEFTARROW,
K_KP5,
K_KPRIGHTARROW,
K_KPEND,
K_KPDOWNARROW,
K_KPPGDN,
K_KPENTER,
K_KPINS,
K_KPDEL,
K_KPSLASH,
K_KPMINUS,
K_KPPLUS,
K_KPNUMLOCK,
K_KPSTAR,
K_KPEQUALS,
K_MOUSE1,
K_MOUSE2,
K_MOUSE3,
K_MOUSE4,
K_MOUSE5,
K_MWHEELDOWN,
K_MWHEELUP,
K_JOY1,
K_JOY2,
K_JOY3,
K_JOY4,
K_JOY5,
K_JOY6,
K_JOY7,
K_JOY8,
K_JOY9,
K_JOY10,
K_JOY11,
K_JOY12,
K_JOY13,
K_JOY14,
K_JOY15,
K_JOY16,
K_JOY17,
K_JOY18,
K_JOY19,
K_JOY20,
K_JOY21,
K_JOY22,
K_JOY23,
K_JOY24,
K_JOY25,
K_JOY26,
K_JOY27,
K_JOY28,
K_JOY29,
K_JOY30,
K_JOY31,
K_JOY32,
K_AUX1,
K_AUX2,
K_AUX3,
K_AUX4,
K_AUX5,
K_AUX6,
K_AUX7,
K_AUX8,
K_AUX9,
K_AUX10,
K_AUX11,
K_AUX12,
K_AUX13,
K_AUX14,
K_AUX15,
K_AUX16,
K_LWINKEY,
K_RWINKEY,
K_MENUKEY,
K_LASTKEY
} keyNum_t;
// Dump memory to a file then read it
typedef struct tmpArchive
{
} tmpArchive;
typedef struct profVar_s
{
int start;
int clockCycles;
int calls;
float time;
float totTime;
float avgTime;
float low;
float high;
} profVar_t;
typedef struct profCGame_s
{
profVar_t CG_AddCEntity;
profVar_t CG_DrawActiveFrame;
profVar_t CG_AddPacketEntities;
profVar_t CG_DrawActive;
profVar_t CG_EntityShadow;
profVar_t CG_Rain;
profVar_t CG_AddBeams;
profVar_t CG_ModelAnim;
profVar_t CG_ProcessSnapshots;
profVar_t CProbe1;
profVar_t CProbe2;
profVar_t CProbe3;
} profCGame_t;
typedef struct clientGameImport_s
{
int apiVersion;
void ( *Printf )( const char *fmt, ... );
void ( *DPrintf )( const char *fmt, ... );
void ( *DebugPrintf )( const char *fmt, ... );
void * ( *Malloc )( size_t size );
void ( *Free )( void *ptr );
void ( *Error )( errorParm_t code, const char *fmt, ... );
int ( *Milliseconds )( );
char * ( *LV_ConvertString )( const char *string );
cvar_t * ( *Cvar_Get )( const char *varName, const char *varValue, int varFlags );
void ( *Cvar_Set )( const char *varName, const char *varValue );
int ( *Argc )( );
char * ( *Argv )( int arg );
char * ( *Args )( );
void ( *AddCommand )( char *cmdName, xcommand_t cmdFunction );
void ( *Cmd_Stuff )( const char *text );
void ( *Cmd_Execute )( cbufExec_t execWhen, char *text );
void ( *Cmd_TokenizeString )( char *textIn );
int ( *FS_ReadFile )( const char *qpath, void **buffer, qboolean bSilent );
void ( *FS_FreeFile )( void *buffer );
int ( *FS_WriteFile )( const char *qpath, void *buffer, int size );
void ( *FS_WriteTextFile )( const char *qpath, void *buffer, int size );
void ( *SendConsoleCommand )( const char *text );
int ( *MSG_ReadBits )( int bits );
int ( *MSG_ReadChar )( );
int ( *MSG_ReadByte )( );
int ( *MSG_ReadSVC )( );
int ( *MSG_ReadShort )( );
int ( *MSG_ReadLong )( );
float ( *MSG_ReadFloat )( );
char * ( *MSG_ReadString )( );
char * ( *MSG_ReadStringLine )( );
float ( *MSG_ReadAngle8 )( );
float ( *MSG_ReadAngle16 )( );
void ( *MSG_ReadData )( void *data, int len );
float ( *MSG_ReadCoord )( );
void ( *MSG_ReadDir )( vec3_t dir );
void ( *SendClientCommand )( const char *text );
void ( *CM_LoadMap )( char *name );
clipHandle_t ( *CM_InlineModel )( int index );
int ( *CM_NumInlineModels )( );
int ( *CM_PointContents )( vec3_t point, clipHandle_t model );
int ( *CM_TransformedPointContents )( vec3_t point, clipHandle_t model, vec3_t origin, vec3_t angles );
void ( *CM_BoxTrace )( trace_t *results, vec3_t start, vec3_t end, vec3_t mins, vec3_t maxs, int model, int brushMask, int cylinder );
void ( *CM_TransformedBoxTrace )( trace_t *results, vec3_t start, vec3_t end, vec3_t mins, vec3_t maxs, int model, int brushMask, vec3_t origin, vec3_t angles, int cylinder );
clipHandle_t ( *CM_TempBoxModel )( vec3_t mins, vec3_t maxs, int contents );
void ( *CM_PrintBSPFileSizes )( );
qboolean ( *CM_LeafInPVS )( int leaf1, int leaf2 );
int ( *CM_PointLeafnum )( vec3_t p );
int ( *R_MarkFragments )( int numPoints, vec3_t *points, vec3_t projection, int maxPoints, vec3_t pointBuffer, int maxFragments, markFragment_t *fragmentBuffer, float fRadiusSquared );
int ( *R_MarkFragmentsForInlineModel )( clipHandle_t bmodel, vec3_t vAngles, vec3_t vOrigin, int numPoints, vec3_t *points, vec3_t projection, int maxPoints, vec3_t pointBuffer, int maxFragments, markFragment_t *fragmentBuffer, float fRadiusSquared );
void ( *R_GetInlineModelBounds )( int index, vec3_t mins, vec3_t maxs );
void ( *R_GetLightingForDecal )( vec3_t light, vec3_t facing, vec3_t origin );
void ( *R_GetLightingForSmoke )( vec3_t light, vec3_t origin );
int ( *R_GatherLightSources )( vec3_t pos, vec3_t *lightPos, vec3_t *lightIntensity, int maxLights );
void ( *S_StartSound )( vec3_t origin, int entNum, int entChannel, sfxHandle_t sfxHandle, float volume, float minDist, float pitch, float maxDist, int streamed );
void ( *S_StartLocalSound )( char *soundName, int channel );
void ( *S_StopSound )( int entNum, int channel );
void ( *S_ClearLoopingSounds )( );
void ( *S_AddLoopingSound )( vec3_t origin, vec3_t velocity, sfxHandle_t sfxHandle, float volume, float minDist, float maxDist, float pitch, int flags );
void ( *S_Respatialize )( int entityNum, vec3_t head, vec3_t axis[3] );
void ( *S_BeginRegistration )( );
sfxHandle_t ( *S_RegisterSound )( char *name, int streamed, qboolean forceLoad );
void ( *S_EndRegistration )( );
void ( *S_UpdateEntity )( int entityNum, vec3_t origin, vec3_t velocity, qboolean useListener );
void ( *S_SetReverb )( int reverbType, float reverbLevel );
void ( *S_SetGlobalAmbientVolumeLevel )( float volume );
float ( *S_GetSoundTime )( sfxHandle_t handle );
int ( *S_ChannelNameToNum )( char *name );
char * ( *S_ChannelNumToName )( int channel );
int ( *S_IsSoundPlaying )( int channelNumber, char *name );
void ( *MUSIC_NewSoundtrack )( char *name );
void( *MUSIC_UpdateMood )( music_mood_t current, music_mood_t fallback );
void ( *MUSIC_UpdateVolume )( float volume, float fadeTime );
float * ( *get_camera_offset )( qboolean *lookActive, qboolean *resetView );
void ( *R_ClearScene )( );
void ( *R_RenderScene )( refDef_t *fd );
void ( *R_LoadWorldMap )( char *name );
void ( *R_PrintBSPFileSizes )( );
int ( *MapVersion )( );
int ( *R_MapVersion )( );
qhandle_t ( *R_RegisterModel )( const char *name );
qhandle_t ( *R_SpawnEffectModel )( const char *name, vec3_t pos, vec3_t axis[3] );
qhandle_t ( *R_RegisterServerModel )( const char *name );
void ( *R_UnregisterServerModel )( qhandle_t hModel );
qhandle_t ( *R_RegisterSkin )( const char *name );
qhandle_t ( *R_RegisterShader )( const char *name );
qhandle_t ( *R_RegisterShaderNoMip )( const char *name );
void ( *R_AddRefEntityToScene )( refEntity_t *ent, int parentEntityNumber );
void ( *R_AddRefSpriteToScene )( refEntity_t *ent );
void ( *R_AddLightToScene )( vec3_t org, float intensity, float r, float g, float b, dlightType_t type );
qboolean ( *R_AddPolyToScene )( qhandle_t hShader, int numVerts, polyVert_t *verts, int renderFx );
void ( *R_AddTerrainMarkToScene )( int terrainIndex, qhandle_t hShader, int numVerts, polyVert_t *verts, int renderFx );
void ( *R_SetColor )( vec4_t rgba );
void ( *R_DrawStretchPic )( float x, float y, float w, float h, float s1, float t1, float s2, float t2, qhandle_t hShader );
fontHeader_t * ( *R_LoadFont )( const char *name );
void ( *R_DrawString )( fontHeader_t *font, const char *text, float x, float y, int maxLen, qboolean virtualScreen );
refEntity_t * ( *R_GetRenderEntity )( int entityNumber );
void ( *R_ModelBounds )( clipHandle_t model, vec3_t mins, vec3_t maxs );
float ( *R_ModelRadius )( qhandle_t handle );
float ( *R_Noise )( float x, float y, float z, float t );
void ( *R_DebugLine )( vec3_t start, vec3_t end, float r, float g, float b, float alpha );
baseShader_t * ( *GetShader )( int shaderNum );
void ( *R_SwipeBegin )( float thistime, float life, qhandle_t shader );
void ( *R_SwipePoint )( vec3_t point1, vec3_t point2, float time );
void ( *R_SwipeEnd )( );
int ( *R_GetShaderWidth )( qhandle_t hShader );
int ( *R_GetShaderHeight )( qhandle_t hShader );
void ( *R_DrawBox )( float x, float y, float w, float h );
void ( *GetGameState )( gameState_t *gameState );
int ( *GetSnapshot )( int snapshotNumber, snapshot_t *snapshot );
int ( *GetServerStartTime )( );
void ( *SetTime )( float time );
void ( *GetCurrentSnapshotNumber )( int *snapshotNumber, int *serverTime );
void ( *GetGlconfig )( glconfig_t *glConfig );
qboolean ( *GetParseEntityState )( int parseEntityNumber, entityState_t *state );
int ( *GetCurrentCmdNumber )( );
qboolean ( *GetUserCmd )( int cmdNumber, usercmd_t *userCmd );
qboolean ( *GetServerCommand )( int serverCommandNumber, qboolean differentServer );
qboolean ( *Alias_Add )( char *alias, char *name, char *parameters );
qboolean ( *Alias_ListAdd )( AliasList_t *list, const char *alias, const char *name, const char *parameters );
char * ( *Alias_FindRandom )( const char *alias, AliasListNode_t **ret );
char * ( *Alias_ListFindRandom )( AliasList_t *list, const char *alias, AliasListNode_t **ret );
void ( *Alias_Dump )( );
void ( *Alias_Clear )( );
AliasList_t * ( *AliasList_New )( char *name );
void ( *Alias_ListFindRandomRange )( AliasList_t *list, char *alias, int *minIndex, int *maxIndex, float *totalWeight );
AliasList_t * ( *Alias_GetGlobalList )( );
void ( *UI_ShowMenu )( char *name, qboolean bForce );
void ( *UI_HideMenu )( char *name, qboolean bForce );
int ( *UI_FontStringWidth )( fontHeader_t *font, char *string, int maxLen );
int ( *Key_StringToKeynum )( char *str );
char * ( *Key_KeynumToBindString )( int keyNum );
void ( *Key_GetKeysForCommand )( const char *command, int *key1, int *key2 );
dtiki_t * ( *R_Model_GetHandle )( qhandle_t handle );
int ( *TIKI_NumAnims )( dtiki_t *pmdl );
void ( *TIKI_CalculateBounds )( dtiki_t *pmdl, float scale, vec3_t mins, vec3_t maxs );
char * ( *TIKI_Name )( dtiki_t *tiki, int entNum );
void * ( *TIKI_GetSkeletor )( dtiki_t *tiki, int entNum );
void ( *TIKI_SetEyeTargetPos )( dtiki_t *tiki, int entNum, vec3_t pos );
char * ( *Anim_NameForNum )( dtiki_t *tiki, int animNum );
int ( *Anim_NumForName )( dtiki_t *tiki, const char *name );
int ( *Anim_Random )( dtiki_t *tiki, const char *name );
int ( *Anim_NumFrames )( dtiki_t *tiki, int animNum );
float ( *Anim_Time )( dtiki_t *tiki, int animNum );
float ( *Anim_Frametime )( dtiki_t *tiki, int animNum );
void ( *Anim_Delta )( dtiki_t *tiki, int animNum, vec3_t delta );
int ( *Anim_Flags )( dtiki_t *tiki, int animNum );
int ( *Anim_FlagsSkel )( dtiki_t *tiki, int animNum );
float ( *Anim_CrossblendTime )( dtiki_t *tiki, int animNum );
qboolean ( *Anim_HasCommands )( dtiki_t *tiki, int animNum );
qboolean ( *Frame_Commands )( dtiki_t *tiki, int animNum, int frameNum, tiki_cmd_t *tikiCmds );
qboolean ( *Frame_CommandsTime )( dtiki_t *pmdl, int animNum, float start, float end, tiki_cmd_t *tikiCmd );
int ( *Surface_NameToNum )( dtiki_t *pmdl, const char *name );
int ( *Tag_NumForName )( dtiki_t *pmdl, const char *name );
char * ( *Tag_NameForNum )( dtiki_t *pmdl, int animNum );
void ( *ForceUpdatePose )( refEntity_t *model );
orientation_t ( *TIKI_Orientation )( orientation_t *orientation, refEntity_t *model, int tagNum );
qboolean ( *TIKI_IsOnGround )( refEntity_t *model, int tagNum, float threshold );
void ( *UI_ShowScoreBoard )( const char *menuName );
void ( *UI_HideScoreBoard )( );
void ( *UI_SetScoreBoardItem )( int itemNumber, char *data1, char *data2, char *data3, char *data4, char *data5, char *data6, char *data7, char *data8, float *textColor, float *backColor, qboolean isHeader );
void ( *UI_DeleteScoreBoardItems )( int maxIndex );
void ( *UI_ToggleDMMessageConsole )( int consoleMode );
dtiki_t * ( *TIKI_FindTiki )( char *path );
void ( *LoadResource )( char *name );
void ( *FS_CanonicalFilename )( char *name );
cvar_t *fsDebug;
hdElement_t *hudDrawElements;
clientAnim_t *anim;
stopWatch_t *stopWatch;
int( *FS_Read )( void *buffer, int len, fileHandle_t fileHandle );
void( *FS_FCloseFile )( fileHandle_t fileHandle );
int( *FS_Tell )( fileHandle_t fileHandle );
int( *FS_Seek )( fileHandle_t fileHandle, long int offset, fsOrigin_t origin );
fileHandle_t( *FS_FOpenFileWrite )( const char *fileName );
int( *FS_Write )( void *buffer, int size, fileHandle_t fileHandle );
char **( *FS_ListFiles )( const char *qpath, const char *extension, qboolean wantSubs, int *numFiles );
void( *FS_FreeFileList )( char **list );
} clientGameImport_t;
typedef struct clientGameExport_s
{
void ( *CG_Init )( clientGameImport_t *imported, int serverMessageNum, int serverCommandSequence, int clientNum );
void ( *CG_Shutdown )( );
void ( *CG_DrawActiveFrame )( int serverTime, int frameTime, stereoFrame_t stereoView, qboolean demoPlayback );
qboolean ( *CG_ConsoleCommand )( );
void ( *CG_GetRendererConfig )( );
void ( *CG_Draw2D )( );
void ( *CG_EyePosition )( vec3_t *eyePos );
void ( *CG_EyeOffset )( vec3_t *eyeOffset );
void ( *CG_EyeAngles )( vec3_t *eyeAngles );
float ( *CG_SensitivityScale )( );
void ( *CG_ParseCGMessage )( );
void ( *CG_RefreshHudDrawElements )( );
void ( *CG_HudDrawShader )( int info );
void ( *CG_HudDrawFont )( int info );
int ( *CG_GetParent )( int entNum );
float ( *CG_GetObjectiveAlpha )( );
int ( *CG_PermanentMark )( vec3_t origin, vec3_t dir, float orientation, float sScale, float tScale, float red, float green, float blue, float alpha, qboolean doLighting, float sCenter, float tCenter, markFragment_t *markFragments, void *polyVerts );
int ( *CG_PermanentTreadMarkDecal )( treadMark_t *treadMark, qboolean startSegment, qboolean doLighting, markFragment_t *markFragments, void *polyVerts );
int ( *CG_PermanentUpdateTreadMark )( treadMark_t *treadMark, float alpha, float minSegment, float maxSegment, float maxOffset, float texScale );
void ( *CG_ProcessInitCommands )( dtiki_t *tiki, refEntity_t *ent );
void ( *CG_EndTiki )( dtiki_t *tiki );
char * ( *CG_GetColumnName )( int columnNum, int *columnWidth );
void ( *CG_GetScoreBoardColor )( float *red, float *green, float *blue, float *alpha );
void ( *CG_GetScoreBoardFontColor )( float *red, float *green, float *blue, float *alpha );
int ( *CG_GetScoreBoardDrawHeader )( );
void ( *CG_GetScoreBoardPosition )( float *x, float *y, float *width, float *height );
int ( *CG_WeaponCommandButtonBits )( );
int ( *CG_CheckCaptureKey )( keyNum_t key, qboolean down, unsigned int time );
profCGame_t *profStruct;
qboolean ( *CG_Command_ProcessFile )( char *name, qboolean quiet, dtiki_t *curTiki );
} clientGameExport_t;
clientGameExport_t * GetCGameAPI( );
extern cg_t *cg;
extern cgs_t *cgs;
extern centity_t *cg_entities;
extern centity_t *cent;
extern float *viewAngles;
extern int cg_frametime;
extern clientGameExport_t cge;
extern clientGameImport_t cgi;
typedef char* (__cdecl * CG_CONFIGSTRING)(int ID);
extern CG_CONFIGSTRING CG_ConfigString;
typedef char* (__cdecl *SPRINTF2)(char * Format, ...);
extern SPRINTF2 sprintf2;
typedef int (__cdecl *Q_STRCMPI)(char * Str1, char * Str2);
extern Q_STRCMPI Q_strcmpi;
typedef void ( __cdecl *pfnCG_CastFootShadow )( vec3_t lightPos, vec3_t lightIntensity, int tagNum, refEntity_t *ref );
extern pfnCG_CastFootShadow CG_CastFootShadow;
#endif /* __CGAMEX86_H */