From 66c2f3f2d55648f215d278630000dec18145d7fa Mon Sep 17 00:00:00 2001 From: Pyrdacor Date: Mon, 12 Jun 2023 08:53:31 +0200 Subject: [PATCH] Fixed text manager --- .../Ambermoon3DMapViewer.csproj | 2 +- .../AmbermoonDiskExtract.csproj | 2 +- .../AmbermoonEventEditor.csproj | 2 +- .../AmbermoonImageConverter.csproj | 2 +- .../AmbermoonItemEditor.csproj | 2 +- .../AmbermoonLabdataEditor.csproj | 2 +- .../AmbermoonMapEditor2D.csproj | 2 +- .../AmbermoonMonsterEditor.csproj | 2 +- .../AmbermoonPack/AmbermoonPack.csproj | 2 +- .../AmbermoonTextImport.csproj | 2 +- .../AmbermoonTextManager.csproj | 2 +- AmbermoonTools/AmbermoonTextManager/Program.cs | 16 ++++++++++------ 12 files changed, 21 insertions(+), 17 deletions(-) diff --git a/AmbermoonTools/Ambermoon3DMapViewer/Ambermoon3DMapViewer.csproj b/AmbermoonTools/Ambermoon3DMapViewer/Ambermoon3DMapViewer.csproj index b4aca3e40..a37c093d1 100644 --- a/AmbermoonTools/Ambermoon3DMapViewer/Ambermoon3DMapViewer.csproj +++ b/AmbermoonTools/Ambermoon3DMapViewer/Ambermoon3DMapViewer.csproj @@ -3,7 +3,7 @@ Exe net7.0 - 1.0.15 + 1.0.16 Robert Schneckenhaus win-x64;win-x86;linux-x64 diff --git a/AmbermoonTools/AmbermoonDiskExtract/AmbermoonDiskExtract.csproj b/AmbermoonTools/AmbermoonDiskExtract/AmbermoonDiskExtract.csproj index 02f31b3d9..3a43eead8 100644 --- a/AmbermoonTools/AmbermoonDiskExtract/AmbermoonDiskExtract.csproj +++ b/AmbermoonTools/AmbermoonDiskExtract/AmbermoonDiskExtract.csproj @@ -9,7 +9,7 @@ https://github.com/Pyrdacor/Ambermoon Github Ambermoon ADF Extract File Legacy Amiga Disk - 1.0.15 + 1.0.16 win-x64;win-x86;linux-x64 Debug;Release;ReleaseLinux diff --git a/AmbermoonTools/AmbermoonEventEditor/AmbermoonEventEditor.csproj b/AmbermoonTools/AmbermoonEventEditor/AmbermoonEventEditor.csproj index f675957b8..38e2bf77d 100644 --- a/AmbermoonTools/AmbermoonEventEditor/AmbermoonEventEditor.csproj +++ b/AmbermoonTools/AmbermoonEventEditor/AmbermoonEventEditor.csproj @@ -6,7 +6,7 @@ Robert Schneckenhaus Command line tool to edit map or NPC events. win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 https://github.com/Pyrdacor/Ambermoon https://github.com/Pyrdacor/Ambermoon Github diff --git a/AmbermoonTools/AmbermoonImageConverter/AmbermoonImageConverter.csproj b/AmbermoonTools/AmbermoonImageConverter/AmbermoonImageConverter.csproj index 9d6fd5d8c..425e7533b 100644 --- a/AmbermoonTools/AmbermoonImageConverter/AmbermoonImageConverter.csproj +++ b/AmbermoonTools/AmbermoonImageConverter/AmbermoonImageConverter.csproj @@ -4,7 +4,7 @@ Exe net7.0 win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 Robert Schneckenhaus Command line tool to convert Ambermoon graphics. https://github.com/Pyrdacor/Ambermoon diff --git a/AmbermoonTools/AmbermoonItemEditor/AmbermoonItemEditor.csproj b/AmbermoonTools/AmbermoonItemEditor/AmbermoonItemEditor.csproj index 218b56fe7..6210a0bcb 100644 --- a/AmbermoonTools/AmbermoonItemEditor/AmbermoonItemEditor.csproj +++ b/AmbermoonTools/AmbermoonItemEditor/AmbermoonItemEditor.csproj @@ -3,7 +3,7 @@ Exe net7.0 - 1.0.15 + 1.0.16 Robert Schneckenhaus Command line tool to edit, create or delete items. https://github.com/Pyrdacor/Ambermoon diff --git a/AmbermoonTools/AmbermoonLabdataEditor/AmbermoonLabdataEditor.csproj b/AmbermoonTools/AmbermoonLabdataEditor/AmbermoonLabdataEditor.csproj index c5a4b73e9..ab3860ac1 100644 --- a/AmbermoonTools/AmbermoonLabdataEditor/AmbermoonLabdataEditor.csproj +++ b/AmbermoonTools/AmbermoonLabdataEditor/AmbermoonLabdataEditor.csproj @@ -5,7 +5,7 @@ net7.0 enable enable - 1.0.15 + 1.0.16 Robert Schneckenhaus win-x64;win-x86;linux-x64 diff --git a/AmbermoonTools/AmbermoonMapEditor2D/AmbermoonMapEditor2D.csproj b/AmbermoonTools/AmbermoonMapEditor2D/AmbermoonMapEditor2D.csproj index b260c42a3..54b5e1c9a 100644 --- a/AmbermoonTools/AmbermoonMapEditor2D/AmbermoonMapEditor2D.csproj +++ b/AmbermoonTools/AmbermoonMapEditor2D/AmbermoonMapEditor2D.csproj @@ -6,7 +6,7 @@ win-x64;win-x86 true Debug;Release;ReleaseLinux - 1.0.15 + 1.0.16 Robert Schneckenhaus diff --git a/AmbermoonTools/AmbermoonMonsterEditor/AmbermoonMonsterEditor.csproj b/AmbermoonTools/AmbermoonMonsterEditor/AmbermoonMonsterEditor.csproj index eda37761d..b7926f1bd 100644 --- a/AmbermoonTools/AmbermoonMonsterEditor/AmbermoonMonsterEditor.csproj +++ b/AmbermoonTools/AmbermoonMonsterEditor/AmbermoonMonsterEditor.csproj @@ -10,7 +10,7 @@ Robert Schneckenhaus Command line tool to show and edit monster values of legacy Ambermoon game data. win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 Debug;Release;ReleaseLinux diff --git a/AmbermoonTools/AmbermoonPack/AmbermoonPack.csproj b/AmbermoonTools/AmbermoonPack/AmbermoonPack.csproj index d5ab1ac73..047951aa5 100644 --- a/AmbermoonTools/AmbermoonPack/AmbermoonPack.csproj +++ b/AmbermoonTools/AmbermoonPack/AmbermoonPack.csproj @@ -10,7 +10,7 @@ Github Ambermoon Packer File Legacy Amiga Compression Encryption win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 Debug;Release;ReleaseLinux diff --git a/AmbermoonTools/AmbermoonTextImport/AmbermoonTextImport.csproj b/AmbermoonTools/AmbermoonTextImport/AmbermoonTextImport.csproj index 6d54d5820..685e02d72 100644 --- a/AmbermoonTools/AmbermoonTextImport/AmbermoonTextImport.csproj +++ b/AmbermoonTools/AmbermoonTextImport/AmbermoonTextImport.csproj @@ -10,7 +10,7 @@ Robert Schneckenhaus Command line tool to export and import texts from/into legacy Ambermoon game data. win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 Debug;Release;ReleaseLinux diff --git a/AmbermoonTools/AmbermoonTextManager/AmbermoonTextManager.csproj b/AmbermoonTools/AmbermoonTextManager/AmbermoonTextManager.csproj index 136f131b1..575e0d1f1 100644 --- a/AmbermoonTools/AmbermoonTextManager/AmbermoonTextManager.csproj +++ b/AmbermoonTools/AmbermoonTextManager/AmbermoonTextManager.csproj @@ -10,7 +10,7 @@ Robert Schneckenhaus Command line tool to export and import all texts from/into legacy Ambermoon game data. win-x64;win-x86;linux-x64 - 1.0.15 + 1.0.16 Debug;Release;ReleaseLinux diff --git a/AmbermoonTools/AmbermoonTextManager/Program.cs b/AmbermoonTools/AmbermoonTextManager/Program.cs index dd9c2e109..a508a43db 100644 --- a/AmbermoonTools/AmbermoonTextManager/Program.cs +++ b/AmbermoonTools/AmbermoonTextManager/Program.cs @@ -1007,6 +1007,8 @@ void ImportCharNames(string filename) if (reader.Size == 0) return Array.Empty(); + reader.Position = 0; + var writer = new DataWriter(reader.ReadBytes(0x0112)); writer.WriteWithoutLength(SizeString(16, entry.Value)); reader.Position += 16; @@ -1046,6 +1048,7 @@ void ImportCharNames(string filename) return false; var file = gameData.Files[filename].Files[1]; + file.Position = 0; int placeCount = file.PeekWord(); if (placeCount != entries.Count) @@ -1075,6 +1078,7 @@ void ImportCharNames(string filename) return false; var file = gameData.Files[filename].Files[1]; + file.Position = 0; int itemCount = file.ReadWord(); if (itemCount != entries.Count) @@ -1106,24 +1110,24 @@ void ReadGotoPointNames(string filename) var mapReader = new MapReader(); var containerFiles = gameData.Files[filename].Files; - var files = entries.ToDictionary(entry => entry.Key, entry => + var files = containerFiles.ToDictionary(entry => (uint)entry.Key, entry => { - var reader = containerFiles[(int)entry.Key]; + var reader = containerFiles[entry.Key]; if (reader.Size == 0) return Array.Empty(); + reader.Position = 0; + if ((reader.PeekDword() & 0x0000ff00) != 0x00000100) return reader.ReadToEnd(); // just return the data for 2D maps - var map = Map.LoadWithoutTexts(entry.Key, mapReader, reader, null); - var names = entry.Value.Split('\n'); + var map = Map.LoadWithoutTexts((uint)entry.Key, mapReader, reader, null); + var names = entries[(uint)entry.Key].Split('\n'); if (map.GotoPoints.Count != names.Length) throw new Exception($"Mismatching goto point data/text count for map {entry.Key}."); - reader.Position = 0; - if (map.GotoPoints.Count == 0) return reader.ReadToEnd(); // just return the data if there are no goto points