From 98f5c3ae5828bd97de5b2ad9ab44eba622429016 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Fri, 4 Jul 2025 00:51:33 +0300 Subject: [PATCH 01/15] Implement composite controls support for `INItializableWindow` system --- ClientGUI/ICompositeControl.cs | 22 ++++++++++++++++++++++ ClientGUI/INItializableWindow.cs | 17 +++++++++-------- ClientGUI/XNAClientScrollPanel.cs | 14 ++++++++++++++ 3 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 ClientGUI/ICompositeControl.cs create mode 100644 ClientGUI/XNAClientScrollPanel.cs diff --git a/ClientGUI/ICompositeControl.cs b/ClientGUI/ICompositeControl.cs new file mode 100644 index 000000000..5bacd340e --- /dev/null +++ b/ClientGUI/ICompositeControl.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; + +using Rampastring.XNAUI.XNAControls; + +namespace ClientGUI; + +/// +/// Indicates that the implementer has sub-controls that need to be exposed to INI system. +/// +public interface ICompositeControl +{ + /// + /// The sub-controls that are exposed to the INI system. + /// + /// + /// All the sub-controls should have their names set to something + /// unique to each composite control. This can be done in the beginning + /// of an override as by then the + /// name of the composite control is usually set. + /// + IReadOnlyList SubControls { get; } +} \ No newline at end of file diff --git a/ClientGUI/INItializableWindow.cs b/ClientGUI/INItializableWindow.cs index 84ebfed40..22fbbaa48 100644 --- a/ClientGUI/INItializableWindow.cs +++ b/ClientGUI/INItializableWindow.cs @@ -143,14 +143,6 @@ private void ParseExtraControls() } } - private void ReadINIRecursive(XNAControl control) - { - ReadINIForControl(control); - - foreach (var child in control.Children) - ReadINIRecursive(child); - } - protected override void ParseControlINIAttribute(IniFile iniFile, string key, string value) { if (key == "HasCloseButton") @@ -178,6 +170,15 @@ static string Localize(XNAControl control, string attributeName, string defaultV var child = CreateChildControl(control, kvp.Value); ReadINIForControl(child); child.Initialize(); + + if (child is ICompositeControl composite) + { + foreach (var c in composite.SubControls) + { + ReadINIForControl(child); + child.Initialize(); + } + } } else if (kvp.Key == "$X") { diff --git a/ClientGUI/XNAClientScrollPanel.cs b/ClientGUI/XNAClientScrollPanel.cs new file mode 100644 index 000000000..abc3a02a0 --- /dev/null +++ b/ClientGUI/XNAClientScrollPanel.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +using Rampastring.XNAUI; +using Rampastring.XNAUI.XNAControls; + +namespace ClientGUI; + +public class XNAClientScrollPanel : XNAScrollPanel, ICompositeControl +{ + public IReadOnlyList SubControls + => [ContentPanel, HorizontalScrollBar, VerticalScrollBar, CornerPanel]; + + public XNAClientScrollPanel(WindowManager windowManager) : base(windowManager) { } +} \ No newline at end of file From b36d1d59c4819f42d42ea0d65814a960699134b3 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Fri, 4 Jul 2025 01:39:58 +0300 Subject: [PATCH 02/15] Fix oversights --- ClientGUI/INItializableWindow.cs | 6 +++--- DXMainClient/DXGUI/GameClass.cs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ClientGUI/INItializableWindow.cs b/ClientGUI/INItializableWindow.cs index 22fbbaa48..974785dc5 100644 --- a/ClientGUI/INItializableWindow.cs +++ b/ClientGUI/INItializableWindow.cs @@ -173,10 +173,10 @@ static string Localize(XNAControl control, string attributeName, string defaultV if (child is ICompositeControl composite) { - foreach (var c in composite.SubControls) + foreach (var sc in composite.SubControls) { - ReadINIForControl(child); - child.Initialize(); + ReadINIForControl(sc); + sc.Initialize(); } } } diff --git a/DXMainClient/DXGUI/GameClass.cs b/DXMainClient/DXGUI/GameClass.cs index b50dfcadd..96f085b3a 100644 --- a/DXMainClient/DXGUI/GameClass.cs +++ b/DXMainClient/DXGUI/GameClass.cs @@ -305,6 +305,7 @@ private IServiceProvider BuildServiceProvider(WindowManager windowManager) .AddTransientXnaControl() .AddTransientXnaControl() .AddTransientXnaControl() + .AddTransientXnaControl() .AddTransientXnaControl() .AddTransientXnaControl() .AddTransientXnaControl() From 8e1bdc82269269ad4ac0c94677f9596fab6f214e Mon Sep 17 00:00:00 2001 From: Metadorius Date: Fri, 4 Jul 2025 17:51:57 +0300 Subject: [PATCH 03/15] Adjust for the latest ScrollPanel version --- ClientGUI/XNAClientScrollPanel.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ClientGUI/XNAClientScrollPanel.cs b/ClientGUI/XNAClientScrollPanel.cs index abc3a02a0..3439a5f9f 100644 --- a/ClientGUI/XNAClientScrollPanel.cs +++ b/ClientGUI/XNAClientScrollPanel.cs @@ -11,4 +11,14 @@ public IReadOnlyList SubControls => [ContentPanel, HorizontalScrollBar, VerticalScrollBar, CornerPanel]; public XNAClientScrollPanel(WindowManager windowManager) : base(windowManager) { } + + protected override void ComposeControls() + { + // this is needed for the control composition to work properly, as otherwise + // the controls will be initialized twice via INItializableWindow system + AddChildWithoutInitialize(ContentPanel); + AddChildWithoutInitialize(HorizontalScrollBar); + AddChildWithoutInitialize(VerticalScrollBar); + AddChildWithoutInitialize(CornerPanel); + } } \ No newline at end of file From 448c030220addf74357ed66e813579e9064a826c Mon Sep 17 00:00:00 2001 From: Metadorius Date: Fri, 4 Jul 2025 23:09:33 +0300 Subject: [PATCH 04/15] Add horizontal scrollbar assets --- .../DTA/Default Theme/hsbBackground.png | Bin 0 -> 367 bytes .../Resources/DTA/Default Theme/hsbLeftArrow.png | Bin 0 -> 1048 bytes .../Resources/DTA/Default Theme/hsbMiddle.png | Bin 0 -> 422 bytes .../DTA/Default Theme/hsbRightArrow.png | Bin 0 -> 1056 bytes .../Resources/DTA/Default Theme/hsbThumbLeft.png | Bin 0 -> 413 bytes .../DTA/Default Theme/hsbThumbRight.png | Bin 0 -> 416 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbBackground.png create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbLeftArrow.png create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbMiddle.png create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbRightArrow.png create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbThumbLeft.png create mode 100644 DXMainClient/Resources/DTA/Default Theme/hsbThumbRight.png diff --git a/DXMainClient/Resources/DTA/Default Theme/hsbBackground.png b/DXMainClient/Resources/DTA/Default Theme/hsbBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..8874a4051ba1d331da24f385352be9912a5fdcc7 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F#0(@?ef+Beq!f}pf_xbms#F;m8k!jxe*Op2 zFBuq04Hy_+B``2p&0t^<&z}^3)D5VXGr%Xr)oa^50Tsjl|NqCZe0>2FWK8mQcVSB7 zu1Nu@DDa3ZW?qIEHXsPfkcEIKV8)V4=X=I5l%#A5ccM#5JNMC9x#cD!C{XNHG{07@6oA z8tEDsg&0~|nHpM|SZEsTh$k$>W1-}Iy{^>;nLQPw`SZu{Ys{aZ|?=5s5`82mRBG1V^Lz0KJ_ z=Ii$#L8}+3RD^PA$Ov536)@HeU$R(L-{JGu?}qhhB8kTQ4>jceDTXdyq^xWA<=c17 z{9qnOITbzok6*sJENv8W)8dJjm-#6lwrIYxj?L@$pMvMkwAxrB7^cJJD9!qkN5Dv3 zLEZG>^Vg}ZGu@_6H(k>pnq#|L|to+h6{VG-cYn1})6eFtTvx+710y$+RIp0ZI{m}6=VgiGX0~N#mSl}F=xYE*He-^vyNl$TysaHT4rhT!WHAE+w=f7ZGR&GI z0Tg5}@$_|Nf62}wAj7Gk(QOLuBxe`p{AClY@VLHzPh=xv9`6$&dSNc!EBz!#oXT7+0xO@ z&d%1=?Cxxy>gnR)f~n@t0tMecq+W<}D2W8ywmeJeY97zlg-IFdEwSDS3wd&QZTUHya zUr9?z&YBe+6?OZTwbgDO-riTct0k&_|5EpvV^Vo4mdKI;Vst08b=vQ2+n{ literal 0 HcmV?d00001 diff --git a/DXMainClient/Resources/DTA/Default Theme/hsbMiddle.png b/DXMainClient/Resources/DTA/Default Theme/hsbMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..71f4bea7d4e45c50120a8c0ecf229d607849202d GIT binary patch literal 422 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F!VDx;H*&N9DTQQ@AYTTCDpdxChGqtapZ|gM zO9qBg0|tgy2@DKYGZ+}e^C!h0bpxtZ5AX?b1=3EAPE#gLdH(qM|NsBrzka`U)7GA@ zo|dMT;?m;m%xo`TFHH^2i6y7lfl3*Zyxm<``ZI0@0y&%o9+AZi4BWyX%*Zfnjs#GU zy~NYkmHj0F+W;u`Q-qM@d2nx%5Qk&%(Uy1BBkwzbU8Y?{i+ z!V4PKtem;Cb?L;Zrp;4&*Xpp`xM^*1%firN_YNo4l)HCqZT3p+seQn-XmobuHzhIBj7o2Pku**}JMZvG zgYtWSSh>Y@U6iQCWIbwE7~p00i_>zopr0J)rS*8l(j literal 0 HcmV?d00001 diff --git a/DXMainClient/Resources/DTA/Default Theme/hsbThumbLeft.png b/DXMainClient/Resources/DTA/Default Theme/hsbThumbLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3e07bc37bef744df2765d0deb67cfdb016c38f GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ea!VDzOwQX((QVPi)LB0$ORjLdO4b2P;KmP;i zmkbQ01`G_Z5*Qe)W-u^_=TC}1>IPJ+65tc!nw*-vblKAHpTGbA|Nr~<@9*EgfByXW zz1#QBoj2OC7#SFu=o%X7 z8W@EbT3VSJTA5gA8yHv_7<_%w7>S}GH$NpatrE9}mYtSQff_X6Hk4%MrWThZ<`#hT lnCcps>l&DZ7@Aob8Cn@YEphvqyAG&_!PC{xWt~$(699Ddc^?1( literal 0 HcmV?d00001 diff --git a/DXMainClient/Resources/DTA/Default Theme/hsbThumbRight.png b/DXMainClient/Resources/DTA/Default Theme/hsbThumbRight.png new file mode 100644 index 0000000000000000000000000000000000000000..a4aeb87e8c514076bdcd24dab47ee8b1ae094141 GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ea!VDzOwQX((QVPi)LB0$ORjLdO4b2P;KmP;i zmkbQ01`G_Z5*Qe)W-u^_=TC}1>IPJ+65tc!3Zyl4G^=Z?=ggYZ($?bT>!qloC?O*u zARxfN!l0?4`Tzg_8F#W+fa(~Nyxm>6<*y$(0OW8MctjR6FmMZlFeAgPITAoY_7YED zSN50eECQk&Pp78+1_}uzC;F9vXdni;77R`vU-<#ZQ1Nte4B@z*oWQ{3$fnAc%qHFz zpx`}0v3KE|h0Td-0X2-w%nUl;nGd8K5Uc>IS1oakC`m~yNwrEYN(E93Mg~SEx`sx& z21X%QRwfqO1_o9J249~vMxtoQ%}>cptHiCLWvAs+pau=N4JDbmsl_FUxdk9S lrn&~^x&|g8hGteqhE@hpOWc0ut^?{}@O1TaS?83{1OP_gYKi~= literal 0 HcmV?d00001 From bb43277fbf40121dce0abbcd0c00f97191e54ddc Mon Sep 17 00:00:00 2001 From: Metadorius Date: Sun, 6 Jul 2025 20:50:01 +0300 Subject: [PATCH 05/15] Support `.` in control name --- ClientGUI/Parser.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ClientGUI/Parser.cs b/ClientGUI/Parser.cs index bd23ca5b3..ecae358d6 100644 --- a/ClientGUI/Parser.cs +++ b/ClientGUI/Parser.cs @@ -227,7 +227,7 @@ private string GetIdentifier() if (char.IsWhiteSpace(c)) break; - if (!char.IsLetterOrDigit(c) && c != '_' && c != '$') + if (!char.IsLetterOrDigit(c) && c != '_' && c != '$' && c != '.') break; identifierName += c.ToString(); From 99b5726ccdee40d7755cc785a54f0f11d1a2b929 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Sun, 6 Jul 2025 20:50:39 +0300 Subject: [PATCH 06/15] Support `$OverscrollMargin[X/Y]` --- ClientGUI/INItializableWindow.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ClientGUI/INItializableWindow.cs b/ClientGUI/INItializableWindow.cs index 974785dc5..e64f5139b 100644 --- a/ClientGUI/INItializableWindow.cs +++ b/ClientGUI/INItializableWindow.cs @@ -212,6 +212,28 @@ static string Localize(XNAControl control, string attributeName, string defaultV throw new FormatException("Invalid format for AnchorPoint: " + kvp.Value); ((XNALabel)control).AnchorPoint = new Vector2(Parser.Instance.GetExprValue(parts[0], control), Parser.Instance.GetExprValue(parts[1], control)); } + else if (kvp.Key == "$OverscrollMargin" && control is XNAScrollPanel scrollPanel) + { + string[] parts = kvp.Value.Split(','); + (int X, int Y) values = parts + .Select(s => Parser.Instance.GetExprValue(s, control)) + .ToArray().AsTuple2(); + scrollPanel.OverscrollMargin = new(values.X, values.Y); + } + else if (kvp.Key == "$OverscrollMarginX" && control is XNAScrollPanel scrollPanel1) + { + scrollPanel1.OverscrollMargin = scrollPanel1.OverscrollMargin with + { + X = Parser.Instance.GetExprValue(kvp.Value, control) + }; + } + else if (kvp.Key == "$OverscrollMarginY" && control is XNAScrollPanel scrollPanel2) + { + scrollPanel2.OverscrollMargin = scrollPanel2.OverscrollMargin with + { + Y = Parser.Instance.GetExprValue(kvp.Value, control) + }; + } else if (kvp.Key == "$LeftClickAction") { if (kvp.Value == "Disable") From 00d469f50c0dc9a17b76e2924cb71848d5595564 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Thu, 24 Jul 2025 01:41:47 +0300 Subject: [PATCH 07/15] Fix outdated composite control comment --- ClientGUI/ICompositeControl.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ClientGUI/ICompositeControl.cs b/ClientGUI/ICompositeControl.cs index 5bacd340e..f3f1bf016 100644 --- a/ClientGUI/ICompositeControl.cs +++ b/ClientGUI/ICompositeControl.cs @@ -14,9 +14,8 @@ public interface ICompositeControl /// /// /// All the sub-controls should have their names set to something - /// unique to each composite control. This can be done in the beginning - /// of an override as by then the - /// name of the composite control is usually set. + /// unique to each composite control. Utilise + /// event to set the names of the sub-controls. /// IReadOnlyList SubControls { get; } } \ No newline at end of file From 7fa3ce226244daa7036936296060494d02095443 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Thu, 24 Jul 2025 01:42:47 +0300 Subject: [PATCH 08/15] Upgrade to XNAUI v3.x.x input handling --- ClientGUI/XNAClientDropDown.cs | 5 +++-- ClientGUI/XNAClientLinkLabel.cs | 6 ++++-- ClientGUI/XNALinkButton.cs | 6 ++++-- .../CnCNet/PrivateMessagingPanel.cs | 21 +++++-------------- .../GameLobby/GameLobbyCheckBox.cs | 8 +++++-- .../GameLobby/GameLobbyDropDown.cs | 8 +++++-- .../Multiplayer/GameLobby/MapPreviewBox.cs | 6 ++++-- 7 files changed, 32 insertions(+), 28 deletions(-) diff --git a/ClientGUI/XNAClientDropDown.cs b/ClientGUI/XNAClientDropDown.cs index 1cdeee11e..0fff53f67 100644 --- a/ClientGUI/XNAClientDropDown.cs +++ b/ClientGUI/XNAClientDropDown.cs @@ -46,9 +46,10 @@ protected override void ParseControlINIAttribute(IniFile iniFile, string key, st base.ParseControlINIAttribute(iniFile, key, value); } - public override void OnMouseLeftDown() + public override void OnMouseLeftDown(InputEventArgs inputEventArgs) { - base.OnMouseLeftDown(); + // no need to set Handled to true since we're not "consuming" the event here, just augmenting + base.OnMouseLeftDown(inputEventArgs); UpdateToolTipBlock(); } diff --git a/ClientGUI/XNAClientLinkLabel.cs b/ClientGUI/XNAClientLinkLabel.cs index 39a7c39cf..51dfc5e72 100644 --- a/ClientGUI/XNAClientLinkLabel.cs +++ b/ClientGUI/XNAClientLinkLabel.cs @@ -99,8 +99,10 @@ public override void OnMouseLeave() TextColor = IdleColor; } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { + inputEventArgs.Handled = true; + ClickSoundEffect?.Play(); OSVersion osVersion = ClientConfiguration.Instance.GetOperatingSystemVersion(); @@ -110,7 +112,7 @@ public override void OnLeftClick() else if (!string.IsNullOrEmpty(URL)) ProcessLauncher.StartShellProcess(URL); - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); } } } \ No newline at end of file diff --git a/ClientGUI/XNALinkButton.cs b/ClientGUI/XNALinkButton.cs index 5ea792603..0525a645b 100644 --- a/ClientGUI/XNALinkButton.cs +++ b/ClientGUI/XNALinkButton.cs @@ -36,8 +36,10 @@ protected override void ParseControlINIAttribute(IniFile iniFile, string key, st base.ParseControlINIAttribute(iniFile, key, value); } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { + inputEventArgs.Handled = true; + OSVersion osVersion = ClientConfiguration.Instance.GetOperatingSystemVersion(); if (osVersion == OSVersion.UNIX && !string.IsNullOrEmpty(UnixURL)) @@ -45,7 +47,7 @@ public override void OnLeftClick() else if (!string.IsNullOrEmpty(URL)) ProcessLauncher.StartShellProcess(URL, Arguments); - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); } } } diff --git a/DXMainClient/DXGUI/Multiplayer/CnCNet/PrivateMessagingPanel.cs b/DXMainClient/DXGUI/Multiplayer/CnCNet/PrivateMessagingPanel.cs index 4ae4434e0..db8205d6e 100644 --- a/DXMainClient/DXGUI/Multiplayer/CnCNet/PrivateMessagingPanel.cs +++ b/DXMainClient/DXGUI/Multiplayer/CnCNet/PrivateMessagingPanel.cs @@ -13,25 +13,14 @@ public PrivateMessagingPanel(WindowManager windowManager) : base(windowManager) { } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { - bool hideControl = true; - - foreach (var child in Children) - { - if (child.IsActive) - { - hideControl = false; - break; - } - } - - if (hideControl) + inputEventArgs.Handled = true; + + if (GetActiveChild() == null) Hide(); - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); } - - } } diff --git a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyCheckBox.cs b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyCheckBox.cs index 2a6a97b31..7d985319f 100644 --- a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyCheckBox.cs +++ b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyCheckBox.cs @@ -190,12 +190,16 @@ public void ApplyDisallowedSideIndex(bool[] disallowedArray) } } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { + // FIXME there's a discrepancy with how base XNAUI handles this + // it doesn't set handled if changing the setting is not allowed + inputEventArgs.Handled = true; + if (!AllowChanges) return; - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); UserChecked = Checked; } } diff --git a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyDropDown.cs b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyDropDown.cs index 6caf8c942..6614800bd 100644 --- a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyDropDown.cs +++ b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyDropDown.cs @@ -147,12 +147,16 @@ public void ApplyMapCode(IniFile mapIni, GameMode gameMode) MapCodeHelper.ApplyMapCode(mapIni, customIniPath, gameMode); } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { + // FIXME there's a discrepancy with how base XNAUI handles this + // it doesn't set handled if changing the setting is not allowed + inputEventArgs.Handled = true; + if (!AllowDropDown) return; - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); UserSelectedIndex = SelectedIndex; } } diff --git a/DXMainClient/DXGUI/Multiplayer/GameLobby/MapPreviewBox.cs b/DXMainClient/DXGUI/Multiplayer/GameLobby/MapPreviewBox.cs index 31744b247..2827b30d8 100644 --- a/DXMainClient/DXGUI/Multiplayer/GameLobby/MapPreviewBox.cs +++ b/DXMainClient/DXGUI/Multiplayer/GameLobby/MapPreviewBox.cs @@ -617,8 +617,10 @@ public override void OnMouseLeave() base.OnMouseLeave(); } - public override void OnLeftClick() + public override void OnLeftClick(InputEventArgs inputEventArgs) { + inputEventArgs.Handled = true; + if (Keyboard.IsKeyHeldDown(Keys.LeftControl)) { FileInfo previewFileInfo = SafePath.GetFile(ProgramConstants.GamePath, GameModeMap.Map.PreviewPath); @@ -627,7 +629,7 @@ public override void OnLeftClick() ProcessLauncher.StartShellProcess(previewFileInfo.FullName); } - base.OnLeftClick(); + base.OnLeftClick(inputEventArgs); } public override void Draw(GameTime gameTime) From 54c50c2a207edd18908f865fe1463431f24093a4 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Thu, 24 Jul 2025 15:24:12 +0300 Subject: [PATCH 09/15] [TEMP] Switch to submodules for Rampa's libraries and point to relevant commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix CPM interfering with submodules Fix some rogue references Reference XNA Framework when use XNA engine Signed-off-by: 舰队的偶像-岛风酱! fixed solution errors Signed-off-by: 舰队的偶像-岛风酱! ignore arch when build with WindowsXNA Signed-off-by: 舰队的偶像-岛风酱! Update XNAUI to fix compilation --- .github/workflows/build.yml | 1 + .github/workflows/release-build.yml | 1 + .gitmodules | 3 + ClientCore/ClientCore.csproj | 7 +- ClientUpdater/ClientUpdater.csproj | 1 - DXClient.sln | 134 ++++++++++++++++++- Directory.Build.props | 16 +++ Rampastring.XNAUI | 1 + Scripts/build.ps1 | 6 +- SecondStageUpdater/SecondStageUpdater.csproj | 2 +- 10 files changed, 163 insertions(+), 9 deletions(-) create mode 100644 .gitmodules create mode 160000 Rampastring.XNAUI diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b6a6ffb4..6a0bbf45f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 with: + submodules: recursive fetch-depth: 0 - name: Setup .NET SDK diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 2c39a711d..f0fc05080 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -12,6 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: + submodules: recursive fetch-depth: 0 - name: Setup .NET SDK diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..e80a86b2f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Rampastring.XNAUI"] + path = Rampastring.XNAUI + url = ../../Rampastring/Rampastring.XNAUI.git diff --git a/ClientCore/ClientCore.csproj b/ClientCore/ClientCore.csproj index 9ad0ea8f2..72deec067 100644 --- a/ClientCore/ClientCore.csproj +++ b/ClientCore/ClientCore.csproj @@ -7,10 +7,11 @@ - - - + + + + diff --git a/ClientUpdater/ClientUpdater.csproj b/ClientUpdater/ClientUpdater.csproj index 1d338ebf3..4412e33d3 100644 --- a/ClientUpdater/ClientUpdater.csproj +++ b/ClientUpdater/ClientUpdater.csproj @@ -6,7 +6,6 @@ - diff --git a/DXClient.sln b/DXClient.sln index d5070253c..cbb20456f 100644 --- a/DXClient.sln +++ b/DXClient.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32408.312 MinimumVisualStudioVersion = 10.0.40219.1 @@ -29,6 +29,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SecondStageUpdater", "Secon EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClientUpdater", "ClientUpdater\ClientUpdater.csproj", "{551D080B-5624-4793-AC31-69D77C62F6B1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rampastring.XNAUI", "Rampastring.XNAUI\Rampastring.XNAUI.csproj", "{C15C1D44-721E-4756-B3C9-2A3C0458E584}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rampastring.Tools", "Rampastring.XNAUI\Rampastring.Tools\Rampastring.Tools.csproj", "{21AD0890-4BF1-4E28-8C8F-D4350982D1E7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution UniversalGLDebug|Any CPU = UniversalGLDebug|Any CPU @@ -513,6 +517,134 @@ Global {551D080B-5624-4793-AC31-69D77C62F6B1}.WindowsXNARelease|x64.Build.0 = WindowsXNARelease|x64 {551D080B-5624-4793-AC31-69D77C62F6B1}.WindowsXNARelease|x86.ActiveCfg = WindowsXNARelease|x86 {551D080B-5624-4793-AC31-69D77C62F6B1}.WindowsXNARelease|x86.Build.0 = WindowsXNARelease|x86 + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|Any CPU.ActiveCfg = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|Any CPU.Build.0 = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|ARM64.ActiveCfg = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|ARM64.Build.0 = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|x64.ActiveCfg = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|x64.Build.0 = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|x86.ActiveCfg = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLDebug|x86.Build.0 = UniversalGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|Any CPU.ActiveCfg = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|Any CPU.Build.0 = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|ARM64.ActiveCfg = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|ARM64.Build.0 = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|x64.ActiveCfg = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|x64.Build.0 = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|x86.ActiveCfg = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.UniversalGLRelease|x86.Build.0 = UniversalGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|Any CPU.ActiveCfg = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|Any CPU.Build.0 = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|ARM64.ActiveCfg = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|ARM64.Build.0 = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|x64.ActiveCfg = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|x64.Build.0 = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|x86.ActiveCfg = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXDebug|x86.Build.0 = WindowsDXDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|Any CPU.ActiveCfg = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|Any CPU.Build.0 = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|ARM64.ActiveCfg = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|ARM64.Build.0 = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|x64.ActiveCfg = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|x64.Build.0 = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|x86.ActiveCfg = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsDXRelease|x86.Build.0 = WindowsDXRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|Any CPU.ActiveCfg = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|Any CPU.Build.0 = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|ARM64.ActiveCfg = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|ARM64.Build.0 = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|x64.ActiveCfg = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|x64.Build.0 = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|x86.ActiveCfg = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLDebug|x86.Build.0 = WindowsGLDebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|Any CPU.ActiveCfg = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|Any CPU.Build.0 = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|ARM64.ActiveCfg = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|ARM64.Build.0 = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|x64.ActiveCfg = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|x64.Build.0 = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|x86.ActiveCfg = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsGLRelease|x86.Build.0 = WindowsGLRelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|Any CPU.ActiveCfg = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|Any CPU.Build.0 = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|ARM64.ActiveCfg = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|ARM64.Build.0 = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|x64.ActiveCfg = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|x64.Build.0 = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|x86.ActiveCfg = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNADebug|x86.Build.0 = WindowsXNADebug|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|Any CPU.ActiveCfg = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|Any CPU.Build.0 = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|ARM64.ActiveCfg = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|ARM64.Build.0 = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|x64.ActiveCfg = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|x64.Build.0 = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|x86.ActiveCfg = WindowsXNARelease|Any CPU + {C15C1D44-721E-4756-B3C9-2A3C0458E584}.WindowsXNARelease|x86.Build.0 = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|Any CPU.ActiveCfg = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|Any CPU.Build.0 = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|ARM64.ActiveCfg = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|ARM64.Build.0 = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|x64.ActiveCfg = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|x64.Build.0 = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|x86.ActiveCfg = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLDebug|x86.Build.0 = UniversalGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|Any CPU.ActiveCfg = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|Any CPU.Build.0 = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|ARM64.ActiveCfg = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|ARM64.Build.0 = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|x64.ActiveCfg = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|x64.Build.0 = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|x86.ActiveCfg = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.UniversalGLRelease|x86.Build.0 = UniversalGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|Any CPU.ActiveCfg = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|Any CPU.Build.0 = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|ARM64.ActiveCfg = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|ARM64.Build.0 = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|x64.ActiveCfg = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|x64.Build.0 = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|x86.ActiveCfg = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXDebug|x86.Build.0 = WindowsDXDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|Any CPU.ActiveCfg = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|Any CPU.Build.0 = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|ARM64.ActiveCfg = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|ARM64.Build.0 = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|x64.ActiveCfg = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|x64.Build.0 = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|x86.ActiveCfg = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsDXRelease|x86.Build.0 = WindowsDXRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|Any CPU.ActiveCfg = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|Any CPU.Build.0 = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|ARM64.ActiveCfg = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|ARM64.Build.0 = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|x64.ActiveCfg = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|x64.Build.0 = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|x86.ActiveCfg = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLDebug|x86.Build.0 = WindowsGLDebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|Any CPU.ActiveCfg = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|Any CPU.Build.0 = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|ARM64.ActiveCfg = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|ARM64.Build.0 = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|x64.ActiveCfg = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|x64.Build.0 = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|x86.ActiveCfg = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsGLRelease|x86.Build.0 = WindowsGLRelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|Any CPU.ActiveCfg = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|Any CPU.Build.0 = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|ARM64.ActiveCfg = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|ARM64.Build.0 = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|x64.ActiveCfg = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|x64.Build.0 = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|x86.ActiveCfg = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNADebug|x86.Build.0 = WindowsXNADebug|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|Any CPU.ActiveCfg = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|Any CPU.Build.0 = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|ARM64.ActiveCfg = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|ARM64.Build.0 = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|x64.ActiveCfg = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|x64.Build.0 = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|x86.ActiveCfg = WindowsXNARelease|Any CPU + {21AD0890-4BF1-4E28-8C8F-D4350982D1E7}.WindowsXNARelease|x86.Build.0 = WindowsXNARelease|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Directory.Build.props b/Directory.Build.props index f8b019ee8..da19b51dd 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -85,4 +85,20 @@ + + + $(MSBuildThisFileDirectory)Rampastring.XNAUI + + + + + $(XNAUIRoot)\References\XNA\Microsoft.Xna.Framework.dll + + + $(XNAUIRoot)\References\XNA\Microsoft.Xna.Framework.Game.dll + + + $(XNAUIRoot)\References\XNA\Microsoft.Xna.Framework.Graphics.dll + + \ No newline at end of file diff --git a/Rampastring.XNAUI b/Rampastring.XNAUI new file mode 160000 index 000000000..f793039ea --- /dev/null +++ b/Rampastring.XNAUI @@ -0,0 +1 @@ +Subproject commit f793039eaffb14497ed36155603396a88f9d97cf diff --git a/Scripts/build.ps1 b/Scripts/build.ps1 index 12a0ca0b2..fd220baa2 100644 --- a/Scripts/build.ps1 +++ b/Scripts/build.ps1 @@ -108,9 +108,9 @@ function Script:Invoke-BuildProject { # $Private:ArgumentList.Add("-property:FileVersion=$AssemblySemFileVer") # $Private:ArgumentList.Add("-property:InformationalVersion=$InformationalVersion") - if ($Engine -eq 'WindowsXNA') { - $Private:ArgumentList.Add('--arch=x86') - } + # if ($Engine -eq 'WindowsXNA') { + # $Private:ArgumentList.Add('--arch=x86') + # } & 'dotnet' $Private:ArgumentList if ($LASTEXITCODE) { diff --git a/SecondStageUpdater/SecondStageUpdater.csproj b/SecondStageUpdater/SecondStageUpdater.csproj index f9a4c641d..90aeb32d4 100644 --- a/SecondStageUpdater/SecondStageUpdater.csproj +++ b/SecondStageUpdater/SecondStageUpdater.csproj @@ -9,6 +9,6 @@ CnCNet.SecondStageUpdater - + \ No newline at end of file From f5682604fb108bf1572d3c280cd92fef485aa04b Mon Sep 17 00:00:00 2001 From: Metadorius Date: Mon, 4 Aug 2025 16:39:38 +0300 Subject: [PATCH 10/15] Update submodule --- Rampastring.XNAUI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rampastring.XNAUI b/Rampastring.XNAUI index f793039ea..57828f244 160000 --- a/Rampastring.XNAUI +++ b/Rampastring.XNAUI @@ -1 +1 @@ -Subproject commit f793039eaffb14497ed36155603396a88f9d97cf +Subproject commit 57828f244a6c2ff27624dc5a3556d0610e94dd9a From ced626b42b2956d3413e273b2770ed53ad277857 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Mon, 4 Aug 2025 19:10:56 +0300 Subject: [PATCH 11/15] Fix XNA compilation --- Rampastring.XNAUI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rampastring.XNAUI b/Rampastring.XNAUI index 57828f244..32bd88055 160000 --- a/Rampastring.XNAUI +++ b/Rampastring.XNAUI @@ -1 +1 @@ -Subproject commit 57828f244a6c2ff27624dc5a3556d0610e94dd9a +Subproject commit 32bd8805594ff02c2220616d4ff87778ef0db8b3 From 6e5762fc163df7f9348e089c8e17f0971cb05054 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Mon, 4 Aug 2025 19:19:07 +0300 Subject: [PATCH 12/15] Update XNAUI --- Rampastring.XNAUI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rampastring.XNAUI b/Rampastring.XNAUI index 32bd88055..447389709 160000 --- a/Rampastring.XNAUI +++ b/Rampastring.XNAUI @@ -1 +1 @@ -Subproject commit 32bd8805594ff02c2220616d4ff87778ef0db8b3 +Subproject commit 44738970998768273993000ef051e4220646fcba From 3853bccbfbdc62927b8dcfa90ebb8cc2ad7711c0 Mon Sep 17 00:00:00 2001 From: Metadorius Date: Wed, 22 Oct 2025 00:02:38 +0300 Subject: [PATCH 13/15] Update submodule --- Rampastring.XNAUI | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rampastring.XNAUI b/Rampastring.XNAUI index 447389709..32f646c44 160000 --- a/Rampastring.XNAUI +++ b/Rampastring.XNAUI @@ -1 +1 @@ -Subproject commit 44738970998768273993000ef051e4220646fcba +Subproject commit 32f646c448008932a3adc046d8e1b76d7a9d4314 From f550ba6244d03c13f0a654ce19e61e6ba8c04b60 Mon Sep 17 00:00:00 2001 From: SadPencil Date: Thu, 23 Oct 2025 06:43:48 +0800 Subject: [PATCH 14/15] Fix incorrect usage of XNAUI reference MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: 舰队的偶像-岛风酱! --- ClientGUI/ClientGUI.csproj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ClientGUI/ClientGUI.csproj b/ClientGUI/ClientGUI.csproj index 8877f0f32..b1fb76632 100644 --- a/ClientGUI/ClientGUI.csproj +++ b/ClientGUI/ClientGUI.csproj @@ -6,8 +6,7 @@ - - + From 05f824a4bc25ea35daa3236bfea01100309b33c1 Mon Sep 17 00:00:00 2001 From: SadPencil Date: Thu, 23 Oct 2025 17:22:09 +0800 Subject: [PATCH 15/15] Remove XNAUI reference in ClientCore --- ClientCore/ClientCore.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/ClientCore/ClientCore.csproj b/ClientCore/ClientCore.csproj index 60daaaf2d..d01c05bec 100644 --- a/ClientCore/ClientCore.csproj +++ b/ClientCore/ClientCore.csproj @@ -12,6 +12,5 @@ -