diff --git a/CMakeLists.txt b/CMakeLists.txt index 0705f0507..5f2422994 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1069,25 +1069,25 @@ endif() add_library(libc4script src/C4Include.cpp -src/c4group/C4GroupSet.cpp -src/c4group/C4GroupSet.h src/c4group/C4ComponentHost.cpp src/c4group/C4ComponentHost.h +src/c4group/C4GroupSet.cpp +src/c4group/C4GroupSet.h src/c4group/C4LangStringTable.cpp src/c4group/C4LangStringTable.h +src/lib/C4RandomRecord.cpp src/lib/C4Real.cpp src/lib/C4Real.h -src/lib/C4RandomRecord.cpp src/script/C4Aul.cpp -src/script/C4AulCompiler.h +src/script/C4Aul.h +src/script/C4AulAST.h src/script/C4AulCompiler.cpp +src/script/C4AulCompiler.h src/script/C4AulDefFunc.h src/script/C4AulExec.cpp src/script/C4AulExec.h src/script/C4AulFunc.cpp src/script/C4AulFunc.h -src/script/C4Aul.h -src/script/C4AulAST.h src/script/C4AulLink.cpp src/script/C4AulParse.cpp src/script/C4AulParse.h @@ -1102,15 +1102,17 @@ src/script/C4ScriptHost.cpp src/script/C4ScriptHost.h src/script/C4StringTable.cpp src/script/C4StringTable.h -src/script/C4ValueArray.cpp -src/script/C4ValueArray.h src/script/C4Value.cpp src/script/C4Value.h +src/script/C4ValueArray.cpp +src/script/C4ValueArray.h src/script/C4ValueMap.cpp src/script/C4ValueMap.h ) target_link_libraries(libc4script libmisc) +target_compile_definitions(libmisc PRIVATE "COMPILED_AS_C4LIBRARY") +target_compile_definitions(libc4script PRIVATE "COMPILED_AS_C4LIBRARY") add_executable(c4script include/c4script/c4script.h @@ -1120,6 +1122,8 @@ add_executable(c4script ) set_property(TARGET c4script PROPERTY FOLDER "Utilities") +target_compile_definitions(c4script PRIVATE "USE_CONSOLE") + target_link_libraries(c4script libmisc libc4script diff --git a/src/C4ForbidLibraryCompilation.h b/src/C4ForbidLibraryCompilation.h new file mode 100644 index 000000000..ae08fbb4b --- /dev/null +++ b/src/C4ForbidLibraryCompilation.h @@ -0,0 +1,30 @@ +/* + * OpenClonk, http://www.openclonk.org + * + * Copyright (c) 2016, The OpenClonk Team and contributors + * + * Distributed under the terms of the ISC license; see accompanying file + * "COPYING" for details. + * + * "Clonk" is a registered trademark of Matthes Bender, used with permission. + * See accompanying file "TRADEMARK" for details. + * + * To redistribute this file separately, substitute the full license texts + * for the above references. + */ + +/* + * This file serves as a quick way to check wither COMPILED_AS_C4LIBRARY is set, which is the case when compiling lib{misc,c4script} + * This file should be included when the USE_CONSOLE define is checked. In the past, we had some header files with classes like +class Foo { +#ifndef USE_CONSOLE + int bar; +#endif + int blubb; +} + * If such a header was included in the library, the class definition would look different for the library than for the openclonk-server, which could be potentially desasterous. (just think of accessing blubb, or destructors, or copying it by size, or…) +*/ + +#ifdef COMPILED_AS_C4LIBRARY // as (hopefully) defined in the CMakeLists.txt +#error A file that is marked as not suitable for being included in lib{misc,c4script} (probably because it checks USE_CONSOLE) has been included in their compilation. Check your header dependencies. +#endif diff --git a/src/config/C4Config.cpp b/src/config/C4Config.cpp index 2255574cd..2529c475a 100644 --- a/src/config/C4Config.cpp +++ b/src/config/C4Config.cpp @@ -17,6 +17,7 @@ /* Game configuration as stored in registry */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "config/C4Config.h" #include "C4Version.h" diff --git a/src/control/C4PlayerControl.cpp b/src/control/C4PlayerControl.cpp index fa4860102..ed0a64d8b 100644 --- a/src/control/C4PlayerControl.cpp +++ b/src/control/C4PlayerControl.cpp @@ -16,6 +16,7 @@ // Input to player control mapping #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "control/C4PlayerControl.h" #include "object/C4DefList.h" diff --git a/src/editor/C4ConsoleQtViewport.cpp b/src/editor/C4ConsoleQtViewport.cpp index c6c44ecb5..e78a17e99 100644 --- a/src/editor/C4ConsoleQtViewport.cpp +++ b/src/editor/C4ConsoleQtViewport.cpp @@ -17,6 +17,7 @@ /* Player and editor viewports in console */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "script/C4Value.h" #include "game/C4Viewport.h" #include "object/C4Object.h" diff --git a/src/game/C4Application.cpp b/src/game/C4Application.cpp index 2647c5e98..49e5f48d2 100644 --- a/src/game/C4Application.cpp +++ b/src/game/C4Application.cpp @@ -18,6 +18,7 @@ /* Main class to initialize configuration and execute the game */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "game/C4Application.h" #include "C4Version.h" diff --git a/src/game/C4Game.cpp b/src/game/C4Game.cpp index 75530f973..11ec9c332 100644 --- a/src/game/C4Game.cpp +++ b/src/game/C4Game.cpp @@ -18,6 +18,7 @@ /* Main class to run the game */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "game/C4Game.h" #include "script/C4AulDebug.h" diff --git a/src/game/C4GameScript.cpp b/src/game/C4GameScript.cpp index b0d0cedeb..2196a837e 100644 --- a/src/game/C4GameScript.cpp +++ b/src/game/C4GameScript.cpp @@ -18,6 +18,7 @@ /* Functions mapped by C4Script */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "game/C4GameScript.h" #include "game/C4Application.h" diff --git a/src/game/C4GraphicsSystem.cpp b/src/game/C4GraphicsSystem.cpp index 184405540..62e7132c2 100644 --- a/src/game/C4GraphicsSystem.cpp +++ b/src/game/C4GraphicsSystem.cpp @@ -18,6 +18,7 @@ /* Operates viewports, message board and draws the game */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "game/C4GraphicsSystem.h" #include "game/C4Viewport.h" diff --git a/src/game/C4Viewport.cpp b/src/game/C4Viewport.cpp index 99f221924..49230af76 100644 --- a/src/game/C4Viewport.cpp +++ b/src/game/C4Viewport.cpp @@ -18,6 +18,7 @@ /* A viewport to each player */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "game/C4Viewport.h" #include "editor/C4ViewportWindow.h" diff --git a/src/graphics/C4Draw.cpp b/src/graphics/C4Draw.cpp index a3b7ae6d1..f9ae18900 100644 --- a/src/graphics/C4Draw.cpp +++ b/src/graphics/C4Draw.cpp @@ -17,6 +17,7 @@ /* NewGfx interfaces */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Draw.h" #include "platform/C4App.h" diff --git a/src/graphics/C4DrawGL.cpp b/src/graphics/C4DrawGL.cpp index c21d714fc..214c90e9e 100644 --- a/src/graphics/C4DrawGL.cpp +++ b/src/graphics/C4DrawGL.cpp @@ -17,6 +17,7 @@ /* OpenGL implementation of NewGfx */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4DrawGL.h" #include "graphics/C4Surface.h" diff --git a/src/graphics/C4DrawGL.h b/src/graphics/C4DrawGL.h index 97b0f54a6..caa09e2a9 100644 --- a/src/graphics/C4DrawGL.h +++ b/src/graphics/C4DrawGL.h @@ -16,7 +16,7 @@ /* OpenGL implementation of NewGfx */ - +#include "C4ForbidLibraryCompilation.h" #if !defined(INC_StdGL) && !defined(USE_CONSOLE) #define INC_StdGL diff --git a/src/graphics/C4DrawGLCtx.cpp b/src/graphics/C4DrawGLCtx.cpp index 9b0c78639..87901029c 100644 --- a/src/graphics/C4DrawGLCtx.cpp +++ b/src/graphics/C4DrawGLCtx.cpp @@ -17,6 +17,7 @@ /* OpenGL implementation of NewGfx, the context */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4DrawGL.h" #include "platform/C4Window.h" diff --git a/src/graphics/C4DrawMeshGL.cpp b/src/graphics/C4DrawMeshGL.cpp index ed72925f9..f0d2f6a73 100644 --- a/src/graphics/C4DrawMeshGL.cpp +++ b/src/graphics/C4DrawMeshGL.cpp @@ -17,6 +17,7 @@ /* OpenGL implementation of Mesh Rendering */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "object/C4Object.h" #include "graphics/C4DrawGL.h" #include "landscape/fow/C4FoWRegion.h" diff --git a/src/graphics/C4Facet.h b/src/graphics/C4Facet.h index 8da003499..78ae4da46 100644 --- a/src/graphics/C4Facet.h +++ b/src/graphics/C4Facet.h @@ -158,4 +158,42 @@ public: { return iWidth * Hgt / (Wdt ? Wdt : 1); } }; +class C4TargetFacet: public C4Facet +{ +public: + C4TargetFacet() { Default(); } + ~C4TargetFacet() { } +public: + float TargetX,TargetY,Zoom; + + // Reference values for parallax computations. This is similar to + // a scrolling position. In most cases these are the same as TargetX + // and TargetY, however for full map screenshots, which are composed + // of several individual screenshots, these are kept fixed while + // TargetX/TargetY are varied to cover the full map. This prevents + // duplicate parallax objects in fullscreen map screenshots. If + // TargetX/TargetY are different from ParRefX/ParRefY it can be thought + // of as drawing only a part of a window/viewport at a given fixed + // scroll position. + // See bug #1042. + float ParRefX, ParRefY; +public: + void Default() { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Default(); } + void Clear() { Surface=NULL; } + + void Set(const C4Facet &cpy) { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Set(cpy); } + void Set(const C4TargetFacet &cpy) { *this = cpy; } + void Set(class C4Surface *nsfc, float nx, float ny, float nwdt, float nhgt, float ntx=0, float nty=0, float Zoom=1); + void Set(class C4Surface *nsfc, const C4Rect & r, float ntx=0, float nty=0, float Zoom=1); + void Set(class C4Surface *nsfc, float nx, float ny, float nwdt, float nhgt, float ntx, float nty, float Zoom, float prx, float pry); + +public: + C4TargetFacet &operator = (const C4Facet& rhs) + { + Set(rhs.Surface,rhs.X,rhs.Y,rhs.Wdt,rhs.Hgt); + return *this; + } + void SetRect(C4TargetRect &rSrc); +}; + #endif // INC_C4Facet diff --git a/src/graphics/C4FacetEx.h b/src/graphics/C4FacetEx.h index 521e94910..afea4e2e0 100644 --- a/src/graphics/C4FacetEx.h +++ b/src/graphics/C4FacetEx.h @@ -27,44 +27,6 @@ const int C4FCT_Full = -1, C4FCT_Height = -2, C4FCT_Width = -3; -class C4TargetFacet: public C4Facet -{ -public: - C4TargetFacet() { Default(); } - ~C4TargetFacet() { } -public: - float TargetX,TargetY,Zoom; - - // Reference values for parallax computations. This is similar to - // a scrolling position. In most cases these are the same as TargetX - // and TargetY, however for full map screenshots, which are composed - // of several individual screenshots, these are kept fixed while - // TargetX/TargetY are varied to cover the full map. This prevents - // duplicate parallax objects in fullscreen map screenshots. If - // TargetX/TargetY are different from ParRefX/ParRefY it can be thought - // of as drawing only a part of a window/viewport at a given fixed - // scroll position. - // See bug #1042. - float ParRefX, ParRefY; -public: - void Default() { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Default(); } - void Clear() { Surface=NULL; } - - void Set(const C4Facet &cpy) { TargetX=TargetY=0; Zoom=1; ParRefX=ParRefY=0; C4Facet::Set(cpy); } - void Set(const C4TargetFacet &cpy) { *this = cpy; } - void Set(class C4Surface *nsfc, float nx, float ny, float nwdt, float nhgt, float ntx=0, float nty=0, float Zoom=1); - void Set(class C4Surface *nsfc, const C4Rect & r, float ntx=0, float nty=0, float Zoom=1); - void Set(class C4Surface *nsfc, float nx, float ny, float nwdt, float nhgt, float ntx, float nty, float Zoom, float prx, float pry); - -public: - C4TargetFacet &operator = (const C4Facet& rhs) - { - Set(rhs.Surface,rhs.X,rhs.Y,rhs.Wdt,rhs.Hgt); - return *this; - } - void SetRect(C4TargetRect &rSrc); -}; - // facet that can hold its own surface class C4FacetSurface : public C4Facet { diff --git a/src/graphics/C4FontLoader.cpp b/src/graphics/C4FontLoader.cpp index 46612de33..5ccd90be1 100644 --- a/src/graphics/C4FontLoader.cpp +++ b/src/graphics/C4FontLoader.cpp @@ -17,6 +17,7 @@ // text drawing facility for C4Draw #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4FontLoader.h" #ifndef USE_CONSOLE diff --git a/src/graphics/C4FontLoader.h b/src/graphics/C4FontLoader.h index 8aa01c031..a9739a326 100644 --- a/src/graphics/C4FontLoader.h +++ b/src/graphics/C4FontLoader.h @@ -18,9 +18,11 @@ #ifndef INC_STDFONT #define INC_STDFONT +#include "C4ForbidLibraryCompilation.h" #include "lib/C4Markup.h" #include "graphics/C4Facet.h" #include "graphics/C4Surface.h" +#include "graphics/C4FontLoaderCustomImages.h" #include "lib/StdBuf.h" #include #include @@ -80,18 +82,7 @@ extern C4FontLoader FontLoader; class CStdFont { public: - // callback class to allow custom images - class CustomImages - { - protected: - virtual bool DrawFontImage(const char* szImageTag, C4Facet& cgo, C4DrawTransform* transform) = 0; - virtual float GetFontImageAspect(const char* szImageTag) = 0; - - friend class CStdFont; - public: - virtual ~CustomImages() { } - }; - + typedef CStdFontCustomImages CustomImages; int id; // used by the engine to keep track of where the font came from protected: diff --git a/src/graphics/C4FontLoaderCustomImages.h b/src/graphics/C4FontLoaderCustomImages.h new file mode 100644 index 000000000..a8a50e203 --- /dev/null +++ b/src/graphics/C4FontLoaderCustomImages.h @@ -0,0 +1,32 @@ +/* + * OpenClonk, http://www.openclonk.org + * + * Copyright (c) 2003-2009, RedWolf Design GmbH, http://www.clonk.de/ + * Copyright (c) 2010-2016, The OpenClonk Team and contributors + * + * Distributed under the terms of the ISC license; see accompanying file + * "COPYING" for details. + * + * "Clonk" is a registered trademark of Matthes Bender, used with permission. + * See accompanying file "TRADEMARK" for details. + * + * To redistribute this file separately, substitute the full license texts + * for the above references. + */ + +#ifndef C4FontLoaderCustomImages_H +#define C4FontLoaderCustomImages_H + +// callback class for CStdFont to allow custom images +class CStdFontCustomImages +{ +protected: + virtual bool DrawFontImage(const char* szImageTag, C4Facet& cgo, C4DrawTransform* transform) = 0; + virtual float GetFontImageAspect(const char* szImageTag) = 0; + + friend class CStdFont; +public: + virtual ~CStdFontCustomImages() { } +}; + +#endif diff --git a/src/graphics/C4GraphicsResource.cpp b/src/graphics/C4GraphicsResource.cpp index 419b157c9..37fc52aed 100644 --- a/src/graphics/C4GraphicsResource.cpp +++ b/src/graphics/C4GraphicsResource.cpp @@ -18,6 +18,7 @@ /* Loads all standard graphics from Graphics.ocg */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4GraphicsResource.h" #include "object/C4DefList.h" diff --git a/src/graphics/C4Shader.cpp b/src/graphics/C4Shader.cpp index 157e3605f..95a101465 100644 --- a/src/graphics/C4Shader.cpp +++ b/src/graphics/C4Shader.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Shader.h" #include "game/C4Application.h" #include "graphics/C4DrawGL.h" diff --git a/src/graphics/C4Shader.h b/src/graphics/C4Shader.h index 75d3ac3da..10222150d 100644 --- a/src/graphics/C4Shader.h +++ b/src/graphics/C4Shader.h @@ -18,6 +18,7 @@ #ifndef INC_C4Shader #define INC_C4Shader +#include "C4ForbidLibraryCompilation.h" #include "lib/StdBuf.h" #include "lib/StdMeshMath.h" #include "graphics/C4Surface.h" diff --git a/src/graphics/C4Surface.cpp b/src/graphics/C4Surface.cpp index cf5c63040..7a9fab1a9 100644 --- a/src/graphics/C4Surface.cpp +++ b/src/graphics/C4Surface.cpp @@ -17,6 +17,7 @@ // a wrapper class to DirectDraw surfaces #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Surface.h" #include "platform/StdFile.h" diff --git a/src/graphics/C4Surface.h b/src/graphics/C4Surface.h index 53380b53e..fdfd16ad4 100644 --- a/src/graphics/C4Surface.h +++ b/src/graphics/C4Surface.h @@ -18,6 +18,7 @@ #ifndef INC_StdSurface2 #define INC_StdSurface2 +#include "C4ForbidLibraryCompilation.h" #include "lib/C4Rect.h" #include diff --git a/src/graphics/C4SurfaceLoaders.cpp b/src/graphics/C4SurfaceLoaders.cpp index 04688ab88..ff134b202 100644 --- a/src/graphics/C4SurfaceLoaders.cpp +++ b/src/graphics/C4SurfaceLoaders.cpp @@ -18,6 +18,7 @@ /* Extension to C4Surface that handles bitmaps in C4Group files */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Surface.h" #include "c4group/C4GroupSet.h" diff --git a/src/gui/C4GuiDialogs.cpp b/src/gui/C4GuiDialogs.cpp index 232948952..d372ce4da 100644 --- a/src/gui/C4GuiDialogs.cpp +++ b/src/gui/C4GuiDialogs.cpp @@ -18,6 +18,7 @@ // dialog base classes and some user dialogs #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "gui/C4Gui.h" #include "object/C4DefList.h" diff --git a/src/gui/C4Startup.cpp b/src/gui/C4Startup.cpp index 4e05843bb..71eb15aec 100644 --- a/src/gui/C4Startup.cpp +++ b/src/gui/C4Startup.cpp @@ -16,6 +16,7 @@ // Startup screen for non-parameterized engine start #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "gui/C4Startup.h" #include "graphics/C4FontLoader.h" diff --git a/src/gui/C4StartupOptionsDlg.cpp b/src/gui/C4StartupOptionsDlg.cpp index f3a857941..104806907 100644 --- a/src/gui/C4StartupOptionsDlg.cpp +++ b/src/gui/C4StartupOptionsDlg.cpp @@ -16,6 +16,7 @@ // Startup screen for non-parameterized engine start: Options dialog #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "gui/C4StartupOptionsDlg.h" #include "game/C4Application.h" diff --git a/src/landscape/C4Landscape.cpp b/src/landscape/C4Landscape.cpp index 976da153b..afc7b4a57 100644 --- a/src/landscape/C4Landscape.cpp +++ b/src/landscape/C4Landscape.cpp @@ -18,6 +18,7 @@ /* Handles landscape and sky */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/C4Landscape.h" #include diff --git a/src/landscape/C4LandscapeRender.cpp b/src/landscape/C4LandscapeRender.cpp index 3176a9307..3807f1ff3 100644 --- a/src/landscape/C4LandscapeRender.cpp +++ b/src/landscape/C4LandscapeRender.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/C4LandscapeRender.h" #include "landscape/C4Landscape.h" diff --git a/src/landscape/C4LandscapeRender.h b/src/landscape/C4LandscapeRender.h index 0363899b2..bc8d929f0 100644 --- a/src/landscape/C4LandscapeRender.h +++ b/src/landscape/C4LandscapeRender.h @@ -17,6 +17,7 @@ #ifndef C4LANDSCAPE_RENDER_H #define C4LANDSCAPE_RENDER_H +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Surface.h" #include "graphics/C4FacetEx.h" #include "graphics/C4Shader.h" diff --git a/src/landscape/C4Particles.cpp b/src/landscape/C4Particles.cpp index 05e703468..40c3c3c4d 100644 --- a/src/landscape/C4Particles.cpp +++ b/src/landscape/C4Particles.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/C4Particles.h" // headers for particle loading diff --git a/src/landscape/C4Particles.h b/src/landscape/C4Particles.h index 1664f22f2..fc366f1a4 100644 --- a/src/landscape/C4Particles.h +++ b/src/landscape/C4Particles.h @@ -13,6 +13,7 @@ * for the above references. */ +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4FacetEx.h" #include "lib/C4Random.h" diff --git a/src/landscape/fow/C4FoW.cpp b/src/landscape/fow/C4FoW.cpp index 27a7476af..dede85650 100644 --- a/src/landscape/fow/C4FoW.cpp +++ b/src/landscape/fow/C4FoW.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/fow/C4FoW.h" #include "graphics/C4Draw.h" diff --git a/src/landscape/fow/C4FoW.h b/src/landscape/fow/C4FoW.h index 92d6b8928..9e874d189 100644 --- a/src/landscape/fow/C4FoW.h +++ b/src/landscape/fow/C4FoW.h @@ -16,6 +16,7 @@ #ifndef C4FOW_H #define C4FOW_H +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4Surface.h" #include "graphics/C4FacetEx.h" #include "lib/C4Rect.h" diff --git a/src/landscape/fow/C4FoWAmbient.cpp b/src/landscape/fow/C4FoWAmbient.cpp index c527e45e0..b9b5ccd1a 100644 --- a/src/landscape/fow/C4FoWAmbient.cpp +++ b/src/landscape/fow/C4FoWAmbient.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/fow/C4FoWAmbient.h" #include "landscape/fow/C4FoW.h" #include "graphics/C4Draw.h" diff --git a/src/landscape/fow/C4FoWAmbient.h b/src/landscape/fow/C4FoWAmbient.h index 2e084f9f6..05968f1aa 100644 --- a/src/landscape/fow/C4FoWAmbient.h +++ b/src/landscape/fow/C4FoWAmbient.h @@ -16,6 +16,8 @@ #ifndef C4FOWAMBIENT_H #define C4FOWAMBIENT_H +#include "C4ForbidLibraryCompilation.h" + #include "landscape/C4Landscape.h" #ifndef USE_CONSOLE #include diff --git a/src/landscape/fow/C4FoWBeam.cpp b/src/landscape/fow/C4FoWBeam.cpp index 49d76d248..2d9dfc427 100644 --- a/src/landscape/fow/C4FoWBeam.cpp +++ b/src/landscape/fow/C4FoWBeam.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #ifndef USE_CONSOLE #include "landscape/fow/C4FoWBeam.h" diff --git a/src/landscape/fow/C4FoWBeam.h b/src/landscape/fow/C4FoWBeam.h index 2d7e4daf5..3fdcf75cb 100644 --- a/src/landscape/fow/C4FoWBeam.h +++ b/src/landscape/fow/C4FoWBeam.h @@ -16,6 +16,8 @@ #ifndef C4FOWBEAM_H #define C4FOWBEAM_H +#include "C4ForbidLibraryCompilation.h" + #ifndef USE_CONSOLE #include "lib/StdBuf.h" diff --git a/src/landscape/fow/C4FoWDrawStrategy.cpp b/src/landscape/fow/C4FoWDrawStrategy.cpp index 99ebd495e..363459692 100644 --- a/src/landscape/fow/C4FoWDrawStrategy.cpp +++ b/src/landscape/fow/C4FoWDrawStrategy.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #ifndef USE_CONSOLE diff --git a/src/landscape/fow/C4FoWDrawStrategy.h b/src/landscape/fow/C4FoWDrawStrategy.h index 7a4048e41..1830839d8 100644 --- a/src/landscape/fow/C4FoWDrawStrategy.h +++ b/src/landscape/fow/C4FoWDrawStrategy.h @@ -16,6 +16,8 @@ #ifndef C4FOWDRAWSTRATEGY_H #define C4FOWDRAWSTRATEGY_H +#include "C4ForbidLibraryCompilation.h" + #ifndef USE_CONSOLE #include "graphics/C4DrawGL.h" diff --git a/src/landscape/fow/C4FoWLight.cpp b/src/landscape/fow/C4FoWLight.cpp index 892440532..3ff51a65e 100644 --- a/src/landscape/fow/C4FoWLight.cpp +++ b/src/landscape/fow/C4FoWLight.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #ifndef USE_CONSOLE diff --git a/src/landscape/fow/C4FoWLight.h b/src/landscape/fow/C4FoWLight.h index 9f03d9165..eb633b58b 100644 --- a/src/landscape/fow/C4FoWLight.h +++ b/src/landscape/fow/C4FoWLight.h @@ -15,6 +15,8 @@ #ifndef C4FOWLIGHT_H #define C4FOWLIGHT_H +#include "C4ForbidLibraryCompilation.h" + #ifndef USE_CONSOLE #include "object/C4Object.h" diff --git a/src/landscape/fow/C4FoWLightSection.cpp b/src/landscape/fow/C4FoWLightSection.cpp index cca34c078..db28d591c 100644 --- a/src/landscape/fow/C4FoWLightSection.cpp +++ b/src/landscape/fow/C4FoWLightSection.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #ifndef USE_CONSOLE diff --git a/src/landscape/fow/C4FoWLightSection.h b/src/landscape/fow/C4FoWLightSection.h index 54700f8b6..c59c5b018 100644 --- a/src/landscape/fow/C4FoWLightSection.h +++ b/src/landscape/fow/C4FoWLightSection.h @@ -16,6 +16,8 @@ #ifndef C4FOWLIGHTSECTION_H #define C4FOWLIGHTSECTION_H +#include "C4ForbidLibraryCompilation.h" + #ifndef USE_CONSOLE #include "lib/C4Rect.h" diff --git a/src/landscape/fow/C4FoWRegion.cpp b/src/landscape/fow/C4FoWRegion.cpp index 15d515522..9454aee2c 100644 --- a/src/landscape/fow/C4FoWRegion.cpp +++ b/src/landscape/fow/C4FoWRegion.cpp @@ -14,6 +14,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "landscape/fow/C4FoWRegion.h" #include "graphics/C4DrawGL.h" diff --git a/src/landscape/fow/C4FoWRegion.h b/src/landscape/fow/C4FoWRegion.h index a4c8024ce..fc446b96a 100644 --- a/src/landscape/fow/C4FoWRegion.h +++ b/src/landscape/fow/C4FoWRegion.h @@ -16,6 +16,7 @@ #ifndef C4FOWREGION_H #define C4FOWREGION_H +#include "C4ForbidLibraryCompilation.h" #include "lib/C4Rect.h" #include "graphics/C4FacetEx.h" #include "player/C4Player.h" diff --git a/src/lib/StdMesh.cpp b/src/lib/StdMesh.cpp index f0d50c534..8f4734d72 100644 --- a/src/lib/StdMesh.cpp +++ b/src/lib/StdMesh.cpp @@ -15,6 +15,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "graphics/C4DrawGL.h" #include "lib/StdMesh.h" #include diff --git a/src/lib/StdMesh.h b/src/lib/StdMesh.h index 4774c0fa9..f999e7e58 100644 --- a/src/lib/StdMesh.h +++ b/src/lib/StdMesh.h @@ -17,6 +17,7 @@ #ifndef INC_StdMesh #define INC_StdMesh +#include "C4ForbidLibraryCompilation.h" #include "lib/StdMeshMath.h" #include "lib/StdMeshMaterial.h" diff --git a/src/lib/StdMeshMaterial.cpp b/src/lib/StdMeshMaterial.cpp index 3cfcef80c..471eac309 100644 --- a/src/lib/StdMeshMaterial.cpp +++ b/src/lib/StdMeshMaterial.cpp @@ -15,6 +15,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "lib/StdMeshMaterial.h" #include "lib/StdMeshUpdate.h" #include "graphics/C4DrawGL.h" diff --git a/src/network/C4Network2.cpp b/src/network/C4Network2.cpp index 5222ba62d..d8b3661b4 100644 --- a/src/network/C4Network2.cpp +++ b/src/network/C4Network2.cpp @@ -15,6 +15,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "network/C4Network2.h" #include "C4Version.h" diff --git a/src/object/C4Def.cpp b/src/object/C4Def.cpp index 17299d134..fbac5aeef 100644 --- a/src/object/C4Def.cpp +++ b/src/object/C4Def.cpp @@ -18,6 +18,7 @@ /* Object definition */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "object/C4Def.h" #include "graphics/C4DrawGL.h" #include "graphics/C4GraphicsResource.h" diff --git a/src/object/C4DefGraphics.cpp b/src/object/C4DefGraphics.cpp index 77c6af83b..e1b3dd99a 100644 --- a/src/object/C4DefGraphics.cpp +++ b/src/object/C4DefGraphics.cpp @@ -36,6 +36,7 @@ #include "player/C4RankSystem.h" #include "graphics/C4GraphicsResource.h" #include "graphics/C4Draw.h" +#include "graphics/C4Surface.h" #include "object/C4MeshAnimation.h" #include "lib/StdMeshLoader.h" #include "lib/StdMeshUpdate.h" @@ -927,7 +928,7 @@ void C4GraphicsOverlay::Draw(C4TargetFacet &cgo, C4Object *pForObj, int32_t iByP else if (OverlayObj) { assert(pForObj); - // TODO: Shouldn't have called PrepareDrawing/set ClrModulation here, since + // TODO: Shouldn't have called PrepareDrawing/set ClrModulation here, since // OverlayObj drawing will do it on its own. if (eMode == MODE_ObjectPicture) { @@ -1185,3 +1186,16 @@ void C4GraphicsOverlayListAdapt::CompileFunc(StdCompiler *pComp) } } } + +C4Surface *C4DefGraphics::GetBitmap(DWORD dwClr) +{ + if (Type != TYPE_Bitmap) + return NULL; + if (Bmp.BitmapClr) + { + Bmp.BitmapClr->SetClr(dwClr); + return Bmp.BitmapClr; + } + else + return Bmp.Bitmap; +} diff --git a/src/object/C4DefGraphics.h b/src/object/C4DefGraphics.h index c56088bcd..bf622c2d7 100644 --- a/src/object/C4DefGraphics.h +++ b/src/object/C4DefGraphics.h @@ -18,8 +18,7 @@ #ifndef INC_C4DefGraphics #define INC_C4DefGraphics -#include "graphics/C4FacetEx.h" -#include "graphics/C4Surface.h" +#include "graphics/C4Facet.h" #include "object/C4ObjectPtr.h" #include "lib/C4InputValidation.h" #include "lib/StdMeshUpdate.h" @@ -59,7 +58,7 @@ public: bool fColorBitmapAutoCreated; // if set, the color-by-owner-bitmap has been created automatically by all blue shades of the bitmap - inline C4Surface *GetBitmap(DWORD dwClr=0) { if (Type != TYPE_Bitmap) return NULL; if (Bmp.BitmapClr) { Bmp.BitmapClr->SetClr(dwClr); return Bmp.BitmapClr; } else return Bmp.Bitmap; } + C4Surface *GetBitmap(DWORD dwClr=0); C4DefGraphics(C4Def *pOwnDef=NULL); // ctor virtual ~C4DefGraphics() { Clear(); }; // dtor diff --git a/src/object/C4DefList.h b/src/object/C4DefList.h index 5d0730c0b..b870d4ef5 100644 --- a/src/object/C4DefList.h +++ b/src/object/C4DefList.h @@ -20,9 +20,9 @@ #ifndef INC_C4DefList #define INC_C4DefList -#include "graphics/C4FontLoader.h" +#include "graphics/C4FontLoaderCustomImages.h" -class C4DefList: public CStdFont::CustomImages +class C4DefList: public CStdFontCustomImages { public: C4DefList(); diff --git a/src/object/C4InfoCore.cpp b/src/object/C4InfoCore.cpp index be939efe2..3af7be8e0 100644 --- a/src/object/C4InfoCore.cpp +++ b/src/object/C4InfoCore.cpp @@ -23,6 +23,7 @@ #include "object/C4Def.h" #include "object/C4DefList.h" #include "lib/C4Random.h" +#include "lib/C4Markup.h" #include "player/C4RankSystem.h" #include "c4group/C4Group.h" #include "c4group/C4Components.h" diff --git a/src/object/C4Object.cpp b/src/object/C4Object.cpp index ec04c9728..5dbb5f600 100644 --- a/src/object/C4Object.cpp +++ b/src/object/C4Object.cpp @@ -18,6 +18,7 @@ /* That which fills the world with life */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "object/C4Object.h" #include "script/C4AulExec.h" diff --git a/src/object/C4ObjectScript.cpp b/src/object/C4ObjectScript.cpp index 9af4ebd80..f338418cf 100644 --- a/src/object/C4ObjectScript.cpp +++ b/src/object/C4ObjectScript.cpp @@ -16,6 +16,7 @@ */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "script/C4Aul.h" #include "script/C4AulDefFunc.h" diff --git a/src/object/C4Shape.h b/src/object/C4Shape.h index 30a6347e0..41770e404 100644 --- a/src/object/C4Shape.h +++ b/src/object/C4Shape.h @@ -20,7 +20,6 @@ #ifndef INC_C4Shape #define INC_C4Shape -#include "graphics/C4FacetEx.h" #include "config/C4Constants.h" #include "lib/C4Rect.h" diff --git a/src/platform/C4App.h b/src/platform/C4App.h index 54d8af2fc..81e75823a 100644 --- a/src/platform/C4App.h +++ b/src/platform/C4App.h @@ -19,6 +19,7 @@ #ifndef INC_STDAPP #define INC_STDAPP +#include "C4ForbidLibraryCompilation.h" #include "platform/StdScheduler.h" #include "platform/StdSync.h" #include "platform/C4StdInProc.h" diff --git a/src/platform/C4AppMac.mm b/src/platform/C4AppMac.mm index a00ed25a6..f873a53fb 100644 --- a/src/platform/C4AppMac.mm +++ b/src/platform/C4AppMac.mm @@ -16,6 +16,7 @@ // based on SDL implementation +#include "C4ForbidLibraryCompilation.h" #include #include diff --git a/src/platform/C4GamePadCon.cpp b/src/platform/C4GamePadCon.cpp index 141c6f44e..2179d1ba5 100644 --- a/src/platform/C4GamePadCon.cpp +++ b/src/platform/C4GamePadCon.cpp @@ -18,6 +18,7 @@ /* Gamepad control */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "platform/C4GamePadCon.h" #include "config/C4Config.h" diff --git a/src/platform/C4Window.h b/src/platform/C4Window.h index 38a8404ab..852e363bb 100644 --- a/src/platform/C4Window.h +++ b/src/platform/C4Window.h @@ -19,6 +19,7 @@ #ifndef INC_STDWINDOW #define INC_STDWINDOW +#include "C4ForbidLibraryCompilation.h" #include "lib/StdBuf.h" #if defined(USE_SDL_MAINLOOP) diff --git a/src/platform/C4WindowWin32.cpp b/src/platform/C4WindowWin32.cpp index fd123a782..b3a155890 100644 --- a/src/platform/C4WindowWin32.cpp +++ b/src/platform/C4WindowWin32.cpp @@ -18,6 +18,7 @@ /* A wrapper class to OS dependent event and window interfaces, WIN32 version */ #include "C4Include.h" +#include "C4ForbidLibraryCompilation.h" #include "platform/C4Window.h" #include "game/C4Application.h" diff --git a/src/script/C4PropList.cpp b/src/script/C4PropList.cpp index 730dd86a9..dfc04a084 100644 --- a/src/script/C4PropList.cpp +++ b/src/script/C4PropList.cpp @@ -20,8 +20,6 @@ #include "script/C4Aul.h" #include "object/C4GameObjects.h" -#include "game/C4Game.h" -#include "object/C4Object.h" #include "control/C4Record.h" void C4PropList::AddRef(C4Value *pRef) diff --git a/src/script/C4ValueArray.cpp b/src/script/C4ValueArray.cpp index 09dbfd4f3..7a378c153 100644 --- a/src/script/C4ValueArray.cpp +++ b/src/script/C4ValueArray.cpp @@ -19,7 +19,6 @@ #include "script/C4Aul.h" #include "object/C4FindObject.h" -#include "object/C4Object.h" C4ValueArray::C4ValueArray() : pData(NULL), iSize(0), iCapacity(0), constant(false) @@ -90,7 +89,7 @@ void C4ValueArray::Sort(class C4SortObject &rSort) pPos[i] = reinterpret_cast(pData[pPos[i]]._getObj()); // Set the values for (i = 0; i < iSize; i++) - pData[i].SetPropList(reinterpret_cast(pPos[i])); + pData[i].SetPropList(reinterpret_cast(pPos[i])); delete [] pPos; } else