xash3d-fwgs/common/defaults.h

221 lines
4.5 KiB
C

/*
defaults.h - set up default configuration
Copyright (C) 2016 Mittorn
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 3 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.
*/
#ifndef DEFAULTS_H
#define DEFAULTS_H
#include "backends.h"
/*
===================================================================
SETUP BACKENDS DEFINITIONS
===================================================================
*/
#ifndef XASH_DEDICATED
#if XASH_SDL == 2
#ifndef XASH_TIMER
#define XASH_TIMER TIMER_SDL
#endif
#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_SDL
#endif
#else
#ifndef XASH_TIMER
#define XASH_TIMER TIMER_LINUX
#endif
#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_STDERR
#endif
#endif
#ifdef XASH_SDL
// by default, use SDL subsystems
#ifndef XASH_VIDEO
#define XASH_VIDEO VIDEO_SDL
#endif // XASH_VIDEO
#ifndef XASH_INPUT
#define XASH_INPUT INPUT_SDL
#endif
#ifndef XASH_SOUND
#define XASH_SOUND SOUND_SDL
#endif
#endif //XASH_SDL
#if defined __ANDROID__ && !defined XASH_SDL
#ifndef XASH_VIDEO
#define XASH_VIDEO VIDEO_ANDROID
#endif
#ifndef XASH_TIMER
#define XASH_TIMER TIMER_LINUX
#endif
#ifndef XASH_INPUT
#define XASH_INPUT INPUT_ANDROID
#endif
#ifndef XASH_SOUND
#define XASH_SOUND SOUND_OPENSLES
#endif
#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_ANDROID
#endif
#endif // android case
#ifdef XASH_FBDEV
#ifndef XASH_VIDEO
#define XASH_VIDEO VIDEO_FBDEV
#endif
#ifndef XASH_TIMER
#define XASH_TIMER TIMER_LINUX
#endif
#ifndef XASH_INPUT
#define XASH_INPUT INPUT_EVDEV
#endif
#ifndef XASH_SOUND
#define XASH_SOUND SOUND_ALSA
#endif
#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_STDERR
#endif
#define XASH_USE_EVDEV
#endif // android case
#endif // XASH_DEDICATED
// select crashhandler based on defines
#ifndef XASH_CRASHHANDLER
#ifdef _WIN32
#ifdef DBGHELP
#define XASH_CRASHHANDLER CRASHHANDLER_DBGHELP
#endif
#elif defined CRASHHANDLER
#define XASH_CRASHHANDLER CRASHHANDLER_UCONTEXT
#else
#define XASH_CRASHHANDLER CRASHHANDLER_NULL
#endif
#endif
// no timer - no xash
#ifndef XASH_TIMER
#ifdef _WIN32
#define XASH_TIMER TIMER_WIN32
#else
#define XASH_TIMER TIMER_LINUX
#endif
#endif
#ifdef XASH_STATIC_LIBS
#define XASH_LIB LIB_STATIC
#define XASH_INTERNAL_GAMELIBS
#elif defined _WIN32
#define XASH_LIB LIB_WIN32
#else
#define XASH_LIB LIB_POSIX
#endif
//
// fallback to NULL
//
#ifndef XASH_VIDEO
#define XASH_VIDEO VIDEO_NULL
#endif
#ifndef XASH_SOUND
#define XASH_SOUND SOUND_NULL
#endif
#ifndef XASH_INPUT
#define XASH_INPUT INPUT_NULL
#endif
#ifndef XASH_MESSAGEBOX
#define XASH_MESSAGEBOX MSGBOX_STDERR
#endif
/*
=========================================================================
Default build-depended cvar and constant values
=========================================================================
*/
#if defined __ANDROID__ || TARGET_OS_IPHONE
#define DEFAULT_TOUCH_ENABLE "1"
#define DEFAULT_M_IGNORE "1"
#else
#define DEFAULT_TOUCH_ENABLE "0"
#define DEFAULT_M_IGNORE "0"
#endif
#if defined __ANDROID__ || TARGET_OS_IPHONE || defined __EMSCRIPTEN__
#define XASH_INTERNAL_GAMELIBS
// this means that libraries are provided with engine, but not in game data
// You need add library loading code to library.c when adding new platform
#endif
// Set ForceSimulating to 1 by default for dedicated, because AMXModX timers require this
// TODO: enable simulating for any server?
#ifdef XASH_DEDICATED
#define DEFAULT_SV_FORCESIMULATING "1"
#else
#define DEFAULT_SV_FORCESIMULATING "0"
#endif
// allow override for developer/debug builds
#ifndef DEFAULT_DEV
#define DEFAULT_DEV 0
#endif
#ifndef DEFAULT_FULLSCREEN
#define DEFAULT_FULLSCREEN 1
#endif
#ifndef DEFAULT_ACCELERATED_RENDERER
#ifdef __ANDROID__
#define DEFAULT_ACCELERATED_RENDERER "gles1"
#else
#define DEFAULT_ACCELERATED_RENDERER "gl"
#endif
#endif // DEFAULT_ACCELERATED_RENDERER
#ifndef DEFAULT_SOFTWARE_RENDERER
#define DEFAULT_SOFTWARE_RENDERER "soft" // mittorn's ref_soft
#endif // DEFAULT_SOFTWARE_RENDERER
#if TARGET_OS_IPHONE
#define DEFAULT_CON_MAXFRAC "0.5"
#else
#define DEFAULT_CON_MAXFRAC "1"
#endif
#endif // DEFAULTS_H