/***
*
*   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-HalfLife"

#define BRANDING_ICON "freecs.ico"
#define DISTRIBUTION "FHL"
#define DISTRIBUTIONLONG "eukara"
#define GAME_FULLNAME		FULLENGINENAME
#define GAME_DEFAULTPORT	23000
#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 */
#undef 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
#undef 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
