From b3feb5945b2523748195c658ef701af9a3125876 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 18 Mar 2025 19:44:32 +0300 Subject: [PATCH] reduce extra includes --- src/data/StructLayout.cpp | 1 + src/data/dv_fwd.hpp | 6 +++++ src/engine/Engine.hpp | 3 +-- src/frontend/ContentGfxCache.cpp | 1 + src/frontend/ContentGfxCache.hpp | 2 +- src/frontend/UiDocument.cpp | 4 +-- src/frontend/UiDocument.hpp | 8 +++--- src/frontend/hud.cpp | 2 -- src/frontend/menu.cpp | 4 +-- src/frontend/menu.hpp | 12 +++++++-- src/frontend/screens/LevelScreen.cpp | 2 ++ src/frontend/screens/MenuScreen.cpp | 1 + src/graphics/render/BlocksPreview.cpp | 1 + src/graphics/render/Decorator.cpp | 1 + src/interfaces/Serializable.hpp | 10 +------- src/logic/scripting/lua/libs/libaudio.cpp | 1 + src/logic/scripting/lua/libs/libcore.cpp | 1 + src/logic/scripting/scripting.hpp | 1 - src/logic/scripting/scripting_functional.hpp | 2 +- src/logic/scripting/scripting_hud.cpp | 1 + src/presets/NotePreset.hpp | 1 + src/presets/ParticlesPreset.hpp | 2 ++ src/world/Weather.cpp | 27 ++++++++++++++++++++ src/world/Weather.hpp | 21 ++------------- test/data/StructLayout.cpp | 2 ++ 25 files changed, 71 insertions(+), 46 deletions(-) create mode 100644 src/data/dv_fwd.hpp create mode 100644 src/world/Weather.cpp diff --git a/src/data/StructLayout.cpp b/src/data/StructLayout.cpp index d0e207a1..94d21ecf 100644 --- a/src/data/StructLayout.cpp +++ b/src/data/StructLayout.cpp @@ -6,6 +6,7 @@ #include #include +#include "data/dv.hpp" #include "util/data_io.hpp" #include "util/stringutil.hpp" diff --git a/src/data/dv_fwd.hpp b/src/data/dv_fwd.hpp new file mode 100644 index 00000000..a3060df3 --- /dev/null +++ b/src/data/dv_fwd.hpp @@ -0,0 +1,6 @@ +#pragma once + +namespace dv { + class value; + struct optionalvalue; +} diff --git a/src/engine/Engine.hpp b/src/engine/Engine.hpp index ca5bcb21..6d3487dd 100644 --- a/src/engine/Engine.hpp +++ b/src/engine/Engine.hpp @@ -4,7 +4,6 @@ #include "typedefs.hpp" #include "settings.hpp" -#include "assets/Assets.hpp" #include "content/content_fwd.hpp" #include "content/ContentPack.hpp" #include "content/PacksManager.hpp" @@ -15,10 +14,10 @@ #include "Time.hpp" #include -#include #include #include +class Assets; class Level; class Screen; class EnginePaths; diff --git a/src/frontend/ContentGfxCache.cpp b/src/frontend/ContentGfxCache.cpp index 844fd4e6..7d61227b 100644 --- a/src/frontend/ContentGfxCache.cpp +++ b/src/frontend/ContentGfxCache.cpp @@ -7,6 +7,7 @@ #include "content/Content.hpp" #include "content/ContentPack.hpp" #include "graphics/core/Atlas.hpp" +#include "graphics/commons/Model.hpp" #include "maths/UVRegion.hpp" #include "voxels/Block.hpp" #include "core_defs.hpp" diff --git a/src/frontend/ContentGfxCache.hpp b/src/frontend/ContentGfxCache.hpp index cb5e2ad7..e5965148 100644 --- a/src/frontend/ContentGfxCache.hpp +++ b/src/frontend/ContentGfxCache.hpp @@ -6,7 +6,7 @@ #include #include -#include "graphics/commons/Model.hpp" +#include "maths/UVRegion.hpp" class Content; class Assets; diff --git a/src/frontend/UiDocument.cpp b/src/frontend/UiDocument.cpp index 0ca64542..5e8df9f1 100644 --- a/src/frontend/UiDocument.cpp +++ b/src/frontend/UiDocument.cpp @@ -21,11 +21,11 @@ void UiDocument::rebuildIndices() { gui::UINode::getIndices(root, map); } -const uinodes_map& UiDocument::getMap() const { +const UINodesMap& UiDocument::getMap() const { return map; } -uinodes_map& UiDocument::getMapWriteable() { +UINodesMap& UiDocument::getMapWriteable() { return map; } diff --git a/src/frontend/UiDocument.hpp b/src/frontend/UiDocument.hpp index b280249a..9d6e6eca 100644 --- a/src/frontend/UiDocument.hpp +++ b/src/frontend/UiDocument.hpp @@ -19,12 +19,12 @@ struct uidocscript { bool onclose : 1; }; -using uinodes_map = std::unordered_map>; +using UINodesMap = std::unordered_map>; class UiDocument { std::string id; uidocscript script; - uinodes_map map; + UINodesMap map; std::shared_ptr root; scriptenv env; public: @@ -38,8 +38,8 @@ public: void rebuildIndices(); const std::string& getId() const; - const uinodes_map& getMap() const; - uinodes_map& getMapWriteable(); + const UINodesMap& getMap() const; + UINodesMap& getMapWriteable(); std::shared_ptr getRoot() const; std::shared_ptr get(const std::string& id) const; const uidocscript& getScript() const; diff --git a/src/frontend/hud.cpp b/src/frontend/hud.cpp index 26f636cd..36e140fd 100644 --- a/src/frontend/hud.cpp +++ b/src/frontend/hud.cpp @@ -13,8 +13,6 @@ #include "graphics/core/Batch2D.hpp" #include "graphics/core/Batch3D.hpp" #include "graphics/core/DrawContext.hpp" -#include "graphics/core/Font.hpp" -#include "graphics/core/Mesh.hpp" #include "graphics/core/Shader.hpp" #include "graphics/core/Texture.hpp" #include "graphics/core/ImageData.hpp" diff --git a/src/frontend/menu.cpp b/src/frontend/menu.cpp index e2cbca2c..bc5409a3 100644 --- a/src/frontend/menu.cpp +++ b/src/frontend/menu.cpp @@ -1,6 +1,5 @@ #include "menu.hpp" -#include #include #include "UiDocument.hpp" @@ -18,9 +17,8 @@ #include "screens/MenuScreen.hpp" #include "settings.hpp" #include "util/stringutil.hpp" +#include "assets/assetload_funcs.hpp" - -namespace fs = std::filesystem; using namespace gui; void menus::create_version_label(gui::GUI& gui) { diff --git a/src/frontend/menu.hpp b/src/frontend/menu.hpp index a4c0cc0b..b7fb4495 100644 --- a/src/frontend/menu.hpp +++ b/src/frontend/menu.hpp @@ -1,7 +1,7 @@ #pragma once #include "data/dv.hpp" -#include "graphics/ui/elements/Menu.hpp" +#include "delegates.hpp" #include #include @@ -12,6 +12,10 @@ class Engine; class UiDocument; +namespace gui { + class GUI; +} + namespace menus { /// @brief Create development version label at the top-right screen corner void create_version_label(gui::GUI& gui); @@ -22,7 +26,11 @@ namespace menus { std::vector args ); - void show_process_panel(Engine& engine, const std::shared_ptr& task, const std::wstring& text=L""); + void show_process_panel( + Engine& engine, + const std::shared_ptr& task, + const std::wstring& text = L"" + ); bool call(Engine& engine, runnable func); } diff --git a/src/frontend/screens/LevelScreen.cpp b/src/frontend/screens/LevelScreen.cpp index 2e0de6cc..a61a1e81 100644 --- a/src/frontend/screens/LevelScreen.cpp +++ b/src/frontend/screens/LevelScreen.cpp @@ -6,6 +6,7 @@ #include "core_defs.hpp" #include "debug/Logger.hpp" #include "engine/Engine.hpp" +#include "assets/Assets.hpp" #include "frontend/ContentGfxCache.hpp" #include "frontend/LevelFrontend.hpp" #include "frontend/hud.hpp" @@ -17,6 +18,7 @@ #include "graphics/render/WorldRenderer.hpp" #include "graphics/ui/GUI.hpp" #include "graphics/ui/elements/Menu.hpp" +#include "graphics/core/TextureAnimation.hpp" #include "io/io.hpp" #include "logic/LevelController.hpp" #include "logic/PlayerController.hpp" diff --git a/src/frontend/screens/MenuScreen.cpp b/src/frontend/screens/MenuScreen.cpp index 3f979e1f..d31af6ae 100644 --- a/src/frontend/screens/MenuScreen.cpp +++ b/src/frontend/screens/MenuScreen.cpp @@ -5,6 +5,7 @@ #include "graphics/core/Batch2D.hpp" #include "graphics/core/Shader.hpp" #include "graphics/core/Texture.hpp" +#include "assets/Assets.hpp" #include "maths/UVRegion.hpp" #include "window/Window.hpp" #include "window/Camera.hpp" diff --git a/src/graphics/render/BlocksPreview.cpp b/src/graphics/render/BlocksPreview.cpp index 523e0586..17c087ed 100644 --- a/src/graphics/render/BlocksPreview.cpp +++ b/src/graphics/render/BlocksPreview.cpp @@ -14,6 +14,7 @@ #include "graphics/core/Shader.hpp" #include "graphics/core/Texture.hpp" #include "graphics/core/Viewport.hpp" +#include "graphics/commons/Model.hpp" #include diff --git a/src/graphics/render/Decorator.cpp b/src/graphics/render/Decorator.cpp index 2904c39f..1fd69dfc 100644 --- a/src/graphics/render/Decorator.cpp +++ b/src/graphics/render/Decorator.cpp @@ -4,6 +4,7 @@ #include "WorldRenderer.hpp" #include "TextsRenderer.hpp" #include "TextNote.hpp" +#include "assets/Assets.hpp" #include "assets/assets_util.hpp" #include "content/Content.hpp" #include "voxels/Chunks.hpp" diff --git a/src/interfaces/Serializable.hpp b/src/interfaces/Serializable.hpp index 46228f4a..2aaf9f5d 100644 --- a/src/interfaces/Serializable.hpp +++ b/src/interfaces/Serializable.hpp @@ -1,18 +1,10 @@ #pragma once -#include "data/dv.hpp" - -#include +#include "data/dv_fwd.hpp" class Serializable { public: virtual ~Serializable() {} virtual dv::value serialize() const = 0; virtual void deserialize(const dv::value& src) = 0; - - void deserializeOpt(const dv::optionalvalue& opt) { - if (opt.ptr) { - deserialize(*opt.ptr); - } - } }; diff --git a/src/logic/scripting/lua/libs/libaudio.cpp b/src/logic/scripting/lua/libs/libaudio.cpp index 07a53827..2559f7ac 100644 --- a/src/logic/scripting/lua/libs/libaudio.cpp +++ b/src/logic/scripting/lua/libs/libaudio.cpp @@ -1,4 +1,5 @@ #include "audio/audio.hpp" +#include "assets/Assets.hpp" #include "engine/Engine.hpp" #include "api_lua.hpp" diff --git a/src/logic/scripting/lua/libs/libcore.cpp b/src/logic/scripting/lua/libs/libcore.cpp index b6e88619..43f8f857 100644 --- a/src/logic/scripting/lua/libs/libcore.cpp +++ b/src/logic/scripting/lua/libs/libcore.cpp @@ -4,6 +4,7 @@ #include "api_lua.hpp" #include "coders/png.hpp" #include "constants.hpp" +#include "assets/Assets.hpp" #include "content/Content.hpp" #include "debug/Logger.hpp" #include "engine/Engine.hpp" diff --git a/src/logic/scripting/scripting.hpp b/src/logic/scripting/scripting.hpp index 52de1ccb..1faea817 100644 --- a/src/logic/scripting/scripting.hpp +++ b/src/logic/scripting/scripting.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include "io/fwd.hpp" diff --git a/src/logic/scripting/scripting_functional.hpp b/src/logic/scripting/scripting_functional.hpp index be325740..e9981fae 100644 --- a/src/logic/scripting/scripting_functional.hpp +++ b/src/logic/scripting/scripting_functional.hpp @@ -3,7 +3,7 @@ #include #include -#include "data/dv.hpp" +#include "data/dv_fwd.hpp" #include "delegates.hpp" #include "typedefs.hpp" diff --git a/src/logic/scripting/scripting_hud.cpp b/src/logic/scripting/scripting_hud.cpp index 0dfabea6..22358253 100644 --- a/src/logic/scripting/scripting_hud.cpp +++ b/src/logic/scripting/scripting_hud.cpp @@ -3,6 +3,7 @@ #include "debug/Logger.hpp" #include "engine/Engine.hpp" #include "io/io.hpp" +#include "assets/Assets.hpp" #include "frontend/hud.hpp" #include "frontend/UiDocument.hpp" #include "graphics/render/WorldRenderer.hpp" diff --git a/src/presets/NotePreset.hpp b/src/presets/NotePreset.hpp index 6c3f548e..bc478fb4 100644 --- a/src/presets/NotePreset.hpp +++ b/src/presets/NotePreset.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "interfaces/Serializable.hpp" diff --git a/src/presets/ParticlesPreset.hpp b/src/presets/ParticlesPreset.hpp index 2b955d13..4b271849 100644 --- a/src/presets/ParticlesPreset.hpp +++ b/src/presets/ParticlesPreset.hpp @@ -1,6 +1,8 @@ #pragma once #include +#include +#include #include "interfaces/Serializable.hpp" diff --git a/src/world/Weather.cpp b/src/world/Weather.cpp new file mode 100644 index 00000000..18861ad4 --- /dev/null +++ b/src/world/Weather.cpp @@ -0,0 +1,27 @@ +#include "Weather.hpp" + +#include "data/dv.hpp" + +dv::value Weather::serialize() const { + return dv::object({ + {"a", a.serialize()}, + {"b", b.serialize()}, + {"name-a", nameA}, + {"name-b", nameB}, + {"t", t}, + {"speed", speed}, + }); +} + +void Weather::deserialize(const dv::value& src) { + if (src.has("a")) { + a.deserialize(src["a"]); + } + if (src.has("b")) { + b.deserialize(src["b"]); + } + src.at("name-a").get(nameA); + src.at("name-b").get(nameB); + src.at("t").get(t); + src.at("speed").get(speed); +} diff --git a/src/world/Weather.hpp b/src/world/Weather.hpp index 98999126..fde642b7 100644 --- a/src/world/Weather.hpp +++ b/src/world/Weather.hpp @@ -45,23 +45,6 @@ struct Weather : Serializable { return b.thunderRate * t + a.thunderRate * (1.0f - t); } - dv::value serialize() const override { - return dv::object({ - {"a", a.serialize()}, - {"b", b.serialize()}, - {"name-a", nameA}, - {"name-b", nameB}, - {"t", t}, - {"speed", speed}, - }); - } - - void deserialize(const dv::value& src) override { - a.deserializeOpt(src.at("a")); - b.deserializeOpt(src.at("b")); - src.at("name-a").get(nameA); - src.at("name-b").get(nameB); - src.at("t").get(t); - src.at("speed").get(speed); - } + dv::value serialize() const override; + void deserialize(const dv::value& src) override; }; diff --git a/test/data/StructLayout.cpp b/test/data/StructLayout.cpp index 37baec35..bb390759 100644 --- a/test/data/StructLayout.cpp +++ b/test/data/StructLayout.cpp @@ -4,6 +4,8 @@ #include #include +#include "data/dv.hpp" + using namespace data; TEST(StructLayout, ReadWrite) {