OpenXcom  1.0
Open-source clone of the original X-Com
pch.h
1 #pragma once
2 
3 // uncomment to check memory leaks in VS
4 //#define _CRTDBG_MAP_ALLOC
5 //#include <stdlib.h>
6 //#include <crtdbg.h>
7 
8 // c++ headers
9 #ifdef _MSC_VER
10 #ifndef _SCL_SECURE_NO_WARNINGS
11 #define _SCL_SECURE_NO_WARNINGS
12 #endif
13 #define _CRT_SECURE_NO_WARNINGS
14 #endif
15 #define _USE_MATH_DEFINES
16 #include <algorithm>
17 #include <assert.h>
18 #include <bitset>
19 #include <cassert>
20 #include <cctype>
21 #include <cfloat>
22 #include <climits>
23 #include <cmath>
24 #include <cstdarg>
25 #include <cstddef>
26 #include <cstdio>
27 #include <cstdlib>
28 #include <cstring>
29 #include <ctime>
30 #include <deque>
31 #include <errno.h>
32 #include <exception>
33 #include <fstream>
34 #include <functional>
35 #include <iomanip>
36 #include <iostream>
37 #include <list>
38 #include <locale>
39 #include <map>
40 #include <memory.h>
41 #include <queue>
42 #include <set>
43 #include <sstream>
44 #include <stack>
45 #include <stdarg.h>
46 #include <stdint.h>
47 #include <stdio.h>
48 #include <stdlib.h>
49 #include <string.h>
50 #include <string>
51 #include <sys/stat.h>
52 #include <sys/types.h>
53 #include <time.h>
54 #include <typeinfo>
55 #include <utility>
56 #include <vector>
57 #include <wchar.h>
58 
59 #ifdef _WIN32
60 #ifndef NOMINMAX
61 #define NOMINMAX
62 #endif
63 #define WIN32_LEAN_AND_MEAN
64 #include <windows.h>
65 #include <malloc.h>
66 #else
67 #include <dirent.h>
68 #include <execinfo.h>
69 #include <pwd.h>
70 #include <sys/param.h>
71 #include <signal.h>
72 #include <unistd.h>
73 #endif
74 
75 #ifdef __MORPHOS__
76 #include <ppcinline/exec.h>
77 #endif
78 
79 #if (_MSC_VER >= 1400) || (defined(__MINGW32__) && defined(__SSE2__))
80 
81 #ifndef __SSE2__
82 #define __SSE2__ true
83 #endif
84 // probably Visual Studio (or Intel C++ which should also work)
85 #include <intrin.h>
86 #endif
87 
88 #ifdef __GNUC__
89 #if (__i386__ || __x86_64__)
90 #include <cpuid.h>
91 #endif
92 #endif
93 
94 #ifdef __SSE2__
95 #include <emmintrin.h> // for SSE2 intrinsics; see http://msdn.microsoft.com/en-us/library/has3d153%28v=vs.71%29.aspx
96 #endif
97 
98 // library headers
99 #ifndef __NO_OPENGL
100 #ifdef __APPLE__
101 #include <OpenGL/gl.h>
102 #include <OpenGL/glu.h>
103 #include <OpenGL/glext.h>
104 #include <GLUT/glut.h>
105 #endif
106 #include <SDL_opengl.h>
107 #endif
108 
109 #include <SDL.h>
110 #include <SDL_endian.h>
111 #include <SDL_gfxPrimitives.h>
112 #include <SDL_image.h>
113 #include <SDL_keysym.h>
114 #include <SDL_mixer.h>
115 #include <SDL_opengl.h>
116 #include <SDL_syswm.h>
117 #include <SDL_thread.h>
118 #include <SDL_types.h>
119 #include <SDL_video.h>
120 #include <yaml-cpp/yaml.h>
121 #include "./dirent.h"
122 #include "./lodepng.h"
123 
124 // uncomment to check memory leaks in VS
125 //#ifndef DBG_NEW
126 //#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
127 //#define new DBG_NEW
128 //#endif
129 
130 // openxcom headers
131 #include "./fmath.h"
132 #include "./version.h"
133 
134 #include "./Engine/Adlib/adlplayer.h"
135 #include "./Engine/Adlib/fmopl.h"
136 #include "./Engine/Scalers/common.h"
137 #include "./Engine/Scalers/config.h"
138 #include "./Engine/Scalers/hqx.h"
139 #include "./Engine/Scalers/scale2x.h"
140 #include "./Engine/Scalers/scale3x.h"
141 #include "./Engine/Scalers/scalebit.h"
142 #include "./Engine/Scalers/xbrz.h"
143 #include "./Engine/Action.h"
144 #include "./Engine/AdlibMusic.h"
145 #include "./Engine/CatFile.h"
146 #include "./Engine/CrossPlatform.h"
147 #include "./Engine/Exception.h"
148 #include "./Engine/FastLineClip.h"
149 #include "./Engine/FileMap.h"
150 #include "./Engine/FlcPlayer.h"
151 #include "./Engine/Font.h"
152 #include "./Engine/Game.h"
153 #include "./Engine/GMCat.h"
154 #include "./Engine/GraphSubset.h"
155 #include "./Engine/InteractiveSurface.h"
156 #include "./Engine/Language.h"
157 #include "./Engine/LanguagePlurality.h"
158 #include "./Engine/LocalizedText.h"
159 #include "./Engine/Logger.h"
160 #include "./Engine/ModInfo.h"
161 #include "./Engine/Music.h"
162 #include "./Engine/OpenGL.h"
163 #include "./Engine/OptionInfo.h"
164 #include "./Engine/Options.h"
165 #include "./Engine/Palette.h"
166 #include "./Engine/RNG.h"
167 #include "./Engine/Screen.h"
168 #include "./Engine/ShaderDraw.h"
169 #include "./Engine/ShaderDrawHelper.h"
170 #include "./Engine/ShaderMove.h"
171 #include "./Engine/ShaderRepeat.h"
172 #include "./Engine/Sound.h"
173 #include "./Engine/SoundSet.h"
174 #include "./Engine/State.h"
175 #include "./Engine/Surface.h"
176 #include "./Engine/SurfaceSet.h"
177 #include "./Engine/Timer.h"
178 #include "./Engine/Unicode.h"
179 #include "./Engine/Zoom.h"
180 #include "./Interface/ArrowButton.h"
181 #include "./Interface/Bar.h"
182 #include "./Interface/BattlescapeButton.h"
183 #include "./Interface/ComboBox.h"
184 #include "./Interface/Cursor.h"
185 #include "./Interface/FpsCounter.h"
186 #include "./Interface/Frame.h"
187 #include "./Interface/ImageButton.h"
188 #include "./Interface/NumberText.h"
189 #include "./Interface/ScrollBar.h"
190 #include "./Interface/Slider.h"
191 #include "./Interface/Text.h"
192 #include "./Interface/TextButton.h"
193 #include "./Interface/TextEdit.h"
194 #include "./Interface/TextList.h"
195 #include "./Interface/ToggleTextButton.h"
196 #include "./Interface/Window.h"