From 3e73c486a4821eac506a1873b759818c29098352 Mon Sep 17 00:00:00 2001 From: Elhoussine Mehnik Date: Sat, 9 Dec 2023 04:38:02 +0100 Subject: [PATCH] Fix compling errors on various platforms/consoles - Fixed some include paths case sensitive - Fixed CogImguiInputHelper.h including itself - Added missing includes - Added missing forward declarations - Fixed enums forward declarations - Fixed "TCHAR_TO_ANSI" and const char* formatting issues - Fixed "sscanf" on Linux --- .../Cog/Source/CogCommon/Public/CogCommon.h | 2 +- .../CogCommonAllegianceActorInterface.h | 1 + .../CogCommonDebugFilteredActorInterface.h | 1 + .../Public/CogCommonPossessorInterface.h | 1 + .../Source/CogDebug/Private/CogDebugDraw.cpp | 5 +++++ .../CogDebug/Private/CogDebugDrawHelper.cpp | 2 ++ .../Source/CogDebug/Private/CogDebugPlot.cpp | 2 ++ .../CogDebug/Private/CogDebugSettings.cpp | 2 ++ .../CogDebug/Public/CogDebugDrawHelper.h | 6 +++++- .../CogDebug/Public/CogDebugDrawImGui.h | 1 + .../Source/CogDebug/Public/CogDebugMetric.h | 2 ++ .../Source/CogDebug/Public/CogDebugSettings.h | 5 +++++ .../CogEngine/Private/CogEngineReplicator.cpp | 3 +++ .../Private/CogEngineWindow_Collisions.cpp | 5 ++++- .../CogEngineWindow_CommandBindings.cpp | 1 + .../Private/CogEngineWindow_Inspector.cpp | 12 +++++------ .../Private/CogEngineWindow_LogCategories.cpp | 19 ++++++++++------- .../Private/CogEngineWindow_Metrics.cpp | 1 + .../Private/CogEngineWindow_NetEmulation.cpp | 2 ++ .../Private/CogEngineWindow_Plots.cpp | 13 ++++++------ .../Private/CogEngineWindow_Scalability.cpp | 1 + .../Private/CogEngineWindow_Selection.cpp | 1 + .../Private/CogEngineWindow_Skeleton.cpp | 8 ++++--- .../Private/CogEngineWindow_Stats.cpp | 2 ++ .../CogEngine/Public/CogEngineDataAsset.h | 1 + .../Public/CogEngineWindow_Collisions.h | 1 + .../Public/CogEngineWindow_Selection.h | 2 +- .../Private/CogImGuiInputProcessor.cpp | 3 ++- .../CogImgui/Private/CogImguiConfig.cpp | 2 +- .../CogImgui/Private/CogImguiContext.cpp | 11 ++++++---- .../CogImgui/Private/CogImguiHelper.cpp | 2 ++ .../CogImgui/Private/CogImguiInputHelper.cpp | 5 +++++ .../CogImgui/Private/CogImguiWidget.cpp | 4 +++- .../CogImgui/Public/CogImGuiInputProcessor.h | 7 ++++--- .../Source/CogImgui/Public/CogImguiConfig.h | 3 ++- .../Source/CogImgui/Public/CogImguiContext.h | 2 ++ .../Source/CogImgui/Public/CogImguiHelper.h | 1 + .../CogImgui/Public/CogImguiInputHelper.h | 8 ++++++- .../Source/CogImgui/Public/CogImguiKeyInfo.h | 4 +++- .../Source/CogWindow/Private/CogWindow.cpp | 3 +++ .../CogWindow/Private/CogWindowManager.cpp | 8 +++++++ .../CogWindow/Private/CogWindowWidgets.cpp | 21 ++++++++++--------- .../CogWindow/Private/CogWindow_Settings.cpp | 6 +++--- .../Cog/Source/CogWindow/Public/CogWindow.h | 5 +++++ .../Source/CogWindow/Public/CogWindowHelper.h | 3 +++ .../CogWindow/Public/CogWindowManager.h | 1 + .../CogWindow/Public/CogWindowWidgets.h | 3 +++ .../CogWindow/Public/CogWindow_Layouts.h | 2 ++ .../Private/CogAIWindow_BehaviorTree.cpp | 14 ++++++------- .../CogAI/Private/CogAIWindow_Blackboard.cpp | 6 +++--- .../Source/CogAI/Public/CogAIDataAsset.h | 1 + .../Private/CogAbilityReplicator.cpp | 2 ++ .../Private/CogAbilityWindow_Abilities.cpp | 10 ++++----- .../Private/CogAbilityWindow_Attributes.cpp | 6 +++--- .../Private/CogAbilityWindow_Effects.cpp | 6 +++--- .../Public/CogAbilityConfig_Alignment.h | 2 +- .../CogAbility/Public/CogAbilityHelper.h | 2 +- .../Public/CogAbilityWindow_Effects.h | 2 +- .../Private/CogInputWindow_Actions.cpp | 17 ++++++++------- .../Private/CogInputWindow_Gamepad.cpp | 1 + .../CogInput/Public/CogInputDataAsset.h | 1 + .../CogInput/Public/CogInputWindow_Gamepad.h | 3 +++ 62 files changed, 194 insertions(+), 85 deletions(-) diff --git a/Plugins/Cog/Source/CogCommon/Public/CogCommon.h b/Plugins/Cog/Source/CogCommon/Public/CogCommon.h index e1d8b52..6a2733e 100644 --- a/Plugins/Cog/Source/CogCommon/Public/CogCommon.h +++ b/Plugins/Cog/Source/CogCommon/Public/CogCommon.h @@ -2,6 +2,7 @@ #include "CoreMinimal.h" #include "Templates/IsArrayOrRefOfType.h" +#include "CogDebugSettings.h" #ifndef ENABLE_COG #define ENABLE_COG !UE_BUILD_SHIPPING @@ -9,7 +10,6 @@ #if ENABLE_COG -#include "CogDebugSettings.h" #define IF_COG(expr) { expr; } #define COG_LOG_CATEGORY FLogCategoryBase diff --git a/Plugins/Cog/Source/CogCommon/Public/CogCommonAllegianceActorInterface.h b/Plugins/Cog/Source/CogCommon/Public/CogCommonAllegianceActorInterface.h index e07ae94..eff5716 100644 --- a/Plugins/Cog/Source/CogCommon/Public/CogCommonAllegianceActorInterface.h +++ b/Plugins/Cog/Source/CogCommon/Public/CogCommonAllegianceActorInterface.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "UObject/Interface.h" #include "CogCommonAllegianceActorInterface.generated.h" //-------------------------------------------------------------------------------------------------------------------------- diff --git a/Plugins/Cog/Source/CogCommon/Public/CogCommonDebugFilteredActorInterface.h b/Plugins/Cog/Source/CogCommon/Public/CogCommonDebugFilteredActorInterface.h index 5d81a1c..9e0ec06 100644 --- a/Plugins/Cog/Source/CogCommon/Public/CogCommonDebugFilteredActorInterface.h +++ b/Plugins/Cog/Source/CogCommon/Public/CogCommonDebugFilteredActorInterface.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "UObject/Interface.h" #include "CogCommonDebugFilteredActorInterface.generated.h" UINTERFACE(MinimalAPI, Blueprintable) diff --git a/Plugins/Cog/Source/CogCommon/Public/CogCommonPossessorInterface.h b/Plugins/Cog/Source/CogCommon/Public/CogCommonPossessorInterface.h index 6371092..dab078c 100644 --- a/Plugins/Cog/Source/CogCommon/Public/CogCommonPossessorInterface.h +++ b/Plugins/Cog/Source/CogCommon/Public/CogCommonPossessorInterface.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "UObject/Interface.h" #include "CogCommonPossessorInterface.generated.h" //-------------------------------------------------------------------------------------------------------------------------- diff --git a/Plugins/Cog/Source/CogDebug/Private/CogDebugDraw.cpp b/Plugins/Cog/Source/CogDebug/Private/CogDebugDraw.cpp index 58903a3..8efa586 100644 --- a/Plugins/Cog/Source/CogDebug/Private/CogDebugDraw.cpp +++ b/Plugins/Cog/Source/CogDebug/Private/CogDebugDraw.cpp @@ -9,8 +9,13 @@ #include "CogDebugSettings.h" #include "CogDebugShape.h" #include "CogImguiHelper.h" +#include "Engine/Engine.h" #include "Engine/SkeletalMesh.h" #include "VisualLogger/VisualLogger.h" +#include "Engine/World.h" +#include "DrawDebugHelpers.h" +#include "ReferenceSkeleton.h" +#include "Components/SkeletalMeshComponent.h" #if ENABLE_COG diff --git a/Plugins/Cog/Source/CogDebug/Private/CogDebugDrawHelper.cpp b/Plugins/Cog/Source/CogDebug/Private/CogDebugDrawHelper.cpp index fe9c92e..f670e81 100644 --- a/Plugins/Cog/Source/CogDebug/Private/CogDebugDrawHelper.cpp +++ b/Plugins/Cog/Source/CogDebug/Private/CogDebugDrawHelper.cpp @@ -2,6 +2,8 @@ #include "Components/LineBatchComponent.h" #include "Kismet/KismetSystemLibrary.h" +#include "Engine/Engine.h" +#include "DrawDebugHelpers.h" namespace { diff --git a/Plugins/Cog/Source/CogDebug/Private/CogDebugPlot.cpp b/Plugins/Cog/Source/CogDebug/Private/CogDebugPlot.cpp index 7e0668e..4dbec06 100644 --- a/Plugins/Cog/Source/CogDebug/Private/CogDebugPlot.cpp +++ b/Plugins/Cog/Source/CogDebug/Private/CogDebugPlot.cpp @@ -3,6 +3,8 @@ #include "CogDebugDraw.h" #include "CogDebugHelper.h" #include "CogImguiHelper.h" +#include "Engine/Engine.h" +#include "Engine/World.h" FCogDebugPlotEvent FCogDebugPlot::DefaultEvent; TArray FCogDebugPlot::Plots; diff --git a/Plugins/Cog/Source/CogDebug/Private/CogDebugSettings.cpp b/Plugins/Cog/Source/CogDebug/Private/CogDebugSettings.cpp index 69d527d..5099c35 100644 --- a/Plugins/Cog/Source/CogDebug/Private/CogDebugSettings.cpp +++ b/Plugins/Cog/Source/CogDebug/Private/CogDebugSettings.cpp @@ -2,6 +2,8 @@ #include "CogCommonDebugFilteredActorInterface.h" #include "CogDebugReplicator.h" +#include "Engine/World.h" +#include "Engine/Engine.h" //-------------------------------------------------------------------------------------------------------------------------- TWeakObjectPtr FCogDebugSettings::Selection; diff --git a/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawHelper.h b/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawHelper.h index 0479b95..256cd43 100644 --- a/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawHelper.h +++ b/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawHelper.h @@ -2,7 +2,11 @@ #include "CoreMinimal.h" -namespace EDrawDebugTrace { enum Type; } +namespace EDrawDebugTrace { enum Type : int; } + +class UWorld; +struct FHitResult; +class AActor; class COGDEBUG_API FCogDebugDrawHelper { diff --git a/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawImGui.h b/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawImGui.h index e871e11..ce81d0c 100644 --- a/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawImGui.h +++ b/Plugins/Cog/Source/CogDebug/Public/CogDebugDrawImGui.h @@ -2,6 +2,7 @@ #include "CoreMinimal.h" #include "imgui.h" +#include "imgui_internal.h" class COGDEBUG_API FCogDebugDrawImGui { diff --git a/Plugins/Cog/Source/CogDebug/Public/CogDebugMetric.h b/Plugins/Cog/Source/CogDebug/Public/CogDebugMetric.h index 32a6a97..e253af0 100644 --- a/Plugins/Cog/Source/CogDebug/Public/CogDebugMetric.h +++ b/Plugins/Cog/Source/CogDebug/Public/CogDebugMetric.h @@ -2,6 +2,8 @@ #include "CoreMinimal.h" #include "CogCommon.h" +#include "UObject/Object.h" +#include "UObject/ObjectPtr.h" #ifdef ENABLE_COG diff --git a/Plugins/Cog/Source/CogDebug/Public/CogDebugSettings.h b/Plugins/Cog/Source/CogDebug/Public/CogDebugSettings.h index bb7719d..89da83c 100644 --- a/Plugins/Cog/Source/CogDebug/Public/CogDebugSettings.h +++ b/Plugins/Cog/Source/CogDebug/Public/CogDebugSettings.h @@ -1,6 +1,11 @@ #pragma once #include "CoreMinimal.h" +#include "UObject/WeakObjectPtrTemplates.h" + +class UObject; +class AActor; +class UWorld; struct COGDEBUG_API FCogDebugSettings { diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineReplicator.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineReplicator.cpp index b5f1f07..8552fc6 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineReplicator.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineReplicator.cpp @@ -8,6 +8,9 @@ #include "EngineUtils.h" #include "Net/Core/PushModel/PushModel.h" #include "Net/UnrealNetwork.h" +#include "GameFramework/Pawn.h" +#include "Engine/World.h" +#include "Engine/EngineTypes.h" DEFINE_LOG_CATEGORY(LogCogEngine); diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Collisions.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Collisions.cpp index fa41a16..b4482b0 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Collisions.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Collisions.cpp @@ -3,7 +3,7 @@ #include "CogDebugDrawHelper.h" #include "CogDebugSettings.h" #include "CogEngineDataAsset.h" -#include "CogImGuiHelper.h" +#include "CogImguiHelper.h" #include "CogWindowHelper.h" #include "Components/BoxComponent.h" #include "Components/CapsuleComponent.h" @@ -12,6 +12,9 @@ #include "Components/SphereComponent.h" #include "imgui.h" #include "Kismet/GameplayStatics.h" +#include "DrawDebugHelpers.h" +#include "GameFramework/Pawn.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_CommandBindings.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_CommandBindings.cpp index f3775a0..3d88bd9 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_CommandBindings.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_CommandBindings.cpp @@ -4,6 +4,7 @@ #include "CogWindowWidgets.h" #include "GameFramework/PlayerInput.h" #include "imgui.h" +#include "GameFramework/PlayerController.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_CommandBindings::RenderHelp() diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Inspector.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Inspector.cpp index 7ecc5bf..a079176 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Inspector.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Inspector.cpp @@ -160,19 +160,19 @@ void FCogEngineWindow_Inspector::RenderMenu() //----------------------------------- // Current Inspected Object //----------------------------------- - const char* InspectedObjectName = TCHAR_TO_ANSI(*GetNameSafe(InspectedObject.Get())); + const auto InspectedObjectName = StringCast(*GetNameSafe(InspectedObject.Get())); ImVec2 Pos = ImGui::GetCursorScreenPos(); { ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(0.0f, 0.5f)); ImGui::SameLine(); - if (ImGui::Button(InspectedObjectName, ImVec2(FCogWindowWidgets::GetFontWidth() * 20, 0))) + if (ImGui::Button(InspectedObjectName.Get(), ImVec2(FCogWindowWidgets::GetFontWidth() * 20, 0))) { ImGui::OpenPopup("SelectionPopup"); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Current Inspected Object: %s", InspectedObjectName); + ImGui::SetTooltip("Current Inspected Object: %s", InspectedObjectName.Get()); } ImGui::PopStyleVar(1); @@ -180,7 +180,7 @@ void FCogEngineWindow_Inspector::RenderMenu() if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", InspectedObjectName); + ImGui::SetTooltip("%s", InspectedObjectName.Get()); } ImGui::PopStyleColor(1); @@ -784,8 +784,8 @@ bool FCogEngineWindow_Inspector::RenderString(const FStrProperty* StrProperty, u static char Buffer[256] = ""; - const char* Str = TCHAR_TO_ANSI(*Text); - ImStrncpy(Buffer, Str, IM_ARRAYSIZE(Buffer)); + const auto Str = StringCast(*Text); + ImStrncpy(Buffer, Str.Get(), IM_ARRAYSIZE(Buffer)); if (ImGui::InputText("##String", Buffer, IM_ARRAYSIZE(Buffer))) { diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_LogCategories.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_LogCategories.cpp index 89eab00..62e8ff4 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_LogCategories.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_LogCategories.cpp @@ -4,6 +4,9 @@ #include "CogDebugSettings.h" #include "CogWindowWidgets.h" #include "CogDebugLog.h" +#include "DrawDebugHelpers.h" +#include "Engine/World.h" +#include "Engine/Engine.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_LogCategories::Initialize() @@ -117,8 +120,8 @@ void FCogEngineWindow_LogCategories::RenderContent() FLogCategoryBase* Category = CategoryInfo.LogCategory; ImGui::PushID(Index); - const char* CategoryFriendlyName = TCHAR_TO_ANSI(*CategoryInfo.GetDisplayName()); - const char* CategoryDescription = TCHAR_TO_ANSI(*CategoryInfo.Description); + const auto CategoryFriendlyName = StringCast(*CategoryInfo.GetDisplayName()); + const auto CategoryDescription = StringCast(*CategoryInfo.Description); if (bShowAllVerbosity == false) { @@ -156,7 +159,7 @@ void FCogEngineWindow_LogCategories::RenderContent() { ImGui::BeginTooltip(); ImGui::Separator(); - ImGui::Text("%s", CategoryDescription); + ImGui::Text("%s", CategoryDescription.Get()); ImGui::Text("Server"); ImGui::TextColored(ImVec4(1.0f, 1.0f, 1.0f, IsControlDown ? 1.0f : 0.5f), "Very Verbose [CTRL]"); ImGui::EndTooltip(); @@ -174,7 +177,7 @@ void FCogEngineWindow_LogCategories::RenderContent() ImGui::PushStyleColor(ImGuiCol_CheckMark, IM_COL32(255, 128, 0, 200)); } - if (ImGui::Checkbox(CategoryFriendlyName, &IsActive)) + if (ImGui::Checkbox(CategoryFriendlyName.Get(), &IsActive)) { ELogVerbosity::Type NewVerbosity; if (IsControlDown && Verbosity != ELogVerbosity::VeryVerbose) @@ -196,7 +199,7 @@ void FCogEngineWindow_LogCategories::RenderContent() if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) { ImGui::BeginTooltip(); - ImGui::Text("%s", CategoryDescription); + ImGui::Text("%s", CategoryDescription.Get()); ImGui::Separator(); if (IsClient) { @@ -231,7 +234,7 @@ void FCogEngineWindow_LogCategories::RenderContent() if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) { ImGui::BeginTooltip(); - ImGui::Text("%s", CategoryDescription); + ImGui::Text("%s", CategoryDescription.Get()); ImGui::Separator(); ImGui::Text("Server"); ImGui::EndTooltip(); @@ -261,7 +264,7 @@ void FCogEngineWindow_LogCategories::RenderContent() if (IsClient && ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) { ImGui::BeginTooltip(); - ImGui::Text("%s", CategoryDescription); + ImGui::Text("%s", CategoryDescription.Get()); ImGui::Separator(); ImGui::Text("Local Client"); ImGui::EndTooltip(); @@ -269,7 +272,7 @@ void FCogEngineWindow_LogCategories::RenderContent() } ImGui::SameLine(); - ImGui::Text("%s", CategoryFriendlyName); + ImGui::Text("%s", CategoryFriendlyName.Get()); } ImGui::PopID(); diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Metrics.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Metrics.cpp index 9726ef4..941ee4d 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Metrics.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Metrics.cpp @@ -4,6 +4,7 @@ #include "CogImguiHelper.h" #include "CogWindowWidgets.h" #include "imgui.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_Metrics::Initialize() diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_NetEmulation.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_NetEmulation.cpp index 8e7c95c..ab19b2f 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_NetEmulation.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_NetEmulation.cpp @@ -7,6 +7,8 @@ #include "Engine/NetConnection.h" #include "Engine/World.h" #include "GameFramework/PlayerState.h" +#include "GameFramework/Controller.h" +#include "GameFramework/PlayerController.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_NetEmulation::RenderHelp() diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Plots.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Plots.cpp index 57ff336..87f32da 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Plots.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Plots.cpp @@ -1,11 +1,12 @@ #include "CogEngineWindow_Plots.h" -#include "CogImGuiHelper.h" +#include "CogImguiHelper.h" #include "CogDebugPlot.h" #include "CogWindowWidgets.h" #include "imgui.h" #include "implot_internal.h" #include "Kismet/GameplayStatics.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_Plots::Initialize() @@ -142,7 +143,7 @@ void FCogEngineWindow_Plots::RenderPlotsList(TArray& Visibl { const auto EntryName = StringCast(*Entry.Name.ToString()); ImGui::SetDragDropPayload("DragAndDrop", EntryName.Get(), EntryName.Length() + 1); - ImGui::Text(EntryName.Get()); + ImGui::Text("%s", EntryName.Get()); ImGui::EndDragDropSource(); } @@ -246,7 +247,7 @@ void FCogEngineWindow_Plots::RenderPlots(const TArray& Visi ImPlot::SetAxis(Entry.CurrentYAxis); ImPlot::SetNextLineStyle(IMPLOT_AUTO_COL); - const char* Label = TCHAR_TO_ANSI(*Entry.Name.ToString()); + const auto Label = StringCast(*Entry.Name.ToString()); //---------------------------------------------------------------- // Pause the scrolling if the user drag inside @@ -271,20 +272,20 @@ void FCogEngineWindow_Plots::RenderPlots(const TArray& Visi const bool IsEventPlot = Entry.Events.Num() > 0; if (IsEventPlot) { - RenderEvents(Entry, Label, PlotMin, PlotMax); + RenderEvents(Entry, Label.Get(), PlotMin, PlotMax); } //------------------------------------------------------- // Plot Values //------------------------------------------------------- else { - RenderValues(Entry, Label); + RenderValues(Entry, Label.Get()); } //------------------------------------------------------- // Allow legend item labels to be drag and drop sources //------------------------------------------------------- - if (ImPlot::BeginDragDropSourceItem(Label)) + if (ImPlot::BeginDragDropSourceItem(Label.Get())) { const auto EntryName = StringCast(*Entry.Name.ToString()); ImGui::SetDragDropPayload("DragAndDrop", EntryName.Get(), EntryName.Length() + 1); diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Scalability.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Scalability.cpp index af30e32..961d508 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Scalability.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Scalability.cpp @@ -4,6 +4,7 @@ #include "CogImguiHelper.h" #include "CogWindowWidgets.h" #include "Engine/Engine.h" +#include "Scalability.h" #define SCALABILITY_NUM_LEVELS 5 diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Selection.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Selection.cpp index 40781fc..1da2093 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Selection.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Selection.cpp @@ -13,6 +13,7 @@ #include "HAL/IConsoleManager.h" #include "imgui.h" #include "Kismet/GameplayStatics.h" +#include "Components/PrimitiveComponent.h" FString FCogEngineWindow_Selection::ToggleSelectionModeCommand = TEXT("Cog.ToggleSelectionMode"); diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Skeleton.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Skeleton.cpp index eceb947..dd31e7a 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Skeleton.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Skeleton.cpp @@ -6,6 +6,8 @@ #include "Components/SkeletalMeshComponent.h" #include "Engine/SkeletalMesh.h" #include "imgui_internal.h" +#include "DrawDebugHelpers.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogEngineWindow_Skeleton::Initialize() @@ -138,8 +140,8 @@ void FCogEngineWindow_Skeleton::RenderBoneEntry(int32 BoneIndex, bool OpenAllChi return; } - const char* BoneName = TCHAR_TO_ANSI(*BoneInfo.Name.ToString()); - const bool ShowNode = Filter.PassFilter(BoneName); + const auto BoneName = StringCast(*BoneInfo.Name.ToString()); + const bool ShowNode = Filter.PassFilter(BoneName.Get()); bool OpenChildren = false; if (ShowNode) @@ -235,7 +237,7 @@ void FCogEngineWindow_Skeleton::RenderBoneEntry(int32 BoneIndex, bool OpenAllChi //------------------------ ImGui::SameLine(); ImVec4 NameColor = HasCustomVisiblity ? ImVec4(1.0f, 1.0f, 0.0f, 1.0f) : ImVec4(1.0f, 1.0f, 1.0f, 1.0f); - ImGui::TextColored(NameColor, "%s", BoneName); + ImGui::TextColored(NameColor, "%s", BoneName.Get()); } //------------------------ diff --git a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Stats.cpp b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Stats.cpp index 115fdd4..2928a23 100644 --- a/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Stats.cpp +++ b/Plugins/Cog/Source/CogEngine/Private/CogEngineWindow_Stats.cpp @@ -6,6 +6,8 @@ #include "Engine/NetConnection.h" #include "GameFramework/PlayerState.h" #include "Net/NetPing.h" +#include "GameFramework/Controller.h" +#include "GameFramework/PlayerController.h" ImVec4 StatRedColor(1.0f, 0.4f, 0.3f, 1.0f); ImVec4 StatOrangeColor(1.0f, 0.7f, 0.4f, 1.0f); diff --git a/Plugins/Cog/Source/CogEngine/Public/CogEngineDataAsset.h b/Plugins/Cog/Source/CogEngine/Public/CogEngineDataAsset.h index 036e536..a53e4c9 100644 --- a/Plugins/Cog/Source/CogEngine/Public/CogEngineDataAsset.h +++ b/Plugins/Cog/Source/CogEngine/Public/CogEngineDataAsset.h @@ -2,6 +2,7 @@ #include "CoreMinimal.h" #include "Engine/DataAsset.h" +#include "Engine/EngineTypes.h" #include "CogEngineDataAsset.generated.h" //-------------------------------------------------------------------------------------------------------------------------- diff --git a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Collisions.h b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Collisions.h index 05fef8f..c214631 100644 --- a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Collisions.h +++ b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Collisions.h @@ -3,6 +3,7 @@ #include "CoreMinimal.h" #include "CogWindow.h" #include "CogWindowConfig.h" +#include "Engine/EngineTypes.h" #include "CogEngineWindow_Collisions.generated.h" class UCogEngineConfig_Collisions; diff --git a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Selection.h b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Selection.h index 0b30852..807b0dd 100644 --- a/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Selection.h +++ b/Plugins/Cog/Source/CogEngine/Public/CogEngineWindow_Selection.h @@ -122,7 +122,7 @@ public: bReapplySelection = true; bDisplayActorLabel = true; - SelectionName; + SelectionName.Reset(); SelectedClassIndex = 0; } }; \ No newline at end of file diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImGuiInputProcessor.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImGuiInputProcessor.cpp index d79ca3b..8dc0fe7 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImGuiInputProcessor.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImGuiInputProcessor.cpp @@ -1,4 +1,4 @@ -#include "CogImguiInputProcessor.h" +#include "CogImGuiInputProcessor.h" #include "CogImguiHelper.h" #include "CogImguiInputHelper.h" @@ -6,6 +6,7 @@ #include "CogImguiContext.h" #include "GameFramework/PlayerInput.h" #include "imgui.h" +#include "Framework/Application/SlateApplication.h" //-------------------------------------------------------------------------------------------------------------------------- FCogImGuiInputProcessor::FCogImGuiInputProcessor(UPlayerInput* InPlayerInput, FCogImguiContext* InContext, SCogImguiWidget* InMainWidget) diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImguiConfig.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImguiConfig.cpp index 5373087..50167d8 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImguiConfig.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImguiConfig.cpp @@ -1,4 +1,4 @@ -#include "CogImGuiConfig.h" +#include "CogImguiConfig.h" THIRD_PARTY_INCLUDES_START #include diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImguiContext.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImguiContext.cpp index 7a2125d..ab75a22 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImguiContext.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImguiContext.cpp @@ -1,9 +1,9 @@ -#include "CogImGuiContext.h" +#include "CogImguiContext.h" #include "Application/ThrottleManager.h" #include "CogImguiHelper.h" #include "CogImguiInputHelper.h" -#include "CogImguiInputProcessor.h" +#include "CogImGuiInputProcessor.h" #include "CogImguiWidget.h" #include "Engine/Console.h" #include "Engine/LocalPlayer.h" @@ -17,6 +17,9 @@ #include "TextureResource.h" #include "Widgets/SViewport.h" #include "Widgets/SWindow.h" +#include "Engine/Engine.h" +#include "Engine/GameViewportClient.h" +#include "Engine/World.h" static UPlayerInput* GetPlayerInput(const UWorld* World); @@ -79,8 +82,8 @@ void FCogImguiContext::Initialize() ViewportData->Context = this; ViewportData->Widget = MainWidget; - const char* InitFilenameTemp = TCHAR_TO_ANSI(*FCogImguiHelper::GetIniFilePath("imgui")); - ImStrncpy(IniFilename, InitFilenameTemp, IM_ARRAYSIZE(IniFilename)); + const auto InitFilenameTemp = StringCast(*FCogImguiHelper::GetIniFilePath("imgui")); + ImStrncpy(IniFilename, InitFilenameTemp.Get(), IM_ARRAYSIZE(IniFilename)); IO.IniFilename = IniFilename; ImGuiPlatformIO& PlatformIO = ImGui::GetPlatformIO(); diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImguiHelper.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImguiHelper.cpp index 3299f36..5e5b9af 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImguiHelper.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImguiHelper.cpp @@ -2,6 +2,8 @@ #include "InputCoreTypes.h" #include "imgui_internal.h" +#include "Misc/Paths.h" +#include "GenericPlatform/GenericPlatformFile.h" DEFINE_LOG_CATEGORY(LogCogImGui); diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImguiInputHelper.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImguiInputHelper.cpp index f7cf4af..dc4c94b 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImguiInputHelper.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImguiInputHelper.cpp @@ -13,6 +13,11 @@ #if WITH_EDITOR #include "Kismet2/DebuggerCommands.h" #endif //WITH_EDITOR +#include "Engine/World.h" +#include "Input/Events.h" +#include "CogImguiKeyInfo.h" +#include "Framework/Application/SlateApplication.h" +#include "GenericPlatform/GenericApplication.h" //-------------------------------------------------------------------------------------------------------------------------- APlayerController* FCogImguiInputHelper::GetFirstLocalPlayerController(const UWorld& World) diff --git a/Plugins/Cog/Source/CogImgui/Private/CogImguiWidget.cpp b/Plugins/Cog/Source/CogImgui/Private/CogImguiWidget.cpp index c3576c0..0370cf4 100644 --- a/Plugins/Cog/Source/CogImgui/Private/CogImguiWidget.cpp +++ b/Plugins/Cog/Source/CogImgui/Private/CogImguiWidget.cpp @@ -3,9 +3,11 @@ #include "CogImguiInputHelper.h" #include "CogImguiModule.h" #include "CogImguiWidget.h" -#include "CogImGuiContext.h" +#include "CogImguiContext.h" #include "imgui.h" #include "SlateOptMacros.h" +#include "Engine/GameViewportClient.h" +#include "Widgets/SWindow.h" //-------------------------------------------------------------------------------------------------------------------------- BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImGuiInputProcessor.h b/Plugins/Cog/Source/CogImgui/Public/CogImGuiInputProcessor.h index 990f6b6..e2bd57a 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImGuiInputProcessor.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImGuiInputProcessor.h @@ -1,6 +1,7 @@ -#pragma once +#pragma once #include "Framework/Application/IInputProcessor.h" +#include "CogImguiContext.h" class FCogImguiContext; class SCogImguiWidget; @@ -42,7 +43,7 @@ protected: TObjectPtr Context = nullptr; - TObjectPtr PlayerInput = nullptr; + TObjectPtr PlayerInput; - TObjectPtr MainWidget = nullptr; + TObjectPtr MainWidget; }; diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImguiConfig.h b/Plugins/Cog/Source/CogImgui/Public/CogImguiConfig.h index 24c7ce5..b90b39e 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImguiConfig.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImguiConfig.h @@ -1,6 +1,7 @@ #pragma once #include "Misc/AssertionMacros.h" +#include "Engine/Texture2D.h" #define IM_ASSERT(Expr) ensure(Expr) @@ -10,4 +11,4 @@ #define IMGUI_DISABLE_DEFAULT_ALLOCATORS #define IMGUI_DEFINE_MATH_OPERATORS -#define ImTextureID class UTexture2D* +#define ImTextureID UTexture2D* diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImguiContext.h b/Plugins/Cog/Source/CogImgui/Public/CogImguiContext.h index 88d4b87..677a465 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImguiContext.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImguiContext.h @@ -14,6 +14,8 @@ class SWindow; class UGameViewportClient; struct FDisplayMetrics; struct ImPlotContext; +class SWidget; +class ULocalPlayer; struct COGIMGUI_API FImGuiViewportData { diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImguiHelper.h b/Plugins/Cog/Source/CogImgui/Public/CogImguiHelper.h index 7c4324a..49f9c24 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImguiHelper.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImguiHelper.h @@ -3,6 +3,7 @@ #include "CoreMinimal.h" #include "imgui.h" #include "Layout/SlateRect.h" +#include "Rendering/SlateRenderTransform.h" COGIMGUI_API DECLARE_LOG_CATEGORY_EXTERN(LogCogImGui, Warning, All); diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImguiInputHelper.h b/Plugins/Cog/Source/CogImgui/Public/CogImguiInputHelper.h index 28662f1..ae57bca 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImguiInputHelper.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImguiInputHelper.h @@ -1,12 +1,18 @@ #pragma once #include "CoreMinimal.h" -#include "CogImguiInputHelper.h" #include "imgui.h" +#include "GenericPlatform/ICursor.h" class UPlayerInput; struct FCogImGuiKeyInfo; struct FKeyBind; +class UWorld; +struct FCogImGuiKeyInfo; +struct FKeyEvent; +class APlayerController; +struct FKey; +enum class ECheckBoxState : uint8; class COGIMGUI_API FCogImguiInputHelper { diff --git a/Plugins/Cog/Source/CogImgui/Public/CogImguiKeyInfo.h b/Plugins/Cog/Source/CogImgui/Public/CogImguiKeyInfo.h index 55d0e13..0f41035 100644 --- a/Plugins/Cog/Source/CogImgui/Public/CogImguiKeyInfo.h +++ b/Plugins/Cog/Source/CogImgui/Public/CogImguiKeyInfo.h @@ -2,7 +2,9 @@ #include "CoreMinimal.h" #include "InputCoreTypes.h" -#include "CogImGuiKeyInfo.generated.h" +#include "Styling/SlateTypes.h" + +#include "CogImguiKeyInfo.generated.h" USTRUCT() struct COGIMGUI_API FCogImGuiKeyInfo diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp index 65fbff2..33fb22a 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindow.cpp @@ -7,6 +7,9 @@ #include "CogWindowWidgets.h" #include "Engine/World.h" #include "imgui_internal.h" +#include "GameFramework/Pawn.h" +#include "GameFramework/PlayerController.h" +#include "Engine/LocalPlayer.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogWindow::SetFullName(const FString& InFullName) diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp index adfc930..9ddfffb 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindowManager.cpp @@ -572,7 +572,11 @@ void UCogWindowManager::SettingsHandler_ReadLine(ImGuiContext* Context, ImGuiSet if (Entry == (void*)1) { ImGuiID Id; +#if PLATFORM_WINDOWS || PLATFORM_MICROSOFT if (sscanf_s(Line, "0x%08X", &Id) == 1) +#else + if (sscanf(Line, "0x%08X", &Id) == 1) +#endif { UCogWindowManager* Manager = (UCogWindowManager*)Handler->UserData; if (FCogWindow* Window = Manager->FindWindowByID(Id)) @@ -585,7 +589,11 @@ void UCogWindowManager::SettingsHandler_ReadLine(ImGuiContext* Context, ImGuiSet { ImGuiID Id; int32 Visible = false; +#if PLATFORM_WINDOWS || PLATFORM_MICROSOFT if (sscanf_s(Line, "0x%08X %d", &Id, &Visible) == 2) +#else + if (sscanf(Line, "0x%08X %d", &Id, &Visible) == 2) +#endif { UCogWindowManager* Manager = (UCogWindowManager*)Handler->UserData; if (FCogWindow* Window = Manager->FindWindowByID(Id)) diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindowWidgets.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindowWidgets.cpp index 434f30f..02f3d4e 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindowWidgets.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindowWidgets.cpp @@ -1,12 +1,13 @@ #include "CogWindowWidgets.h" #include "CogImguiHelper.h" -#include "CogImGuiKeyInfo.h" +#include "CogImguiKeyInfo.h" #include "CogImguiInputHelper.h" #include "imgui.h" #include "imgui_internal.h" #include "InputCoreTypes.h" #include "Kismet/KismetMathLibrary.h" +#include "GameFramework/PlayerInput.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogWindowWidgets::BeginTableTooltip() @@ -341,7 +342,7 @@ bool FCogWindowWidgets::ComboboxEnum(const char* Label, UEnum* Enum, int64 Curre //-------------------------------------------------------------------------------------------------------------------------- bool FCogWindowWidgets::CheckBoxState(const char* Label, ECheckBoxState& State) { - const char* TooltipText = nullptr; + const char* TooltipText = "Invalid"; int32 Flags = 0; ImVec4 ButtonColor = ImGui::GetStyleColorVec4(ImGuiCol_Button); @@ -385,7 +386,7 @@ bool FCogWindowWidgets::CheckBoxState(const char* Label, ECheckBoxState& State) if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) { - ImGui::SetTooltip(TooltipText); + ImGui::SetTooltip("%s", TooltipText); } if (IsPressed) @@ -468,8 +469,8 @@ bool FCogWindowWidgets::KeyBind(FKeyBind& KeyBind) { static char Buffer[256] = ""; - const char* Str = TCHAR_TO_ANSI(*KeyBind.Command); - ImStrncpy(Buffer, Str, IM_ARRAYSIZE(Buffer)); + const auto Str = StringCast(*KeyBind.Command); + ImStrncpy(Buffer, Str.Get(), IM_ARRAYSIZE(Buffer)); bool HasChanged = false; ImGui::SetNextItemWidth(ImGui::GetFontSize() * 15); @@ -499,7 +500,7 @@ bool FCogWindowWidgets::ButtonWithTooltip(const char* Text, const char* Tooltip) if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary)) { - ImGui::SetTooltip(Tooltip); + ImGui::SetTooltip("%s", Tooltip); } return IsPressed; @@ -560,8 +561,8 @@ bool FCogWindowWidgets::MultiChoiceButtonsInt(TArray& Values, int32& Valu { int32 ButtonValue = Values[i]; - const char* Text = TCHAR_TO_ANSI(*FString::Printf(TEXT("%d"), ButtonValue)); - if (MultiChoiceButton(Text, ButtonValue == Value, Size)) + const auto Text = StringCast(*FString::Printf(TEXT("%d"), ButtonValue)); + if (MultiChoiceButton(Text.Get(), ButtonValue == Value, Size)) { IsPressed = true; Value = ButtonValue; @@ -593,8 +594,8 @@ bool FCogWindowWidgets::MultiChoiceButtonsFloat(TArray& Values, float& Va { float ButtonValue = Values[i]; - const char* Text = TCHAR_TO_ANSI(*FString::Printf(TEXT("%g"), ButtonValue).Replace(TEXT("0."), TEXT("."))); - if (MultiChoiceButton(Text, ButtonValue == Value, Size)) + const auto Text = StringCast(*FString::Printf(TEXT("%g"), ButtonValue).Replace(TEXT("0."), TEXT("."))); + if (MultiChoiceButton(Text.Get(), ButtonValue == Value, Size)) { IsPressed = true; Value = ButtonValue; diff --git a/Plugins/Cog/Source/CogWindow/Private/CogWindow_Settings.cpp b/Plugins/Cog/Source/CogWindow/Private/CogWindow_Settings.cpp index abeba04..868c7a9 100644 --- a/Plugins/Cog/Source/CogWindow/Private/CogWindow_Settings.cpp +++ b/Plugins/Cog/Source/CogWindow/Private/CogWindow_Settings.cpp @@ -75,14 +75,14 @@ void FCogWindow_Settings::RenderContent() Context.SetEnableInput(bEnableInput); } - const char* ShortcutText = TCHAR_TO_ANSI(*FCogImguiInputHelper::CommandToString(PlayerInput, UCogWindowManager::ToggleInputCommand)); - const float ShortcutWidth = (ShortcutText && ShortcutText[0]) ? ImGui::CalcTextSize(ShortcutText, NULL).x : 0.0f; + const auto ShortcutText = StringCast(*FCogImguiInputHelper::CommandToString(PlayerInput, UCogWindowManager::ToggleInputCommand)); + const float ShortcutWidth = (ShortcutText.Get() != nullptr && ShortcutText.Get()[0]) ? ImGui::CalcTextSize(ShortcutText.Get(), NULL).x : 0.0f; if (ShortcutWidth > 0.0f) { ImGui::SameLine(); ImGui::SetCursorPosX(ImGui::GetWindowContentRegionMax().x - ShortcutWidth); ImGui::PushStyleColor(ImGuiCol_Text, ImGui::GetStyle().Colors[ImGuiCol_TextDisabled]); - ImGui::Text(ShortcutText); + ImGui::Text("%s", ShortcutText.Get()); ImGui::PopStyleColor(); } diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindow.h b/Plugins/Cog/Source/CogWindow/Public/CogWindow.h index 4f8f751..397b759 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindow.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindow.h @@ -2,12 +2,17 @@ #include "CoreMinimal.h" #include "imgui.h" +#include "Templates/SubclassOf.h" +#include "UObject/ReflectedTypeAccessors.h" +#include "UObject/WeakObjectPtrTemplates.h" class APawn; class APlayerController; class UCogWindowConfig; class UCogWindowManager; class UWorld; +class AActor; +class ULocalPlayer; class COGWINDOW_API FCogWindow { diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindowHelper.h b/Plugins/Cog/Source/CogWindow/Public/CogWindowHelper.h index 17699a6..48b78b8 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindowHelper.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindowHelper.h @@ -3,6 +3,9 @@ #include "CoreMinimal.h" #include "AssetRegistry/AssetRegistryModule.h" #include "AssetRegistry/IAssetRegistry.h" +#include "AssetRegistry/AssetData.h" +#include "Templates/SubclassOf.h" + class COGWINDOW_API FCogWindowHelper { diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindowManager.h b/Plugins/Cog/Source/CogWindow/Public/CogWindowManager.h index 8abf719..67c8748 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindowManager.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindowManager.h @@ -15,6 +15,7 @@ class UPlayerInput; class UWorld; struct ImGuiSettingsHandler; struct ImGuiTextBuffer; +struct FKey; UCLASS(Config = Cog) class COGWINDOW_API UCogWindowManager : public UObject diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindowWidgets.h b/Plugins/Cog/Source/CogWindow/Public/CogWindowWidgets.h index 6a63992..696f9d8 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindowWidgets.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindowWidgets.h @@ -8,6 +8,9 @@ class UEnum; class FEnumProperty; struct FCogImGuiKeyInfo; struct FKeyBind; +class UObject; +struct FKeyBind; +enum class ECheckBoxState : uint8; class COGWINDOW_API FCogWindowWidgets { diff --git a/Plugins/Cog/Source/CogWindow/Public/CogWindow_Layouts.h b/Plugins/Cog/Source/CogWindow/Public/CogWindow_Layouts.h index 36aea4c..81a41c9 100644 --- a/Plugins/Cog/Source/CogWindow/Public/CogWindow_Layouts.h +++ b/Plugins/Cog/Source/CogWindow/Public/CogWindow_Layouts.h @@ -3,6 +3,8 @@ #include "CoreMinimal.h" #include "CogWindow.h" +class UPlayerInput; + class COGWINDOW_API FCogWindow_Layouts : public FCogWindow { typedef FCogWindow Super; diff --git a/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_BehaviorTree.cpp b/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_BehaviorTree.cpp index f398a16..3d5824f 100644 --- a/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_BehaviorTree.cpp +++ b/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_BehaviorTree.cpp @@ -207,7 +207,7 @@ void FCogAIWindow_BehaviorTree::RenderContent() if (RootNodeInstanced != nullptr) { - if (ImGui::CollapsingHeader(TCHAR_TO_ANSI(*GetNameSafe(CurrentTree)), nullptr, ImGuiTreeNodeFlags_DefaultOpen)) + if (ImGui::CollapsingHeader(StringCast(*GetNameSafe(CurrentTree)).Get(), nullptr, ImGuiTreeNodeFlags_DefaultOpen)) { RenderNode(*BehaviorTreeComponent, const_cast(RootNodeInstanced), false); } @@ -217,8 +217,8 @@ void FCogAIWindow_BehaviorTree::RenderContent() //-------------------------------------------------------------------------------------------------------------------------- void FCogAIWindow_BehaviorTree::RenderNode(UBehaviorTreeComponent& BehaviorTreeComponent, UBTNode* Node, bool OpenAllChildren) { - const char* NodeName = TCHAR_TO_ANSI(*Node->GetNodeName()); - const bool ShowNode = Filter.PassFilter(NodeName); + const auto NodeName = StringCast(*Node->GetNodeName()); + const bool ShowNode = Filter.PassFilter(NodeName.Get()); const UBTCompositeNode* CompositeNode = Cast(Node); @@ -287,7 +287,7 @@ void FCogAIWindow_BehaviorTree::RenderNode(UBehaviorTreeComponent& BehaviorTreeC ImGui::TableNextColumn(); ImGui::TextColored(TextColor, "Name"); ImGui::TableNextColumn(); - ImGui::Text("%s", NodeName); + ImGui::Text("%s", NodeName.Get()); //------------------------ // Static Description @@ -313,7 +313,7 @@ void FCogAIWindow_BehaviorTree::RenderNode(UBehaviorTreeComponent& BehaviorTreeC if (RuntimeValue.Split(TEXT(": "), &Left, &Right)) { ImGui::TableNextColumn(); - ImGui::TextColored(TextColor, TCHAR_TO_ANSI(*Left)); + ImGui::TextColored(TextColor, "%s", TCHAR_TO_ANSI(*Left)); ImGui::TableNextColumn(); ImGui::Text("%s", TCHAR_TO_ANSI(*Right)); @@ -323,7 +323,7 @@ void FCogAIWindow_BehaviorTree::RenderNode(UBehaviorTreeComponent& BehaviorTreeC ImGui::TableNextColumn(); ImGui::TextColored(TextColor, "Value"); ImGui::TableNextColumn(); - ImGui::Text(TCHAR_TO_ANSI(*RuntimeValue)); + ImGui::Text("%s", TCHAR_TO_ANSI(*RuntimeValue)); } } @@ -356,7 +356,7 @@ void FCogAIWindow_BehaviorTree::RenderNode(UBehaviorTreeComponent& BehaviorTreeC //------------------------ ImGui::SameLine(); const ImVec4 NameColor = IsActive ? FCogImguiHelper::ToImVec4(Config->ActiveColor) : FCogImguiHelper::ToImVec4(Config->InactiveColor); - ImGui::TextColored(NameColor, "%s", NodeName); + ImGui::TextColored(NameColor, "%s", NodeName.Get()); } //------------------------ diff --git a/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_Blackboard.cpp b/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_Blackboard.cpp index fe97e49..5d64f05 100644 --- a/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_Blackboard.cpp +++ b/Plugins/CogAI/Source/CogAI/Private/CogAIWindow_Blackboard.cpp @@ -141,8 +141,8 @@ void FCogAIWindow_Blackboard::RenderContent() continue; } - const char* KeyName = TCHAR_TO_ANSI(*Key->EntryName.ToString()); - if (Filter.PassFilter(KeyName) == false) + const auto KeyName = StringCast(*Key->EntryName.ToString()); + if (Filter.PassFilter(KeyName.Get()) == false) { continue; } @@ -161,7 +161,7 @@ void FCogAIWindow_Blackboard::RenderContent() // Name //------------------------ ImGui::TableNextColumn(); - ImGui::Text("%s", KeyName); + ImGui::Text("%s", KeyName.Get()); //------------------------ // Value diff --git a/Plugins/CogAI/Source/CogAI/Public/CogAIDataAsset.h b/Plugins/CogAI/Source/CogAI/Public/CogAIDataAsset.h index 7c8ee07..da4b008 100644 --- a/Plugins/CogAI/Source/CogAI/Public/CogAIDataAsset.h +++ b/Plugins/CogAI/Source/CogAI/Public/CogAIDataAsset.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "Engine/DataAsset.h" #include "CogAIDataAsset.generated.h" UCLASS(Blueprintable) diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityReplicator.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityReplicator.cpp index 45d6c05..498ee65 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityReplicator.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityReplicator.cpp @@ -9,6 +9,8 @@ #include "GameplayEffect.h" #include "Net/Core/PushModel/PushModel.h" #include "Net/UnrealNetwork.h" +#include "GameFramework/PlayerController.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- ACogAbilityReplicator* ACogAbilityReplicator::Spawn(APlayerController* Controller) diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Abilities.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Abilities.cpp index 51826a2..554fc6a 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Abilities.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Abilities.cpp @@ -212,11 +212,11 @@ void FCogAbilityWindow_Abilities::RenderAbilitiesTable(UAbilitySystemComponent& continue; } - const char* AbilityName = TCHAR_TO_ANSI(*GetAbilityName(Ability)); - if (Filter.PassFilter(AbilityName) == false) - { - continue; - } + const auto AbilityName = StringCast(*GetAbilityName(Ability)); + if (Filter.PassFilter(AbilityName.Get()) == false) + { + continue; + } FitleredAbilities.Add(Spec); } diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Attributes.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Attributes.cpp index f0ff18f..5a5d486 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Attributes.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Attributes.cpp @@ -207,9 +207,9 @@ void FCogAbilityWindow_Attributes::RenderContent() continue; } - const char* AttributeName = TCHAR_TO_ANSI(*Attribute.GetName()); + const auto AttributeName = StringCast(*Attribute.GetName()); - if (Filter.PassFilter(AttributeName) == false) + if (Filter.PassFilter(AttributeName.Get()) == false) { continue; } @@ -233,7 +233,7 @@ void FCogAbilityWindow_Attributes::RenderContent() ImGui::TableNextColumn(); ImGui::Text(""); ImGui::SameLine(); - if (ImGui::Selectable(AttributeName, Selected == Index, ImGuiSelectableFlags_SpanAllColumns)) + if (ImGui::Selectable(AttributeName.Get(), Selected == Index, ImGuiSelectableFlags_SpanAllColumns)) { Selected = Index; } diff --git a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp index 72c05d2..88b6a02 100644 --- a/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp +++ b/Plugins/CogAbility/Source/CogAbility/Private/CogAbilityWindow_Effects.cpp @@ -187,8 +187,8 @@ void FCogAbilityWindow_Effects::RenderEffectRow(const UAbilitySystemComponent& A const FActiveGameplayEffect& ActiveEffect = *ActiveEffectPtr; const UGameplayEffect& Effect = *EffectPtr; - const char* EffectName = TCHAR_TO_ANSI(*GetEffectName(Effect)); - if (Filter.PassFilter(EffectName) == false) + const auto EffectName = StringCast(*GetEffectName(Effect)); + if (Filter.PassFilter(EffectName.Get()) == false) { return; } @@ -203,7 +203,7 @@ void FCogAbilityWindow_Effects::RenderEffectRow(const UAbilitySystemComponent& A ImGui::PushStyleColor(ImGuiCol_Text, FCogImguiHelper::ToImVec4(AlignmentConfig->GetEffectColor(Asset, Effect))); - if (ImGui::Selectable(EffectName, Selected == Index, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_AllowOverlap | ImGuiSelectableFlags_AllowDoubleClick)) + if (ImGui::Selectable(EffectName.Get(), Selected == Index, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_AllowOverlap | ImGuiSelectableFlags_AllowDoubleClick)) { Selected = Index; } diff --git a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h index fcbb65e..4492b3f 100644 --- a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h +++ b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityConfig_Alignment.h @@ -7,7 +7,7 @@ class UAbilitySystemComponent; class UCogAbilityDataAsset; class UGameplayEffect; -namespace EGameplayModOp { enum Type; }; +namespace EGameplayModOp { enum Type : int; }; struct FGameplayAttribute; struct FGameplayModifierInfo; struct FModifierSpec; diff --git a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityHelper.h b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityHelper.h index c9f59d9..3cb840f 100644 --- a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityHelper.h +++ b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityHelper.h @@ -6,7 +6,7 @@ class UCogAbilityDataAsset; class UGameplayEffect; -namespace EGameplayModOp { enum Type; } +namespace EGameplayModOp { enum Type : int; } struct FGameplayTagContainer; class COGABILITY_API FCogAbilityHelper diff --git a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h index 77d8d21..57037c5 100644 --- a/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h +++ b/Plugins/CogAbility/Source/CogAbility/Public/CogAbilityWindow_Effects.h @@ -13,7 +13,7 @@ class UCogAbilityConfig_Alignment; class UCogAbilityConfig_Effects; class UCogAbilityDataAsset; class UGameplayEffect; -namespace EGameplayModOp { enum Type; }; +namespace EGameplayModOp { enum Type : int; }; struct FActiveGameplayEffect; struct FGameplayModifierInfo; struct FModifierSpec; diff --git a/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Actions.cpp b/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Actions.cpp index 3f53d80..4b2f316 100644 --- a/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Actions.cpp +++ b/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Actions.cpp @@ -8,6 +8,7 @@ #include "GameFramework/Pawn.h" #include "InputAction.h" #include "InputMappingContext.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogInputWindow_Actions::Initialize() @@ -116,7 +117,7 @@ void FCogInputWindow_Actions::RenderContent() { ImGui::PushID(Index); - const char* ActionName = TCHAR_TO_ANSI(*ActionInfo.Action->GetName()); + const auto ActionName = StringCast(*ActionInfo.Action->GetName()); FInputActionValue ActionValue = EnhancedInputSubsystem->GetPlayerInput()->GetActionValue(ActionInfo.Action); @@ -126,7 +127,7 @@ void FCogInputWindow_Actions::RenderContent() { ImGui::TableNextRow(); ImGui::TableNextColumn(); - ImGui::Text("%s", ActionName); + ImGui::Text("%s", ActionName.Get()); const ImVec4 ActiveColor(1, 0.8f, 0, 1); const ImVec4 InnactiveColor(0.3f, 0.3f, 0.3f, 1); @@ -148,24 +149,24 @@ void FCogInputWindow_Actions::RenderContent() case EInputActionValueType::Axis1D: { const float Value = ActionValue.Get(); - DrawAxis("%s", ActionName, Value, &ActionInfo.X); + DrawAxis("%s", ActionName.Get(), Value, &ActionInfo.X); break; } case EInputActionValueType::Axis2D: { const FVector2D Value = ActionValue.Get(); - DrawAxis("%s X", ActionName, Value.X, &ActionInfo.X); - DrawAxis("%s Y", ActionName, Value.Y, &ActionInfo.Y); + DrawAxis("%s X", ActionName.Get(), Value.X, &ActionInfo.X); + DrawAxis("%s Y", ActionName.Get(), Value.Y, &ActionInfo.Y); break; } case EInputActionValueType::Axis3D: { const FVector Value = ActionValue.Get(); - DrawAxis("%s X", ActionName, Value.X, &ActionInfo.X); - DrawAxis("%s Y", ActionName, Value.Y, &ActionInfo.Y); - DrawAxis("%s Z", ActionName, Value.Z, &ActionInfo.Z); + DrawAxis("%s X", ActionName.Get(), Value.X, &ActionInfo.X); + DrawAxis("%s Y", ActionName.Get(), Value.Y, &ActionInfo.Y); + DrawAxis("%s Z", ActionName.Get(), Value.Z, &ActionInfo.Z); break; } } diff --git a/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Gamepad.cpp b/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Gamepad.cpp index 58b0b46..58892fb 100644 --- a/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Gamepad.cpp +++ b/Plugins/CogInput/Source/CogInput/Private/CogInputWindow_Gamepad.cpp @@ -8,6 +8,7 @@ #include "EnhancedInputSubsystems.h" #include "imgui_internal.h" #include "InputMappingContext.h" +#include "Engine/World.h" //-------------------------------------------------------------------------------------------------------------------------- void FCogInputWindow_Gamepad::Initialize() diff --git a/Plugins/CogInput/Source/CogInput/Public/CogInputDataAsset.h b/Plugins/CogInput/Source/CogInput/Public/CogInputDataAsset.h index 191ceb6..e7aecfd 100644 --- a/Plugins/CogInput/Source/CogInput/Public/CogInputDataAsset.h +++ b/Plugins/CogInput/Source/CogInput/Public/CogInputDataAsset.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "Engine/DataAsset.h" #include "CogInputDataAsset.generated.h" class UInputAction; diff --git a/Plugins/CogInput/Source/CogInput/Public/CogInputWindow_Gamepad.h b/Plugins/CogInput/Source/CogInput/Public/CogInputWindow_Gamepad.h index 6a648ef..5074275 100644 --- a/Plugins/CogInput/Source/CogInput/Public/CogInputWindow_Gamepad.h +++ b/Plugins/CogInput/Source/CogInput/Public/CogInputWindow_Gamepad.h @@ -4,12 +4,15 @@ #include "CogInjectActionInfo.h" #include "CogWindow.h" #include "CogWindowConfig.h" +#include "imgui.h" +#include "InputCoreTypes.h" #include "CogInputWindow_Gamepad.generated.h" class UEnhancedPlayerInput; class UCogInputConfig_Gamepad; class UCogInputDataAsset; struct ImDrawList; +struct FKey; //-------------------------------------------------------------------------------------------------------------------------- class COGINPUT_API FCogInputWindow_Gamepad : public FCogWindow