From 41c2113ceff1b4dfaac53dc6ac74d70c4b643c92 Mon Sep 17 00:00:00 2001 From: rymercyble Date: Sat, 22 Nov 2025 05:38:25 +0100 Subject: [PATCH 1/2] series of fixes for GCC tested with GCC 13.3.0 on ubuntu 24.04 --- .gitignore | 2 ++ Dependencies/libsodium/libsodium.lua | 2 +- Premake/ProjectUtil.lua | 4 ++-- Source/Base/Base/Types.h | 6 ++++-- Source/Gameplay/Gameplay/Network/GameMessageRouter.h | 4 ++-- Source/Gameplay/Gameplay/Network/NetFields.h | 4 ++-- Source/Scripting/Scripting/Defines.h | 8 +++++--- Source/Scripting/Scripting/Zenith.h | 10 +++++----- 8 files changed, 23 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 56eaf63a..8dbb8040 100644 --- a/.gitignore +++ b/.gitignore @@ -36,8 +36,10 @@ build*/ Build*/ .vs/ .vscode/ +.idea/ out/ CMakeSettings.json +CMakeLists.txt # Exceptions .cache/ diff --git a/Dependencies/libsodium/libsodium.lua b/Dependencies/libsodium/libsodium.lua index 55da7431..9178c00b 100644 --- a/Dependencies/libsodium/libsodium.lua +++ b/Dependencies/libsodium/libsodium.lua @@ -9,7 +9,7 @@ Solution.Util.CreateDep(dep.Name, dep.Dependencies, function() Solution.Util.SetLibDirs(libPath) Solution.Util.SetLinks(lib) else - Solution.Util.SetLinks("libsodium") + Solution.Util.SetLinks("sodium") end Solution.Util.SetIncludes(dep.Path) diff --git a/Premake/ProjectUtil.lua b/Premake/ProjectUtil.lua index 70d0ea0b..6eb1c2e1 100644 --- a/Premake/ProjectUtil.lua +++ b/Premake/ProjectUtil.lua @@ -44,8 +44,8 @@ end systemToExecutableExtensionMap = { - windows = "exe", - linux = "sh" + windows = ".exe", + linux = "" } systemToDynamicLibExtensionMap = diff --git a/Source/Base/Base/Types.h b/Source/Base/Base/Types.h index b30b6b0c..ca992c19 100644 --- a/Source/Base/Base/Types.h +++ b/Source/Base/Base/Types.h @@ -41,8 +41,10 @@ using mat4x4 = glm::mat4x4; using mat4a = glm::mat4x3; using quat = glm::quat; -template -struct EnumTraits; +namespace Generated { + template + struct EnumTraits; +} #define DECLARE_GENERIC_BITWISE_OPERATORS(T) inline const T operator~ (T a) { return (T)~(i32)a; } \ inline const T operator| (T a, T b) { return (T)((i32)a | (i32)b); } \ diff --git a/Source/Gameplay/Gameplay/Network/GameMessageRouter.h b/Source/Gameplay/Gameplay/Network/GameMessageRouter.h index 5acbce76..5bdf46a8 100644 --- a/Source/Gameplay/Gameplay/Network/GameMessageRouter.h +++ b/Source/Gameplay/Gameplay/Network/GameMessageRouter.h @@ -62,9 +62,9 @@ namespace Network template void UnregisterPacketHandler(OpcodeType opcode) { - auto opcode = static_cast(PacketStruct::PACKET_ID); + auto opcodeValue = static_cast(PacketStruct::PACKET_ID); - GameMessageHandler& handler = _handlers[opcode]; + GameMessageHandler& handler = _handlers[opcodeValue]; handler.status = ConnectionStatus::None; handler.minSize = 0; handler.maxSize = 0; diff --git a/Source/Gameplay/Gameplay/Network/NetFields.h b/Source/Gameplay/Gameplay/Network/NetFields.h index bad006a2..5d3e90fc 100644 --- a/Source/Gameplay/Gameplay/Network/NetFields.h +++ b/Source/Gameplay/Gameplay/Network/NetFields.h @@ -15,7 +15,7 @@ namespace Network template concept HasMetaEnumTraits = requires { - typename EnumTraits::Meta; + typename Generated::EnumTraits::Meta; }; template requires std::is_enum_v&& std::is_same_v, u16>&& HasMetaEnumTraits @@ -24,7 +24,7 @@ namespace Network template requires std::is_enum_v && std::is_same_v, u16> && HasMetaEnumTraits struct NetFields { - using Meta = typename EnumTraits::Meta; + using Meta = typename Generated::EnumTraits::Meta; static constexpr u16 NumFields = static_cast(Meta::EnumList.size()); public: diff --git a/Source/Scripting/Scripting/Defines.h b/Source/Scripting/Scripting/Defines.h index 0065bc90..18abfad6 100644 --- a/Source/Scripting/Scripting/Defines.h +++ b/Source/Scripting/Scripting/Defines.h @@ -5,8 +5,10 @@ #include -template -struct LuaEventDataTraits; +namespace Generated { + template + struct LuaEventDataTraits; +} struct lua_State; typedef i32(*lua_CFunction)(lua_State* L); @@ -21,7 +23,7 @@ namespace Scripting template concept LuaEventTypeConcept = requires(T t) { - { EnumTraits>::Meta::EnumID } -> std::convertible_to; + { Generated::EnumTraits>::Meta::EnumID } -> std::convertible_to; }; template diff --git a/Source/Scripting/Scripting/Zenith.h b/Source/Scripting/Scripting/Zenith.h index 2949ec5c..23421895 100644 --- a/Source/Scripting/Scripting/Zenith.h +++ b/Source/Scripting/Scripting/Zenith.h @@ -299,7 +299,7 @@ namespace Scripting { auto& eventTypeMap = eventState.eventTypeToState; - using Meta = typename EnumTraits::Meta; + using Meta = typename Generated::EnumTraits::Meta; u16 eventTypeID = Meta::EnumID; if (eventTypeMap.contains(eventTypeID)) return false; @@ -322,7 +322,7 @@ namespace Scripting template requires LuaEventCallbackConcept bool RegisterEventTypeID(EventType eventType, Callback&& callback = nullptr) { - u16 eventTypeID = EnumTraits::Meta::EnumID; + u16 eventTypeID = Generated::EnumTraits::Meta::EnumID; u16 eventDataID = std::decay_t::StructID; u16 eventTypeVal = static_cast(eventType); @@ -415,7 +415,7 @@ namespace Scripting template bool RegisterEventCallback(EventType eventType, u16 variantID, i32 funcRef) { - u16 eventTypeID = EnumTraits::Meta::EnumID; + u16 eventTypeID = Generated::EnumTraits::Meta::EnumID; u16 eventTypeVal = static_cast(eventType); return RegisterEventCallbackRaw(eventTypeID, eventTypeVal, variantID, funcRef); @@ -424,7 +424,7 @@ namespace Scripting template bool CallEvent(EventType eventType, EventDataType&& eventData, u16 variantID = 0) { - u16 eventTypeID = EnumTraits::Meta::EnumID; + u16 eventTypeID = Generated::EnumTraits::Meta::EnumID; u16 eventDataID = std::decay_t::StructID; u16 eventTypeVal = static_cast(eventType); @@ -470,7 +470,7 @@ namespace Scripting template bool CallEventBool(EventType eventType, EventDataType&& eventData, u16 variantID = 0) { - u16 eventTypeID = EnumTraits::Meta::EnumID; + u16 eventTypeID = Generated::EnumTraits::Meta::EnumID; u16 eventDataID = std::decay_t::StructID; u16 eventTypeVal = static_cast(eventType); From 84fc5a833f0da6b86bef7fce951a27369591ecbd Mon Sep 17 00:00:00 2001 From: rymercyble Date: Sun, 23 Nov 2025 07:18:38 +0100 Subject: [PATCH 2/2] wrong variable usage --- Source/Gameplay/Gameplay/Network/GameMessageRouter.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/Gameplay/Gameplay/Network/GameMessageRouter.h b/Source/Gameplay/Gameplay/Network/GameMessageRouter.h index 5bdf46a8..6f400420 100644 --- a/Source/Gameplay/Gameplay/Network/GameMessageRouter.h +++ b/Source/Gameplay/Gameplay/Network/GameMessageRouter.h @@ -62,9 +62,7 @@ namespace Network template void UnregisterPacketHandler(OpcodeType opcode) { - auto opcodeValue = static_cast(PacketStruct::PACKET_ID); - - GameMessageHandler& handler = _handlers[opcodeValue]; + GameMessageHandler& handler = _handlers[opcode]; handler.status = ConnectionStatus::None; handler.minSize = 0; handler.maxSize = 0;