diff --git a/Projects/Server/Collections/PooledRefQueue.cs b/Projects/Server/Collections/PooledRefQueue.cs index 00ff4b505..2a73e4bde 100644 --- a/Projects/Server/Collections/PooledRefQueue.cs +++ b/Projects/Server/Collections/PooledRefQueue.cs @@ -316,7 +316,11 @@ public ref struct PooledRefQueue } // Increments the index wrapping it if necessary. +#if NET7_SDK + private void MoveNext(scoped ref int index) +#else private void MoveNext(ref int index) +#endif { // It is tempting to use the remainder operator here but it is actually much slower // than a simple comparison and a rarely taken branch. diff --git a/Projects/Server/Gumps/GumpAlphaRegion.cs b/Projects/Server/Gumps/GumpAlphaRegion.cs index 376aacd0d..119d183e0 100644 --- a/Projects/Server/Gumps/GumpAlphaRegion.cs +++ b/Projects/Server/Gumps/GumpAlphaRegion.cs @@ -36,7 +36,11 @@ public class GumpAlphaRegion : GumpEntry public int Height { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ checkertrans {X} {Y} {Width} {Height} }}"); } diff --git a/Projects/Server/Gumps/GumpBackground.cs b/Projects/Server/Gumps/GumpBackground.cs index 422fe063a..99614d389 100644 --- a/Projects/Server/Gumps/GumpBackground.cs +++ b/Projects/Server/Gumps/GumpBackground.cs @@ -39,7 +39,11 @@ public class GumpBackground : GumpEntry public int GumpID { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ resizepic {X} {Y} {GumpID} {Width} {Height} }}"); } diff --git a/Projects/Server/Gumps/GumpButton.cs b/Projects/Server/Gumps/GumpButton.cs index 679bffbf9..6d44556e4 100644 --- a/Projects/Server/Gumps/GumpButton.cs +++ b/Projects/Server/Gumps/GumpButton.cs @@ -54,7 +54,11 @@ public class GumpButton : GumpEntry public int Param { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ button {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} }}"); } diff --git a/Projects/Server/Gumps/GumpCheck.cs b/Projects/Server/Gumps/GumpCheck.cs index bcfa289d4..006997002 100644 --- a/Projects/Server/Gumps/GumpCheck.cs +++ b/Projects/Server/Gumps/GumpCheck.cs @@ -42,7 +42,11 @@ public class GumpCheck : GumpEntry public int SwitchID { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var initialState = InitialState ? "1" : "0"; writer.WriteAscii($"{{ checkbox {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}"); diff --git a/Projects/Server/Gumps/GumpECHandleInput.cs b/Projects/Server/Gumps/GumpECHandleInput.cs index 2bd494a8e..88a6a45e6 100644 --- a/Projects/Server/Gumps/GumpECHandleInput.cs +++ b/Projects/Server/Gumps/GumpECHandleInput.cs @@ -22,7 +22,11 @@ public class GumpECHandleInput : GumpEntry { private static byte[] _layout = Gump.StringToBuffer("{ echandleinput }"); +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.Write(_layout); } diff --git a/Projects/Server/Gumps/GumpEntry.cs b/Projects/Server/Gumps/GumpEntry.cs index 175f6f813..3113aad8e 100644 --- a/Projects/Server/Gumps/GumpEntry.cs +++ b/Projects/Server/Gumps/GumpEntry.cs @@ -25,5 +25,9 @@ public abstract class GumpEntry // TODO: Replace OrderedHashSet with InsertOnlyHashSet, a copy of HashSet that is ReadOnly compatible, but includes // a public AddIfNotPresent function that returns the index of the element +#if NET7_SDK + public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches); +#else public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches); +#endif } diff --git a/Projects/Server/Gumps/GumpGroup.cs b/Projects/Server/Gumps/GumpGroup.cs index a24c0debc..aa9f46fd1 100644 --- a/Projects/Server/Gumps/GumpGroup.cs +++ b/Projects/Server/Gumps/GumpGroup.cs @@ -26,7 +26,11 @@ public class GumpGroup : GumpEntry public int Group { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { if (Group == 1) { diff --git a/Projects/Server/Gumps/GumpHtml.cs b/Projects/Server/Gumps/GumpHtml.cs index 12b77ed05..e971362ae 100644 --- a/Projects/Server/Gumps/GumpHtml.cs +++ b/Projects/Server/Gumps/GumpHtml.cs @@ -45,7 +45,11 @@ public class GumpHtml : GumpEntry public bool Scrollbar { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var textIndex = strings.GetOrAdd(Text ?? ""); var background = Background ? "1" : "0"; diff --git a/Projects/Server/Gumps/GumpHtmlLocalized.cs b/Projects/Server/Gumps/GumpHtmlLocalized.cs index a4241dfbb..21759b48f 100644 --- a/Projects/Server/Gumps/GumpHtmlLocalized.cs +++ b/Projects/Server/Gumps/GumpHtmlLocalized.cs @@ -101,7 +101,11 @@ public class GumpHtmlLocalized : GumpEntry public GumpHtmlLocalizedType Type { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var background = Background ? "1" : "0"; var scrollbar = Scrollbar ? "1" : "0"; diff --git a/Projects/Server/Gumps/GumpImage.cs b/Projects/Server/Gumps/GumpImage.cs index ba3d17969..ef1ae1a3f 100644 --- a/Projects/Server/Gumps/GumpImage.cs +++ b/Projects/Server/Gumps/GumpImage.cs @@ -39,7 +39,11 @@ public class GumpImage : GumpEntry public string Class { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var hasHue = Hue != 0; var hasClass = !string.IsNullOrEmpty(Class); diff --git a/Projects/Server/Gumps/GumpImageTileButton.cs b/Projects/Server/Gumps/GumpImageTileButton.cs index 4bb862af9..28cfc3b26 100644 --- a/Projects/Server/Gumps/GumpImageTileButton.cs +++ b/Projects/Server/Gumps/GumpImageTileButton.cs @@ -61,7 +61,11 @@ public class GumpImageTileButton : GumpEntry public int Height { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii( $"{{ buttontileart {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} {ItemID} {Hue} {Width} {Height} }}" diff --git a/Projects/Server/Gumps/GumpImageTiled.cs b/Projects/Server/Gumps/GumpImageTiled.cs index ab62bcc55..4f5d14d71 100644 --- a/Projects/Server/Gumps/GumpImageTiled.cs +++ b/Projects/Server/Gumps/GumpImageTiled.cs @@ -39,7 +39,11 @@ public class GumpImageTiled : GumpEntry public int GumpID { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ gumppictiled {X} {Y} {Width} {Height} {GumpID} }}"); } diff --git a/Projects/Server/Gumps/GumpItem.cs b/Projects/Server/Gumps/GumpItem.cs index 7ca97af42..f8a4e2d63 100644 --- a/Projects/Server/Gumps/GumpItem.cs +++ b/Projects/Server/Gumps/GumpItem.cs @@ -36,7 +36,11 @@ public class GumpItem : GumpEntry public int Hue { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii(Hue == 0 ? $"{{ tilepic {X} {Y} {ItemID} }}" : $"{{ tilepichue {X} {Y} {ItemID} {Hue} }}"); } diff --git a/Projects/Server/Gumps/GumpItemProperty.cs b/Projects/Server/Gumps/GumpItemProperty.cs index fc5c8fa94..3bf334b27 100644 --- a/Projects/Server/Gumps/GumpItemProperty.cs +++ b/Projects/Server/Gumps/GumpItemProperty.cs @@ -24,7 +24,11 @@ public class GumpItemProperty : GumpEntry public Serial Serial { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ itemproperty {Serial.Value} }}"); } diff --git a/Projects/Server/Gumps/GumpLabel.cs b/Projects/Server/Gumps/GumpLabel.cs index 8299ec21b..4dbef6161 100644 --- a/Projects/Server/Gumps/GumpLabel.cs +++ b/Projects/Server/Gumps/GumpLabel.cs @@ -36,7 +36,11 @@ public class GumpLabel : GumpEntry public string Text { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var textIndex = strings.GetOrAdd(Text ?? ""); writer.WriteAscii($"{{ text {X} {Y} {Hue} {textIndex} }}"); diff --git a/Projects/Server/Gumps/GumpLabelCropped.cs b/Projects/Server/Gumps/GumpLabelCropped.cs index ec1961f5d..831d6fd86 100644 --- a/Projects/Server/Gumps/GumpLabelCropped.cs +++ b/Projects/Server/Gumps/GumpLabelCropped.cs @@ -42,7 +42,11 @@ public class GumpLabelCropped : GumpEntry public string Text { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var textIndex = strings.GetOrAdd(Text ?? ""); writer.WriteAscii($"{{ croppedtext {X} {Y} {Width} {Height} {Hue} {textIndex} }}"); diff --git a/Projects/Server/Gumps/GumpMasterGump.cs b/Projects/Server/Gumps/GumpMasterGump.cs index b37ed6aa4..45b3f3e53 100644 --- a/Projects/Server/Gumps/GumpMasterGump.cs +++ b/Projects/Server/Gumps/GumpMasterGump.cs @@ -24,7 +24,11 @@ public class GumpMasterGump : GumpEntry public int GumpID { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ mastergump {GumpID} }}"); } diff --git a/Projects/Server/Gumps/GumpPage.cs b/Projects/Server/Gumps/GumpPage.cs index 1c8ae540a..7494336c7 100644 --- a/Projects/Server/Gumps/GumpPage.cs +++ b/Projects/Server/Gumps/GumpPage.cs @@ -26,7 +26,11 @@ public class GumpPage : GumpEntry public int Page { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { if (Page == 0) { diff --git a/Projects/Server/Gumps/GumpRadio.cs b/Projects/Server/Gumps/GumpRadio.cs index b5ad2506f..1a4cd7b2e 100644 --- a/Projects/Server/Gumps/GumpRadio.cs +++ b/Projects/Server/Gumps/GumpRadio.cs @@ -42,7 +42,11 @@ public class GumpRadio : GumpEntry public int SwitchID { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var initialState = InitialState ? "1" : "0"; writer.WriteAscii($"{{ radio {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}"); diff --git a/Projects/Server/Gumps/GumpSpriteImage.cs b/Projects/Server/Gumps/GumpSpriteImage.cs index 953e3c29f..01d9a29bb 100644 --- a/Projects/Server/Gumps/GumpSpriteImage.cs +++ b/Projects/Server/Gumps/GumpSpriteImage.cs @@ -45,7 +45,11 @@ public class GumpSpriteImage : GumpEntry public int SY { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii($"{{ picinpic {X} {Y} {GumpID} {Width} {Height} {SX} {SY} }}"); } diff --git a/Projects/Server/Gumps/GumpTextEntry.cs b/Projects/Server/Gumps/GumpTextEntry.cs index f56ef77a4..0bc1d020a 100644 --- a/Projects/Server/Gumps/GumpTextEntry.cs +++ b/Projects/Server/Gumps/GumpTextEntry.cs @@ -45,7 +45,11 @@ public class GumpTextEntry : GumpEntry public string InitialText { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var textIndex = strings.GetOrAdd(InitialText ?? ""); writer.WriteAscii($"{{ textentry {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} }}"); diff --git a/Projects/Server/Gumps/GumpTextEntryLimited.cs b/Projects/Server/Gumps/GumpTextEntryLimited.cs index aebe6c08c..60b6a176d 100644 --- a/Projects/Server/Gumps/GumpTextEntryLimited.cs +++ b/Projects/Server/Gumps/GumpTextEntryLimited.cs @@ -50,7 +50,11 @@ public class GumpTextEntryLimited : GumpEntry public int Size { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { var textIndex = strings.GetOrAdd(InitialText ?? ""); writer.WriteAscii($"{{ textentrylimited {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} {Size} }}"); diff --git a/Projects/Server/Gumps/GumpTooltip.cs b/Projects/Server/Gumps/GumpTooltip.cs index 4332c1d8d..3bf15b93b 100644 --- a/Projects/Server/Gumps/GumpTooltip.cs +++ b/Projects/Server/Gumps/GumpTooltip.cs @@ -32,7 +32,11 @@ public class GumpTooltip : GumpEntry public string Args { get; set; } +#if NET7_SDK + public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, scoped ref int entries, scoped ref int switches) +#else public override void AppendTo(ref SpanWriter writer, OrderedHashSet strings, ref int entries, ref int switches) +#endif { writer.WriteAscii(string.IsNullOrEmpty(Args) ? $"{{ tooltip {Number} }}" : $"{{ tooltip {Number} @{Args}@ }}"); } diff --git a/Projects/Server/Server.csproj b/Projects/Server/Server.csproj index 99dc44f2e..db2d421d6 100755 --- a/Projects/Server/Server.csproj +++ b/Projects/Server/Server.csproj @@ -10,6 +10,7 @@ ..\..\Distribution ..\..\Distribution 0.0.0 + NET7_SDK @@ -22,7 +23,6 @@ - diff --git a/Projects/UOContent/UOContent.csproj b/Projects/UOContent/UOContent.csproj index 65dd35736..824444eba 100755 --- a/Projects/UOContent/UOContent.csproj +++ b/Projects/UOContent/UOContent.csproj @@ -6,6 +6,7 @@ ModernUO Content ..\..\Distribution\Assemblies ..\..\Distribution\Assemblies + NET7_SDK @@ -33,6 +34,7 @@ + diff --git a/global.json b/global.json new file mode 100644 index 000000000..d019e8b02 --- /dev/null +++ b/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "6.0.400", + "rollForward": "latestMajor", + "allowPrerelease": false + } +} \ No newline at end of file