-
-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathengine.h
More file actions
252 lines (225 loc) · 7.55 KB
/
engine.h
File metadata and controls
252 lines (225 loc) · 7.55 KB
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
/***
*
* Copyright (c) 2000-2022, Vera Visions. All rights reserved.
*
****/
#define FULLENGINENAME "Rad-Therapy"
#define GAME_SHORTNAME "HL"
#define GAME_BASEGAMES "valve"
#define GAME_PROTOCOL "FTE-RadTherapy"
#define BRANDING_ICON "valve.ico"
#define DISTRIBUTION "FHL"
#define DISTRIBUTIONLONG "frag-net.com"
#define GAME_FULLNAME FULLENGINENAME
#define GAME_DEFAULTPORT 27015
#define GAME_DEFAULTCMDS "game_valve;fteplug_ffmpeg;plug_load ffmpeg;exec quake.rc"
#define ENGINEWEBSITE "https://www.frag-net.com/"
#ifndef GLQUAKE
#define GLQUAKE
#endif
/*
#ifndef VKQUAKE
#define VKQUAKE
#endif
*/
#undef VKQUAKE /* not yet, needs more testing */
/* disable quake specific hacks and overrides */
#define QUAKETC
//#define NOBUILTINMENUS
#define NOLEGACY
/* engine behaviour */
#define PLUGINS /* enables fteplug_ files */
#define AVAIL_ZLIB /* we need this for pk3 and ogg vorbis */
#define CL_MASTER /* allows for serverbrowser builtins */
#define CSQC_DAT /* clientside qcvm */
#define MENU_DAT /* persistent qcvm */
#define PSET_SCRIPT /* scripts defining particles */
#define LOADERTHREAD /* multithreading related */
#define USEAREAGRID /* leave it on, improves performance */
#define AVAIL_DINPUT /* input for Windows */
#define AVAIL_FREETYPE /* for truetype font rendering */
//#define AVAIL_STBI /* avoid libpng/libjpeg dependancies */
#define ENGINE_ROUTING /* engine-side, fast routing */
#define HAVE_MEDIA_DECODER /* can play cin/roq, more with plugins */
#define HAVE_MEDIA_ENCODER /* capture/capturedemo work */
#define PACKAGEMANAGER /* enable/disable/download packages and plugins */
#ifndef LEGACY_GPU
#define RTLIGHTS
#else
#undef RTLIGHTS
#endif
#undef D3D9QUAKE /* MICROS~1 trash */
#undef D3D11QUAKE /* MICROS~1 trash */
#undef D3D8QUAKE /* MICROS~1 trash */
/* uncompressed textures */
#define IMAGEFMT_BMP /* sprays */
#define IMAGEFMT_TGA
#define IMAGEFMT_JPG
/* compressed textures */
#define IMAGEFMT_KTX
#define DECOMPRESS_ETC2
#define DECOMPRESS_RGTC
#define DECOMPRESS_S3TC
/* To be able to comm with Frag-Net.com */
#define HAVE_PACKET
#define SUPPORT_ICE
#define HAVE_TCP
#define HAVE_GNUTLS /* linux tls/dtls support */
#define HAVE_WINSSPI /* windows tls/dtls support */
#define WEBCLIENT /* uri_get+any internal downloads etc */
#ifndef MULTITHREAD
#define MULTITHREAD
#endif
#ifndef DEBUG
/* if 2, disables writing fteextensions.qc completely. */
#define NOQCDESCRIPTIONS 2
#endif
/* various package formats */
#define PACKAGE_PK3
#define PACKAGE_TEXWAD
#define PACKAGE_Q1PAK
/* level formats */
#define Q3BSPS
#define Q1BSPS
#define TERRAIN
/* audio */
#undef AVAIL_DSOUND
#define AVAIL_OPENAL
#define AVAIL_OGGVORBIS
#define HAVE_OPUS
#define VOICECHAT
/* todo: make OpenAL only */
#define HAVE_MIXER
/* Model formats, IQM/VVM and HLMDL for legacy maps */
#define INTERQUAKEMODELS
#define HALFLIFEMODELS
/* physics */
#undef USE_INTERNAL_ODE
#undef USE_INTERNAL_BULLET
#define USERBE
#define RAGDOLL
/* we don't need any of these */
#undef IMAGEFMT_PCX
#undef PACKAGE_DOOMWAD
#undef DOOMWADS
#undef MAP_PROC
#undef Q2BSPS
#define RFBSPS
#define VERTEXINDEXBYTES 2 //16bit indexes work everywhere but may break some file types, 32bit indexes are optional in gles<=2 and d3d<=9 and take more memory/copying but allow for bigger batches/models. Plugins need to be compiled the same way so this is no longer set per-renderer.
#define SPRMODELS
#undef SP2MODELS
#undef DSPMODELS
#undef MD1MODELS
#undef MD2MODELS
#undef MD3MODELS
#undef MD5MODELS
#undef ZYMOTICMODELS
#undef DPMMODELS
#undef PSKMODELS
#undef MENU_NATIVECODE /* native menu replacing menuQC */
#undef MVD_RECORDING /* server can record MVDs. */
#undef AVAIL_WASAPI /* windows advanced sound api */
//#undef AVAIL_DSOUND /* MICROS~1 trash */
#undef BOTLIB_STATIC /* q3 botlib */
#undef AVAIL_XZDEC /* .xz decompression */
#undef HAVE_SPEEX /* .xz decompression */
#undef AVAIL_GZDEC /* .gz decompression */
#undef PACKAGE_DZIP /* .dzip special-case archive support */
#define AVAIL_PNGLIB /* .png image format support (read+screenshots) */
#define AVAIL_JPEGLIB /* .jpeg image format support (read+screenshots) */
#undef AVAIL_MP3_ACM /* .mp3 support (in windows). */
#undef IMAGEFMT_DDS
#undef IMAGEFMT_PKM
#undef IMAGEFMT_BLP
#undef NETPREPARSE /* allows for running both nq+qw on the same server (if not, protocol used must match gamecode) */
#undef USE_SQLITE /* sql-database-as-file support */
#undef QUAKESTATS /* defines STAT_HEALTH etc. if omitted, you'll need to provide that functionality yourself */
#undef QUAKEHUD /* support for drawing the vanilla hud */
#undef QWSKINS /* disabling this means no qw .pcx skins nor enemy/team skin/colour forcing */
#undef SVRANKING /* legacy server-side ranking system */
#define HUFFNETWORK /* crappy network compression. probably needs reseeding */
#undef SVCHAT /* ancient lame builtin to support NPC-style chat.. */
#undef VM_Q1 /* q1qvm implementation, to support ktx */
#undef Q2SERVER /* q2 server+gamecode */
#undef Q2CLIENT /* q2 client. file formats enabled separately */
#undef Q3CLIENT /* q3 client stuff */
#undef Q3SERVER /* q3 server stuff */
#undef HEXEN2 /* runs hexen2 gamecode, supports hexen2 file formats */
#undef NQPROT /* act as an nq client/server, with nq gamecode */
#undef WEBSERVER /* sv_ftp + sv_http cvars */
#undef RUNTIMELIGHTING /* automatic generation of .lit files */
#undef R_XFLIP /* old silly thing */
#undef TEXTEDITOR /* because emacs */
#undef TCPCONNECT /* support for playing over tcp sockets, instead of just udp. compatible with qizmo */
#undef IRCCONNECT /* lame support for routing game packets via irc server. not a good idea */
#undef PSET_CLASSIC /* support the 'classic' particle system, for that classic quake feel */
#undef HAVE_CDPLAYER /* Redbook CD Audio */
#undef QTERM
#undef SIDEVIEWS
#undef MAX_SPLITS
#undef SUBSERVERS /* multi-map */
#undef VM_LUA /* lua game-logic */
#undef HLCLIENT /* regressed, unfinished*/
#undef HLSERVER /* regressed, unfinished */
#undef FTPSERVER
#undef HAVE_JUKEBO /* includes built-in jukebox */
#undef HAVE_SPEECHTOTEXT /* Windows speech-to-text thing */
#define SAVEDGAMES
#undef HEADLESSQUAKE
#undef WAYLANDQUAKE
#undef SERVER_DEMO_PLAYBACK /* deprecated */
#undef DECOMPRESS_BPTC
#undef IMAGEFMT_HDR
#undef IMAGEFMT_PBM
#undef IMAGEFMT_PSD
#undef IMAGEFMT_XCF
#undef IMAGEFMT_LMP
#define IMAGEFMT_PNG
#undef IMAGEFMT_GIF
#undef IMAGEFMT_EXR
#undef IPLOG
#undef AVAIL_BOTLIB
#undef AVAIL_BZLIB
#undef DECOMPRESS_ASTC
#undef IMAGEFMT_ASTC
#undef HAVE_HTTPSV
#undef MODELFMT_MDX
#undef MODELFMT_OBJ
#undef MODELFMT_GLTF
#ifdef COMPILE_OPTS
/* things to configure qclib, which annoyingly doesn't include this
* file itself */
-DOMIT_QCC /* disable the built-in qcc */
//-DSIMPLE_QCVM /* disable qc debugging and 32bit opcodes */
#ifndef AVAIL_ZLIB
-DNO_ZLIB /* disable zlib */
#endif
#ifdef AVAIL_PNGLIB
-DLINK_PNG
#endif
#ifdef AVAIL_JPEGLIB
-DLINK_JPEG
#endif
#ifdef AVAIL_FREETYPE
-DLINK_FREETYPE
#endif
/* makefile will respond to this by trying to link bullet into the
* engine itself, instead of as a plugin. */
#ifdef USE_INTERNAL_BULLET
-DLINK_INTERNAL_BULLET
#endif
#ifdef USE_INTERNAL_ODE
-DODE_STATIC
#endif
/* disable static speex */
#ifdef HAVE_SPEEX
-DNO_SPEEX
#endif
/* disable static botlib */
#ifndef BOTLIB_STATIC
-DNO_BOTLIB
#endif
-DLIBVORBISFILE_STATIC
/* optimise for size instead of speed. less cpu cache needed means that
* its sometimes faster.*/
#endif