diff --git a/SpriteFontPlus/src/obj/Release/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache b/SpriteFontPlus/src/obj/Release/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache index 2b25ddf13118b2d1802b42bf82d6ecfacceaa9dc..7652e5cd0c56be8ea9bc58af7b76f457ba479739 GIT binary patch literal 34705 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 - { - string variableString = "#"; - variableString += String.Format("[{0}:{1}]", message.variable, message.value); - variableString += "vars# "; - Logging.Spy(new {var_string = variableString}); - var result = grammar.Flatten(variableString); - } + foreach (ref readonly var message in ReadMessages()) + { + string variableString = "#"; + variableString += String.Format("[{0}:{1}]", message.variable, message.value); + variableString += "vars# "; + Logging.Spy(new {var_string = variableString}); + var result = grammar.Flatten(variableString); + } } } diff --git a/isometric-park-fna/FNAGame.cs b/isometric-park-fna/FNAGame.cs --- a/isometric-park-fna/FNAGame.cs +++ b/isometric-park-fna/FNAGame.cs @@ -194,7 +194,6 @@ Logging.Success("Initialized Quad texture."); ContractWindow.LoadContent(this._imGuiRenderer, this.imageMap); OptionsWindow.Initialize(new Vector2(FNAGame.width, FNAGame.height), gdm.IsFullScreen); - NewGameWindow.Initialize(); //Must be done before SetFontMessage is sent var bakedMono = TtfFontBaker.Bake(File.OpenRead(@"Content/iosevka-term-extendedmedium.ttf"), @@ -237,6 +236,8 @@ this.grammar = new TraceryNet.Grammar(json2); + //Has to happen after Grammar initialization. + NewGameWindow.Initialize(this.grammar); WorldBuilder.AddEngine(new InputEngine(Menu.MENU_BAR_HEIGHT, this.camera, gdm)); WorldBuilder.AddEngine(new UIEngine()); diff --git a/isometric-park-fna/UI/NewGameWindow.cs b/isometric-park-fna/UI/NewGameWindow.cs --- a/isometric-park-fna/UI/NewGameWindow.cs +++ b/isometric-park-fna/UI/NewGameWindow.cs @@ -1,10 +1,11 @@ using System; -using ImGuiNET; - +using System.Text; using Num = System.Numerics; +using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework; +using ImGuiNET; +using TraceryNet; using isometricparkfna.Engines; using isometricparkfna.Messages; @@ -15,6 +16,7 @@ public static class NewGameWindow { + private static Grammar grammar; public static bool had_focus = false; @@ -38,16 +40,19 @@ public const int BUFFER_SIZE = 32; - public static void Initialize() + public static void Initialize(Grammar grammar) { + NewGameWindow.grammar = grammar; + showModal = true; + NewGameWindow.Reset(); - showModal = true; } public static void Reset() { - parkNameBuffer = new byte[BUFFER_SIZE]; + // parkNameBuffer = new byte[BUFFER_SIZE]; + parkNameBuffer = Encoding.UTF8.GetBytes(NewGameWindow.grammar.Flatten("#park_name#")); pos = 0; playerNameBuffer = new byte[BUFFER_SIZE]; @@ -96,6 +101,12 @@ } NewGameWindow.pos = newPos; + ImGui.SameLine(); + if (ImGui.Button("Random")) + { + parkNameBuffer = Encoding.UTF8.GetBytes(NewGameWindow.grammar.Flatten("#park_name#")); + } + ImGui.Text("Formal Name: "); ImGui.SameLine(); @@ -177,7 +188,7 @@ //God this sucks: unsafe { - ImGui.InputTextWithHint("##playerName2", "Leave blank to use full name", ref playerName2Buffer, 32, ImGuiInputTextFlags.AutoSelectAll, null, (IntPtr)(&newPlayerName2Pos)); + ImGui.InputTextWithHint("##playerName2", "Leave blank to use full name", /*ref*/ playerName2Buffer, 32, ImGuiInputTextFlags.AutoSelectAll, null, (IntPtr)(&newPlayerName2Pos)); } NewGameWindow.playerName2Pos = newPlayerName2Pos;