diff --git a/.clang-tidy b/.clang-tidy index 221320bdd..e5f9bf126 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1 +1,27 @@ -Checks: '*,-misc-unused-parameters,-modernize-use-trailing-return-type,-readability-named-parameter,-readability-convert-member-functions-to-static,-readability-uppercase-literal-suffix,-readability-magic-numbers,-hicpp-uppercase-literal-suffix,-hicpp-signed-bitwise,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-owning-memory,-cppcoreguidelines-pro-type-union-access,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-non-private-member-variables-in-classes,-fuchsia-*,-google-runtime-references,-llvmlibc-*,-llvm-header-guard' +Checks: > + *, + -altera-*, + -cppcoreguidelines-avoid-magic-numbers, + -cppcoreguidelines-avoid-non-const-global-variables, + -cppcoreguidelines-owning-memory, + -cppcoreguidelines-pro-bounds-constant-array-index, + -cppcoreguidelines-pro-bounds-pointer-arithmetic, + -cppcoreguidelines-pro-type-reinterpret-cast, + -cppcoreguidelines-pro-type-static-cast-downcast, + -cppcoreguidelines-pro-type-union-access, + -cppcoreguidelines-pro-type-vararg, + -fuchsia-*, + -google-runtime-references, + -hicpp-*, + -llvm-header-guard, + -llvmlibc-*, + -misc-unused-parameters, + -modernize-use-trailing-return-type, + -readability-convert-member-functions-to-static, + -readability-function-cognitive-complexity, + -readability-magic-numbers, + -readability-named-parameter, + -readability-uppercase-literal-suffix, +CheckOptions: + - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: '1' \ No newline at end of file diff --git a/Runtime/ImGuiConsole.cpp b/Runtime/ImGuiConsole.cpp index 831e141cb..a301cf990 100644 --- a/Runtime/ImGuiConsole.cpp +++ b/Runtime/ImGuiConsole.cpp @@ -1,10 +1,10 @@ #include "ImGuiConsole.hpp" +#include "../version.h" +#include "MP1/MP1.hpp" #include "Runtime/CStateManager.hpp" #include "Runtime/GameGlobalObjects.hpp" #include "Runtime/World/CPlayer.hpp" -#include "MP1/MP1.hpp" -#include "../version.h" #include "ImGuiEngine.hpp" @@ -19,7 +19,7 @@ void ImGuiStringViewText(std::string_view text) { ImGui::TextUnformatted(text.be void ImGuiTextCenter(std::string_view text) { ImGui::NewLine(); - float fontSize = ImGui::GetFontSize() * text.size() / 2; + float fontSize = ImGui::GetFontSize() * float(text.size()) / 2; ImGui::SameLine(ImGui::GetWindowSize().x / 2 - fontSize + fontSize / 2); ImGuiStringViewText(text); } @@ -34,7 +34,7 @@ static bool ContainsCaseInsensitive(std::string_view str, std::string_view val) [](char ch1, char ch2) { return std::toupper(ch1) == std::toupper(ch2); }) != str.end(); } -static const std::vector> ListWorlds() { +static std::vector> ListWorlds() { std::vector> worlds; for (const auto& pak : g_ResFactory->GetResLoader()->GetPaks()) { if (!pak->IsWorldPak()) { @@ -61,7 +61,7 @@ static const std::vector> ListWorlds() { return worlds; } -static const std::vector> ListAreas(CAssetId worldId) { +static std::vector> ListAreas(CAssetId worldId) { std::vector> areas; const auto& world = dummyWorlds[worldId]; for (int i = 0; i < world->IGetAreaCount(); ++i) { @@ -93,7 +93,7 @@ static void Warp(const CAssetId worldId, TAreaId aId) { g_StateManager->SetWarping(true); g_StateManager->SetShouldQuitGame(true); } else { - // TODO warp from menu? + // TODO(encounter): warp from menu? } } @@ -419,10 +419,10 @@ void ImGuiConsole::ShowDebugOverlay() { ImVec2 windowPos; ImVec2 windowPosPivot; constexpr float padding = 10.0f; - windowPos.x = (m_debugOverlayCorner & 1) ? (workPos.x + workSize.x - padding) : (workPos.x + padding); - windowPos.y = (m_debugOverlayCorner & 2) ? (workPos.y + workSize.y - padding) : (workPos.y + padding); - windowPosPivot.x = (m_debugOverlayCorner & 1) ? 1.0f : 0.0f; - windowPosPivot.y = (m_debugOverlayCorner & 2) ? 1.0f : 0.0f; + windowPos.x = (m_debugOverlayCorner & 1) != 0 ? (workPos.x + workSize.x - padding) : (workPos.x + padding); + windowPos.y = (m_debugOverlayCorner & 2) != 0 ? (workPos.y + workSize.y - padding) : (workPos.y + padding); + windowPosPivot.x = (m_debugOverlayCorner & 1) != 0 ? 1.0f : 0.0f; + windowPosPivot.y = (m_debugOverlayCorner & 2) != 0 ? 1.0f : 0.0f; ImGui::SetNextWindowPos(windowPos, ImGuiCond_Always, windowPosPivot); windowFlags |= ImGuiWindowFlags_NoMove; } @@ -446,7 +446,7 @@ void ImGuiConsole::ShowDebugOverlay() { } double igt = g_GameState->GetTotalPlayTime(); u32 ms = u64(igt * 1000) % 1000; - auto pt = std::div(igt, 3600); + auto pt = std::div(int(igt), 3600); ImGuiStringViewText( fmt::format(FMT_STRING("Play Time: {:02d}:{:02d}:{:02d}.{:03d}\n"), pt.quot, pt.rem / 60, pt.rem % 60, ms)); hasPrevious = true; @@ -511,7 +511,7 @@ void ImGuiConsole::ShowDebugOverlay() { const auto& layerStates = g_GameState->CurrentWorldState().GetLayerState(); std::string layerBits; u32 totalActive = 0; - for (u32 i = 0; i < layerStates->GetAreaLayerCount(aId); ++i) { + for (int i = 0; i < layerStates->GetAreaLayerCount(aId); ++i) { if (layerStates->IsLayerActive(aId, i)) { ++totalActive; layerBits += "1"; diff --git a/Runtime/ImGuiConsole.hpp b/Runtime/ImGuiConsole.hpp index d3b1aa3bb..bb504243a 100644 --- a/Runtime/ImGuiConsole.hpp +++ b/Runtime/ImGuiConsole.hpp @@ -26,12 +26,7 @@ struct ImGuiEntityEntry { ImGuiEntityEntry(TUniqueId uid, CEntity* ent, std::string_view type, std::string_view name, bool active) : uid(uid), ent(ent), type(type), name(name), active(active) {} - [[nodiscard]] CActor* AsActor() const { - if (isActor) { - return static_cast(ent); - } - return nullptr; - } + [[nodiscard]] CActor* AsActor() const { return isActor ? static_cast(ent) : nullptr; } }; class ImGuiConsole { diff --git a/imgui/ImGuiEngine.cpp b/imgui/ImGuiEngine.cpp index 90bfbc5a5..9602979d0 100644 --- a/imgui/ImGuiEngine.cpp +++ b/imgui/ImGuiEngine.cpp @@ -44,7 +44,7 @@ const char* getClipboardText(void* userData) { static ImVector ClipboardBuf; size_t sz = 0; const auto data = static_cast(userData)->clipboardPaste(boo::EClipboardType::String, sz); - ClipboardBuf.resize(sz); + ClipboardBuf.resize(int(sz)); strncpy(ClipboardBuf.Data, reinterpret_cast(data.get()), sz); return ClipboardBuf.Data; } @@ -93,24 +93,27 @@ void ImGuiEngine::Initialize(boo::IGraphicsDataFactory* factory, boo::IWindow* w io.KeyMap[ImGuiKey_Z] = 'z'; // for text edit CTRL+Z: undo auto* fontData = new uint8_t[NOTO_MONO_FONT_DECOMPRESSED_SZ]; - athena::io::Compression::decompressZlib(NOTO_MONO_FONT, NOTO_MONO_FONT_SZ, fontData, NOTO_MONO_FONT_DECOMPRESSED_SZ); + athena::io::Compression::decompressZlib(static_cast(NOTO_MONO_FONT), atUint32(NOTO_MONO_FONT_SZ), + fontData, NOTO_MONO_FONT_DECOMPRESSED_SZ); - int iconWidth = 0, iconHeight = 0; - auto* metaforceIcon = stbi_load_from_memory(METAFORCE_ICON, METAFORCE_ICON_SZ, &iconWidth, &iconHeight, nullptr, 4); + int iconWidth = 0; + int iconHeight = 0; + auto* metaforceIcon = stbi_load_from_memory(static_cast(METAFORCE_ICON), int(METAFORCE_ICON_SZ), + &iconWidth, &iconHeight, nullptr, 4); int width = 0; int height = 0; unsigned char* pixels = nullptr; ImFontConfig fontConfig{}; fontConfig.FontData = fontData; - fontConfig.FontDataSize = NOTO_MONO_FONT_DECOMPRESSED_SZ; + fontConfig.FontDataSize = int(NOTO_MONO_FONT_DECOMPRESSED_SZ); fontConfig.SizePixels = std::floor(14.f * scale); - snprintf(fontConfig.Name, sizeof(fontConfig.Name), "Noto Mono Regular, %dpx", + snprintf(static_cast(fontConfig.Name), sizeof(fontConfig.Name), "Noto Mono Regular, %dpx", static_cast(fontConfig.SizePixels)); fontNormal = io.Fonts->AddFont(&fontConfig); fontConfig.FontDataOwnedByAtlas = false; // first one took ownership fontConfig.SizePixels = std::floor(24.f * scale); - snprintf(fontConfig.Name, sizeof(fontConfig.Name), "Noto Mono Regular, %dpx", + snprintf(static_cast(fontConfig.Name), sizeof(fontConfig.Name), "Noto Mono Regular, %dpx", static_cast(fontConfig.SizePixels)); fontLarge = io.Fonts->AddFont(&fontConfig); @@ -144,30 +147,29 @@ void ImGuiEngine::Shutdown() { void ImGuiEngine::Begin(float dt, float scale) { ImGuiIO& io = ImGui::GetIO(); io.DeltaTime = dt; - io.DisplaySize.x = static_cast(WindowRect.size[0]); - io.DisplaySize.y = static_cast(WindowRect.size[1]); + io.DisplaySize.x = float(WindowRect.size[0]); + io.DisplaySize.y = float(WindowRect.size[1]); io.DisplayFramebufferScale = ImVec2{scale, scale}; if (Input.m_mouseIn) { - io.MousePos = ImVec2{static_cast(Input.m_mousePos.pixel[0]), - static_cast(WindowRect.size[1] - Input.m_mousePos.pixel[1])}; + io.MousePos = ImVec2{float(Input.m_mousePos.pixel[0]), float(WindowRect.size[1] - Input.m_mousePos.pixel[1])}; } else { io.MousePos = ImVec2{-FLT_MAX, -FLT_MAX}; } - memcpy(io.MouseDown, Input.m_mouseButtons.data(), sizeof(io.MouseDown)); - float scrollDelta = Input.m_scrollDelta.delta[1] / scale; - float scrollDeltaH = Input.m_scrollDelta.delta[0] / scale; + memcpy(static_cast(io.MouseDown), Input.m_mouseButtons.data(), sizeof(io.MouseDown)); + float scrollDelta = float(Input.m_scrollDelta.delta[1]) / scale; + float scrollDeltaH = float(Input.m_scrollDelta.delta[0]) / scale; if (Input.m_scrollDelta.isAccelerated) { scrollDelta /= 10.f; scrollDeltaH /= 10.f; } - io.MouseWheel = static_cast(scrollDelta); - io.MouseWheelH = static_cast(scrollDeltaH); + io.MouseWheel = scrollDelta; + io.MouseWheelH = scrollDeltaH; Input.m_scrollDelta.zeroOut(); io.KeyCtrl = True(Input.m_modifiers & boo::EModifierKey::Ctrl); io.KeyShift = True(Input.m_modifiers & boo::EModifierKey::Shift); io.KeyAlt = True(Input.m_modifiers & boo::EModifierKey::Alt); io.KeySuper = True(Input.m_modifiers & boo::EModifierKey::Command); - memcpy(io.KeysDown, Input.m_keys.data(), sizeof(io.KeysDown)); + memcpy(static_cast(io.KeysDown), Input.m_keys.data(), sizeof(io.KeysDown)); for (const auto c : ImGuiEngine::Input.m_charCodes) { io.AddInputCharacter(c); @@ -310,14 +312,15 @@ void ImGuiEngine::Draw(boo::IGraphicsCommandQueue* gfxQ) { } void ImGuiEngine::BuildShaderDataBindings(boo::IGraphicsDataFactory::Context& ctx) { - boo::ObjToken uniforms[] = {UniformBuffer.get()}; - boo::PipelineStage unistages[] = {boo::PipelineStage::Vertex}; - size_t unioffs[] = {0}; - size_t unisizes[] = {sizeof(Uniform)}; + std::array, 1> uniforms = {UniformBuffer.get()}; + std::array unistages = {boo::PipelineStage::Vertex}; + std::array unioffs{0}; + std::array unisizes{sizeof(Uniform)}; for (int i = 0; i < ImGuiUserTextureID_MAX; ++i) { - boo::ObjToken texs[] = {Textures[i].get()}; - ShaderDataBindings[i] = ctx.newShaderDataBinding(ShaderPipeline, VertexBuffer.get(), nullptr, IndexBuffer.get(), 1, - uniforms, unistages, unioffs, unisizes, 1, texs, nullptr, nullptr); + std::array, 1> texs{Textures[i].get()}; + ShaderDataBindings[i] = ctx.newShaderDataBinding(ShaderPipeline, VertexBuffer.get(), nullptr, IndexBuffer.get(), + uniforms.size(), uniforms.data(), unistages.data(), unioffs.data(), + unisizes.data(), texs.size(), texs.data(), nullptr, nullptr); } }