From 37f0a5e0c603f55e8294bf006baf654ed0061c1d Mon Sep 17 00:00:00 2001 From: Felipe Keller Braz Date: Tue, 21 Jul 2026 22:38:29 -0300 Subject: [PATCH 1/2] fix(input): resolve SDL3Mouse ODR violation causing dropped clicks --- .../GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp | 2 ++ .../GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp b/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp index f4b8437569d..cccaca291d4 100644 --- a/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp +++ b/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp @@ -27,6 +27,8 @@ #ifndef _WIN32 +#include "PreRTS.h" // This must go first in EVERY cpp file in the GameEngine + // GeneralsX @bugfix BenderAI 13/02/2026 Fix include path (fighter19 pattern) #include "SDL3Device/GameClient/SDL3Mouse.h" #include diff --git a/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp b/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp index 0965c3860b2..f1a17e97969 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp @@ -27,6 +27,8 @@ #ifndef _WIN32 +#include "PreRTS.h" // This must go first in EVERY cpp file in the GameEngine + // GeneralsX @bugfix BenderAI 13/02/2026 Fix include path (fighter19 pattern) #include "SDL3Device/GameClient/SDL3Mouse.h" #include From 1a87e8d7a9a54b7c30a8cd83b911dfaf82976fe2 Mon Sep 17 00:00:00 2001 From: Felipe Keller Braz Date: Tue, 21 Jul 2026 23:20:14 -0300 Subject: [PATCH 2/2] fix(input): resolve ODR in SDL3Mouse by including GameCommon.h The previous attempt to include PreRTS.h caused build failures on macOS because PreRTS.h is not available in the GameEngineDevice include paths. Instead, we include Common/GameCommon.h which brings in the DUMP_PERF_STATS macro, successfully aligning the memory layout of SubsystemInterface without breaking the build. --- .../GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp | 2 +- .../GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp b/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp index cccaca291d4..008352d8646 100644 --- a/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp +++ b/Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp @@ -27,7 +27,7 @@ #ifndef _WIN32 -#include "PreRTS.h" // This must go first in EVERY cpp file in the GameEngine +#include "Common/GameCommon.h" // Adicionado para corrigir ODR violation (traz DUMP_PERF_STATS) // GeneralsX @bugfix BenderAI 13/02/2026 Fix include path (fighter19 pattern) #include "SDL3Device/GameClient/SDL3Mouse.h" diff --git a/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp b/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp index f1a17e97969..c029b517cbd 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp @@ -27,7 +27,7 @@ #ifndef _WIN32 -#include "PreRTS.h" // This must go first in EVERY cpp file in the GameEngine +#include "Common/GameCommon.h" // Adicionado para corrigir ODR violation (traz DUMP_PERF_STATS) // GeneralsX @bugfix BenderAI 13/02/2026 Fix include path (fighter19 pattern) #include "SDL3Device/GameClient/SDL3Mouse.h"