summaryrefslogtreecommitdiff
path: root/src/ui/ui_local.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/ui_local.h')
-rw-r--r--src/ui/ui_local.h400
1 files changed, 400 insertions, 0 deletions
diff --git a/src/ui/ui_local.h b/src/ui/ui_local.h
new file mode 100644
index 0000000..2c78e26
--- /dev/null
+++ b/src/ui/ui_local.h
@@ -0,0 +1,400 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+Copyright (C) 2000-2009 Darklegion Development
+
+This file is part of Tremulous.
+
+Tremulous is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Tremulous 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 Tremulous; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+#ifndef UI_LOCAL_H
+#define UI_LOCAL_H
+
+#include "../qcommon/q_shared.h"
+#include "../renderer/tr_types.h"
+#include "ui_public.h"
+#include "../client/keycodes.h"
+#include "../game/bg_public.h"
+#include "ui_shared.h"
+
+//
+// ui_main.c
+//
+void UI_Report( void );
+void UI_Load( void );
+void UI_LoadMenus( const char *menuFile, qboolean reset );
+int UI_AdjustTimeByGame( int time );
+void UI_ClearScores( void );
+void UI_LoadArenas( void );
+void UI_ServerInfo( void );
+void UI_UpdateNews( qboolean );
+
+void UI_RegisterCvars( void );
+void UI_UpdateCvars( void );
+void UI_DrawConnectScreen( qboolean overlay );
+
+// new ui stuff
+#define MAX_MAPS 128
+#define MAX_PINGREQUESTS 32
+#define MAX_ADDRESSLENGTH 64
+#define MAX_DISPLAY_SERVERS 2048
+#define MAX_SERVERSTATUS_LINES 128
+#define MAX_SERVERSTATUS_TEXT 1024
+#define MAX_NEWS_LINES 50
+#define MAX_NEWS_LINEWIDTH 85
+#define MAX_FOUNDPLAYER_SERVERS 16
+#define MAX_MODS 64
+#define MAX_DEMOS 256
+#define MAX_MOVIES 256
+#define MAX_HELP_INFOPANES 32
+#define MAX_RESOLUTIONS 32
+
+typedef struct
+{
+ const char *mapName;
+ const char *mapLoadName;
+ const char *imageName;
+ int cinematic;
+ qhandle_t levelShot;
+}
+mapInfo;
+
+typedef struct serverFilter_s
+{
+ const char *description;
+ const char *basedir;
+}
+serverFilter_t;
+
+typedef struct
+{
+ char adrstr[MAX_ADDRESSLENGTH];
+ int start;
+}
+pinglist_t;
+
+
+typedef struct serverStatus_s
+{
+ pinglist_t pingList[MAX_PINGREQUESTS];
+ int numqueriedservers;
+ int currentping;
+ int nextpingtime;
+ int maxservers;
+ int refreshtime;
+ int numServers;
+ int sortKey;
+ int sortDir;
+ qboolean sorted;
+ int lastCount;
+ qboolean refreshActive;
+ int currentServer;
+ int displayServers[MAX_DISPLAY_SERVERS];
+ int numDisplayServers;
+ int numPlayersOnServers;
+ int nextDisplayRefresh;
+ int nextSortTime;
+ qhandle_t currentServerPreview;
+ int currentServerCinematic;
+ int motdLen;
+ int motdWidth;
+ int motdPaintX;
+ int motdPaintX2;
+ int motdOffset;
+ int motdTime;
+ char motd[MAX_STRING_CHARS];
+}
+serverStatus_t;
+
+
+typedef struct
+{
+ char adrstr[MAX_ADDRESSLENGTH];
+ char name[MAX_ADDRESSLENGTH];
+ int startTime;
+ int serverNum;
+ qboolean valid;
+}
+pendingServer_t;
+
+typedef struct
+{
+ int num;
+ pendingServer_t server[MAX_SERVERSTATUSREQUESTS];
+}
+pendingServerStatus_t;
+
+typedef struct
+{
+ char address[MAX_ADDRESSLENGTH];
+ char *lines[MAX_SERVERSTATUS_LINES][4];
+ char text[MAX_SERVERSTATUS_TEXT];
+ char pings[MAX_CLIENTS * 3];
+ int numLines;
+}
+serverStatusInfo_t;
+
+typedef struct
+{
+ char text[MAX_NEWS_LINES][MAX_NEWS_LINEWIDTH];
+ int numLines;
+ qboolean refreshActive;
+ int refreshtime;
+}
+newsInfo_t;
+
+typedef struct
+{
+ const char *modName;
+ const char *modDescr;
+}
+modInfo_t;
+
+typedef enum
+{
+ INFOTYPE_TEXT,
+ INFOTYPE_BUILDABLE,
+ INFOTYPE_CLASS,
+ INFOTYPE_WEAPON,
+ INFOTYPE_UPGRADE
+} infoType_t;
+
+typedef struct
+{
+ const char *text;
+ const char *cmd;
+ infoType_t type;
+ union
+ {
+ const char *text;
+ buildable_t buildable;
+ class_t pclass;
+ weapon_t weapon;
+ upgrade_t upgrade;
+ } v;
+}
+menuItem_t;
+
+typedef struct
+{
+ int w;
+ int h;
+}
+resolution_t;
+
+typedef struct
+{
+ displayContextDef_t uiDC;
+
+ int playerCount;
+ int myTeamCount;
+ int teamPlayerIndex;
+ int playerRefresh;
+ int playerIndex;
+ int playerNumber;
+ int myPlayerIndex;
+ int ignoreIndex;
+ char playerNames[MAX_CLIENTS][MAX_NAME_LENGTH];
+ char rawPlayerNames[MAX_CLIENTS][MAX_NAME_LENGTH];
+ char teamNames[MAX_CLIENTS][MAX_NAME_LENGTH];
+ char rawTeamNames[MAX_CLIENTS][MAX_NAME_LENGTH];
+ int clientNums[MAX_CLIENTS];
+ int teamClientNums[MAX_CLIENTS];
+ clientList_t ignoreList[MAX_CLIENTS];
+
+ int mapCount;
+ mapInfo mapList[MAX_MAPS];
+
+ modInfo_t modList[MAX_MODS];
+ int modCount;
+ int modIndex;
+
+ const char *demoList[MAX_DEMOS];
+ int demoCount;
+ int demoIndex;
+
+ const char *movieList[MAX_MOVIES];
+ int movieCount;
+ int movieIndex;
+ int previewMovie;
+
+ menuItem_t teamList[ 4 ];
+ int teamCount;
+ int teamIndex;
+
+ menuItem_t alienClassList[ 3 ];
+ int alienClassCount;
+ int alienClassIndex;
+
+ menuItem_t humanItemList[ 3 ];
+ int humanItemCount;
+ int humanItemIndex;
+
+ menuItem_t humanArmouryBuyList[ 32 ];
+ int humanArmouryBuyCount;
+ int humanArmouryBuyIndex;
+
+ menuItem_t humanArmourySellList[ 32 ];
+ int humanArmourySellCount;
+ int humanArmourySellIndex;
+
+ menuItem_t alienUpgradeList[ 16 ];
+ int alienUpgradeCount;
+ int alienUpgradeIndex;
+
+ menuItem_t alienBuildList[ 32 ];
+ int alienBuildCount;
+ int alienBuildIndex;
+
+ menuItem_t humanBuildList[ 32 ];
+ int humanBuildCount;
+ int humanBuildIndex;
+
+ menuItem_t helpList[ MAX_HELP_INFOPANES ];
+ int helpCount;
+ int helpIndex;
+
+ int weapons;
+ int upgrades;
+
+ serverStatus_t serverStatus;
+
+ // for showing the game news window
+ newsInfo_t newsInfo;
+
+ // for the showing the status of a server
+ char serverStatusAddress[MAX_ADDRESSLENGTH];
+ serverStatusInfo_t serverStatusInfo;
+ int nextServerStatusRefresh;
+
+ // to retrieve the status of server to find a player
+ pendingServerStatus_t pendingServerStatus;
+ char findPlayerName[MAX_STRING_CHARS];
+ char foundPlayerServerAddresses[MAX_FOUNDPLAYER_SERVERS][MAX_ADDRESSLENGTH];
+ char foundPlayerServerNames[MAX_FOUNDPLAYER_SERVERS][MAX_ADDRESSLENGTH];
+ int currentFoundPlayerServer;
+ int numFoundPlayerServers;
+ int nextFindPlayerRefresh;
+
+ resolution_t resolutions[ MAX_RESOLUTIONS ];
+ int numResolutions;
+ int resolutionIndex;
+
+ qboolean inGameLoad;
+
+ qboolean chatTeam;
+}
+uiInfo_t;
+
+extern uiInfo_t uiInfo;
+
+
+qboolean UI_ConsoleCommand( int realTime );
+char *UI_Cvar_VariableString( const char *var_name );
+void UI_SetColor( const float *rgba );
+void UI_AdjustFrom640( float *x, float *y, float *w, float *h );
+void UI_Refresh( int time );
+void UI_DrawHandlePic( float x, float y, float w, float h, qhandle_t hShader );
+void UI_FillRect( float x, float y, float width, float height, const float *color );
+
+//
+// ui_syscalls.c
+//
+void trap_Print( const char *string );
+void trap_Error( const char *string );
+int trap_Milliseconds( void );
+void trap_Cvar_Register( vmCvar_t *vmCvar, const char *varName, const char *defaultValue, int flags );
+void trap_Cvar_Update( vmCvar_t *vmCvar );
+void trap_Cvar_Set( const char *var_name, const char *value );
+float trap_Cvar_VariableValue( const char *var_name );
+void trap_Cvar_VariableStringBuffer( const char *var_name, char *buffer, int bufsize );
+void trap_Cvar_SetValue( const char *var_name, float value );
+void trap_Cvar_Reset( const char *name );
+void trap_Cvar_Create( const char *var_name, const char *var_value, int flags );
+void trap_Cvar_InfoStringBuffer( int bit, char *buffer, int bufsize );
+int trap_Argc( void );
+void trap_Argv( int n, char *buffer, int bufferLength );
+void trap_Cmd_ExecuteText( int exec_when, const char *text ); // don't use EXEC_NOW!
+int trap_FS_FOpenFile( const char *qpath, fileHandle_t *f, fsMode_t mode );
+void trap_FS_Read( void *buffer, int len, fileHandle_t f );
+void trap_FS_Write( const void *buffer, int len, fileHandle_t f );
+void trap_FS_FCloseFile( fileHandle_t f );
+int trap_FS_GetFileList( const char *path, const char *extension, char *listbuf, int bufsize );
+int trap_FS_Seek( fileHandle_t f, long offset, int origin ); // fsOrigin_t
+qhandle_t trap_R_RegisterModel( const char *name );
+qhandle_t trap_R_RegisterSkin( const char *name );
+qhandle_t trap_R_RegisterShaderNoMip( const char *name );
+void trap_R_ClearScene( void );
+void trap_R_AddRefEntityToScene( const refEntity_t *re );
+void trap_R_AddPolyToScene( qhandle_t hShader , int numVerts, const polyVert_t *verts );
+void trap_R_AddLightToScene( const vec3_t org, float intensity, float r, float g, float b );
+void trap_R_RenderScene( const refdef_t *fd );
+void trap_R_SetColor( const float *rgba );
+void trap_R_SetClipRegion( const float *region );
+void trap_R_DrawStretchPic( float x, float y, float w, float h, float s1, float t1, float s2, float t2, qhandle_t hShader );
+void trap_R_ModelBounds( clipHandle_t model, vec3_t mins, vec3_t maxs );
+void trap_UpdateScreen( void );
+int trap_CM_LerpTag( orientation_t *tag, clipHandle_t mod, int startFrame, int endFrame, float frac, const char *tagName );
+void trap_S_StartLocalSound( sfxHandle_t sfx, int channelNum );
+sfxHandle_t trap_S_RegisterSound( const char *sample, qboolean compressed );
+void trap_Key_KeynumToStringBuf( int keynum, char *buf, int buflen );
+void trap_Key_GetBindingBuf( int keynum, char *buf, int buflen );
+void trap_Key_SetBinding( int keynum, const char *binding );
+qboolean trap_Key_IsDown( int keynum );
+qboolean trap_Key_GetOverstrikeMode( void );
+void trap_Key_SetOverstrikeMode( qboolean state );
+void trap_Key_ClearStates( void );
+int trap_Key_GetCatcher( void );
+void trap_Key_SetCatcher( int catcher );
+void trap_GetClipboardData( char *buf, int bufsize );
+void trap_GetClientState( uiClientState_t *state );
+void trap_GetGlconfig( glconfig_t *glconfig );
+int trap_GetConfigString( int index, char* buff, int buffsize );
+int trap_LAN_GetServerCount( int source );
+void trap_LAN_GetServerAddressString( int source, int n, char *buf, int buflen );
+void trap_LAN_GetServerInfo( int source, int n, char *buf, int buflen );
+int trap_LAN_GetServerPing( int source, int n );
+int trap_LAN_GetPingQueueCount( void );
+void trap_LAN_ClearPing( int n );
+void trap_LAN_GetPing( int n, char *buf, int buflen, int *pingtime );
+void trap_LAN_GetPingInfo( int n, char *buf, int buflen );
+void trap_LAN_LoadCachedServers( void );
+void trap_LAN_SaveCachedServers( void );
+void trap_LAN_MarkServerVisible( int source, int n, qboolean visible );
+int trap_LAN_ServerIsVisible( int source, int n );
+qboolean trap_LAN_UpdateVisiblePings( int source );
+int trap_LAN_AddServer( int source, const char *name, const char *addr );
+void trap_LAN_RemoveServer( int source, const char *addr );
+void trap_LAN_ResetPings( int n );
+int trap_LAN_ServerStatus( const char *serverAddress, char *serverStatus, int maxLen );
+qboolean trap_GetNews( qboolean force );
+int trap_LAN_CompareServers( int source, int sortKey, int sortDir, int s1, int s2 );
+int trap_MemoryRemaining( void );
+void trap_R_RegisterFont( const char *pFontname, int pointSize, fontInfo_t *font );
+void trap_S_StopBackgroundTrack( void );
+void trap_S_StartBackgroundTrack( const char *intro, const char *loop );
+int trap_CIN_PlayCinematic( const char *arg0, int xpos, int ypos, int width, int height, int bits );
+e_status trap_CIN_StopCinematic( int handle );
+e_status trap_CIN_RunCinematic ( int handle );
+void trap_CIN_DrawCinematic ( int handle );
+void trap_CIN_SetExtents ( int handle, int x, int y, int w, int h );
+int trap_RealTime( qtime_t *qtime );
+void trap_R_RemapShader( const char *oldShader, const char *newShader, const char *timeOffset );
+
+void trap_SetPbClStatus( int status );
+
+#endif