2020-06-12 21:06:25 +00:00
|
|
|
/*
|
|
|
|
===========================================================================
|
|
|
|
|
|
|
|
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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
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 <winsock2.h>
|
|
|
|
#include <mmsystem.h>
|
|
|
|
#include <mmreg.h>
|
|
|
|
|
|
|
|
#define DIRECTINPUT_VERSION 0x0800 // was 0x0700 with the old mssdk
|
|
|
|
#define DIRECTSOUND_VERSION 0x0800
|
|
|
|
|
|
|
|
#include <dsound.h>
|
|
|
|
#include <dinput.h>
|
|
|
|
|
|
|
|
#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 <malloc.h> // no malloc.h on mac or unix
|
|
|
|
#include <windows.h> // 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 <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <assert.h>
|
|
|
|
#include <time.h>
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <typeinfo>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <math.h>
|
|
|
|
#ifdef __linux__
|
|
|
|
#include <unistd.h>
|
|
|
|
#elif defined __APPLE__
|
|
|
|
#include <algorithm>
|
|
|
|
using std::min;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//-----------------------------------------------------
|
|
|
|
|
|
|
|
#ifdef _WIN32 // TODO: have main for windows match mac/linux
|
|
|
|
#define SDL_MAIN_HANDLED 1
|
|
|
|
#include "../sdl2/include/SDL.h"
|
2020-10-22 17:12:18 +00:00
|
|
|
#else
|
|
|
|
#ifdef __APPLE__
|
|
|
|
#include <SDL.h>
|
|
|
|
#else
|
|
|
|
#include <SDL2/SDL.h> // Really should just be SDL.h but oh welllll -flibit
|
|
|
|
#endif
|
|
|
|
#endif
|
2020-06-12 21:06:25 +00:00
|
|
|
|
|
|
|
// 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__ */
|