diff --git a/source/graphics/CinemaManager.h b/source/graphics/CinemaManager.h index 4c2005db7e..45a9fc1339 100644 --- a/source/graphics/CinemaManager.h +++ b/source/graphics/CinemaManager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,8 +19,8 @@ #define INCLUDED_CINEMAMANAGER #include "lib/input.h" // InReaction - can't forward-declare enum +#include "graphics/Color.h" #include "ps/CStr.h" -#include "ps/Shapes.h" #include "simulation2/helpers/CinemaPath.h" diff --git a/source/graphics/Color.cpp b/source/graphics/Color.cpp index ab41a1a4df..cfbd22fbd5 100644 --- a/source/graphics/Color.cpp +++ b/source/graphics/Color.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2009 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -15,16 +15,14 @@ * along with 0 A.D. If not, see . */ -/* - * Convert float RGB(A) colors to unsigned byte - */ - #include "precompiled.h" #include "graphics/Color.h" -#include "maths/MathUtil.h" #include "graphics/SColor.h" +#include "maths/MathUtil.h" +#include "ps/CLogger.h" +#include "ps/CStr.h" #if HAVE_SSE # include @@ -34,10 +32,10 @@ static SColor4ub fallback_ConvertRGBColorTo4ub(const RGBColor& src) { SColor4ub result; - result.R=clamp(int(src.X*255),0,255); - result.G=clamp(int(src.Y*255),0,255); - result.B=clamp(int(src.Z*255),0,255); - result.A=0xff; + result.R = clamp(static_cast(src.X * 255), 0, 255); + result.G = clamp(static_cast(src.Y * 255), 0, 255); + result.B = clamp(static_cast(src.Z * 255), 0, 255); + result.A = 255; return result; } @@ -93,3 +91,57 @@ void ColorActivateFastImpl() debug_printf("No SSE available. Slow fallback routines will be used.\n"); } } + +bool CColor::ParseString(const CStr8& value, int defaultAlpha) +{ + const size_t NUM_VALS = 4; + int values[NUM_VALS] = { 0, 0, 0, defaultAlpha }; + std::stringstream stream; + stream.str(value); + // Parse each value + size_t i; + for (i = 0; i < NUM_VALS; ++i) + { + if (stream.eof()) + break; + + stream >> values[i]; + if ((stream.rdstate() & std::stringstream::failbit) != 0) + { + LOGWARNING("Unable to parse CColor parameters. Your input: '%s'", value.c_str()); + return false; + } + if (values[i] < 0 || values[i] > 255) + { + LOGWARNING("Invalid value (<0 or >255) when parsing CColor parameters. Your input: '%s'", value.c_str()); + return false; + } + } + + if (i < 3) + { + LOGWARNING("Not enough parameters when parsing as CColor. Your input: '%s'", value.c_str()); + return false; + } + if (!stream.eof()) + { + LOGWARNING("Too many parameters when parsing as CColor. Your input: '%s'", value.c_str()); + return false; + } + + r = values[0] / 255.f; + g = values[1] / 255.f; + b = values[2] / 255.f; + a = values[3] / 255.f; + + return true; +} + +bool CColor::operator==(const CColor& color) const +{ + return + r == color.r && + g == color.g && + b == color.b && + a == color.a; +} diff --git a/source/graphics/Color.h b/source/graphics/Color.h index 22dd01ae25..18251f5ab3 100644 --- a/source/graphics/Color.h +++ b/source/graphics/Color.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2009 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -15,23 +15,20 @@ * along with 0 A.D. If not, see . */ -/* - * Convert float RGB(A) colors to unsigned byte - */ - #ifndef INCLUDED_COLOR #define INCLUDED_COLOR -#include "SColor.h" +#include "graphics/SColor.h" #include "maths/Vector3D.h" #include "maths/Vector4D.h" -// simple defines for 3 and 4 component floating point colors - just map to -// corresponding vector types +// Simple defines for 3 and 4 component floating point colors - just map to +// corresponding vector types. typedef CVector3D RGBColor; typedef CVector4D RGBAColor; -// exposed as function pointer because it is set at init-time to +// Convert float RGB(A) colors to unsigned byte. +// Exposed as function pointer because it is set at init-time to // one of several implementations depending on CPU caps. extern SColor4ub (*ConvertRGBColorTo4ub)(const RGBColor& src); @@ -39,4 +36,41 @@ extern SColor4ub (*ConvertRGBColorTo4ub)(const RGBColor& src); // possible codepath. extern void ColorActivateFastImpl(); -#endif +class CStr8; + +struct CColor +{ + CColor() : r(-1.f), g(-1.f), b(-1.f), a(1.f) {} + CColor(float cr, float cg, float cb, float ca) : r(cr), g(cg), b(cb), a(ca) {} + + /** + * Try to parse @p Value as a color. Returns true on success, false otherwise. + * @param value Should be "r g b" or "r g b a" where each value is an integer in [0,255]. + * @param defaultAlpha The alpha value that is used if the format of @p Value is "r g b". + */ + bool ParseString(const CStr8& value, int defaultAlpha = 255); + + bool operator==(const CColor& color) const; + bool operator!=(const CColor& color) const + { + return !(*this == color); + } + + // For passing to glColor[34]fv: + const float* FloatArray() const { return &r; } + + // For passing to CRenderer: + SColor4ub AsSColor4ub() const + { + return SColor4ub( + static_cast(r * 255.f), + static_cast(g * 255.f), + static_cast(b * 255.f), + static_cast(a * 255.f) + ); + } + + float r, g, b, a; +}; + +#endif // INCLUDED_COLOR diff --git a/source/graphics/Material.h b/source/graphics/Material.h index 7c2c00c96d..2812f3aa2c 100644 --- a/source/graphics/Material.h +++ b/source/graphics/Material.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2012 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,11 +18,11 @@ #ifndef INCLUDED_MATERIAL #define INCLUDED_MATERIAL +#include "graphics/Color.h" #include "graphics/ShaderDefines.h" #include "graphics/Texture.h" #include "ps/CStr.h" #include "ps/CStrIntern.h" -#include "ps/Shapes.h" #include "simulation2/helpers/Player.h" class CMaterial diff --git a/source/graphics/ModelAbstract.h b/source/graphics/ModelAbstract.h index 1bbe906e49..75519d9f1d 100644 --- a/source/graphics/ModelAbstract.h +++ b/source/graphics/ModelAbstract.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2011 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,9 +18,9 @@ #ifndef INCLUDED_MODELABSTRACT #define INCLUDED_MODELABSTRACT -#include "maths/BoundingBoxOriented.h" +#include "graphics/Color.h" #include "graphics/RenderableObject.h" -#include "ps/Shapes.h" +#include "maths/BoundingBoxOriented.h" #include "simulation2/helpers/Player.h" class CModel; diff --git a/source/graphics/ObjectEntry.h b/source/graphics/ObjectEntry.h index 371fb9a12b..897ca9e297 100644 --- a/source/graphics/ObjectEntry.h +++ b/source/graphics/ObjectEntry.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -29,9 +29,9 @@ struct SPropPoint; #include #include +#include "graphics/Color.h" #include "lib/file/vfs/vfs_path.h" #include "ps/CStr.h" -#include "ps/Shapes.h" #include "graphics/ObjectBase.h" diff --git a/source/graphics/Overlay.h b/source/graphics/Overlay.h index 2d9385bcf7..ba547c34f8 100644 --- a/source/graphics/Overlay.h +++ b/source/graphics/Overlay.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,12 +18,12 @@ #ifndef INCLUDED_GRAPHICS_OVERLAY #define INCLUDED_GRAPHICS_OVERLAY +#include "graphics/Color.h" #include "graphics/Texture.h" #include "maths/Vector2D.h" #include "maths/Vector3D.h" #include "maths/FixedVector3D.h" #include "ps/CStrIntern.h" -#include "ps/Shapes.h" class CTerrain; class CSimContext; diff --git a/source/graphics/ShaderProgram.cpp b/source/graphics/ShaderProgram.cpp index 58b2d737b7..55d6ef5faf 100644 --- a/source/graphics/ShaderProgram.cpp +++ b/source/graphics/ShaderProgram.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,6 +19,7 @@ #include "ShaderProgram.h" +#include "graphics/Color.h" #include "graphics/ShaderManager.h" #include "graphics/TextureManager.h" #include "lib/res/graphics/ogl_tex.h" @@ -27,7 +28,6 @@ #include "ps/CLogger.h" #include "ps/Filesystem.h" #include "ps/PreprocessorWrapper.h" -#include "ps/Shapes.h" #if !CONFIG2_GLES diff --git a/source/graphics/TerrainProperties.cpp b/source/graphics/TerrainProperties.cpp index a54469bb2b..89d35cb7d6 100644 --- a/source/graphics/TerrainProperties.cpp +++ b/source/graphics/TerrainProperties.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -23,11 +23,11 @@ #include -#include "TerrainTextureManager.h" +#include "graphics/Color.h" +#include "graphics/TerrainTextureManager.h" #include "maths/MathUtil.h" #include "ps/CLogger.h" #include "ps/Filesystem.h" -#include "ps/Shapes.h" #include "ps/XML/XeroXMB.h" #include "ps/XML/Xeromyces.h" diff --git a/source/graphics/TerritoryTexture.cpp b/source/graphics/TerritoryTexture.cpp index c73c28c99f..01cb307c85 100644 --- a/source/graphics/TerritoryTexture.cpp +++ b/source/graphics/TerritoryTexture.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,10 +19,10 @@ #include "TerritoryTexture.h" +#include "graphics/Color.h" #include "graphics/Terrain.h" #include "lib/bits.h" #include "ps/Profile.h" -#include "ps/Shapes.h" #include "renderer/Renderer.h" #include "simulation2/Simulation2.h" #include "simulation2/helpers/Pathfinding.h" diff --git a/source/graphics/TextRenderer.h b/source/graphics/TextRenderer.h index d4b93f569b..2ab8a6d5dc 100644 --- a/source/graphics/TextRenderer.h +++ b/source/graphics/TextRenderer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2012 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ #ifndef INCLUDED_TEXTRENDERER #define INCLUDED_TEXTRENDERER +#include "graphics/Color.h" #include "graphics/ShaderProgramPtr.h" #include "maths/Matrix3D.h" #include "ps/CStrIntern.h" diff --git a/source/gui/GUIRenderer.h b/source/gui/GUIRenderer.h index 6008e58e6d..e5dce45467 100644 --- a/source/gui/GUIRenderer.h +++ b/source/gui/GUIRenderer.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,6 +18,7 @@ #ifndef INCLUDED_GUIRENDERER #define INCLUDED_GUIRENDERER +#include "graphics/Color.h" #include "graphics/ShaderTechnique.h" #include "graphics/Texture.h" #include "lib/res/handle.h" diff --git a/source/gui/GUIbase.h b/source/gui/GUIbase.h index 43df71abea..3211821913 100644 --- a/source/gui/GUIbase.h +++ b/source/gui/GUIbase.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -35,6 +35,7 @@ GUI Core, stuff that the whole GUI uses #include #include +#include "graphics/Color.h" #include "ps/CStr.h" #include "ps/Errors.h" // I would like to just forward declare CSize, but it doesn't diff --git a/source/ps/Shapes.cpp b/source/ps/Shapes.cpp index bda1a545a2..05ac37b758 100644 --- a/source/ps/Shapes.cpp +++ b/source/ps/Shapes.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -15,80 +15,9 @@ * along with 0 A.D. If not, see . */ -/* -Shapes.cpp -*/ - #include "precompiled.h" -#include - #include "Shapes.h" -#include "CLogger.h" -#include "CStr.h" - -/** - * Try to parse @p Value as a color. Returns true on success, false otherwise. - * @param Value Should be "r g b" or "r g b a" where each value is an integer in [0,255]. - * @param DefaultAlpha The alpha value that is used if the format of @p Value is "r g b". - */ -bool CColor::ParseString(const CStr8& Value, int DefaultAlpha) -{ - const unsigned int NUM_VALS = 4; - int values[NUM_VALS] = { 0, 0, 0, DefaultAlpha }; - std::stringstream stream; - stream.str(Value); - // Parse each value - size_t i; - for (i = 0; i < NUM_VALS; ++i) - { - if (stream.eof()) - break; - - stream >> values[i]; - if ((stream.rdstate() & std::stringstream::failbit) != 0) - { - LOGWARNING("Unable to parse CColor parameters. Your input: '%s'", Value.c_str()); - return false; - } - if (values[i] < 0 || values[i] > 255) - { - LOGWARNING("Invalid value (<0 or >255) when parsing CColor parameters. Your input: '%s'", Value.c_str()); - return false; - } - } - - if (i < 3) - { - LOGWARNING("Not enough parameters when parsing as CColor. Your input: '%s'", Value.c_str()); - return false; - } - if (!stream.eof()) - { - LOGWARNING("Too many parameters when parsing as CColor. Your input: '%s'", Value.c_str()); - return false; - } - - r = values[0]/255.f; - g = values[1]/255.f; - b = values[2]/255.f; - a = values[3]/255.f; - - return true; -} - - -/*************************************************************************/ - -bool CColor::operator == (const CColor &color) const -{ - return r==color.r && - g==color.g && - b==color.b && - a==color.a; -} - -/*************************************************************************/ CRect::CRect() : left(0.f), top(0.f), right(0.f), bottom(0.f) diff --git a/source/ps/Shapes.h b/source/ps/Shapes.h index e517aeb3ad..918aefe448 100644 --- a/source/ps/Shapes.h +++ b/source/ps/Shapes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -16,49 +16,15 @@ */ /* -Shapes.h - --Overview-- Classes mostly useful for representing 2D screen overlays; includes functionality for overlay position, color, texture and borders. - - CColor is used more widely for various game systems. */ #ifndef INCLUDED_SHAPES #define INCLUDED_SHAPES -#include "graphics/SColor.h" - -class CStr8; - -struct CColor -{ - CColor() : r(-1.f), g(-1.f), b(-1.f), a(1.f) {} - CColor(float cr,float cg,float cb,float ca) : r(cr), g(cg), b(cb), a(ca) {} - - bool ParseString(const CStr8& Value, int DefaultAlpha = 255); - - bool operator == (const CColor &color) const; - - bool operator != (const CColor &color) const - { - return !(*this==color); - } - - // For passing to glColor[34]fv: - const float* FloatArray() const { return &r; } - - // For passing to CRenderer: - SColor4ub AsSColor4ub() const - { - return SColor4ub((u8)(r*255.0), (u8)(g*255.0), (u8)(b*255.0), (u8)(a*255.0)); - } - - float r, g, b, a; -}; - class CPos; class CSize; diff --git a/source/ps/tests/test_CColor.h b/source/ps/tests/test_CColor.h index 7844c26fea..0b9a1ffb80 100644 --- a/source/ps/tests/test_CColor.h +++ b/source/ps/tests/test_CColor.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -17,8 +17,8 @@ #include "lib/self_test.h" +#include "graphics/Color.h" #include "ps/CLogger.h" -#include "ps/Shapes.h" class TestCColor : public CxxTest::TestSuite { diff --git a/source/renderer/TerrainOverlay.cpp b/source/renderer/TerrainOverlay.cpp index f25cdfe884..0dd3841508 100644 --- a/source/renderer/TerrainOverlay.cpp +++ b/source/renderer/TerrainOverlay.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2015 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,13 +19,13 @@ #include "TerrainOverlay.h" +#include "graphics/Color.h" #include "graphics/Terrain.h" #include "lib/bits.h" #include "lib/ogl.h" #include "maths/MathUtil.h" #include "ps/Game.h" #include "ps/Profile.h" -#include "ps/Shapes.h" #include "ps/World.h" #include "renderer/Renderer.h" #include "renderer/TerrainRenderer.h" diff --git a/source/renderer/WaterManager.h b/source/renderer/WaterManager.h index b7b74b7f70..8f601f3d2d 100644 --- a/source/renderer/WaterManager.h +++ b/source/renderer/WaterManager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -22,11 +22,11 @@ #ifndef INCLUDED_WATERMANAGER #define INCLUDED_WATERMANAGER +#include "graphics/Color.h" #include "graphics/Texture.h" #include "lib/ogl.h" #include "maths/Matrix3D.h" #include "maths/Vector2D.h" -#include "ps/Shapes.h" #include "renderer/VertexBufferManager.h" class CSimulation2; diff --git a/source/simulation2/components/CCmpMinimap.cpp b/source/simulation2/components/CCmpMinimap.cpp index 9e3c85faa8..daac554220 100644 --- a/source/simulation2/components/CCmpMinimap.cpp +++ b/source/simulation2/components/CCmpMinimap.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -25,7 +25,7 @@ #include "simulation2/components/ICmpOwnership.h" #include "simulation2/MessageTypes.h" -#include "ps/Shapes.h" +#include "graphics/Color.h" class CCmpMinimap : public ICmpMinimap { diff --git a/source/simulation2/components/ICmpPlayer.cpp b/source/simulation2/components/ICmpPlayer.cpp index 5f1f0d386b..2b58af9063 100644 --- a/source/simulation2/components/ICmpPlayer.cpp +++ b/source/simulation2/components/ICmpPlayer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,12 +19,11 @@ #include "ICmpPlayer.h" +#include "graphics/Color.h" #include "maths/FixedVector3D.h" #include "simulation2/system/InterfaceScripted.h" #include "simulation2/scripting/ScriptComponent.h" -#include "ps/Shapes.h" - BEGIN_INTERFACE_WRAPPER(Player) END_INTERFACE_WRAPPER(Player) diff --git a/source/simulation2/components/ICmpSelectable.cpp b/source/simulation2/components/ICmpSelectable.cpp index ad3dc1271b..6bf6d808ff 100644 --- a/source/simulation2/components/ICmpSelectable.cpp +++ b/source/simulation2/components/ICmpSelectable.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -21,7 +21,7 @@ #include "simulation2/system/InterfaceScripted.h" -#include "ps/Shapes.h" +#include "graphics/Color.h" BEGIN_INTERFACE_WRAPPER(Selectable) DEFINE_INTERFACE_METHOD_2("SetSelectionHighlight", void, ICmpSelectable, SetSelectionHighlight, CColor, bool) diff --git a/source/simulation2/scripting/EngineScriptConversions.cpp b/source/simulation2/scripting/EngineScriptConversions.cpp index d5701cef2e..97bceb7100 100644 --- a/source/simulation2/scripting/EngineScriptConversions.cpp +++ b/source/simulation2/scripting/EngineScriptConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,6 +19,7 @@ #include "scriptinterface/ScriptConversions.h" +#include "graphics/Color.h" #include "maths/Fixed.h" #include "maths/FixedVector2D.h" #include "maths/FixedVector3D.h" diff --git a/source/tools/atlas/GameInterface/Brushes.cpp b/source/tools/atlas/GameInterface/Brushes.cpp index 09e4df87b5..912ed67226 100644 --- a/source/tools/atlas/GameInterface/Brushes.cpp +++ b/source/tools/atlas/GameInterface/Brushes.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2009 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,12 +19,12 @@ #include "Brushes.h" -#include "ps/Game.h" -#include "ps/Shapes.h" -#include "ps/World.h" +#include "graphics/Color.h" #include "graphics/Terrain.h" #include "lib/ogl.h" #include "maths/MathUtil.h" +#include "ps/Game.h" +#include "ps/World.h" #include "renderer/TerrainOverlay.h" #include "simulation2/Simulation2.h" #include "simulation2/system/SimContext.h"