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
134
135
136
137
138
139
140
141
142
143
144
145
146
|
/*
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.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef CLIENT_H
#define CLIENT_H
#include "common/cmd.h"
#include "common/net/net.h"
#include "common/utils.h"
#define CHAR_WIDTH 8
#define CHAR_HEIGHT 8
#if USE_CLIENT
#define MAX_LOCAL_SERVERS 16
#define MAX_STATUS_PLAYERS 64
typedef struct {
char name[MAX_CLIENT_NAME];
int ping;
int score;
} playerStatus_t;
typedef struct {
char infostring[MAX_INFO_STRING];
playerStatus_t players[MAX_STATUS_PLAYERS];
int numPlayers;
} serverStatus_t;
typedef struct {
char map[MAX_QPATH];
char pov[MAX_CLIENT_NAME];
qboolean mvd;
} demoInfo_t;
typedef enum {
ACT_MINIMIZED,
ACT_RESTORED,
ACT_ACTIVATED
} active_t;
qboolean CL_ProcessEvents(void);
#if USE_ICMP
void CL_ErrorEvent(netadr_t *from);
#endif
void CL_Init(void);
void CL_Disconnect(error_type_t type);
void CL_Shutdown(void);
unsigned CL_Frame(unsigned msec);
void CL_RestartFilesystem(qboolean total);
void CL_Activate(active_t active);
void CL_UpdateUserinfo(cvar_t *var, from_t from);
void CL_SendStatusRequest(const netadr_t *address);
demoInfo_t *CL_GetDemoInfo(const char *path, demoInfo_t *info);
qboolean CL_CheatsOK(void);
void CL_SetSky(void);
#if USE_CURL
ssize_t HTTP_FetchFile(const char *url, void **data);
#endif
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, ...) q_printf(1, 2);
void Con_Close(qboolean force);
// 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 U32_BLACK MakeColor( 0, 0, 0, 255)
#define U32_RED MakeColor(255, 0, 0, 255)
#define U32_GREEN MakeColor( 0, 255, 0, 255)
#define U32_YELLOW MakeColor(255, 255, 0, 255)
#define U32_BLUE MakeColor( 0, 0, 255, 255)
#define U32_CYAN MakeColor( 0, 255, 255, 255)
#define U32_MAGENTA MakeColor(255, 0, 255, 255)
#define U32_WHITE MakeColor(255, 255, 255, 255)
#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_XORCOLOR 0x00000080
#define UI_AUTOWRAP 0x00000100
#define UI_MULTILINE 0x00000200
#define UI_DRAWCURSOR 0x00000400
extern const uint32_t colorTable[8];
qboolean SCR_ParseColor(const char *s, color_t *color);
float V_CalcFov(float fov_x, float width, float height);
#else // USE_CLIENT
#define CL_Init() (void)0
#define CL_Disconnect(type) (void)0
#define CL_Shutdown() (void)0
#define CL_UpdateUserinfo(var, from) (void)0
#define CL_ErrorEvent(from) (void)0
#define CL_RestartFilesystem(total) FS_Restart(total)
#define CL_ForwardToServer() qfalse
#define CL_CheatsOK() (!!Cvar_VariableInteger("cheats"))
#define Con_Init() (void)0
#define Con_SetColor(color) (void)0
#define Con_Print(text) (void)0
#define SCR_DebugGraph(value, color) (void)0
#define SCR_BeginLoadingPlaque() (void)0
#define SCR_EndLoadingPlaque() (void)0
#endif // !USE_CLIENT
#endif // CLIENT_H
|