/*
===========================================================================
Doom 3 GPL Source Code
Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
Doom 3 Source Code 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.
Doom 3 Source Code 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.
You should have received a copy of the GNU General Public License
along with Doom 3 Source Code. If not, see .
In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
===========================================================================
*/
#ifndef __PRECOMPILED_H__
#define __PRECOMPILED_H__
#ifdef __cplusplus
//-----------------------------------------------------
#define ID_TIME_T time_t
#ifdef _WIN32
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // prevent auto literal to string conversion
#ifndef _D3SDK
#ifndef GAME_DLL
#define WINVER 0x501
#if 0
// Dedicated server hits unresolved when trying to link this way now. Likely because of the 2010/Win7 transition? - TTimo
#ifdef ID_DEDICATED
// dedicated sets windows version here
#define _WIN32_WINNT WINVER
#define WIN32_LEAN_AND_MEAN
#else
// non-dedicated includes MFC and sets windows version here
#include "../tools/comafx/StdAfx.h" // this will go away when MFC goes away
#endif
#else
//#include "../tools/comafx/StdAfx.h"
#endif
#include
#include
#include
#define DIRECTINPUT_VERSION 0x0800 // was 0x0700 with the old mssdk
#define DIRECTSOUND_VERSION 0x0800
#include
#include
#endif /* !GAME_DLL */
#endif /* !_D3SDK */
#pragma warning(disable : 4100) // unreferenced formal parameter
#pragma warning(disable : 4244) // conversion to smaller type, possible loss of data
#pragma warning(disable : 4714) // function marked as __forceinline not inlined
#pragma warning(disable : 4996) // unsafe string operations
#include // no malloc.h on mac or unix
#include // for qgl.h
#undef FindText // stupid namespace poluting Microsoft monkeys
#endif /* _WIN32 */
//-----------------------------------------------------
#if !defined( _DEBUG ) && !defined( NDEBUG )
// don't generate asserts
#define NDEBUG
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef __linux__
#include
#elif defined __APPLE__
#include
using std::min;
#endif
//-----------------------------------------------------
#ifdef _WIN32 // TODO: have main for windows match mac/linux
#define SDL_MAIN_HANDLED 1
#include "../sdl2/include/SDL.h"
#else
#ifdef __APPLE__
#include
#else
#include // Really should just be SDL.h but oh welllll -flibit
#endif
#endif
// non-portable system services
#include "../sys/sys_public.h"
// id lib
#include "../idlib/Lib.h"
// framework
#include "../framework/BuildVersion.h"
#include "../framework/BuildDefines.h"
#include "../framework/Licensee.h"
#include "../framework/CmdSystem.h"
#include "../framework/CVarSystem.h"
#include "../framework/Common.h"
#include "../framework/File.h"
#include "../framework/FileSystem.h"
#include "../framework/UsercmdGen.h"
// decls
#include "../framework/DeclManager.h"
#include "../framework/DeclTable.h"
#include "../framework/DeclSkin.h"
#include "../framework/DeclEntityDef.h"
#include "../framework/DeclFX.h"
#include "../framework/DeclParticle.h"
#include "../framework/DeclAF.h"
#include "../framework/DeclPDA.h"
// We have expression parsing and evaluation code in multiple places:
// materials, sound shaders, and guis. We should unify them.
const int MAX_EXPRESSION_OPS = 4096;
const int MAX_EXPRESSION_REGISTERS = 4096;
// renderer
#include "../renderer/qgl.h"
#include "../renderer/Cinematic.h"
#include "../renderer/Material.h"
#include "../renderer/Model.h"
#include "../renderer/ModelManager.h"
#include "../renderer/RenderSystem.h"
#include "../renderer/RenderWorld.h"
// sound engine
#include "../sound/sound.h"
// asynchronous networking
#include "../framework/async/NetworkSystem.h"
// user interfaces
#include "../ui/ListGUI.h"
#include "../ui/UserInterface.h"
// collision detection system
#include "../cm/CollisionModel.h"
// AAS files and manager
#include "../tools/compilers/aas/AASFile.h"
#include "../tools/compilers/aas/AASFileManager.h"
// game
#if defined(_D3XP)
#include "../d3xp/Game.h"
#else
#include "../game/Game.h"
#endif
//-----------------------------------------------------
#ifndef _D3SDK
#ifdef GAME_DLL
#if defined(_D3XP)
#include "../d3xp/Game_local.h"
#else
#include "../game/Game_local.h"
#endif
#else
#include "../framework/DemoChecksum.h"
// framework
#include "../framework/Compressor.h"
#include "../framework/EventLoop.h"
#include "../framework/KeyInput.h"
#include "../framework/EditField.h"
#include "../framework/Console.h"
#include "../framework/DemoFile.h"
#include "../framework/Session.h"
// asynchronous networking
#include "../framework/async/AsyncNetwork.h"
// The editor entry points are always declared, but may just be
// stubbed out on non-windows platforms.
#include "../tools/edit_public.h"
// Compilers for map, model, video etc. processing.
#include "../tools/compilers/compiler_public.h"
#endif /* !GAME_DLL */
#endif /* !_D3SDK */
//-----------------------------------------------------
#endif /* __cplusplus */
#endif /* !__PRECOMPILED_H__ */