FTEQW
Documentation of the FTE engine source tree.
config_base.h
Go to the documentation of this file.
1/***
2*
3* Copyright (c) 2000-2022, Vera Visions. All rights reserved.
4*
5****/
6
7#define FULLENGINENAME "Nuclide"
8#define GAME_SHORTNAME "NC"
9#define GAME_BASEGAMES "base"
10#define GAME_PROTOCOL "Nuclide"
11
12#define BRANDING_ICON "wastes.ico"
13#define DISTRIBUTION "VTW"
14#define DISTRIBUTIONLONG "Vera Visions"
15#define GAME_FULLNAME FULLENGINENAME
16#define GAME_DEFAULTPORT 23000
17#define ENGINEWEBSITE "https://www.vera-visions.com/"
18
19#ifndef GLQUAKE
20#define GLQUAKE
21#endif
22
23/*
24#ifndef VKQUAKE
25#define VKQUAKE
26#endif
27*/
28#undef VKQUAKE /* not yet, needs more testing */
29
30 /* disable quake specific hacks and overrides */
31#define QUAKETC
32#define NOBUILTINMENUS
33#define NOLEGACY
34
35/* engine behaviour */
36#define PLUGINS /* enables fteplug_ files */
37#define AVAIL_ZLIB /* we need this for pk3 and ogg vorbis */
38#define CL_MASTER /* allows for serverbrowser builtins */
39#define CSQC_DAT /* clientside qcvm */
40#define MENU_DAT /* persistent qcvm */
41#define PSET_SCRIPT /* scripts defining particles */
42#define LOADERTHREAD /* multithreading related */
43#define USEAREAGRID /* leave it on, improves performance */
44#define AVAIL_DINPUT /* input for Windows */
45#define AVAIL_FREETYPE /* for truetype font rendering */
46#define AVAIL_STBI /* avoid libpng/libjpeg dependancies */
47#define ENGINE_ROUTING /* engine-side, fast routing */
48
49#ifndef LEGACY_GPU
50 #define RTLIGHTS
51#else
52 #undef RTLIGHTS
53#endif
54
55#undef D3D9QUAKE /* MICROS~1 trash */
56#undef D3D11QUAKE /* MICROS~1 trash */
57#undef D3D8QUAKE /* MICROS~1 trash */
58
59/* uncompressed textures */
60#define IMAGEFMT_BMP /* sprays */
61#define IMAGEFMT_TGA
62
63/* compressed textures */
64#define IMAGEFMT_KTX
65#define DECOMPRESS_ETC2
66#define DECOMPRESS_RGTC
67#define DECOMPRESS_S3TC
68
69/* To be able to comm with Frag-Net.com */
70#define HAVE_PACKET
71#define SUPPORT_ICE
72#define HAVE_TCP
73#define HAVE_GNUTLS /* linux tls/dtls support */
74#define HAVE_WINSSPI /* windows tls/dtls support */
75#define WEBCLIENT /* uri_get+any internal downloads etc */
76
77#ifndef MULTITHREAD
78#define MULTITHREAD
79#endif
80
81#ifndef DEBUG
82/* if 2, disables writing fteextensions.qc completely. */
83#define NOQCDESCRIPTIONS 2
84#endif
85
86/* various package formats */
87#define PACKAGE_PK3
88#define PACKAGE_TEXWAD
89#define PACKAGE_Q1PAK
90
91/* level formats */
92#define Q3BSPS
93#define Q1BSPS
94#define TERRAIN
95
96/* audio */
97#define AVAIL_DSOUND
98#undef AVAIL_OPENAL
99#define AVAIL_OGGVORBIS
100#define HAVE_OPUS
101#define VOICECHAT
102
103/* todo: make OpenAL only */
104#define HAVE_MIXER
105
106/* Model formats, IQM/VVM and HLMDL for legacy maps */
107#define INTERQUAKEMODELS
108#undef HALFLIFEMODELS
109
110/* physics */
111#undef USE_INTERNAL_ODE
112#undef USE_INTERNAL_BULLET
113#define USERBE
114#define RAGDOLL
115
116/* we don't need any of these */
117#undef IMAGEFMT_PCX
118#undef PACKAGE_DOOMWAD
119#undef DOOMWADS
120#undef MAP_PROC
121#undef Q2BSPS
122#define RFBSPS
123#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.
124#undef SPRMODELS
125#undef SP2MODELS
126#undef DSPMODELS
127#undef MD1MODELS
128#undef MD2MODELS
129#undef MD3MODELS
130#undef MD5MODELS
131#undef ZYMOTICMODELS
132#undef DPMMODELS
133#undef PSKMODELS
134#undef MENU_NATIVECODE /* native menu replacing menuQC */
135#undef MVD_RECORDING /* server can record MVDs. */
136#undef AVAIL_WASAPI /* windows advanced sound api */
137//#undef AVAIL_DSOUND /* MICROS~1 trash */
138#undef BOTLIB_STATIC /* q3 botlib */
139#undef AVAIL_XZDEC /* .xz decompression */
140#undef HAVE_SPEEX /* .xz decompression */
141#undef AVAIL_GZDEC /* .gz decompression */
142#undef PACKAGE_DZIP /* .dzip special-case archive support */
143#undef AVAIL_PNGLIB /* .png image format support (read+screenshots) */
144#undef AVAIL_JPEGLIB /* .jpeg image format support (read+screenshots) */
145#undef AVAIL_MP3_ACM /* .mp3 support (in windows). */
146#undef IMAGEFMT_DDS
147#undef IMAGEFMT_PKM
148#undef IMAGEFMT_BLP
149#undef NETPREPARSE /* allows for running both nq+qw on the same server (if not, protocol used must match gamecode) */
150#undef USE_SQLITE /* sql-database-as-file support */
151#undef QUAKESTATS /* defines STAT_HEALTH etc. if omitted, you'll need to provide that functionality yourself */
152#undef QUAKEHUD /* support for drawing the vanilla hud */
153#undef QWSKINS /* disabling this means no qw .pcx skins nor enemy/team skin/colour forcing */
154#undef SVRANKING /* legacy server-side ranking system */
155#define HUFFNETWORK /* crappy network compression. probably needs reseeding */
156#undef SVCHAT /* ancient lame builtin to support NPC-style chat.. */
157#undef VM_Q1 /* q1qvm implementation, to support ktx */
158#undef Q2SERVER /* q2 server+gamecode */
159#undef Q2CLIENT /* q2 client. file formats enabled separately */
160#undef Q3CLIENT /* q3 client stuff */
161#undef Q3SERVER /* q3 server stuff */
162#undef HEXEN2 /* runs hexen2 gamecode, supports hexen2 file formats */
163#undef NQPROT /* act as an nq client/server, with nq gamecode */
164#undef WEBSERVER /* sv_ftp + sv_http cvars */
165#undef RUNTIMELIGHTING /* automatic generation of .lit files */
166#undef R_XFLIP /* old silly thing */
167#undef TEXTEDITOR /* because emacs */
168#undef TCPCONNECT /* support for playing over tcp sockets, instead of just udp. compatible with qizmo */
169#undef IRCCONNECT /* lame support for routing game packets via irc server. not a good idea */
170#undef PSET_CLASSIC /* support the 'classic' particle system, for that classic quake feel */
171#undef HAVE_CDPLAYER /* Redbook CD Audio */
172#undef QTERM
173#undef SIDEVIEWS
174#undef MAX_SPLITS
175#undef SUBSERVERS /* multi-map */
176#undef VM_LUA /* lua game-logic */
177#undef HLCLIENT /* regressed, unfinished*/
178#undef HLSERVER /* regressed, unfinished */
179#undef FTPSERVER
180#undef HAVE_JUKEBO /* includes built-in jukebox */
181#define HAVE_MEDIA_DECODER /* can play cin/roq, more with plugins */
182#undef HAVE_MEDIA_ENCODER /* capture/capturedemo work */
183#undef HAVE_SPEECHTOTEXT /* Windows speech-to-text thing */
184#undef SAVEDGAMES
185#undef PACKAGEMANAGER /* enable/disable/download packages and plugins */
186#undef HEADLESSQUAKE
187#undef WAYLANDQUAKE
188#undef SERVER_DEMO_PLAYBACK /* deprecated */
189#undef DECOMPRESS_BPTC
190#undef IMAGEFMT_HDR
191#undef IMAGEFMT_PBM
192#undef IMAGEFMT_PSD
193#undef IMAGEFMT_XCF
194#undef IMAGEFMT_LMP
195#undef IMAGEFMT_PNG
196#undef IMAGEFMT_JPG
197#undef IMAGEFMT_GIF
198#undef IMAGEFMT_EXR
199#undef IPLOG
200#undef AVAIL_BOTLIB
201#undef AVAIL_BZLIB
202#undef DECOMPRESS_ASTC
203#undef IMAGEFMT_ASTC
204#undef HAVE_HTTPSV
205#undef MODELFMT_MDX
206#undef MODELFMT_OBJ
207#undef MODELFMT_GLTF
208
209#ifdef COMPILE_OPTS
210/* things to configure qclib, which annoyingly doesn't include this
211 * file itself */
212-DOMIT_QCC /* disable the built-in qcc */
213-DSIMPLE_QCVM /* disable qc debugging and 32bit opcodes */
214#ifndef AVAIL_ZLIB
215-DNO_ZLIB /* disable zlib */
216#endif
217#ifdef AVAIL_PNGLIB
218-DLINK_PNG
219#endif
220#ifdef AVAIL_JPEGLIB
221-DLINK_JPEG
222#endif
223#ifdef AVAIL_FREETYPE
224-DLINK_FREETYPE
225#endif
226
227/* makefile will respond to this by trying to link bullet into the
228 * engine itself, instead of as a plugin. */
229#ifdef USE_INTERNAL_BULLET
230-DLINK_INTERNAL_BULLET
231#endif
232
233#ifdef USE_INTERNAL_ODE
234-DODE_STATIC
235#endif
236
237/* disable static speex */
238#ifdef HAVE_SPEEX
239-DNO_SPEEX
240#endif
241
242/* disable static botlib */
243#ifndef BOTLIB_STATIC
244-DNO_BOTLIB
245#endif
246
247-DLIBVORBISFILE_STATIC
248
249/* optimise for size instead of speed. less cpu cache needed means that
250 * its sometimes faster.*/
251-Os
252#endif