/* 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" #include "build.h" /* =================================================================== SETUP BACKENDS DEFINITIONS =================================================================== */ #if !XASH_DEDICATED #if XASH_SDL // we are building using libSDL #ifndef XASH_VIDEO #define XASH_VIDEO VIDEO_SDL #endif // XASH_VIDEO #ifndef XASH_INPUT #define XASH_INPUT INPUT_SDL #endif // XASH_INPUT #ifndef XASH_SOUND #define XASH_SOUND SOUND_SDL #endif // XASH_SOUND #if XASH_SDL == 2 #ifndef XASH_TIMER #define XASH_TIMER TIMER_SDL #endif // XASH_TIMER #ifndef XASH_MESSAGEBOX #define XASH_MESSAGEBOX MSGBOX_SDL #endif // XASH_MESSAGEBOX #endif #elif XASH_ANDROID // we are building for Android platform, use Android APIs #ifndef XASH_VIDEO #define XASH_VIDEO VIDEO_ANDROID #endif // XASH_VIDEO #ifndef XASH_INPUT #define XASH_INPUT INPUT_ANDROID #endif // XASH_INPUT #ifndef XASH_SOUND #define XASH_SOUND SOUND_OPENSLES #endif // XASH_SOUND #ifndef XASH_MESSAGEBOX #define XASH_MESSAGEBOX MSGBOX_ANDROID #endif // XASH_MESSAGEBOX #define XASH_USE_EVDEV #define XASH_DYNAMIC_DLADDR #elif XASH_LINUX // we are building for Linux without SDL2, can draw only to framebuffer yet #ifndef XASH_VIDEO #define XASH_VIDEO VIDEO_FBDEV #endif // XASH_VIDEO #ifndef XASH_INPUT #define XASH_INPUT INPUT_EVDEV #endif // XASH_INPUT #ifndef XASH_SOUND #define XASH_SOUND SOUND_ALSA #endif // XASH_SOUND #define XASH_USE_EVDEV #elif XASH_DOS4GW #ifndef XASH_VIDEO #define XASH_VIDEO VIDEO_DOS #endif #ifndef XASH_TIMER #define XASH_TIMER TIMER_DOS #endif // usually only 10-20 fds availiable #define XASH_REDUCE_FD #endif #endif // XASH_DEDICATED // // select messagebox implementation // #ifndef XASH_MESSAGEBOX #if XASH_WIN32 #define XASH_MESSAGEBOX MSGBOX_WIN32 #else // !XASH_WIN32 #define XASH_MESSAGEBOX MSGBOX_STDERR #endif // !XASH_WIN32 #endif // XASH_MESSAGEBOX // // select crashhandler based on defines // #ifndef XASH_CRASHHANDLER #if XASH_WIN32 && defined(DBGHELP) #define XASH_CRASHHANDLER CRASHHANDLER_DBGHELP #elif XASH_LINUX || XASH_BSD #define XASH_CRASHHANDLER CRASHHANDLER_UCONTEXT #endif // !(XASH_LINUX || XASH_BSD || XASH_WIN32) #endif // // no timer - no xash // #ifndef XASH_TIMER #if XASH_WIN32 #define XASH_TIMER TIMER_WIN32 #else // !XASH_WIN32 #define XASH_TIMER TIMER_POSIX #endif // !XASH_WIN32 #endif #ifdef XASH_STATIC_LIBS #define XASH_LIB LIB_STATIC #define XASH_INTERNAL_GAMELIBS #define XASH_ALLOW_SAVERESTORE_OFFSETS #elif XASH_WIN32 #define XASH_LIB LIB_WIN32 #elif XASH_POSIX #define XASH_LIB LIB_POSIX #endif // // fallback to NULL // #ifndef XASH_VIDEO #define XASH_VIDEO VIDEO_NULL #endif // XASH_VIDEO #ifndef XASH_SOUND #define XASH_SOUND SOUND_NULL #endif // XASH_SOUND #ifndef XASH_INPUT #define XASH_INPUT INPUT_NULL #endif // XASH_INPUT #ifndef XASH_CRASHHANDLER #define XASH_CRASHHANDLER CRASHHANDLER_NULL #endif // XASH_CRASHHANDLER /* ========================================================================= Default build-depended cvar and constant values ========================================================================= */ #if XASH_MOBILE_PLATFORM #define DEFAULT_TOUCH_ENABLE "1" #define DEFAULT_M_IGNORE "1" #else // !XASH_MOBILE_PLATFORM #define DEFAULT_TOUCH_ENABLE "0" #define DEFAULT_M_IGNORE "0" #endif // !XASH_MOBILE_PLATFORM #if XASH_ANDROID || XASH_IOS || XASH_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 // XASH_ANDROID || XASH_IOS || XASH_EMSCRIPTEN // allow override for developer/debug builds #ifndef DEFAULT_DEV #define DEFAULT_DEV 0 #endif // DEFAULT_DEV #ifndef DEFAULT_FULLSCREEN #define DEFAULT_FULLSCREEN 1 #endif // DEFAULT_FULLSCREEN #endif // DEFAULTS_H