Engine.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /* Copyright (c) 2002-2012 Croteam Ltd.
  2. This program is free software; you can redistribute it and/or modify
  3. it under the terms of version 2 of the GNU General Public License as published by
  4. the Free Software Foundation
  5. This program is distributed in the hope that it will be useful,
  6. but WITHOUT ANY WARRANTY; without even the implied warranty of
  7. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  8. GNU General Public License for more details.
  9. You should have received a copy of the GNU General Public License along
  10. with this program; if not, write to the Free Software Foundation, Inc.,
  11. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
  12. // set this to 1 to enable checks whether somethig is deleted while iterating some array/container
  13. #define CHECKARRAYLOCKING 0
  14. #ifdef _WIN32
  15. #ifndef PLATFORM_WIN32
  16. #define PLATFORM_WIN32 1
  17. #endif
  18. #endif
  19. #include <stdlib.h>
  20. #include <malloc.h>
  21. #include <stdarg.h>
  22. #include <stdio.h>
  23. #include <string.h>
  24. #include <stddef.h>
  25. #include <time.h>
  26. #include <math.h>
  27. #include <search.h> // for qsort
  28. #include <float.h> // for FPU control
  29. /* rcg10042001 !!! FIXME: Move these somewhere. */
  30. #if (defined PLATFORM_WIN32)
  31. #include <conio.h>
  32. #include <crtdbg.h>
  33. #include <winsock2.h>
  34. #include <windows.h>
  35. #include <mmsystem.h> // for timers
  36. #endif
  37. #include <Engine/Base/Base.h>
  38. #include <Engine/Base/Types.h>
  39. #include <Engine/Base/Input.h>
  40. #include <Engine/Base/KeyNames.h>
  41. #include <Engine/Base/Updateable.h>
  42. #include <Engine/Base/ErrorReporting.h>
  43. #include <Engine/Base/ErrorTable.h>
  44. #include <Engine/Base/ReplaceFile.h>
  45. #include <Engine/Base/Stream.h>
  46. #include <Engine/Base/Lists.h>
  47. #include <Engine/Base/Timer.h>
  48. #include <Engine/Base/ListIterator.inl>
  49. #include <Engine/Base/Console.h>
  50. #include <Engine/Base/Console_internal.h>
  51. #include <Engine/Base/Shell_internal.h>
  52. #include <Engine/Base/Shell.h>
  53. #include <Engine/Base/Statistics.h>
  54. #include <Engine/Base/CRC.h>
  55. #include <Engine/Base/Translation.h>
  56. #include <Engine/Base/ProgressHook.h>
  57. #include <Engine/Base/Registry.h>
  58. #include <Engine/Base/IFeel.h>
  59. #include <Engine/Entities/EntityClass.h>
  60. #include <Engine/Entities/EntityCollision.h>
  61. #include <Engine/Entities/EntityProperties.h>
  62. #include <Engine/Entities/Entity.h>
  63. #include <Engine/Entities/InternalClasses.h>
  64. #include <Engine/Entities/LastPositions.h>
  65. #include <Engine/Entities/EntityCollision.h>
  66. #include <Engine/Entities/ShadingInfo.h>
  67. #include <Engine/Entities/FieldSettings.h>
  68. #include <Engine/Entities/Precaching.h>
  69. #include <Engine/Light/LightSource.h>
  70. #include <Engine/Light/LensFlares.h>
  71. #include <Engine/Light/Shadows_internal.h>
  72. #include <Engine/Light/Gradient.h>
  73. #include <Engine/Math/Geometry.inl>
  74. #include <Engine/Math/Clipping.inl>
  75. #include <Engine/Math/FixInt.h>
  76. #include <Engine/Math/Float.h>
  77. #include <Engine/Math/Object3D.h>
  78. #include <Engine/Math/Functions.h>
  79. #include <Engine/Math/Quaternion.h>
  80. #include <Engine/Math/Projection.h>
  81. #include <Engine/Math/Projection_DOUBLE.h>
  82. #include <Engine/Network/Network.h>
  83. #include <Engine/Network/Server.h>
  84. #include <Engine/Network/NetworkMessage.h>
  85. #include <Engine/Network/PlayerSource.h>
  86. #include <Engine/Network/PlayerBuffer.h>
  87. #include <Engine/Network/PlayerTarget.h>
  88. #include <Engine/Network/SessionState.h>
  89. #include <Engine/Network/NetworkProfile.h>
  90. #include <Engine/Brushes/Brush.h>
  91. #include <Engine/Brushes/BrushTransformed.h>
  92. #include <Engine/Brushes/BrushArchive.h>
  93. #pragma message(">> Uncomment include to terrain.h")
  94. //#include <Engine/Terrain/Terrain.h>
  95. #include <Engine/World/World.h>
  96. #include <Engine/World/WorldEditingProfile.h>
  97. #include <Engine/World/WorldRayCasting.h>
  98. #include <Engine/World/PhysicsProfile.h>
  99. #include <Engine/World/WorldSettings.h>
  100. #include <Engine/World/WorldCollision.h>
  101. #include <Engine/Rendering/Render.h>
  102. #include <Engine/Rendering/Render_internal.h>
  103. #include <Engine/Models/ModelObject.h>
  104. #include <Engine/Models/ModelData.h>
  105. #include <Engine/Models/Model_internal.h>
  106. #include <Engine/Models/EditModel.h>
  107. #include <Engine/Models/RenderModel.h>
  108. #include <Engine/Ska/ModelInstance.h>
  109. #include <Engine/Ska/Mesh.h>
  110. #include <Engine/Ska/Skeleton.h>
  111. #include <Engine/Ska/AnimSet.h>
  112. #include <Engine/Ska/StringTable.h>
  113. #include <Engine/Ska/Render.h>
  114. #include <Engine/Sound/SoundObject.h>
  115. #include <Engine/Sound/SoundLibrary.h>
  116. #include <Engine/Sound/SoundListener.h>
  117. #include <Engine/Graphics/Texture.h>
  118. #include <Engine/Graphics/Color.h>
  119. #include <Engine/Graphics/Font.h>
  120. #include <Engine/Graphics/GfxLibrary.h>
  121. #include <Engine/Graphics/ViewPort.h>
  122. #include <Engine/Graphics/DrawPort.h>
  123. #include <Engine/Graphics/ImageInfo.h>
  124. #include <Engine/Graphics/RenderScene.h>
  125. #include <Engine/Graphics/RenderPoly.h>
  126. #include <Engine/Graphics/Fog.h>
  127. #include <Engine/Graphics/Stereo.h>
  128. #include <Engine/Templates/BSP.h>
  129. #include <Engine/Templates/BSP_internal.h>
  130. #include <Engine/Templates/DynamicStackArray.h>
  131. #include <Engine/Templates/DynamicStackArray.cpp>
  132. #include <Engine/Templates/LinearAllocator.h>
  133. #include <Engine/Templates/LinearAllocator.cpp>
  134. #include <Engine/Templates/DynamicArray.h>
  135. #include <Engine/Templates/DynamicArray.cpp>
  136. #include <Engine/Templates/DynamicContainer.h>
  137. #include <Engine/Templates/DynamicContainer.cpp>
  138. #include <Engine/Templates/StaticArray.h>
  139. #include <Engine/Templates/StaticArray.cpp>
  140. #include <Engine/Templates/StaticStackArray.h>
  141. #include <Engine/Templates/StaticStackArray.cpp>
  142. #include <Engine/Templates/Selection.h>
  143. #include <Engine/Templates/Selection.cpp>
  144. // some global stuff
  145. ENGINE_API void SE_InitEngine( CTString strGameID);
  146. ENGINE_API void SE_EndEngine(void);
  147. ENGINE_API void SE_LoadDefaultFonts(void);
  148. ENGINE_API void SE_UpdateWindowHandle( HWND hwndWindowed);
  149. ENGINE_API void SE_PretouchIfNeeded(void);
  150. extern ENGINE_API CTString _strEngineBuild; // not valid before InitEngine()!
  151. extern ENGINE_API ULONG _ulEngineBuildMajor;
  152. extern ENGINE_API ULONG _ulEngineBuildMinor;
  153. extern ENGINE_API BOOL _bDedicatedServer;
  154. extern ENGINE_API BOOL _bWorldEditorApp; // is this world edtior app
  155. extern ENGINE_API CTString _strLogFile;
  156. // temporary vars for adjustments
  157. ENGINE_API extern FLOAT tmp_af[10];
  158. ENGINE_API extern INDEX tmp_ai[10];
  159. ENGINE_API extern INDEX tmp_i;
  160. ENGINE_API extern INDEX tmp_fAdd;