summaryrefslogtreecommitdiff
path: root/source/cl_public.h
blob: f9655454477ecf308596026dc49dd172fbd19c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
Copyright (C) 2003-2006 Andrey Nazarov

This program 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.

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, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

#define MAX_LOCAL_SERVERS 16
#define MAX_DEMOINFO_CLIENTS    20
#define MAX_STATUS_PLAYERS  64

typedef struct {
    char name[MAX_CLIENT_NAME];
    int ping;
    int score;
} playerStatus_t;

typedef struct {
    char    address[MAX_QPATH];
    char    infostring[MAX_STRING_CHARS]; // BIG infostring
    playerStatus_t  players[MAX_STATUS_PLAYERS];
    int numPlayers;
    int ping;
} serverStatus_t;

typedef struct {
    char map[MAX_QPATH];
    char pov[MAX_CLIENT_NAME];
} demoInfo_t;

typedef enum {
    ACT_MINIMIZED,
    ACT_RESTORED,
    ACT_ACTIVATED
} active_t;

void CL_ProcessEvents( void );
#if USE_ICMP
void CL_ErrorEvent( void );
#endif
void CL_Init (void);
void CL_Disconnect( error_type_t type, const char *text );
void CL_Shutdown (void);
void CL_Frame (unsigned msec);
void CL_RestartFilesystem( qboolean total );
void CL_Activate( active_t active );
void CL_UpdateUserinfo( cvar_t *var, from_t from );
qboolean CL_SendStatusRequest( char *buffer, size_t size );
demoInfo_t *CL_GetDemoInfo( const char *path, demoInfo_t *info );

qboolean CL_ForwardToServer( void );
// adds the current command line as a clc_stringcmd to the client message.
// things like godmode, noclip, etc, are commands directed to the server,
// so when they are typed in at the console, they will need to be forwarded.

void Con_Init( void );
void Con_SetColor( color_index_t color );
void Con_Print( const char *text );
void Con_Printf( const char *fmt, ... );
void Con_Close( void );

// this is in the client code, but can be used for debugging from server
void SCR_DebugGraph (float value, int color);
void SCR_BeginLoadingPlaque (void);
void SCR_EndLoadingPlaque( void );
void SCR_ModeChanged( void );
void SCR_UpdateScreen( void );

#define colorBlack      colorTable[COLOR_BLACK]
#define colorRed        colorTable[COLOR_RED]
#define colorGreen      colorTable[COLOR_GREEN]
#define colorYellow     colorTable[COLOR_YELLOW]
#define colorBlue       colorTable[COLOR_BLUE]
#define colorCyan       colorTable[COLOR_CYAN]
#define colorMagenta    colorTable[COLOR_MAGENTA]
#define colorWhite      colorTable[COLOR_WHITE]

#define MAKERGB(v,r,g,b)    ((v)[0]=(r),(v)[1]=(g),(v)[2]=(b))
#define MAKERGBA(v,r,g,b,a) ((v)[0]=(r),(v)[1]=(g),(v)[2]=(b),(v)[3]=(a))

#define SCREEN_WIDTH    640
#define SCREEN_HEIGHT   480

#define CHAR_WIDTH  8
#define CHAR_HEIGHT 8

#define UI_LEFT             0x00000001
#define UI_RIGHT            0x00000002
#define UI_CENTER           (UI_LEFT|UI_RIGHT)
#define UI_BOTTOM           0x00000004
#define UI_TOP              0x00000008
#define UI_MIDDLE           (UI_BOTTOM|UI_TOP)
#define UI_DROPSHADOW       0x00000010
#define UI_ALTCOLOR         0x00000020
#define UI_IGNORECOLOR      0x00000040
#define UI_ALTESCAPES       0x00000080
#define UI_AUTOWRAP         0x00000100
#define UI_MULTILINE        0x00000200
#define UI_DRAWCURSOR       0x00000400

extern const color_t    colorTable[8];

qboolean SCR_ParseColor( const char *s, color_t color );

float V_CalcFov( float fov_x, float width, float height );

void IN_Frame( void );
void IN_Activate( void );
void IN_MouseEvent( int x, int y );
void IN_WarpMouse( int x, int y );

void    Key_Init( void );
void    Key_Event( unsigned key, qboolean down, unsigned time );
void    Key_CharEvent( int key );
void    Key_WriteBindings( fileHandle_t f );

char    *VID_GetClipboardData( void );
void    VID_SetClipboardData( const char *data );
void    VID_FatalShutdown( void );