diff --git a/src/bin/src/Main.cpp b/src/bin/src/Main.cpp index acc9a74d..d3ac6dda 100644 --- a/src/bin/src/Main.cpp +++ b/src/bin/src/Main.cpp @@ -1,15 +1,14 @@ #include "Gui.hpp" #include "Loader.hpp" #include "utils/DependencyContainer.hpp" +#include #include +#include +#include +#include #include #include #include -#include - -import Memory; -import Resources; -import Error; CmdParameters processCmdParameters(int argc, char* argv[]) { @@ -102,7 +101,7 @@ int main(int argc, char* argv[]) .resolution = sf::Vector2u( settings->display.resolution.width, settings->display.resolution.height), - .title = GAME_TITLE, + .title = Strings::CAPTITLE, .useFullscreen = settings->display.isFullscreen }; diff --git a/src/client-test/Main.cpp b/src/client-test/Main.cpp index 05ac32d4..11afe2ad 100644 --- a/src/client-test/Main.cpp +++ b/src/client-test/Main.cpp @@ -1,10 +1,9 @@ #include "Client.hpp" +#include #include #include #include -import Memory; - struct A { A() : client(mem::Rc("127.0.0.1", 10666ui16)) {} diff --git a/src/lib-app/CMakeLists.txt b/src/lib-app/CMakeLists.txt index d2feddea..4521e2e5 100644 --- a/src/lib-app/CMakeLists.txt +++ b/src/lib-app/CMakeLists.txt @@ -2,11 +2,6 @@ cmake_minimum_required ( VERSION 3.19 ) project ( lib-app ) -configure_file ( - "${CMAKE_CURRENT_SOURCE_DIR}/include/settings/GameTitle.hpp.in" - "${CMAKE_CURRENT_SOURCE_DIR}/include/settings/GameTitle.hpp" -) - get_latest_clang_format() glob_sources_and_headers( HEADERS SOURCES ) diff --git a/src/lib-app/include/app/AppStateEditor.hpp b/src/lib-app/include/app/AppStateEditor.hpp index f73fea62..4c90a05a 100644 --- a/src/lib-app/include/app/AppStateEditor.hpp +++ b/src/lib-app/include/app/AppStateEditor.hpp @@ -16,13 +16,12 @@ #include "utils/DependencyContainer.hpp" #include #include +#include #include #include #include #include -import Memory; - class [[nodiscard]] AppStateEditor final : public dgm::AppState { public: diff --git a/src/lib-app/include/app/AppStateGameSetup.hpp b/src/lib-app/include/app/AppStateGameSetup.hpp index abbf5816..3e196ba8 100644 --- a/src/lib-app/include/app/AppStateGameSetup.hpp +++ b/src/lib-app/include/app/AppStateGameSetup.hpp @@ -5,13 +5,12 @@ #include "GuiState.hpp" #include "utils/DependencyContainer.hpp" #include +#include #include #include #include #include -import Memory; - class [[nodiscard]] AppStateGameSetup final : public dgm::AppState , public GuiState diff --git a/src/lib-app/include/app/AppStateIngame.hpp b/src/lib-app/include/app/AppStateIngame.hpp index d566afd5..114481fc 100644 --- a/src/lib-app/include/app/AppStateIngame.hpp +++ b/src/lib-app/include/app/AppStateIngame.hpp @@ -8,21 +8,20 @@ #include "engine/GameRulesEngine.hpp" #include "engine/PhysicsEngine.hpp" #include "engine/RenderingEngine.hpp" +#include "utils/AppMessage.hpp" +#include "utils/DemoFileHandler.hpp" #include "utils/DependencyContainer.hpp" +#include #include #include #include +#include #include #include #include #include -#include #include -import AppMessage; -import CoreTypes; -import Memory; - class [[nodiscard]] AppStateIngame final : public dgm::AppState { public: diff --git a/src/lib-app/include/app/AppStateMainMenu.hpp b/src/lib-app/include/app/AppStateMainMenu.hpp index 06ea1df6..3500ca45 100644 --- a/src/lib-app/include/app/AppStateMainMenu.hpp +++ b/src/lib-app/include/app/AppStateMainMenu.hpp @@ -1,9 +1,8 @@ #pragma once -import Memory; - #include "GuiState.hpp" #include "utils/DependencyContainer.hpp" +#include #include class [[nodiscard]] AppStateMainMenu final diff --git a/src/lib-app/include/app/AppStateMapRotationWrapper.hpp b/src/lib-app/include/app/AppStateMapRotationWrapper.hpp index 1e0d8fbd..f06dddaf 100644 --- a/src/lib-app/include/app/AppStateMapRotationWrapper.hpp +++ b/src/lib-app/include/app/AppStateMapRotationWrapper.hpp @@ -2,14 +2,13 @@ #include "Client.hpp" #include "GameSettings.hpp" +#include "utils/AppMessage.hpp" #include "utils/DependencyContainer.hpp" +#include #include #include #include -import AppMessage; -import Memory; - class [[nodiscard]] AppStateMapRotationWrapper final : public dgm::AppState { public: diff --git a/src/lib-app/include/app/AppStateScoreTable.hpp b/src/lib-app/include/app/AppStateScoreTable.hpp index 5ac594c0..0f48c000 100644 --- a/src/lib-app/include/app/AppStateScoreTable.hpp +++ b/src/lib-app/include/app/AppStateScoreTable.hpp @@ -1,12 +1,11 @@ #pragma once -import Memory; - #include "GameSettings.hpp" #include "GuiState.hpp" #include "utils/DependencyContainer.hpp" #include #include +#include #include #include diff --git a/src/lib-app/include/app/AppStateServerWrapper.hpp b/src/lib-app/include/app/AppStateServerWrapper.hpp index 9a3edbd3..1f97910e 100644 --- a/src/lib-app/include/app/AppStateServerWrapper.hpp +++ b/src/lib-app/include/app/AppStateServerWrapper.hpp @@ -1,13 +1,12 @@ +#include "utils/AppMessage.hpp" #include "utils/DependencyContainer.hpp" #include +#include #include #include #include #include -import Memory; -import AppMessage; - enum class [[nodiscard]] ServerWrapperTarget { GameSetup, diff --git a/src/lib-app/include/app/AppStateWinnerAnnounced.hpp b/src/lib-app/include/app/AppStateWinnerAnnounced.hpp index e2f87bef..2f79cef0 100644 --- a/src/lib-app/include/app/AppStateWinnerAnnounced.hpp +++ b/src/lib-app/include/app/AppStateWinnerAnnounced.hpp @@ -1,12 +1,11 @@ #pragma once -import Memory; - #include "GameSettings.hpp" #include "GuiState.hpp" #include "utils/DependencyContainer.hpp" #include #include +#include #include #include @@ -20,7 +19,6 @@ class [[nodiscard]] AppStateWinnerAnnounced final mem::Rc dic, const GameOptions& gameSettings, dgm::UniversalReference> auto&& scores) - // TODO: should update underlying state as well : dgm::AppState( app, dgm::AppStateConfig { .shouldDrawUnderlyingState = true }) , GuiState(dic) diff --git a/src/lib-app/include/app/GuiState.hpp b/src/lib-app/include/app/GuiState.hpp index 53831fe6..4922f418 100644 --- a/src/lib-app/include/app/GuiState.hpp +++ b/src/lib-app/include/app/GuiState.hpp @@ -1,16 +1,15 @@ #pragma once +#include "utils/AppMessage.hpp" #include "utils/DependencyContainer.hpp" #include #include +#include #include +#include #include #include -import Memory; -import AppMessage; -import CoreTypes; - class [[nodiscard]] GuiState { protected: @@ -25,7 +24,7 @@ class [[nodiscard]] GuiState void buildLayout() { - dic->gui->gui.removeAllWidgets(); + dic->gui->removeAllWidgets(); buildLayoutImpl(); } diff --git a/src/lib-app/include/settings/GameTitle.hpp b/src/lib-app/include/settings/GameTitle.hpp deleted file mode 100644 index fb888845..00000000 --- a/src/lib-app/include/settings/GameTitle.hpp +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -/// This value is populated by cmake variable from settings.cmake -const std::string GAME_TITLE = "Rend"; diff --git a/src/lib-app/include/settings/GameTitle.hpp.in b/src/lib-app/include/settings/GameTitle.hpp.in deleted file mode 100644 index 6e12ae46..00000000 --- a/src/lib-app/include/settings/GameTitle.hpp.in +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -/// This value is populated by cmake variable from settings.cmake -const std::string GAME_TITLE = "@SETTINGS_GAME_TITLE@"; diff --git a/src/lib-app/include/utils/AppMessage.hpp b/src/lib-app/include/utils/AppMessage.hpp new file mode 100644 index 00000000..886c9c4b --- /dev/null +++ b/src/lib-app/include/utils/AppMessage.hpp @@ -0,0 +1,41 @@ +#pragma once + +#include +#include +#include +#include + +template +struct CanDeserializeFrom +{ + static [[nodiscard]] constexpr bool + canDeserializeFrom(const std::string& str) noexcept + { + return str == std::string_view(This::serialize()); + } + + static [[nodiscard]] constexpr const char* serialize() noexcept + { + return typeid(This).name(); + } +}; + +struct [[nodiscard]] PopIfNotMainMenu final + : public CanDeserializeFrom +{ +}; + +struct [[nodiscard]] PopIfPause final : public CanDeserializeFrom +{ +}; + +struct [[nodiscard]] PopIfNotMapRotationWrapper final + : public CanDeserializeFrom +{ +}; + +using AppMessage = + std::variant; + +[[nodiscard]] std::optional +deserializeAppMessage(const std::string& str); diff --git a/src/lib-app/include/utils/DependencyContainer.hpp b/src/lib-app/include/utils/DependencyContainer.hpp index 508029eb..eac4b39a 100644 --- a/src/lib-app/include/utils/DependencyContainer.hpp +++ b/src/lib-app/include/utils/DependencyContainer.hpp @@ -6,8 +6,7 @@ #include "Jukebox.hpp" #include "PhysicalController.hpp" #include - -import Memory; +#include struct [[nodiscard]] DependencyContainer final { diff --git a/src/lib-app/src/AppMessage.ixx b/src/lib-app/src/AppMessage.ixx deleted file mode 100644 index 9af274ef..00000000 --- a/src/lib-app/src/AppMessage.ixx +++ /dev/null @@ -1,53 +0,0 @@ -module; - -#include -#include -#include -#include - -export module AppMessage; - -template -struct CanDeserializeFrom -{ - static [[nodiscard]] constexpr bool - canDeserializeFrom(const std::string& str) noexcept - { - return str == std::string_view(This::serialize()); - } - - static [[nodiscard]] constexpr const char* serialize() noexcept - { - return typeid(This).name(); - } -}; - -export struct [[nodiscard]] PopIfNotMainMenu final - : public CanDeserializeFrom -{ -}; - -export struct [[nodiscard]] PopIfPause final - : public CanDeserializeFrom -{ -}; - -export struct [[nodiscard]] PopIfNotMapRotationWrapper final - : public CanDeserializeFrom -{ -}; - -export using AppMessage = - std::variant; - -export [[nodiscard]] std::optional -deserializeAppMessage(const std::string& str) -{ - if (PopIfNotMainMenu::canDeserializeFrom(str)) - return PopIfNotMainMenu(); - else if (PopIfPause::canDeserializeFrom(str)) - return PopIfPause(); - else if (PopIfNotMapRotationWrapper::canDeserializeFrom(str)) - return PopIfNotMapRotationWrapper(); - return std::nullopt; -} diff --git a/src/lib-app/src/app/AppStateEditor.cpp b/src/lib-app/src/app/AppStateEditor.cpp index ed1c3c74..7da7044a 100644 --- a/src/lib-app/src/app/AppStateEditor.cpp +++ b/src/lib-app/src/app/AppStateEditor.cpp @@ -4,13 +4,12 @@ #include "Editor/Editor.hpp" #include "Editor/NullEditor.hpp" #include "app/AppStateIngame.hpp" +#include #include #include #include #include -import Resources; - AppStateEditor::AppStateEditor( dgm::App& app, mem::Rc dic, diff --git a/src/lib-app/src/app/AppStateGameSetup.cpp b/src/lib-app/src/app/AppStateGameSetup.cpp index 13c73dd1..9b308016 100644 --- a/src/lib-app/src/app/AppStateGameSetup.cpp +++ b/src/lib-app/src/app/AppStateGameSetup.cpp @@ -1,14 +1,13 @@ #include "GuiBuilder.hpp" #include "LobbySettings.hpp" #include +#include #include #include #include #include #include -import Resources; - AppStateGameSetup::AppStateGameSetup( dgm::App& app, mem::Rc dic) noexcept : AppState(app, dgm::AppStateConfig { .clearColor = sf::Color::White }) diff --git a/src/lib-app/src/app/AppStateMainMenu.cpp b/src/lib-app/src/app/AppStateMainMenu.cpp index 31e86a0c..a2efd205 100644 --- a/src/lib-app/src/app/AppStateMainMenu.cpp +++ b/src/lib-app/src/app/AppStateMainMenu.cpp @@ -4,7 +4,6 @@ #include "Utilities/TguiHelper.hpp" #include "app/AppStateIngame.hpp" #include "app/AppStateMenuOptions.hpp" -#include "settings/GameTitle.hpp" #include void AppStateMainMenu::buildLayoutImpl() @@ -12,7 +11,7 @@ void AppStateMainMenu::buildLayoutImpl() dic->gui->add( LayoutBuilder::withBackgroundImage( dic->resmgr->get("menu_title.png").value().get()) - .withTitle("rend", HeadingLevel::H1) + .withTitle(Strings::TITLE, HeadingLevel::H1) .withContent(ButtonListBuilder() .addButton( Strings::AppState::MainMenu::PLAY, diff --git a/src/lib-app/src/app/AppStateMapRotationWrapper.cpp b/src/lib-app/src/app/AppStateMapRotationWrapper.cpp index 8fc14406..43a40177 100644 --- a/src/lib-app/src/app/AppStateMapRotationWrapper.cpp +++ b/src/lib-app/src/app/AppStateMapRotationWrapper.cpp @@ -1,10 +1,9 @@ #include "GuiBuilder.hpp" +#include #include #include #include -import Resources; - AppStateMapRotationWrapper::AppStateMapRotationWrapper( dgm::App& app, mem::Rc dic, diff --git a/src/lib-app/src/app/AppStatePaused.cpp b/src/lib-app/src/app/AppStatePaused.cpp index 9cdcc891..dd8c3c1e 100644 --- a/src/lib-app/src/app/AppStatePaused.cpp +++ b/src/lib-app/src/app/AppStatePaused.cpp @@ -1,8 +1,7 @@ #include "app/AppStatePaused.hpp" #include "GuiBuilder.hpp" #include "app/AppStateMenuOptions.hpp" - -import AppMessage; +#include "utils/AppMessage.hpp" void AppStatePaused::buildLayoutImpl() { diff --git a/src/lib-app/src/app/AppStateScoreTable.cpp b/src/lib-app/src/app/AppStateScoreTable.cpp index 5cdbb793..defc1fc0 100644 --- a/src/lib-app/src/app/AppStateScoreTable.cpp +++ b/src/lib-app/src/app/AppStateScoreTable.cpp @@ -1,10 +1,9 @@ #include "GuiBuilder.hpp" +#include "utils/AppMessage.hpp" #include #include #include -import AppMessage; - void AppStateScoreTable::input() { sf::Event event; diff --git a/src/lib-app/src/utils/AppMessage.cpp b/src/lib-app/src/utils/AppMessage.cpp new file mode 100644 index 00000000..dc5042c6 --- /dev/null +++ b/src/lib-app/src/utils/AppMessage.cpp @@ -0,0 +1,12 @@ +#include "utils/AppMessage.hpp" + +std::optional deserializeAppMessage(const std::string& str) +{ + if (PopIfNotMainMenu::canDeserializeFrom(str)) + return PopIfNotMainMenu(); + else if (PopIfPause::canDeserializeFrom(str)) + return PopIfPause(); + else if (PopIfNotMapRotationWrapper::canDeserializeFrom(str)) + return PopIfNotMapRotationWrapper(); + return std::nullopt; +} diff --git a/src/lib-audio/include/AudioPlayer.hpp b/src/lib-audio/include/AudioPlayer.hpp index e18e3dda..a7e1498e 100644 --- a/src/lib-audio/include/AudioPlayer.hpp +++ b/src/lib-audio/include/AudioPlayer.hpp @@ -4,10 +4,9 @@ #include #include #pragma warning(pop) -#include #include "AudioPlayerInterface.hpp" - -import Memory; +#include +#include constexpr const unsigned CHANNEL_COUNT = 10; diff --git a/src/lib-defines/include/Configs/Strings.hpp b/src/lib-defines/include/Configs/Strings.hpp index 19c42779..f8a603c4 100644 --- a/src/lib-defines/include/Configs/Strings.hpp +++ b/src/lib-defines/include/Configs/Strings.hpp @@ -160,6 +160,9 @@ namespace Strings RAWSTRING TEXTURES_COUNTRY = "Countryside"; RAWSTRING TEXTURES_NEON = "Neon"; } // namespace Level + + RAWSTRING TITLE = "rend"; + RAWSTRING CAPTITLE = "Rend"; } // namespace Strings #undef RAWSTRING \ No newline at end of file diff --git a/src/lib-editor/include/Commands/CommandHistory.hpp b/src/lib-editor/include/Commands/CommandHistory.hpp index 39a291c8..3d3aeb85 100644 --- a/src/lib-editor/include/Commands/CommandHistory.hpp +++ b/src/lib-editor/include/Commands/CommandHistory.hpp @@ -1,12 +1,10 @@ #pragma once #include "Interfaces/UndoableCommandInterface.hpp" -#include +#include #include -import Memory; - -class CommandHistory final +class [[nodiscard]] CommandHistory final { std::vector> commands; unsigned index = 0; diff --git a/src/lib-editor/include/Commands/CommandQueue.hpp b/src/lib-editor/include/Commands/CommandQueue.hpp index 50d30660..72dfe340 100644 --- a/src/lib-editor/include/Commands/CommandQueue.hpp +++ b/src/lib-editor/include/Commands/CommandQueue.hpp @@ -2,12 +2,11 @@ #include "Commands/CommandHistory.hpp" #include "Interfaces/UndoableCommandInterface.hpp" +#include #include #include -import Memory; - -class CommandQueue final +class [[nodiscard]] CommandQueue final { protected: mem::Rc history; @@ -29,7 +28,7 @@ class CommandQueue final void processAll(); - [[nodiscard]] bool isEmpty() const noexcept + [[nodiscard]] bool isEmpty() const noexcept(noexcept(commands.empty())) { return commands.empty(); } diff --git a/src/lib-editor/include/Commands/SetObjectPropertyCommand.hpp b/src/lib-editor/include/Commands/SetObjectPropertyCommand.hpp index 0c7e4f95..59b8e714 100644 --- a/src/lib-editor/include/Commands/SetObjectPropertyCommand.hpp +++ b/src/lib-editor/include/Commands/SetObjectPropertyCommand.hpp @@ -4,10 +4,9 @@ #include "Interfaces/UndoableCommandInterface.hpp" #include "Utilities/InitGuard.hpp" #include +#include #include -import Memory; - template class SetObjectPropertyCommand : public UndoableCommandInterface { diff --git a/src/lib-editor/include/Commands/SetTileCommand.hpp b/src/lib-editor/include/Commands/SetTileCommand.hpp index 04dcb974..574e0737 100644 --- a/src/lib-editor/include/Commands/SetTileCommand.hpp +++ b/src/lib-editor/include/Commands/SetTileCommand.hpp @@ -4,10 +4,9 @@ #include "Interfaces/UndoableCommandInterface.hpp" #include "LevelMesh/DrawableLeveldMesh.hpp" #include "Utilities/InitGuard.hpp" +#include #include -import Memory; - class SetTileCommand final : public UndoableCommandInterface { protected: diff --git a/src/lib-editor/include/Commands/SetTilePropertyCommand.hpp b/src/lib-editor/include/Commands/SetTilePropertyCommand.hpp index a113a98d..6be976ad 100644 --- a/src/lib-editor/include/Commands/SetTilePropertyCommand.hpp +++ b/src/lib-editor/include/Commands/SetTilePropertyCommand.hpp @@ -3,10 +3,10 @@ #include "Interfaces/UndoableCommandInterface.hpp" #include "LevelMesh/DrawableLeveldMesh.hpp" #include "Utilities/InitGuard.hpp" +#include -import Memory; - -class SetTilePropertyCommand : public UndoableCommandInterface +class [[nodiscard]] SetTilePropertyCommand final + : public UndoableCommandInterface { public: SetTilePropertyCommand( diff --git a/src/lib-editor/include/Dialogs/DialogBase.hpp b/src/lib-editor/include/Dialogs/DialogBase.hpp index 02449daa..4697da4d 100644 --- a/src/lib-editor/include/Dialogs/DialogBase.hpp +++ b/src/lib-editor/include/Dialogs/DialogBase.hpp @@ -1,6 +1,9 @@ #pragma once #include "Gui.hpp" +#include +#include +#include #include #include #include @@ -9,50 +12,46 @@ #include #include -import Memory; -import Literals; -import Error; - -struct OptionInput +struct [[nodiscard]] OptionInput final { std::string label; std::string id; std::string value; }; -struct OptionDeferredInput +struct [[nodiscard]] OptionDeferredInput final { std::string label; std::string id; std::function value; }; -struct OptionInputWithButton +struct [[nodiscard]] OptionInputWithButton final { OptionInput base; std::function buttonCallback = [] {}; }; -struct OptionDeferredInputWithButton +struct [[nodiscard]] OptionDeferredInputWithButton final { OptionDeferredInput base; std::function buttonCallback = [] {}; }; -struct OptionCheckbox +struct [[nodiscard]] OptionCheckbox final { std::string label; std::string id; bool defaultValue = false; }; -struct OptionText +struct [[nodiscard]] OptionText final { std::string text; unsigned rowsToAllocate; }; -struct OptionDropdown +struct [[nodiscard]] OptionDropdown final { std::string label; std::string id; diff --git a/src/lib-editor/include/Dialogs/EditMetadataDialog.hpp b/src/lib-editor/include/Dialogs/EditMetadataDialog.hpp index 18fa255b..51a19566 100644 --- a/src/lib-editor/include/Dialogs/EditMetadataDialog.hpp +++ b/src/lib-editor/include/Dialogs/EditMetadataDialog.hpp @@ -5,8 +5,7 @@ #include "MetadataDialogBase.hpp" #include #include - -import Memory; +#include class [[nodiscard]] EditMetadataDialog final : protected ModernDialogInterface diff --git a/src/lib-editor/include/Dialogs/EditPropertyDialog.hpp b/src/lib-editor/include/Dialogs/EditPropertyDialog.hpp index 17a2cbe6..96a31338 100644 --- a/src/lib-editor/include/Dialogs/EditPropertyDialog.hpp +++ b/src/lib-editor/include/Dialogs/EditPropertyDialog.hpp @@ -5,11 +5,10 @@ #include "Gui.hpp" #include "Interfaces/ToolInterface.hpp" #include "Interfaces/ToolPropertyInterface.hpp" +#include #include -import Memory; - -class EditPropertyDialog final +class [[nodiscard]] EditPropertyDialog final { public: [[nodiscard]] EditPropertyDialog(mem::Rc gui) noexcept : gui(gui) {} diff --git a/src/lib-editor/include/Dialogs/ErrorInfoDialog.hpp b/src/lib-editor/include/Dialogs/ErrorInfoDialog.hpp index 52b80c40..c2c4d68c 100644 --- a/src/lib-editor/include/Dialogs/ErrorInfoDialog.hpp +++ b/src/lib-editor/include/Dialogs/ErrorInfoDialog.hpp @@ -2,8 +2,7 @@ #include "Gui.hpp" #include "Interfaces/DialogInterfaces.hpp" - -import Memory; +#include class [[nodiscard]] ErrorInfoDialog final : public ErrorInfoDialogInterface { diff --git a/src/lib-editor/include/Dialogs/LoadingDialog.hpp b/src/lib-editor/include/Dialogs/LoadingDialog.hpp index d5c75800..a8b62979 100644 --- a/src/lib-editor/include/Dialogs/LoadingDialog.hpp +++ b/src/lib-editor/include/Dialogs/LoadingDialog.hpp @@ -2,8 +2,7 @@ #include "Gui.hpp" #include "Interfaces/DialogInterfaces.hpp" - -import Memory; +#include class [[nodiscard]] LoadingDialog final { diff --git a/src/lib-editor/include/Dialogs/NewLevelDialog.hpp b/src/lib-editor/include/Dialogs/NewLevelDialog.hpp index 8a362211..af26aa8e 100644 --- a/src/lib-editor/include/Dialogs/NewLevelDialog.hpp +++ b/src/lib-editor/include/Dialogs/NewLevelDialog.hpp @@ -3,11 +3,10 @@ #include "DialogBase.hpp" #include "MetadataDialogBase.hpp" #include +#include #include #include -import Memory; - class [[nodiscard]] ModernNewLevelDialog final : public ModernDialogInterface , public MetadataDialogBase diff --git a/src/lib-editor/include/Editor/Editor.hpp b/src/lib-editor/include/Editor/Editor.hpp index 22cc2ab5..37e72a2f 100644 --- a/src/lib-editor/include/Editor/Editor.hpp +++ b/src/lib-editor/include/Editor/Editor.hpp @@ -15,11 +15,10 @@ #include "Tools/ToolItem.hpp" #include "Tools/ToolMesh.hpp" #include +#include #include #include -import Memory; - class [[nodiscard]] Editor final : public EditorInterface { public: diff --git a/src/lib-editor/include/Editor/EditorStateManager.hpp b/src/lib-editor/include/Editor/EditorStateManager.hpp index 8882c1ed..31cd3228 100644 --- a/src/lib-editor/include/Editor/EditorStateManager.hpp +++ b/src/lib-editor/include/Editor/EditorStateManager.hpp @@ -2,13 +2,12 @@ #include "Editor/EditorState.hpp" #include "Interfaces/ToolInterface.hpp" +#include #include #include #include -import Memory; - -class EditorStateManager +class [[nodiscard]] EditorStateManager final { private: std::map> statesToTools; diff --git a/src/lib-editor/include/Interfaces/DialogInterfaces.hpp b/src/lib-editor/include/Interfaces/DialogInterfaces.hpp index cd422c5a..13f1cab6 100644 --- a/src/lib-editor/include/Interfaces/DialogInterfaces.hpp +++ b/src/lib-editor/include/Interfaces/DialogInterfaces.hpp @@ -1,13 +1,12 @@ #pragma once #include "Dialogs/DialogBase.hpp" +#include #include #include #include -import Memory; - -enum class UserChoice +enum class [[nodiscard]] UserChoice { Confirmed = 0, Denied, diff --git a/src/lib-editor/include/Interfaces/SidebarUserInterface.hpp b/src/lib-editor/include/Interfaces/SidebarUserInterface.hpp index 0aa0d27b..72ae75a9 100644 --- a/src/lib-editor/include/Interfaces/SidebarUserInterface.hpp +++ b/src/lib-editor/include/Interfaces/SidebarUserInterface.hpp @@ -1,12 +1,11 @@ #pragma once #include "Gui.hpp" +#include #include #include -import Memory; - -class SidebarUserInterface +class [[nodiscard]] SidebarUserInterface { public: SidebarUserInterface(mem::Rc gui) noexcept : gui(gui) {} diff --git a/src/lib-editor/include/Interfaces/ToolInterface.hpp b/src/lib-editor/include/Interfaces/ToolInterface.hpp index a20274b8..4a634bc4 100644 --- a/src/lib-editor/include/Interfaces/ToolInterface.hpp +++ b/src/lib-editor/include/Interfaces/ToolInterface.hpp @@ -7,6 +7,7 @@ #include "Interfaces/ToolPropertyInterface.hpp" #include "Utilities/Rect.hpp" #include +#include #include #include #include @@ -14,8 +15,6 @@ #include #include -import Error; - using ExpectedPropertyPtr = std::expected, BaseError>; diff --git a/src/lib-editor/include/Interfaces/UndoableCommandInterface.hpp b/src/lib-editor/include/Interfaces/UndoableCommandInterface.hpp index 362decf5..aa56feb6 100644 --- a/src/lib-editor/include/Interfaces/UndoableCommandInterface.hpp +++ b/src/lib-editor/include/Interfaces/UndoableCommandInterface.hpp @@ -1,10 +1,9 @@ #pragma once #include "Interfaces/CommandInterface.hpp" +#include -import Memory; - -class UndoableCommandInterface : public CommandInterface +class [[nodiscard]] UndoableCommandInterface : public CommandInterface { public: [[nodiscard]] virtual mem::Box getInverse() const = 0; diff --git a/src/lib-editor/include/Tools/SidebarUserItem.hpp b/src/lib-editor/include/Tools/SidebarUserItem.hpp index 936e094d..f66ea5a1 100644 --- a/src/lib-editor/include/Tools/SidebarUserItem.hpp +++ b/src/lib-editor/include/Tools/SidebarUserItem.hpp @@ -3,6 +3,7 @@ #include "Gui.hpp" #include "Tools/SidebarUserWithSprites.hpp" #include +#include #include #include #include @@ -10,12 +11,10 @@ #include #include -import Memory; - -class SidebarUserItem : public SidebarUserWithSprites +class [[nodiscard]] SidebarUserItem final : public SidebarUserWithSprites { public: - struct ItemRenderData + struct [[nodiscard]] ItemRenderData final { sf::Texture texture; tgui::Texture guiTexture; @@ -23,7 +22,7 @@ class SidebarUserItem : public SidebarUserWithSprites sf::Sprite sprite; }; - struct PathRectPair + struct [[nodiscard]] PathRectPair final { std::filesystem::path texturePath; sf::IntRect clip; diff --git a/src/lib-editor/include/Tools/SidebarUserWithSprites.hpp b/src/lib-editor/include/Tools/SidebarUserWithSprites.hpp index 7ef7f1db..689da499 100644 --- a/src/lib-editor/include/Tools/SidebarUserWithSprites.hpp +++ b/src/lib-editor/include/Tools/SidebarUserWithSprites.hpp @@ -3,13 +3,12 @@ #include "Gui.hpp" #include "Interfaces/SidebarUserInterface.hpp" #include "Tools/ToolPenHistory.hpp" +#include -import Memory; - -class SidebarUserWithSprites : public SidebarUserInterface +class [[nodiscard]] SidebarUserWithSprites : public SidebarUserInterface { public: - SidebarUserWithSprites(mem::Rc gui) noexcept + explicit SidebarUserWithSprites(mem::Rc gui) noexcept : SidebarUserInterface(gui) { } diff --git a/src/lib-editor/src/Dialogs/LoadLevelDialog.cpp b/src/lib-editor/src/Dialogs/LoadLevelDialog.cpp index bcc719e3..72a1ca83 100644 --- a/src/lib-editor/src/Dialogs/LoadLevelDialog.cpp +++ b/src/lib-editor/src/Dialogs/LoadLevelDialog.cpp @@ -1,8 +1,7 @@ #include "Dialogs/LoadLevelDialog.hpp" #include "Configs/Strings.hpp" #include "GuiBuilder.hpp" - -import Resources; +#include constexpr const char* SELECT_PACK_ID = "SelectPackId"; constexpr const char* SELECT_LEVEL_ID = "SelectLevelId"; diff --git a/src/lib-editor/src/Dialogs/SaveLevelDialog.cpp b/src/lib-editor/src/Dialogs/SaveLevelDialog.cpp index 49fb6735..9e56c029 100644 --- a/src/lib-editor/src/Dialogs/SaveLevelDialog.cpp +++ b/src/lib-editor/src/Dialogs/SaveLevelDialog.cpp @@ -1,12 +1,11 @@ #include "Dialogs/SaveLevelDialog.hpp" #include "Configs/Strings.hpp" #include "GuiBuilder.hpp" +#include constexpr const char* PACK_NAME_ID = "PackNameId"; constexpr const char* LEVEL_NAME_ID = "LevelNameId"; -import Resources; - NewSaveLevelDialog::NewSaveLevelDialog( mem::Rc gui, const std::filesystem::path& levelsDir) : ModernDialogInterface( diff --git a/src/lib-editor/src/Editor/Editor.cpp b/src/lib-editor/src/Editor/Editor.cpp index 98f7512a..9d796eec 100644 --- a/src/lib-editor/src/Editor/Editor.cpp +++ b/src/lib-editor/src/Editor/Editor.cpp @@ -4,6 +4,8 @@ #include "Configs/Strings.hpp" #include "JsonHelper.hpp" #include "Utilities/Utilities.hpp" +#include +#include #include #include @@ -17,9 +19,6 @@ const std::vector DEFAULT_BLOCKS = { false, false, false, false, true, true, true, true, true, true, true, true }; -import TexturePath; -import Resources; - Editor::Editor( mem::Rc _gui, tgui::CanvasSFML::Ptr& _canvas, diff --git a/src/lib-game/include/GameLoop.hpp b/src/lib-game/include/GameLoop.hpp index 35f9cd6f..91da3f39 100644 --- a/src/lib-game/include/GameLoop.hpp +++ b/src/lib-game/include/GameLoop.hpp @@ -2,6 +2,7 @@ #include "AudioPlayer.hpp" #include +#include #include #include #include @@ -12,8 +13,6 @@ #include #include -import Memory; - class [[nodiscard]] GameLoop final { public: diff --git a/src/lib-game/src/ai/AiEnums.ixx b/src/lib-game/include/ai/AiEnums.hpp similarity index 87% rename from src/lib-game/src/ai/AiEnums.ixx rename to src/lib-game/include/ai/AiEnums.hpp index 6c18a529..78195b51 100644 --- a/src/lib-game/src/ai/AiEnums.ixx +++ b/src/lib-game/include/ai/AiEnums.hpp @@ -1,13 +1,18 @@ -module; +#pragma once #include #include -export module AiEnums; - -export enum class AiTopState { BootstrapAlive, Alive, BootstrapDead, Dead }; +enum class [[nodiscard]] AiTopState +{ + BootstrapAlive, + Alive, + BootstrapDead, + Dead +}; -export enum class AiState { +enum class [[nodiscard]] AiState +{ ChoosingGatherLocation, Gathering, GatheringAfterHurt, @@ -37,14 +42,14 @@ export enum class AiState { ExecutingDelayedTransition, }; -export const std::map TOP_STATES_TO_STRING = { +const std::map TOP_STATES_TO_STRING = { { AiTopState::BootstrapAlive, "BootstrapAlive" }, { AiTopState::Alive, "Alive" }, { AiTopState::BootstrapDead, "BootstrapDead" }, { AiTopState::Dead, "Dead" } }; -export const std::map AI_STATE_TO_STRING = { +const std::map AI_STATE_TO_STRING = { { AiState::ChoosingGatherLocation, "ChoosingGatherLocation" }, { AiState::Gathering, "Gathering" }, { AiState::GatheringAfterHurt, "GatheringAfterHurt" }, @@ -69,7 +74,8 @@ export const std::map AI_STATE_TO_STRING = { { AiState::ExecutingDelayedTransition, "ExecutingDelayedTransition" }, }; -export enum class AiPersonality { +enum class [[nodiscard]] AiPersonality +{ Default, Tank, // ignores hurt Flash, // no targetting timer, diff --git a/src/lib-game/src/ai/UtilityAi.ixx b/src/lib-game/include/ai/UtilityAi.hpp similarity index 97% rename from src/lib-game/src/ai/UtilityAi.ixx rename to src/lib-game/include/ai/UtilityAi.hpp index 58dcbec4..dd5bd61e 100644 --- a/src/lib-game/src/ai/UtilityAi.ixx +++ b/src/lib-game/include/ai/UtilityAi.hpp @@ -1,13 +1,11 @@ -module; +#pragma once #include #include #include #include -export module UtilityAi; - -export class UtilityAi +class UtilityAi { public: [[nodiscard]] static int getPickupScore( diff --git a/src/lib-game/include/builder/LightmapBuilder.hpp b/src/lib-game/include/builder/LightmapBuilder.hpp index c03025a4..1228c818 100644 --- a/src/lib-game/include/builder/LightmapBuilder.hpp +++ b/src/lib-game/include/builder/LightmapBuilder.hpp @@ -8,7 +8,7 @@ #include #include -struct LightPoint +struct [[nodiscard]] LightPoint final { MeshItrType x, y; LightType lightLevel; diff --git a/src/lib-game/include/core/Constants.hpp b/src/lib-game/include/core/Constants.hpp index 1b5345a5..414f9213 100644 --- a/src/lib-game/include/core/Constants.hpp +++ b/src/lib-game/include/core/Constants.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -9,8 +10,6 @@ #include #include -import Literals; - // Movement constinit const float PLAYER_RADIAL_SPEED = 88.f; // degrees per second constinit const float PROJECTILE_FORWARD_SPEED = 108.f; diff --git a/src/lib-game/include/core/EntityDefinitionTypes.hpp b/src/lib-game/include/core/EntityDefinitionTypes.hpp index 82f1eb36..27745f7e 100644 --- a/src/lib-game/include/core/EntityDefinitionTypes.hpp +++ b/src/lib-game/include/core/EntityDefinitionTypes.hpp @@ -1,11 +1,10 @@ #pragma once +#include #include #include -import Literals; - -struct Script +struct [[nodiscard]] Script final { ScriptId id = ScriptId::NoAction; const std::string sound = ""; @@ -15,7 +14,7 @@ struct Script int damage = 0; }; -struct AnimationFrame +struct [[nodiscard]] AnimationFrame final { SpriteId spriteId = SpriteId::ErrorRender; std::size_t duration = 10; // in ticks @@ -24,7 +23,7 @@ struct AnimationFrame using AnimationClip = std::vector; -struct AnimationState +struct [[nodiscard]] AnimationState final { AnimationClip clip; AnimationStateId transition = AnimationStateId::Idle; @@ -32,7 +31,7 @@ struct AnimationState using EntityStates = std::map; -struct EntityProperties +struct [[nodiscard]] EntityProperties final { float radius = 0_px; float speed = 0.f; diff --git a/src/lib-game/include/core/EntityDefinitions.hpp b/src/lib-game/include/core/EntityDefinitions.hpp index 0e254453..bdc6921d 100644 --- a/src/lib-game/include/core/EntityDefinitions.hpp +++ b/src/lib-game/include/core/EntityDefinitions.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include diff --git a/src/lib-game/include/core/Enums.hpp b/src/lib-game/include/core/Enums.hpp index 98563125..401cdc62 100644 --- a/src/lib-game/include/core/Enums.hpp +++ b/src/lib-game/include/core/Enums.hpp @@ -1,6 +1,6 @@ #pragma once -import ; +#include #include #include #include diff --git a/src/lib-game/include/core/Scene.hpp b/src/lib-game/include/core/Scene.hpp index 9fe6f0d5..ae65024d 100644 --- a/src/lib-game/include/core/Scene.hpp +++ b/src/lib-game/include/core/Scene.hpp @@ -3,6 +3,8 @@ #include "utils/HudMessage.hpp" #include #include +#include +#include #include #include #include @@ -14,16 +16,13 @@ #include #include -import Memory; -import AiEnums; - -struct HitscanResult +struct [[nodiscard]] HitscanResult final { sf::Vector2f impactPosition; std::optional impactedEntityIdx = std::nullopt; }; -struct AnimationContext +struct [[nodiscard]] AnimationContext final { SpriteId spriteClipIndex; AnimationStateId animationStateId = AnimationStateId::Idle; @@ -32,7 +31,7 @@ struct AnimationContext lastAnimationUpdate; // number of ticks since last animation update }; -struct Entity +struct [[nodiscard]] Entity final { EntityType typeId; AnimationContext animationContext; diff --git a/src/lib-game/include/engine/AiEngine.hpp b/src/lib-game/include/engine/AiEngine.hpp index 11c6321d..b73f9cfe 100644 --- a/src/lib-game/include/engine/AiEngine.hpp +++ b/src/lib-game/include/engine/AiEngine.hpp @@ -1,14 +1,14 @@ #pragma once +#include "ai/AiEnums.hpp" #include +#include #include #include #include #include -import Memory; - -class AiEngine final +class [[nodiscard]] AiEngine final { public: [[nodiscard]] AiEngine(Scene& scene); diff --git a/src/lib-game/include/engine/AnimationEngine.hpp b/src/lib-game/include/engine/AnimationEngine.hpp index e3cd9130..79499e9b 100644 --- a/src/lib-game/include/engine/AnimationEngine.hpp +++ b/src/lib-game/include/engine/AnimationEngine.hpp @@ -1,14 +1,13 @@ #pragma once +#include #include #include #include #include #include -import Memory; - -class AnimationEngine final : public EngineCommonBase +class [[nodiscard]] AnimationEngine final : public EngineCommonBase { public: [[nodiscard]] AnimationEngine( diff --git a/src/lib-game/include/engine/AudioEngine.hpp b/src/lib-game/include/engine/AudioEngine.hpp index ccf60b25..57cf1052 100644 --- a/src/lib-game/include/engine/AudioEngine.hpp +++ b/src/lib-game/include/engine/AudioEngine.hpp @@ -3,11 +3,10 @@ #include "AudioPlayerInterface.hpp" #include "events/AudioEvents.hpp" #include +#include #include -import Memory; - -class AudioEngine final +class [[nodiscard]] AudioEngine final { public: [[nodiscard]] AudioEngine( diff --git a/src/lib-game/include/engine/EngineCommonBase.hpp b/src/lib-game/include/engine/EngineCommonBase.hpp index d1c83f95..d11d6e63 100644 --- a/src/lib-game/include/engine/EngineCommonBase.hpp +++ b/src/lib-game/include/engine/EngineCommonBase.hpp @@ -2,10 +2,10 @@ #include -class EngineCommonBase +class [[nodiscard]] EngineCommonBase { public: - EngineCommonBase(Scene& scene) noexcept : scene(scene) {} + explicit EngineCommonBase(Scene& scene) noexcept : scene(scene) {} virtual ~EngineCommonBase() = default; diff --git a/src/lib-game/include/engine/GameRulesEngine.hpp b/src/lib-game/include/engine/GameRulesEngine.hpp index ff037075..c488022d 100644 --- a/src/lib-game/include/engine/GameRulesEngine.hpp +++ b/src/lib-game/include/engine/GameRulesEngine.hpp @@ -4,19 +4,18 @@ #include "core/Types.hpp" #include "events/GameRuleEvents.hpp" #include +#include #include #include -import Memory; - -struct GiveResult +struct [[nodiscard]] GiveResult final { bool given = true; bool removePickup = true; bool playSound = true; }; -class GameRulesEngine final +class [[nodiscard]] GameRulesEngine final { public: [[nodiscard]] GameRulesEngine( diff --git a/src/lib-game/include/engine/PhysicsEngine.hpp b/src/lib-game/include/engine/PhysicsEngine.hpp index bc10e4f5..fd1633b5 100644 --- a/src/lib-game/include/engine/PhysicsEngine.hpp +++ b/src/lib-game/include/engine/PhysicsEngine.hpp @@ -2,12 +2,11 @@ #include "core/Scene.hpp" #include +#include #include #include -import Memory; - -class PhysicsEngine final +class [[nodiscard]] PhysicsEngine final { public: [[nodiscard]] PhysicsEngine( diff --git a/src/lib-game/include/engine/RenderingEngine.hpp b/src/lib-game/include/engine/RenderingEngine.hpp index 5996ebd1..4d62e7dc 100644 --- a/src/lib-game/include/engine/RenderingEngine.hpp +++ b/src/lib-game/include/engine/RenderingEngine.hpp @@ -6,25 +6,24 @@ #include "render/Raycaster.hpp" #include #include +#include -import Memory; - -struct ClippableTexture +struct [[nodiscard]] ClippableTexture final { const sf::Texture& texture; dgm::Clip clipping; }; -struct ClippableRect +struct [[nodiscard]] ClippableRect final { sf::RectangleShape sprite; dgm::Clip clipping; }; -class RenderingEngine final +class [[nodiscard]] RenderingEngine final { public: - [[nodiscard]] RenderingEngine( + RenderingEngine( const DisplayOptions& settings, const dgm::ResourceManager& resmgr, Scene& scene); diff --git a/src/lib-game/include/utils/RollbackManager.hpp b/src/lib-game/include/utils/RollbackManager.hpp index 968de2ba..149056d7 100644 --- a/src/lib-game/include/utils/RollbackManager.hpp +++ b/src/lib-game/include/utils/RollbackManager.hpp @@ -1,11 +1,10 @@ #pragma once +#include #include #include #include -import Error; - template class [[nodiscard]] RollbackManager final { diff --git a/src/lib-game/src/engine/AiEngine.cpp b/src/lib-game/src/engine/AiEngine.cpp index eecf4670..d9cb9952 100644 --- a/src/lib-game/src/engine/AiEngine.cpp +++ b/src/lib-game/src/engine/AiEngine.cpp @@ -1,9 +1,8 @@ +#include #include #include #include -import UtilityAi; - void AiEngine::update(const float deltaTime) { for (auto&& state : scene.playerStates) diff --git a/src/lib-game/src/engine/GameRulesEngine.cpp b/src/lib-game/src/engine/GameRulesEngine.cpp index fbc5b095..4d468e9d 100644 --- a/src/lib-game/src/engine/GameRulesEngine.cpp +++ b/src/lib-game/src/engine/GameRulesEngine.cpp @@ -1,14 +1,13 @@ #include "engine/GameRulesEngine.hpp" #include "events/EventQueue.hpp" #include +#include #include #include #include #pragma region EventHandling -import CoreTypes; - void GameRulesEngine::operator()(const PickablePickedUpGameEvent& e) { scene.markers.emplaceBack(MarkerItemRespawner { diff --git a/src/lib-game/src/engine/RenderingEngine.cpp b/src/lib-game/src/engine/RenderingEngine.cpp index a141917b..900c2d24 100644 --- a/src/lib-game/src/engine/RenderingEngine.cpp +++ b/src/lib-game/src/engine/RenderingEngine.cpp @@ -2,14 +2,13 @@ #include "builder/VertexArrayBuilder.hpp" #include #include +#include #include #include #include #include #include -import TexturePath; - [[nodiscard]] static std::pair getRotatedSpriteClipId( const sf::Vector2f& cameraDir, const sf::Vector2f& thingDir, diff --git a/src/lib-gui-builder/include/Gui.hpp b/src/lib-gui-builder/include/Gui.hpp index 6a6d15c6..55e9dde6 100644 --- a/src/lib-gui-builder/include/Gui.hpp +++ b/src/lib-gui-builder/include/Gui.hpp @@ -40,6 +40,11 @@ class [[nodiscard]] Gui final gui.draw(); } + void removeAllWidgets() + { + gui.removeAllWidgets(); + } + public: tgui::Gui gui; std::shared_ptr theme = tgui::Theme::create(); diff --git a/src/lib-gui-builder/include/WidgetBuilder.hpp b/src/lib-gui-builder/include/WidgetBuilder.hpp index 2ea4a86a..621506f5 100644 --- a/src/lib-gui-builder/include/WidgetBuilder.hpp +++ b/src/lib-gui-builder/include/WidgetBuilder.hpp @@ -1,12 +1,11 @@ #pragma once +#include #include #include #include #include -import Memory; - const tgui::Color PANEL_BACKGROUND_COLOR = tgui::Color(255, 255, 255, 64); class WidgetBuilder final diff --git a/src/lib-memory/.clang-format b/src/lib-memory/.clang-format new file mode 100644 index 00000000..0c2d22c6 --- /dev/null +++ b/src/lib-memory/.clang-format @@ -0,0 +1,75 @@ +Language: Cpp +IndentWidth: 4 +ColumnLimit: '80' +NamespaceIndentation: All +AccessModifierOffset: -4 +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +AlignAfterOpenBracket: 'AlwaysBreak' +BinPackArguments: 'false' +BinPackParameters: 'false' +PointerAlignment: Left +ReferenceAlignment: Pointer +SortIncludes: CaseSensitive +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpacesInAngles: Never +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: WithoutElse +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: Yes +# BreakAfterAttributes: Always +BreakBeforeConceptDeclarations: Always +BreakBeforeBinaryOperators: NonAssignment +CompactNamespaces: false +BreakStringLiterals: true +Cpp11BracedListStyle: false +EmptyLineBeforeAccessModifier: Always +FixNamespaceComments: true +IncludeBlocks: Merge +QualifierAlignment: Left # Left - west const, Right - east const +ReflowComments: true +RequiresClausePosition: OwnLine +SeparateDefinitionBlocks: Always +PackConstructorInitializers: NextLine #NextLineOnly is better +BreakConstructorInitializers: BeforeComma +BreakInheritanceList: BeforeComma +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: true + AfterControlStatement: true + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: true + BeforeCatch: true + BeforeElse: true + BeforeLambdaBody: true + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true + +# Unsupported in MSVC 17.5.2 +# LanguageStandard: Cpp20 +# SpaceBeforeJsonColon: false +# QualifierOrder: ['inline', 'static', 'constexpr', 'volatile', 'const', 'type', ] +# RequiresExpressionIndentation: OuterScope +# NextLineOnly for PackConstructorInitializers +# BreakAfterAttributes: Always diff --git a/src/lib-memory/CMakeLists.txt b/src/lib-memory/CMakeLists.txt index 73aba109..236dca88 100644 --- a/src/lib-memory/CMakeLists.txt +++ b/src/lib-memory/CMakeLists.txt @@ -1,9 +1,18 @@ cmake_minimum_required ( VERSION 3.26 ) +get_latest_clang_format() + project ( lib-memory ) -glob_modules ( SRCS ) +glob_sources_and_headers ( SRCS HDRS ) + +add_library ( + ${PROJECT_NAME} INTERFACE + ${SRCS} ${HDRS} + "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format" +) -add_library ( ${PROJECT_NAME} ${SRCS} ) +target_include_directories ( ${PROJECT_NAME} + INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include" +) -autoset_target_compile_options ( ${PROJECT_NAME} FALSE ) diff --git a/src/lib-memory/src/Box.ixx b/src/lib-memory/include/Box.hpp similarity index 97% rename from src/lib-memory/src/Box.ixx rename to src/lib-memory/include/Box.hpp index da591138..f786a692 100644 --- a/src/lib-memory/src/Box.ixx +++ b/src/lib-memory/include/Box.hpp @@ -1,11 +1,9 @@ -module; +#pragma once #include #include -export module Box; - -export namespace mem +namespace mem { /** * Memory safe version of std::unique_ptr diff --git a/src/lib-memory/include/Memory.hpp b/src/lib-memory/include/Memory.hpp new file mode 100644 index 00000000..c65953e8 --- /dev/null +++ b/src/lib-memory/include/Memory.hpp @@ -0,0 +1,5 @@ +#pragma once + +#include "Box.hpp" +#include "Rc.hpp" +#include "Traits.hpp" diff --git a/src/lib-memory/src/Rc.ixx b/src/lib-memory/include/Rc.hpp similarity index 97% rename from src/lib-memory/src/Rc.ixx rename to src/lib-memory/include/Rc.hpp index c38593be..505f9407 100644 --- a/src/lib-memory/src/Rc.ixx +++ b/src/lib-memory/include/Rc.hpp @@ -1,12 +1,10 @@ -module; +#pragma once #include #include #include -export module Rc; - -export namespace mem +namespace mem { /** * \brief Single-threaded smart pointer with following properties: @@ -23,7 +21,7 @@ export namespace mem * * Null dereference */ template - class Rc + class [[nodiscard]] Rc final { public: Rc(std::nullptr_t) = delete; diff --git a/src/lib-memory/src/Traits.ixx b/src/lib-memory/include/Traits.hpp similarity index 69% rename from src/lib-memory/src/Traits.ixx rename to src/lib-memory/include/Traits.hpp index e723d01b..bc9bd40c 100644 --- a/src/lib-memory/src/Traits.ixx +++ b/src/lib-memory/include/Traits.hpp @@ -1,12 +1,10 @@ -module; +#pragma once #include +#include "Box.hpp" +#include "Rc.hpp" -export module Traits; - -import Box; - -export namespace mem +namespace mem { template struct IsBox : std::false_type @@ -21,6 +19,6 @@ export namespace mem {}; template - struct IsRc> : std::true_type + struct IsRc> : std::true_type {}; } diff --git a/src/lib-memory/src/Memory.ixx b/src/lib-memory/src/Memory.ixx deleted file mode 100644 index 25a6b845..00000000 --- a/src/lib-memory/src/Memory.ixx +++ /dev/null @@ -1,5 +0,0 @@ -export module Memory; - -export import Box; -export import Rc; -export import Traits; diff --git a/src/lib-misc/CMakeLists.txt b/src/lib-misc/CMakeLists.txt index 1f058e41..cd9c63f8 100644 --- a/src/lib-misc/CMakeLists.txt +++ b/src/lib-misc/CMakeLists.txt @@ -1,16 +1,17 @@ -cmake_minimum_required ( VERSION 3.19 ) +cmake_minimum_required ( VERSION 3.26 ) -file ( - COPY "${CMAKE_BINARY_DIR}/.clang-format" - DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}" -) +get_latest_clang_format() project ( lib-misc ) -glob_modules ( SRCS ) - -add_library ( ${PROJECT_NAME} ${SRCS} ) +glob_sources_and_headers ( SRCS HDRS ) -target_link_libraries ( ${PROJECT_NAME} ) +add_library ( + ${PROJECT_NAME} INTERFACE + ${SRCS} ${HDRS} + "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format" +) -autoset_target_compile_options ( ${PROJECT_NAME} FALSE ) +target_include_directories ( ${PROJECT_NAME} + INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include" +) diff --git a/src/lib-misc/include/CoreTypes.hpp b/src/lib-misc/include/CoreTypes.hpp new file mode 100644 index 00000000..705e17b8 --- /dev/null +++ b/src/lib-misc/include/CoreTypes.hpp @@ -0,0 +1,7 @@ +#pragma once + +template +struct overloaded : Ts... +{ + using Ts::operator()...; +}; diff --git a/src/lib-misc/include/Error.hpp b/src/lib-misc/include/Error.hpp new file mode 100644 index 00000000..a5971107 --- /dev/null +++ b/src/lib-misc/include/Error.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +// NOTE: This header needs a complete redesign, but not as a part of this project + +class BaseError +{ +}; + +using ErrorMessage = std::string; + +enum class ReturnFlag : bool { + Success = true, + Failure = false, +}; + +using ExpectSuccess = std::expected; diff --git a/src/lib-misc/include/Literals.hpp b/src/lib-misc/include/Literals.hpp new file mode 100644 index 00000000..7076b8dc --- /dev/null +++ b/src/lib-misc/include/Literals.hpp @@ -0,0 +1,50 @@ +#pragma once + +[[nodiscard]] consteval bool operator""_true(const char*, size_t) noexcept +{ + return true; +} + +[[nodiscard]] consteval bool operator""_false(const char*, size_t) noexcept +{ + return false; +} + +[[nodiscard]] consteval auto operator""_upercent( + unsigned long long num) noexcept +{ + return num; +} + +/* +Pixels +*/ +[[nodiscard]] consteval float operator""_px( + unsigned long long value) noexcept +{ + return static_cast(value); +} + +/** + Units Per Second + + Unit of length. Voxels are defined in units and units roughly equate + to pixels. So for 16x16 px textures, voxel is 16x16 units. + */ +[[nodiscard]] consteval float operator""_unitspersec( + unsigned long long value) noexcept +{ + return static_cast(value); +} + +[[nodiscard]] consteval int operator""_damage( + unsigned long long value) noexcept +{ + return static_cast(value); +} + +[[nodiscard]] consteval float operator""_seconds( + unsigned long long value) noexcept +{ + return static_cast(value); +} diff --git a/src/lib-misc/src/CoreTypes.ixx b/src/lib-misc/src/CoreTypes.ixx deleted file mode 100644 index 4df0abc4..00000000 --- a/src/lib-misc/src/CoreTypes.ixx +++ /dev/null @@ -1,10 +0,0 @@ -export module CoreTypes; - -export -{ - template - struct overloaded : Ts... - { - using Ts::operator()...; - }; -} \ No newline at end of file diff --git a/src/lib-misc/src/Error.ixx b/src/lib-misc/src/Error.ixx deleted file mode 100644 index 2c0818b5..00000000 --- a/src/lib-misc/src/Error.ixx +++ /dev/null @@ -1,19 +0,0 @@ -module; - -#include -#include - -export module Error; - -export class BaseError -{ -}; - -export using ErrorMessage = std::string; - -export enum class ReturnFlag : bool { - Success = true, - Failure = false, -}; - -export using ExpectSuccess = std::expected; diff --git a/src/lib-misc/src/Literals.ixx b/src/lib-misc/src/Literals.ixx deleted file mode 100644 index 03e8bbd0..00000000 --- a/src/lib-misc/src/Literals.ixx +++ /dev/null @@ -1,53 +0,0 @@ -export module Literals; - -export -{ - [[nodiscard]] consteval bool operator""_true(const char*, size_t) noexcept - { - return true; - } - - [[nodiscard]] consteval bool operator""_false(const char*, size_t) noexcept - { - return false; - } - - [[nodiscard]] consteval auto operator""_upercent( - unsigned long long num) noexcept - { - return num; - } - - /* - Pixels - */ - [[nodiscard]] consteval float operator""_px( - unsigned long long value) noexcept - { - return static_cast(value); - } - - /** - Units Per Second - - Unit of length. Voxels are defined in units and units roughly equate - to pixels. So for 16x16 px textures, voxel is 16x16 units. - */ - [[nodiscard]] consteval float operator""_unitspersec( - unsigned long long value) noexcept - { - return static_cast(value); - } - - [[nodiscard]] consteval int operator""_damage( - unsigned long long value) noexcept - { - return static_cast(value); - } - - [[nodiscard]] consteval float operator""_seconds( - unsigned long long value) noexcept - { - return static_cast(value); - } -} diff --git a/src/lib-network/include/Client.hpp b/src/lib-network/include/Client.hpp index 539bd465..b21dee63 100644 --- a/src/lib-network/include/Client.hpp +++ b/src/lib-network/include/Client.hpp @@ -4,11 +4,10 @@ #include #pragma warning(pop) #include "ServerMessage.hpp" +#include +#include #include -import Error; -import Memory; - struct PlayerConfig { std::string name; diff --git a/src/lib-network/include/ClientMessage.hpp b/src/lib-network/include/ClientMessage.hpp index ff3f174f..388bc144 100644 --- a/src/lib-network/include/ClientMessage.hpp +++ b/src/lib-network/include/ClientMessage.hpp @@ -1,10 +1,10 @@ #pragma once +#include "ClientMessageType.hpp" +#include "NetworkTypes.hpp" #include #include -#include "ClientMessageType.hpp" - struct [[nodiscard]] ClientMessage final { ClientMessageType type; diff --git a/src/lib-network/include/NetworkTypes.hpp b/src/lib-network/include/NetworkTypes.hpp index 919aa12c..e3715125 100644 --- a/src/lib-network/include/NetworkTypes.hpp +++ b/src/lib-network/include/NetworkTypes.hpp @@ -1,11 +1,10 @@ #pragma once +#include #include #include #include -import Error; - using PlayerIdType = std::uint8_t; using ChecksumType = std::uint64_t; using ExpectedLog = std::expected; diff --git a/src/lib-network/include/Server.hpp b/src/lib-network/include/Server.hpp index dcb78a73..7a2915b4 100644 --- a/src/lib-network/include/Server.hpp +++ b/src/lib-network/include/Server.hpp @@ -4,14 +4,13 @@ #include #include #pragma warning(pop) +#include "ClientMessage.hpp" +#include "ServerMessage.hpp" +#include +#include #include #include #include -#include "ServerMessage.hpp" -#include "ClientMessage.hpp" - -import Error; -import Memory; struct [[nodiscard]] ServerConfiguration final { diff --git a/src/lib-resources/CMakeLists.txt b/src/lib-resources/CMakeLists.txt index 78ce1bb1..77755441 100644 --- a/src/lib-resources/CMakeLists.txt +++ b/src/lib-resources/CMakeLists.txt @@ -1,15 +1,20 @@ cmake_minimum_required ( VERSION 3.19 ) -file ( - COPY "${CMAKE_BINARY_DIR}/.clang-format" - DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}" -) +get_latest_clang_format() project ( lib-resources ) -glob_modules ( SRCS ) +glob_sources_and_headers ( SRCS HDRS ) + +add_library ( + ${PROJECT_NAME} + ${SRCS} ${HDRS} + "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format" +) -add_library ( ${PROJECT_NAME} ${SRCS} ) +target_include_directories ( ${PROJECT_NAME} + PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" +) target_link_libraries ( ${PROJECT_NAME} lib-defines ) diff --git a/src/lib-resources/src/Filesystem.ixx b/src/lib-resources/include/Filesystem.hpp similarity index 92% rename from src/lib-resources/src/Filesystem.ixx rename to src/lib-resources/include/Filesystem.hpp index 7aba9110..72ba2b53 100644 --- a/src/lib-resources/src/Filesystem.ixx +++ b/src/lib-resources/include/Filesystem.hpp @@ -1,12 +1,10 @@ -module; +#pragma once #include #include #include -export module Resources; - -export class Filesystem +class Filesystem { public: static [[nodiscard]] std::filesystem::path getFullLevelPath( @@ -27,4 +25,4 @@ export class Filesystem getEditorConfigPath(const std::filesystem::path& rootDir); static [[nodiscard]] std::filesystem::path getAppdataPath(); -}; \ No newline at end of file +}; diff --git a/src/lib-resources/src/TexturePath.ixx b/src/lib-resources/include/TexturePath.hpp similarity index 88% rename from src/lib-resources/src/TexturePath.ixx rename to src/lib-resources/include/TexturePath.hpp index 8b1dc38d..2fbc3e35 100644 --- a/src/lib-resources/src/TexturePath.ixx +++ b/src/lib-resources/include/TexturePath.hpp @@ -1,12 +1,10 @@ -module; +#pragma once #include #include #include -export module TexturePath; - -export class TexturePath final +class TexturePath final { public: static [[nodiscard]] std::string getTilesetName(TexturePack packId) @@ -28,4 +26,4 @@ export class TexturePath final throw std::runtime_error( "Programmer error: TexturePack id without assigned texture"); } -}; \ No newline at end of file +}; diff --git a/src/lib-resources/src/Filesystem.cpp b/src/lib-resources/src/Filesystem.cpp index 4f2970db..69aed3f5 100644 --- a/src/lib-resources/src/Filesystem.cpp +++ b/src/lib-resources/src/Filesystem.cpp @@ -1,5 +1,4 @@ -import Resources; - +#include "Filesystem.hpp" #include #include #include diff --git a/src/tests/src/CommandHistoryTest.cpp b/src/tests/src/CommandHistoryTest.cpp index deca0b47..a47b7358 100644 --- a/src/tests/src/CommandHistoryTest.cpp +++ b/src/tests/src/CommandHistoryTest.cpp @@ -1,21 +1,22 @@ #include "Commands/CommandHistory.hpp" +#include #include -import Memory; - -struct TestBlackboard +struct [[nodiscard]] TestBlackboard final { unsigned execCalled = 0; unsigned getInverseCalled = 0; }; -class TestCommand : public UndoableCommandInterface +class [[nodiscard]] TestCommand final : public UndoableCommandInterface { protected: TestBlackboard& board; public: - TestCommand(TestBlackboard& testBlackboard) : board(testBlackboard) {} + explicit TestCommand(TestBlackboard& testBlackboard) : board(testBlackboard) + { + } public: void exec() override diff --git a/src/tests/src/EditorStateManager.cpp b/src/tests/src/EditorStateManager.cpp index 4473c551..f7e1c8dc 100644 --- a/src/tests/src/EditorStateManager.cpp +++ b/src/tests/src/EditorStateManager.cpp @@ -2,13 +2,12 @@ #include "TestHelpers/NullCallback.hpp" #include "Tools/LayerController.hpp" #include +#include #include #include #include #include -import Memory; - class ToolMock : public ToolInterface { public: diff --git a/src/tests/src/EditorTest.cpp b/src/tests/src/EditorTest.cpp index 1119af41..b1114ccf 100644 --- a/src/tests/src/EditorTest.cpp +++ b/src/tests/src/EditorTest.cpp @@ -2,13 +2,12 @@ #include "TestHelpers/NullCallback.hpp" #include "TestHelpers/TestAssets.hpp" #include +#include #include #include #include #include -import Memory; - using namespace fakeit; TEST_CASE("[Editor]") diff --git a/src/tests/src/GameLoopTests.cpp b/src/tests/src/GameLoopTests.cpp index e0abea9a..e58bb5a5 100644 --- a/src/tests/src/GameLoopTests.cpp +++ b/src/tests/src/GameLoopTests.cpp @@ -1,5 +1,6 @@ #include "TestHelpers/SceneBuilder.hpp" #include +#include #include #include #include @@ -21,8 +22,6 @@ class [[nodiscard]] AudioEventVisitor final unsigned playedSoundCount = 0; }; -import Memory; - TEST_CASE("[GameRuleEngine]") { auto&& mesh = createDummyMesh(); diff --git a/src/tests/src/RcTest.cpp b/src/tests/src/RcTest.cpp index 1c7e4435..8c25028a 100644 --- a/src/tests/src/RcTest.cpp +++ b/src/tests/src/RcTest.cpp @@ -1,7 +1,6 @@ +#include #include -import Memory; - class Base { public: diff --git a/src/tests/src/ToolItemTest.cpp b/src/tests/src/ToolItemTest.cpp index cc27f858..8339fd51 100644 --- a/src/tests/src/ToolItemTest.cpp +++ b/src/tests/src/ToolItemTest.cpp @@ -2,12 +2,11 @@ #include "TestHelpers/LeveldBuilder.hpp" #include "TestHelpers/TestAssets.hpp" #include "Tools/LayerController.hpp" +#include #include #include #include -import Memory; - LevelD createLevelWithSpawns(unsigned spawnCount) { LevelD lvd; diff --git a/src/tests/src/ToolMeshTest.cpp b/src/tests/src/ToolMeshTest.cpp index f2c0c7e1..abdcc106 100644 --- a/src/tests/src/ToolMeshTest.cpp +++ b/src/tests/src/ToolMeshTest.cpp @@ -4,10 +4,9 @@ #include "TestHelpers/NullCallback.hpp" #include "TestHelpers/TestAssets.hpp" #include "Tools/LayerController.hpp" +#include #include -import Memory; - TEST_CASE("[ToolMesh]") { auto&& shortcutEngine = mem::Rc { [] { return false; } };