From f71ed9159e7f96dcb3cb6c1de52b9142f6a68d1f Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 13:56:24 +0100 Subject: [PATCH 1/6] Library refactoring 4 Remove obsolete files. A converter and validator will be re-added at later. --- src/lib/AdrianKousz.GenieEngine/ScnConvert.cs | 22 -- src/lib/AdrianKousz.GenieEngine/ScnReader.cs | 327 ------------------ .../AdrianKousz.GenieEngine/ScnValidator.cs | 23 -- src/lib/AdrianKousz.GenieEngine/ScnWriter.cs | 266 -------------- src/lib/GenieEngineLib.csproj | 4 - 5 files changed, 642 deletions(-) delete mode 100644 src/lib/AdrianKousz.GenieEngine/ScnConvert.cs delete mode 100644 src/lib/AdrianKousz.GenieEngine/ScnReader.cs delete mode 100644 src/lib/AdrianKousz.GenieEngine/ScnValidator.cs delete mode 100644 src/lib/AdrianKousz.GenieEngine/ScnWriter.cs diff --git a/src/lib/AdrianKousz.GenieEngine/ScnConvert.cs b/src/lib/AdrianKousz.GenieEngine/ScnConvert.cs deleted file mode 100644 index a0375bb..0000000 --- a/src/lib/AdrianKousz.GenieEngine/ScnConvert.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; - -namespace AdrianKousz.GenieEngine -{ - public class ScnConvert - { - public void Convert(Scenario value, float version) - { - - } - public void Convert(UnitInfo value, float from, float to) - { - if (from < 1.18f && to >= 1.18f) { - value.InitialFrame = 0; - value.GarrisonnedInId = -1; - } - } - } -} - diff --git a/src/lib/AdrianKousz.GenieEngine/ScnReader.cs b/src/lib/AdrianKousz.GenieEngine/ScnReader.cs deleted file mode 100644 index bf7811b..0000000 --- a/src/lib/AdrianKousz.GenieEngine/ScnReader.cs +++ /dev/null @@ -1,327 +0,0 @@ -using System.IO; -using System.IO.Compression; -using System.Collections.Generic; -using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; - -namespace AdrianKousz.GenieEngine -{ - public class ScnReader - { - public float Version = 0; - - private ExtendedBinaryReader reader; - private IScnFactory factory; - - public ScnReader(Stream input) : this (input, new ScnDefaultFactory()) - { - } - - public ScnReader(Stream input, IScnFactory factory) - { - reader = new ExtendedBinaryReader(input, Scenario.Encoding); - this.factory = factory; - } - - #region Reader Methods - - public Scenario ReadScenario() - { - var result = factory.MakeScenario(false); - int number = 0; - - result.Header = ReadScenarioHeader(); - - var comp = new DeflateStream(reader.BaseStream, CompressionMode.Decompress); - reader = new ExtendedBinaryReader(comp, Scenario.Encoding); - - result.NextId = reader.ReadInt32(); - - Version = reader.ReadSingle(); - result.OriginalVersion = Version; - - result.PlayerNames = FillArray(() => reader.ReadZString(256), result.PlayerNames, Scenario.NumPlayers); - if (Version >= 1.18f) { - result.StringTablePlayerNames = FillArray(reader.ReadInt32, result.StringTablePlayerNames, Scenario.NumPlayers); - } - result.Players = FillArray(ReadPlayerInfo, result.Players, Scenario.NumPlayers); - result.Messages = ReadMessages(); - result.Cinematics = ReadCinematics(); - result.AIData = ReadAIData(); - - ReadSeparator("Resources"); - - result.Resources = FillArray(ReadResourceInfo, result.Resources, Scenario.NumPlayers); - - ReadSeparator("Victory"); - - result.GlobalVictory = ReadGlobalVictoryInfo(); - result.LinearDiplomacy = FillArray(reader.ReadInt32, result.LinearDiplomacy, Scenario.NumPlayers * Scenario.NumPlayers); - result.RawIndividualVictory = reader.ReadBytes(11520); - - ReadSeparator("Player Settings"); - - result.AlliedVictory = FillArray(reader.ReadInt32, result.AlliedVictory, Scenario.NumPlayers); - - if (Version >= 1.15f) number = (Scenario.NumPlayers * ( 20 /*Disables*/) + 3 /*Unknowns*/) * 4 /*Intsize*/; - if (Version >= 1.18f) number = (Scenario.NumPlayers * (3 /*Lengths*/ + 80 /*Disables*/) + 3 /*Unknowns*/) * 4 /*Intsize*/; - if (Version >= 1.30f) number = (Scenario.NumPlayers * (3 /*Lengths*/ + 180 /*Disables*/) + 3 /*Unknowns*/) * 4 /*Intsize*/; - result.RawDisables = reader.ReadBytes(number); - - result.StartingAges = FillArray(reader.ReadInt32, result.StartingAges, Scenario.NumPlayers); - - ReadSeparator("Map"); - - result.Map = ReadMap(); - - number = reader.ReadInt32(); - result.ResourcesCopy = FillArray(ReadResourceInfoCopy, result.ResourcesCopy, number - 1); - - result.Units = FillArray(ReadUnitInfoList, result.Units, number); - - var bytestream = new MemoryStream(); - reader.BaseStream.CopyTo(bytestream); - result.RawRemaining = bytestream.ToArray(); - - return result; - } - - public ScenarioHeader ReadScenarioHeader() - { - var result = factory.MakeScenarioHeader(); - - result.OriginalVersion = reader.ReadString(4); - reader.ReadInt32(); // Header Length - result.Unknown1 = reader.ReadInt32(); - result.Timestamp = DateTimes.FromUnixTime(reader.ReadInt32()); - result.Instructions = reader.ReadZStringInt32(); - result.Unknown2 = reader.ReadInt32(); - result.PlayerCount = reader.ReadInt32(); - - return result; - } - - public PlayerInfo ReadPlayerInfo() - { - var result = factory.MakePlayerInfo(); - - result.Active = reader.ReadBoolean(); - result.Human = reader.ReadBoolean(); - result.Civ = reader.ReadInt32(); - result.Unknown = reader.ReadInt32(); - - return result; - } - - public Messages ReadMessages() - { - var result = factory.MakeMessages(); - - result.Unknown1 = reader.ReadInt32(); - result.Unknown2 = reader.ReadByte(); - result.Unknown3 = reader.ReadSingle(); - result.OriginalFilename = reader.ReadStringInt16(); - - if (Version >= 1.18f) { - result.StringTableInstructions = reader.ReadInt32(); - result.StringTableHints = reader.ReadInt32(); - result.StringTableVictory = reader.ReadInt32(); - result.StringTableLoss = reader.ReadInt32(); - result.StringTableHistory = reader.ReadInt32(); - } - if (Version >= 1.22f) { - result.StringTableScouts = reader.ReadInt32(); - } - - result.TextInstructions = reader.ReadZStringInt16(); - result.TextHints = reader.ReadZStringInt16(); - result.TextVictory = reader.ReadZStringInt16(); - result.TextLoss = reader.ReadZStringInt16(); - result.TextHistory = reader.ReadZStringInt16(); - if (Version >= 1.22f) { - result.TextScouts = reader.ReadZStringInt16(); - } - - return result; - } - - public Cinematics ReadCinematics() - { - var result = factory.MakeCinematics(); - - result.CinemaPregameFn = reader.ReadStringInt16(); - result.CinemaVictoryFn = reader.ReadStringInt16(); - result.CinemaLossFn = reader.ReadStringInt16(); - result.BackgroundFn = reader.ReadStringInt16(); - - var hasBitmap = reader.ReadBoolean(); - - result.BitmapWidth = reader.ReadInt32(); - result.BitmapHeight = reader.ReadInt32(); - result.BitmapUnknown = reader.ReadInt16(); - - if (hasBitmap) { - result.RawBitmap = BitmapUtil.ReadRawBitmap(reader.BaseStream); - } - - return result; - } - - public AIData ReadAIData() - { - var result = factory.MakeAIData(); - - result.PlayerAIs = FillArray(reader.ReadStringInt16, result.PlayerAIs, Scenario.NumPlayers); - result.PlayerCTYs = FillArray(reader.ReadStringInt16, result.PlayerCTYs, Scenario.NumPlayers); - result.PlayerPERs = FillArray(reader.ReadStringInt16, result.PlayerPERs, Scenario.NumPlayers); - - result.PlayerCustomAIs = new string[Scenario.NumPlayers]; - result.PlayerCustomCTYs = new string[Scenario.NumPlayers]; - result.PlayerCustomPERs = new string[Scenario.NumPlayers]; - - int l1, l2, l3; - for (var i = 0; i < Scenario.NumPlayers; ++i) { - l1 = reader.ReadInt32(); - l2 = reader.ReadInt32(); - l3 = reader.ReadInt32(); - result.PlayerCustomAIs[i] = reader.ReadString(l1); - result.PlayerCustomCTYs[i] = reader.ReadString(l2); - result.PlayerCustomPERs[i] = reader.ReadString(l3); - } - - if (Version >= 1.18f) { - result.AITypes = FillArray(reader.ReadByte, result.AITypes, Scenario.NumPlayers); - } - - return result; - } - - public ResourceInfo ReadResourceInfo() - { - var result = factory.MakeResourceInfo(); - - result.Gold = reader.ReadInt32(); - result.Wood = reader.ReadInt32(); - result.Food = reader.ReadInt32(); - result.Stone = reader.ReadInt32(); - if (Version >= 1.18f) { - result.Ore = reader.ReadInt32(); - if (Version < 1.3f) { - result.Unknown = reader.ReadInt32(); - } - } - - return result; - } - - public ResourceInfoCopy ReadResourceInfoCopy() - { - var result = factory.MakeResourceInfoCopy(); - - result.Food = reader.ReadSingle(); - result.Wood = reader.ReadSingle(); - result.Gold = reader.ReadSingle(); - result.Stone = reader.ReadSingle(); - if (Version >= 1.18f) { - result.Ore = reader.ReadInt32(); - if (Version < 1.3f) { - result.Unknown = reader.ReadInt32(); - } - } - if (Version >= 1.22f) { - result.PopulationLimit = reader.ReadSingle(); - } - - return result; - } - - public GlobalVictoryInfo ReadGlobalVictoryInfo() - { - var result = factory.MakeGlobalVictoryInfo(); - - result.RequireConquest = reader.ReadBoolean(); - result.Ruins = reader.ReadInt32(); - result.Artifacts = reader.ReadInt32(); - result.Discovery = reader.ReadInt32(); - result.PercentExplored = reader.ReadInt32(); - result.Unknown = reader.ReadInt32(); - result.RequireAllCustom = reader.ReadBoolean(); - result.Mode = reader.ReadInt32(); - result.Score = reader.ReadInt32(); - result.Time = reader.ReadInt32(); - - return result; - } - - public Map ReadMap() - { - var result = factory.MakeMap(); - - if (Version >= 1.18f) { - result.CameraX = reader.ReadInt32(); - result.CameraY = reader.ReadInt32(); - } - if (Version >= 1.22f) { - result.GeneratorId = reader.ReadInt32(); - } - - result.SizeX = reader.ReadInt32(); - result.SizeY = reader.ReadInt32(); - - result.LinearTiles = new Map.Tile[result.SizeX * result.SizeY] - .Fill(() => new Map.Tile(reader.ReadByte(), reader.ReadByte(), reader.ReadByte())); - - return result; - } - - public IList ReadUnitInfoList() - { - var count = reader.ReadInt32(); - var result = new List().Fill(ReadUnitInfo, count); - return result; - } - - public UnitInfo ReadUnitInfo() - { - var result = factory.MakeUnitInfo(); - - result.PosX = reader.ReadSingle(); - result.PosY = reader.ReadSingle(); - result.Unknown1 = reader.ReadSingle(); - result.Id = reader.ReadInt32(); - result.UnitId = reader.ReadInt16(); - result.Unknown2 = reader.ReadByte(); - result.Rotation = reader.ReadSingle(); - if (Version >= 1.18f) { - result.InitialFrame = reader.ReadInt16(); - result.GarrisonnedInId = reader.ReadInt32(); - } - - return result; - } - - public void ReadSeparator(string name) { - int v = reader.ReadInt32(); - if (v != Scenario.Separator) { - var msg = "Separator \"{0}\" = {1}"; - msg = string.Format(msg, name, v); - throw new InvalidDataException(msg); - } - } - - #endregion - - #region Debug Methods - - private T[] FillArray(System.Func f, T[] array, int length) - { - if (array == null || array.Length != length) - array = new T[length]; - array.Fill(f); - return array; - } - - #endregion - } -} - diff --git a/src/lib/AdrianKousz.GenieEngine/ScnValidator.cs b/src/lib/AdrianKousz.GenieEngine/ScnValidator.cs deleted file mode 100644 index ae90976..0000000 --- a/src/lib/AdrianKousz.GenieEngine/ScnValidator.cs +++ /dev/null @@ -1,23 +0,0 @@ -using AdrianKousz.GenieEngine.Data; - -namespace AdrianKousz.GenieEngine -{ - public class ScnValidator - { - public ScnValidator() - { - } - - public bool Validate(Scenario value) - { - return true; - } - - public class ValidationError - { - public T actualValue; - public T expectedValue; - public string message; - } - } -} diff --git a/src/lib/AdrianKousz.GenieEngine/ScnWriter.cs b/src/lib/AdrianKousz.GenieEngine/ScnWriter.cs deleted file mode 100644 index 2e78042..0000000 --- a/src/lib/AdrianKousz.GenieEngine/ScnWriter.cs +++ /dev/null @@ -1,266 +0,0 @@ -using System.IO; -using System.IO.Compression; -using System.Collections.Generic; -using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; - -namespace AdrianKousz.GenieEngine -{ - public class ScnWriter - { - public float Version = 0; - - private ExtendedBinaryWriter writer; - - public ScnWriter(Stream output) - { - writer = new ExtendedBinaryWriter(output, Scenario.Encoding); - } - - public void Write(Scenario value) - { - Version = Version == 0 ? value.OriginalVersion : Version; - - Write(value.Header); - Flush(); - - // TODO: Make wrapper. - // This is a workaround for now. A wrapper for the reader and writer will be created. - var originalWriter = writer; - var compressedPart = new MemoryStream(); - var comp = new DeflateStream(compressedPart, CompressionMode.Compress); - writer = new ExtendedBinaryWriter(comp, Scenario.Encoding); - - writer.Write(value.NextId); - writer.Write(Version); - - value.PlayerNames.ForEach((x) => writer.WriteStringPadded(x, 256)); - if (Version >= 1.18f) { - value.StringTablePlayerNames.ForEach(writer.Write); - } - value.Players.ForEach(Write); - Write(value.Messages); - Write(value.Cinematics); - Write(value.AIData); - - WriteSeperator("Resources"); - - value.Resources.ForEach(Write); - - WriteSeperator("Victory"); - - Write(value.GlobalVictory); - value.LinearDiplomacy.ForEach(writer.Write); - writer.Write(value.RawIndividualVictory); - - WriteSeperator("Player Settings"); - - value.AlliedVictory.ForEach(writer.Write); - writer.Write(value.RawDisables); - value.StartingAges.ForEach(writer.Write); - - WriteSeperator("Map"); - - Write(value.Map); - - writer.Write((int)value.Units.Length); - value.ResourcesCopy.ForEach(Write); - value.Units.ForEach(Write); - - writer.Write(value.RawRemaining); - - Flush(); - - comp.Dispose(); - originalWriter.Write(compressedPart.ToArray()); - } - - public void Write(ScenarioHeader value) - { - var instructionlength = writer.GetZByteCount(value.Instructions); - writer.WriteStringRaw(value.OriginalVersion); - writer.Write(20 + instructionlength); - writer.Write(value.Unknown1); - writer.Write((System.Int32)DateTimes.ToUnixTime(value.Timestamp)); - writer.WriteZStringInt32(value.Instructions); - writer.Write(value.Unknown2); - writer.Write(value.PlayerCount); - } - - public void Write(PlayerInfo value) - { - writer.Write(value.Active); - writer.Write(value.Human); - writer.Write(value.Civ); - writer.Write(value.Unknown); - } - - public void Write(Messages value) - { - writer.Write(value.Unknown1); - writer.Write(value.Unknown2); - writer.Write(value.Unknown3); - writer.WriteStringInt16(value.OriginalFilename); - - if (Version >= 1.18f) { - writer.Write(value.StringTableInstructions); - writer.Write(value.StringTableHints); - writer.Write(value.StringTableVictory); - writer.Write(value.StringTableLoss); - writer.Write(value.StringTableHistory); - } - if (Version >= 1.22f) { - writer.Write(value.StringTableScouts); - } - - writer.WriteZStringInt16(value.TextInstructions); - writer.WriteZStringInt16(value.TextHints); - writer.WriteZStringInt16(value.TextVictory); - writer.WriteZStringInt16(value.TextLoss); - writer.WriteZStringInt16(value.TextHistory); - if (Version >= 1.22f) { - writer.WriteZStringInt16(value.TextScouts); - } - } - - public void Write(Cinematics value) - { - writer.WriteStringInt16(value.CinemaPregameFn); - writer.WriteStringInt16(value.CinemaVictoryFn); - writer.WriteStringInt16(value.CinemaLossFn); - writer.WriteStringInt16(value.BackgroundFn); - - var hasBitmap = value.RawBitmap.Length > 0; - - writer.Write(hasBitmap); - writer.Write(value.BitmapWidth); - writer.Write(value.BitmapHeight); - writer.Write(value.BitmapUnknown); - - if (hasBitmap) - writer.Write(value.RawBitmap); - } - - public void Write(AIData value) - { - value.PlayerAIs.ForEach(writer.WriteStringInt16); - value.PlayerCTYs.ForEach(writer.WriteStringInt16); - value.PlayerPERs.ForEach(writer.WriteStringInt16); - - for (var i = 0; i < Scenario.NumPlayers; ++i) { - var str1 = value.PlayerCustomAIs[i]; - var str2 = value.PlayerCustomCTYs[i]; - var str3 = value.PlayerCustomPERs[i]; - writer.Write(writer.GetByteCount(str1)); - writer.Write(writer.GetByteCount(str2)); - writer.Write(writer.GetByteCount(str3)); - writer.WriteStringRaw(str1); - writer.WriteStringRaw(str2); - writer.WriteStringRaw(str3); - } - - if (Version >= 1.18f) { - value.AITypes.ForEach(writer.Write); - } - } - - public void Write(ResourceInfo value) - { - writer.Write(value.Gold); - writer.Write(value.Wood); - writer.Write(value.Food); - writer.Write(value.Stone); - if (Version >= 1.18f) { - writer.Write(value.Ore); - if (Version < 1.3f) { - writer.Write(value.Unknown); - } - } - } - - public void Write(ResourceInfoCopy value) - { - writer.Write(value.Food); - writer.Write(value.Wood); - writer.Write(value.Gold); - writer.Write(value.Stone); - if (Version >= 1.18f) { - writer.Write(value.Ore); - if (Version < 1.3f) { - writer.Write(value.Unknown); - } - } - if (Version >= 1.22f) { - writer.Write(value.PopulationLimit); - } - } - - public void Write(GlobalVictoryInfo value) - { - writer.Write(value.RequireConquest); - writer.Write(value.Ruins); - writer.Write(value.Artifacts); - writer.Write(value.Discovery); - writer.Write(value.PercentExplored); - writer.Write(value.Unknown); - writer.Write(value.RequireAllCustom); - writer.Write(value.Mode); - writer.Write(value.Score); - writer.Write(value.Time); - } - - public void Write(Map value) - { - if (Version >= 1.18f) { - writer.Write(value.CameraX); - writer.Write(value.CameraY); - } - if (Version >= 1.22f) { - writer.Write(value.GeneratorId); - } - writer.Write(value.SizeX); - writer.Write(value.SizeY); - - value.LinearTiles.ForEach(x => { writer.Write(x.Id); writer.Write(x.Elevation); writer.Write(x.Unknown); }); - } - - public void Write(IList value) - { - int number = value.Count; - writer.Write(number); - value.ForEach(Write); - } - - public void Write(UnitInfo value) - { - writer.Write(value.PosX); - writer.Write(value.PosY); - writer.Write(value.Unknown1); - writer.Write(value.Id); - writer.Write(value.UnitId); - writer.Write(value.Unknown2); - writer.Write(value.Rotation); - if (Version >= 1.18f) { - writer.Write(value.InitialFrame); - writer.Write(value.GarrisonnedInId); - } - } - - public void WriteSeperator(string name) - { - writer.Write(Scenario.Separator); - } - - public void Flush() - { - writer.Flush(); - } - - private void EnsureSetVersion() - { - if (Version <= 1) - throw new System.InvalidOperationException("Set output version"); - } - } -} - diff --git a/src/lib/GenieEngineLib.csproj b/src/lib/GenieEngineLib.csproj index 816f6d7..edbb926 100644 --- a/src/lib/GenieEngineLib.csproj +++ b/src/lib/GenieEngineLib.csproj @@ -34,11 +34,7 @@ - - - - From 639ad2b41868b7aa22134803fde4983e1e336321 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 13:58:18 +0100 Subject: [PATCH 2/6] Library refactoring 5 Code fixes --- src/lib/AdrianKousz.GenieEngine/CpnReader.cs | 1 - src/lib/AdrianKousz.GenieEngine/IScnFactory.cs | 5 +---- src/lib/AdrianKousz.GenieEngine/Scenario.cs | 6 +++--- src/lib/AdrianKousz.GenieEngine/ScnDefaultFactory.cs | 2 +- src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs | 6 +++--- src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs | 1 - 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/lib/AdrianKousz.GenieEngine/CpnReader.cs b/src/lib/AdrianKousz.GenieEngine/CpnReader.cs index 197ebc0..4b96cee 100644 --- a/src/lib/AdrianKousz.GenieEngine/CpnReader.cs +++ b/src/lib/AdrianKousz.GenieEngine/CpnReader.cs @@ -1,6 +1,5 @@ using System.IO; using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; namespace AdrianKousz.GenieEngine { diff --git a/src/lib/AdrianKousz.GenieEngine/IScnFactory.cs b/src/lib/AdrianKousz.GenieEngine/IScnFactory.cs index 2a36fe3..eee1a25 100644 --- a/src/lib/AdrianKousz.GenieEngine/IScnFactory.cs +++ b/src/lib/AdrianKousz.GenieEngine/IScnFactory.cs @@ -1,7 +1,4 @@ -using System; -using AdrianKousz.GenieEngine.Data; - -namespace AdrianKousz.GenieEngine +namespace AdrianKousz.GenieEngine { public interface IScnFactory { diff --git a/src/lib/AdrianKousz.GenieEngine/Scenario.cs b/src/lib/AdrianKousz.GenieEngine/Scenario.cs index 92e9b11..76cf55c 100644 --- a/src/lib/AdrianKousz.GenieEngine/Scenario.cs +++ b/src/lib/AdrianKousz.GenieEngine/Scenario.cs @@ -9,7 +9,7 @@ namespace AdrianKousz.GenieEngine public const Int32 Separator = -99; public const Int32 NumPlayers = 16; public const Int32 NumPlayerSections = 9; - public const Encoding Encoding = Encoding.GetEncoding(1252); + public static readonly Encoding Encoding = Encoding.GetEncoding(1252); public const Int32 ExpectedUnknown1 = 2; public const Int32 ExpectedUnknown2 = 0; @@ -166,14 +166,14 @@ namespace AdrianKousz.GenieEngine public class ScnUnit { public const Single ExpectedUnknown1 = 1; - public const Byte ExpectedUnknown2 = 2; + public const SByte ExpectedUnknown2 = 2; public Single PosX; public Single PosY; public Single Unknown1; public Int32 Id; public Int16 UnitId; - public Byte Unknown2; + public SByte Unknown2; public Single Rotation; public Int16 InitialFrame; public Int32 GarrisonnedInId; diff --git a/src/lib/AdrianKousz.GenieEngine/ScnDefaultFactory.cs b/src/lib/AdrianKousz.GenieEngine/ScnDefaultFactory.cs index b346e09..8bea630 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnDefaultFactory.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnDefaultFactory.cs @@ -125,7 +125,7 @@ namespace AdrianKousz.GenieEngine result.GeneratorId = 2; result.SizeX = size; result.SizeY = size; - result.LinearTiles = new Map.Tile[size*size].Fill(() => new Map.Tile(0, 1, 0)); + result.LinearTiles = new Scenario.ScnMap.Tile[size*size].Fill(() => new Scenario.ScnMap.Tile(0, 1, 0)); return result; } diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs index 7e6ce29..3c4ee84 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs @@ -25,7 +25,7 @@ namespace AdrianKousz.GenieEngine var Version = 0f; var number = 0; var result = factory is ScnDefaultFactory - ? factory.MakeScenario(false) + ? ((ScnDefaultFactory)factory).MakeScenario(false) : factory.MakeScenario(); // Uncompressed header @@ -188,7 +188,7 @@ namespace AdrianKousz.GenieEngine ReadSeparator(reader, "Player Environment"); result.PlayerSettings.ForEach(x => { - x.AlliedVictory = reader.ReadInt32(); + x.AlliedVictory = reader.ReadBoolean(); }); if (Version >= 1.15f) number = (Scenario.NumPlayers * ( 20 /*Disables*/) + 3 /*Unknowns*/) * 4 /*Intsize*/; @@ -200,7 +200,7 @@ namespace AdrianKousz.GenieEngine x.StartingAge = reader.ReadInt32(); }); - ReadSeparator("Map"); + ReadSeparator(reader, "Map"); // Map diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs index 5212be2..303585a 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs @@ -1,7 +1,6 @@ using System.IO; using System.IO.Compression; using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; namespace AdrianKousz.GenieEngine { From e24690483558556ada635575e704b6f13bfc0865 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 15:22:53 +0100 Subject: [PATCH 3/6] Library refactoring finished Fix bugs found by testing of the new code --- src/lib/AdrianKousz.GenieEngine/Scenario.cs | 6 +++--- src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs | 2 +- src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs | 5 +---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/lib/AdrianKousz.GenieEngine/Scenario.cs b/src/lib/AdrianKousz.GenieEngine/Scenario.cs index 76cf55c..a801b51 100644 --- a/src/lib/AdrianKousz.GenieEngine/Scenario.cs +++ b/src/lib/AdrianKousz.GenieEngine/Scenario.cs @@ -117,11 +117,11 @@ namespace AdrianKousz.GenieEngine public Int32 Artifacts; public Int32 Discovery; public Int32 PercentExplored; - public Int32 Unknown; public Boolean RequireAllCustom; public Int32 Mode; public Int32 Score; public Int32 Time; + public Int32 Unknown; } public class ScnResourceCopy @@ -170,13 +170,13 @@ namespace AdrianKousz.GenieEngine public Single PosX; public Single PosY; - public Single Unknown1; public Int32 Id; public Int16 UnitId; - public SByte Unknown2; public Single Rotation; public Int16 InitialFrame; public Int32 GarrisonnedInId; + public Single Unknown1; + public SByte Unknown2; } } } diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs index 3c4ee84..3ab8892 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs @@ -180,7 +180,7 @@ namespace AdrianKousz.GenieEngine // PlayerSettings 3 result.PlayerSettings.ForEach(x => { - x.Diplomacy = new int[Scenario.NumPlayers].Fill(reader.ReadInt32()); + x.Diplomacy = new int[Scenario.NumPlayers].Fill(reader.ReadInt32); }); result.RawIndividualVictory = reader.ReadBytes(11520); diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs index 303585a..8c16067 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs @@ -22,7 +22,7 @@ namespace AdrianKousz.GenieEngine // Uncompressed header - writer.Write(value.VersionString); + writer.WriteStringRaw(value.VersionString); writer.Write((int)UncompressedHeaderLength); writer.Write(value.Unknown1); writer.Write((System.Int32)DateTimes.ToUnixTime(value.Timestamp)); @@ -116,9 +116,6 @@ namespace AdrianKousz.GenieEngine writer.Write((int)writer.GetByteCount(x.ScriptAI)); writer.Write((int)writer.GetByteCount(x.ScriptCTY)); writer.Write((int)writer.GetByteCount(x.ScriptPER)); - }); - - value.PlayerSettings.ForEach(x => { writer.WriteStringRaw(x.ScriptAI); writer.WriteStringRaw(x.ScriptCTY); writer.WriteStringRaw(x.ScriptPER); From e2d32856856e13eda13f9f9d30636cce3380a2f9 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 15:28:29 +0100 Subject: [PATCH 4/6] Add GenieFile wrapper for implementation detail --- src/lib/AdrianKousz.GenieEngine/GenieFile.cs | 115 ++++++++++++++++++ .../ScnSerializerReader.cs | 2 +- .../ScnSerializerWriter.cs | 2 +- src/lib/GenieEngineLib.csproj | 1 + 4 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 src/lib/AdrianKousz.GenieEngine/GenieFile.cs diff --git a/src/lib/AdrianKousz.GenieEngine/GenieFile.cs b/src/lib/AdrianKousz.GenieEngine/GenieFile.cs new file mode 100644 index 0000000..8d68a17 --- /dev/null +++ b/src/lib/AdrianKousz.GenieEngine/GenieFile.cs @@ -0,0 +1,115 @@ +using System.IO; +using System.IO.Compression; +using AdrianKousz.Util; + +namespace AdrianKousz.GenieEngine +{ + public static class GenieFile + { + #region Serialization + + public static byte[] Serialize(T value) + { + byte[] result; + using (var stream = new MemoryStream()) + { + Serialize(value, stream); + result = stream.ToArray(); + } + return result; + } + + public static void Serialize(T value, Stream output) + { + var scenarioValue = value as Scenario; + if (scenarioValue != null) { + var scnwriter = ScnSerializerWriter.CreateDefault(); + using (var stream = new NonDisposingStreamWrapper(output)) + using (var writer = GetWriter(stream)) + { + scnwriter.Write(writer, scenarioValue); + return; + } + } + + throw new System.ArgumentException("Unsupported Type"); + } + + #endregion + + #region Deserialization + + public static T Deserialize(byte[] array) + { + return (T)Deserialize(array, typeof(T)); + } + + public static T Deserialize(Stream input) + { + return (T)Deserialize(input, typeof(T)); + } + + private static object Deserialize(byte[] array, System.Type type) + { + using (var stream = new MemoryStream(array)) + { + return Deserialize(stream, type); + } + } + + private static object Deserialize(Stream input, System.Type type) + { + if (type == typeof(Scenario)) { + var scnreader = ScnSerializerReader.CreateDefault(); + using (var stream = new NonDisposingStreamWrapper(input)) + using (var reader = GetReader(stream)) + { + return scnreader.ReadScenario(reader); + } + } + + throw new System.ArgumentException("Unsupported Type"); + } + + #endregion + + #region Low Level Methods + + public static ExtendedBinaryReader GetReader(Stream stream) + { + return new ExtendedBinaryReader(stream, Scenario.Encoding); + } + + public static ExtendedBinaryWriter GetWriter(Stream stream) + { + return new ExtendedBinaryWriter(stream, Scenario.Encoding); + } + + public static void ScenarioCompression(Stream input, Stream output, bool decompress) + { + var mode = decompress ? CompressionMode.Decompress : CompressionMode.Compress; + + byte[] buffer; + + buffer = input.ReadBytes(8); + output.Write(buffer); + + var headerLength = buffer[4] + | buffer[5] << 8 + | buffer[6] << 16 + | buffer[7] << 24 + ; + + buffer = input.ReadBytes(headerLength); + output.Write(buffer); + + using (var comp = new DeflateStream(input, mode)) + { + comp.CopyTo(output); + } + } + + #endregion + } +} + diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs index 3ab8892..be74a27 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerReader.cs @@ -5,7 +5,7 @@ using AdrianKousz.Util; namespace AdrianKousz.GenieEngine { - public class ScnSerializerReader + internal class ScnSerializerReader { private IScnFactory factory; diff --git a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs index 8c16067..011341d 100644 --- a/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs +++ b/src/lib/AdrianKousz.GenieEngine/ScnSerializerWriter.cs @@ -4,7 +4,7 @@ using AdrianKousz.Util; namespace AdrianKousz.GenieEngine { - public class ScnSerializerWriter + internal class ScnSerializerWriter { public static ScnSerializerWriter CreateDefault() { diff --git a/src/lib/GenieEngineLib.csproj b/src/lib/GenieEngineLib.csproj index edbb926..ce8797e 100644 --- a/src/lib/GenieEngineLib.csproj +++ b/src/lib/GenieEngineLib.csproj @@ -40,6 +40,7 @@ + From 900d6df4ee233adf98c05c07088a9760c93c81f7 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 16:50:10 +0100 Subject: [PATCH 5/6] Adapt command line program to API changes, add JSON conversion * Handle scenario compression in library * Add Json.NET library to handle JSON conversion --- .gitignore | 1 + src/cmdapp/GenieEngineApp.csproj | 15 ++++++-- src/cmdapp/packages.config | 4 ++ src/cmdapp/src/CompressCommand.cs | 18 ++------- src/cmdapp/src/ConvertCommand.cs | 56 ++++++++++++++++++++++++++++ src/cmdapp/src/CopymapCommand.cs | 57 ----------------------------- src/cmdapp/src/CopymapConverter.cs | 30 +++++++-------- src/cmdapp/src/DecompressCommand.cs | 19 ++-------- src/cmdapp/src/DumpCommand.cs | 29 --------------- src/cmdapp/src/DumpunitsCommand.cs | 7 ++-- src/cmdapp/src/FromJsonCommand.cs | 32 ++++++++++++++++ src/cmdapp/src/Program.cs | 8 ++-- src/cmdapp/src/ToJsonCommand.cs | 31 ++++++++++++++++ 13 files changed, 164 insertions(+), 143 deletions(-) create mode 100644 src/cmdapp/packages.config create mode 100644 src/cmdapp/src/ConvertCommand.cs delete mode 100644 src/cmdapp/src/CopymapCommand.cs delete mode 100644 src/cmdapp/src/DumpCommand.cs create mode 100644 src/cmdapp/src/FromJsonCommand.cs create mode 100644 src/cmdapp/src/ToJsonCommand.cs diff --git a/.gitignore b/.gitignore index 097ceb8..e60f4c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ [Dd]ebug [Rr]elease *.userprefs +packages diff --git a/src/cmdapp/GenieEngineApp.csproj b/src/cmdapp/GenieEngineApp.csproj index b3128ef..b07e203 100644 --- a/src/cmdapp/GenieEngineApp.csproj +++ b/src/cmdapp/GenieEngineApp.csproj @@ -31,14 +31,15 @@ - - - - + + + + + @@ -61,5 +62,11 @@ + + ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll + + + + \ No newline at end of file diff --git a/src/cmdapp/packages.config b/src/cmdapp/packages.config new file mode 100644 index 0000000..2abc396 --- /dev/null +++ b/src/cmdapp/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/cmdapp/src/CompressCommand.cs b/src/cmdapp/src/CompressCommand.cs index 13a012e..86ea72f 100644 --- a/src/cmdapp/src/CompressCommand.cs +++ b/src/cmdapp/src/CompressCommand.cs @@ -7,20 +7,10 @@ namespace AdrianKousz.GenieEngine { override public void Run() { - using (var file = File.OpenRead(args[0])) { - using (var outfile = File.OpenWrite(args[1])) { - var reader = new ScnReader(file); - var writer = new ScnWriter(outfile); - - var header = reader.ReadScenarioHeader(); - reader.ReadSeparator("Custom"); - writer.Write(header); - writer.Flush(); - - using (var comp = new DeflateStream(outfile, CompressionMode.Compress)) { - file.CopyTo(comp); - } - } + using (var input = File.OpenRead(args[0])) + using (var output = File.OpenWrite(args[1])) + { + GenieFile.ScenarioCompression(input, output, false); } } diff --git a/src/cmdapp/src/ConvertCommand.cs b/src/cmdapp/src/ConvertCommand.cs new file mode 100644 index 0000000..69d3b64 --- /dev/null +++ b/src/cmdapp/src/ConvertCommand.cs @@ -0,0 +1,56 @@ +using System; +using System.IO; +using AdrianKousz.Util; + +namespace AdrianKousz.GenieEngine +{ + public class ConvertCommand : BaseCommand + { + override public void Run() + { + using (var refstream = File.OpenRead(args[0])) + using (var srcstream = File.OpenRead(args[1])) + using (var outstream = File.OpenWrite(args[2])) + { + var refscn = GenieFile.Deserialize(refstream); + var srcscn = GenieFile.Deserialize(srcstream); + + srcscn.VersionString = refscn.VersionString; + srcscn.VersionNumber = refscn.VersionNumber; + srcscn.RawIndividualVictory = refscn.RawIndividualVictory; + srcscn.RawDisables = refscn.RawDisables; + srcscn.RawRemaining = refscn.RawRemaining; + + srcscn.PlayerSettings.ForEach(x => { + x.FilenameAI = "RandomGame"; + x.FilenameCTY = x.FilenamePER = ""; + x.ScriptAI = x.ScriptCTY = x.ScriptPER = ""; + }); + + var converter = new CopymapConverter(); + converter.Convert(srcscn); + + GenieFile.Serialize(srcscn, outstream); + } + } + + override public int GetArgumentCount() + { + return 3; + } + + override public string GetDescription() + { + return "Convert AOE1 scenario"; + } + + override public string GetHelp() + { + return "Convert AOE1 scenario to AOE2" + + "\n" + + "\nThe converter needs an existing AOE2 scenario to start with. Use the following arguments:" + + "\n " + ; + } + } +} diff --git a/src/cmdapp/src/CopymapCommand.cs b/src/cmdapp/src/CopymapCommand.cs deleted file mode 100644 index 3129569..0000000 --- a/src/cmdapp/src/CopymapCommand.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.IO; - -namespace AdrianKousz.GenieEngine -{ - public class CopymapCommand : BaseCommand - { - override public void Run() - { - Data.Scenario result; - using (var dststream = File.OpenRead(args[0])) - using (var srcstream = File.OpenRead(args[1])) - { - var srcreader = new ScnReader(srcstream); - var src = srcreader.ReadScenario(); - var dstreader = new ScnReader(dststream); - var dst = dstreader.ReadScenario(); - var converter = new CopymapConverter(); - dst.PlayerNames = src.PlayerNames; - dst.StringTablePlayerNames = src.StringTablePlayerNames; - dst.Players = src.Players; - dst.Resources = src.Resources; - dst.ResourcesCopy = src.ResourcesCopy; - dst.Messages = src.Messages; - converter.Convert(dst, src); - result = dst; - } - using (var outstream = File.OpenWrite(args[2])) { - var outwriter = new ScnWriter(outstream); - outwriter.Write(result); - } - } - - override public int GetArgumentCount() - { - return 3; - } - - override public string GetDescription() - { - return "Copy parts of scenarios"; - } - - override public string GetHelp() - { - return "Copy the parts below from scenario file 2 into scenario file 1." - + "\nThe result is written to scenario file 3." - + "\n- Messages" - + "\n- Player information" - + "\n- Resources" - + "\n- Map" - + "\n- Units" - ; - } - } -} - diff --git a/src/cmdapp/src/CopymapConverter.cs b/src/cmdapp/src/CopymapConverter.cs index e2b82a7..2bd5d17 100644 --- a/src/cmdapp/src/CopymapConverter.cs +++ b/src/cmdapp/src/CopymapConverter.cs @@ -1,26 +1,24 @@ using System; using System.Collections.Generic; using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; namespace AdrianKousz.GenieEngine { public class CopymapConverter { - public void Convert(Scenario dst, Scenario src) + public void Convert(Scenario scn) { - dst.Map = src.Map; - dst.Units = ChangeUnits_AOE1_AOE2(src.Units); - MoveUnits_AOE1_AOE2(dst.Units); - ChangeTiles_AOE1_AOE2(dst.Units, dst.Map); - RandomizeTrees_AOE2(dst.Units); + scn.Units = ChangeUnits_AOE1_AOE2(scn.Units); + MoveUnits_AOE1_AOE2(scn.Units); + ChangeTiles_AOE1_AOE2(scn.Units, scn.Map); + RandomizeTrees_AOE2(scn.Units); } /** * Some buildings are not the same size. * They need to be moved by half a unit. */ - private void MoveUnits_AOE1_AOE2(IList[] units) + private void MoveUnits_AOE1_AOE2(IList[] units) { var mapping = new int[] { // Towers @@ -43,7 +41,7 @@ namespace AdrianKousz.GenieEngine /** * Simple mapping of unit IDs */ - private List[] ChangeUnits_AOE1_AOE2(IList[] units) + private List[] ChangeUnits_AOE1_AOE2(IList[] units) { var array = new int[] { // Resources @@ -142,18 +140,17 @@ namespace AdrianKousz.GenieEngine 121, 121, 129, 129, }; - var mapping = new Dictionary(); + var mapping = new Dictionary(); var ai = 0; while (ai < array.Length) - mapping.Add(array[ai++], array[ai++]); + mapping.Add((short)array[ai++], (short)array[ai++]); - var result = new List[Scenario.NumPlayerSections]; - result.Fill(); + var result = new List[Scenario.NumPlayerSections].Fill(); units.ForEach((i, list) => { list.ForEach((j, unit) => { if (mapping.ContainsKey(unit.UnitId)) { - unit.UnitId = (short)mapping[unit.UnitId]; + unit.UnitId = mapping[unit.UnitId]; result[i].Add(unit); } }); @@ -165,7 +162,7 @@ namespace AdrianKousz.GenieEngine /** * Farms need to be converted including the underlying terrain. */ - private void ChangeTiles_AOE1_AOE2(IList[] units, Map map) + private void ChangeTiles_AOE1_AOE2(IList[] units, Scenario.ScnMap map) { units.ForEach((i, list) => { list.ForEach((j, unit) => { @@ -175,6 +172,7 @@ namespace AdrianKousz.GenieEngine if (false) { // switch } else if (unit.UnitId == 50) { + // Farm map.LinearTiles[linearpos].Id = 7; map.LinearTiles[linearpos - 1].Id = 7; map.LinearTiles[linearpos + 1].Id = 7; @@ -200,7 +198,7 @@ namespace AdrianKousz.GenieEngine * Forests would contain the same tree graphic * without this function */ - private void RandomizeTrees_AOE2(IList[] units) + private void RandomizeTrees_AOE2(IList[] units) { var treeids = new int[] { 411, 351, 414, 350, 348, 349, diff --git a/src/cmdapp/src/DecompressCommand.cs b/src/cmdapp/src/DecompressCommand.cs index bc4f905..7ac8591 100644 --- a/src/cmdapp/src/DecompressCommand.cs +++ b/src/cmdapp/src/DecompressCommand.cs @@ -1,5 +1,4 @@ using System.IO; -using System.IO.Compression; namespace AdrianKousz.GenieEngine { @@ -7,20 +6,10 @@ namespace AdrianKousz.GenieEngine { override public void Run() { - using (var file = File.OpenRead(args[0])) { - using (var outfile = File.OpenWrite(args[1])) { - var reader = new ScnReader(file); - var writer = new ScnWriter(outfile); - - var header = reader.ReadScenarioHeader(); - writer.Write(header); - writer.WriteSeperator("Custom"); - writer.Flush(); - - using (var comp = new DeflateStream(file, CompressionMode.Decompress)) { - comp.CopyTo(outfile); - } - } + using (var input = File.OpenRead(args[0])) + using (var output = File.OpenWrite(args[1])) + { + GenieFile.ScenarioCompression(input, output, true); } } diff --git a/src/cmdapp/src/DumpCommand.cs b/src/cmdapp/src/DumpCommand.cs deleted file mode 100644 index 19ef4cd..0000000 --- a/src/cmdapp/src/DumpCommand.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; - -namespace AdrianKousz.GenieEngine -{ - public class DumpCommand : BaseCommand - { - override public void Run() - { - using (var stream = File.OpenRead(args[0])) { - var aoereader = new ScnReader(stream); - var scn = aoereader.ReadScenario(); - var ser = new System.Web.Script.Serialization.JavaScriptSerializer(); - var result = ser.Serialize(scn); - Console.WriteLine(result); - } - } - - override public int GetArgumentCount() - { - return 1; - } - - override public string GetDescription() - { - return "Dump a scenario file to JSON"; - } - } -} diff --git a/src/cmdapp/src/DumpunitsCommand.cs b/src/cmdapp/src/DumpunitsCommand.cs index d995615..a85101a 100644 --- a/src/cmdapp/src/DumpunitsCommand.cs +++ b/src/cmdapp/src/DumpunitsCommand.cs @@ -2,7 +2,6 @@ using System.IO; using System.Collections.Generic; using AdrianKousz.Util; -using AdrianKousz.GenieEngine.Data; namespace AdrianKousz.GenieEngine { @@ -11,9 +10,9 @@ namespace AdrianKousz.GenieEngine override public void Run() { Scenario scn; - using (var stream = File.OpenRead(args[0])) { - var aoereader = new ScnReader(stream); - scn = aoereader.ReadScenario(); + using (var input = File.OpenRead(args[0])) + { + scn = GenieFile.Deserialize(input); } Console.WriteLine("{0,-8} {1,-8} {2,-8} {3}", "ID", "UnitID", "TileID", "Position"); diff --git a/src/cmdapp/src/FromJsonCommand.cs b/src/cmdapp/src/FromJsonCommand.cs new file mode 100644 index 0000000..ef25d9f --- /dev/null +++ b/src/cmdapp/src/FromJsonCommand.cs @@ -0,0 +1,32 @@ +using System.IO; +using Newtonsoft.Json; +using AdrianKousz.Util; + +namespace AdrianKousz.GenieEngine +{ + public class FromJsonCommand : BaseCommand + { + override public void Run() + { + using (var input = File.OpenRead(args[0])) + using (var reader = input.GetReader()) + using (var output = File.OpenWrite(args[1])) + { + var str = reader.ReadToEnd(); + var scn = JsonConvert.DeserializeObject(str); + GenieFile.Serialize(scn, output); + } + } + + override public int GetArgumentCount() + { + return 2; + } + + override public string GetDescription() + { + return "Read a JSON file and save as scenario"; + } + } +} + diff --git a/src/cmdapp/src/Program.cs b/src/cmdapp/src/Program.cs index 773b35a..84af326 100644 --- a/src/cmdapp/src/Program.cs +++ b/src/cmdapp/src/Program.cs @@ -25,11 +25,12 @@ namespace AdrianKousz.GenieEngine public IDictionary> GetCommands() { var result = new Dictionary>(); - result.Add("copymap", new CopymapCommand()); + result.Add("convert", new ConvertCommand()); result.Add("compress", new CompressCommand()); result.Add("decompress", new DecompressCommand()); result.Add("extract", new ExtractCommand()); - result.Add("dump", new DumpCommand()); + result.Add("tojson", new ToJsonCommand()); + result.Add("fromjson", new FromJsonCommand()); result.Add("dumpunits", new DumpunitsCommand()); return result; } @@ -38,8 +39,7 @@ namespace AdrianKousz.GenieEngine { var fn = ""; using (var istream = System.IO.File.OpenRead(fn)) { - var ireader = new ScnReader(istream); - var scn = ireader.ReadScenario(); + var scn = GenieFile.Deserialize(istream); System.Diagnostics.Debugger.Break(); // Great to inspect scn } } diff --git a/src/cmdapp/src/ToJsonCommand.cs b/src/cmdapp/src/ToJsonCommand.cs new file mode 100644 index 0000000..54faf2d --- /dev/null +++ b/src/cmdapp/src/ToJsonCommand.cs @@ -0,0 +1,31 @@ +using System.IO; +using Newtonsoft.Json; +using AdrianKousz.Util; + +namespace AdrianKousz.GenieEngine +{ + public class ToJsonCommand : BaseCommand + { + override public void Run() + { + using (var input = File.OpenRead(args[0])) + using (var output = File.OpenWrite(args[1])) + using (var writer = output.GetWriter()) + { + var scn = GenieFile.Deserialize(input); + var result = JsonConvert.SerializeObject(scn, Formatting.Indented); + writer.WriteLine(result); + } + } + + override public int GetArgumentCount() + { + return 2; + } + + override public string GetDescription() + { + return "Dump a scenario file to JSON"; + } + } +} From 15ce34ae195bdf0dfdb77be8765ec482266d0bb9 Mon Sep 17 00:00:00 2001 From: Adrian Date: Thu, 18 Feb 2016 17:14:46 +0100 Subject: [PATCH 6/6] Update documentation --- README.md | 74 +++++++++++++++++++++++++----------- doc/MapCoord.png | Bin 0 -> 34404 bytes files/OpeningMoves-AOE2.scx | Bin 20612 -> 113756 bytes 3 files changed, 52 insertions(+), 22 deletions(-) create mode 100644 doc/MapCoord.png diff --git a/README.md b/README.md index 5b30cc2..5117cad 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,38 @@ # Age of Empires Scenario Editor -Command line application and library to edit scenario and campaign files. +Command line application and library to edit Scenario and Campaign files +of games powered by the Genie Engine. +This includes the *Age of Empires* series and *Star Wars: Galactic Battlegrounds.* -**Alpha version** +**Beta version** -## Usage +# Command Line Application - Available commands are: - copymap Copy parts of scenarios - compress Recompress a decompressed scenario file - decompress Decompress a scenario file for hex editing - extract Extract scenarios from campaign file - dump Dump a scenario file to JSON - dumpunits Dump units and map tiles below +## Features -The command `copymap` is able convert an AOE1 to an AOE2 scenario. -There seem to be some issues with cliffs. +* Convert AOE1 Scenario to AOE2 Scenario +* Convert a Scenario file to JSON and vice-versa +* Decompress and recompress compressed Scenario part for hex editing +* Dump unit information to easily gather Unit IDs +* Extract Scenario files from Campaign file + +## Planned Features + +* Create maps from bitmaps +* Trigger implementation +* Full conversion between all Scenario versions + (mapping of Unit IDs are needed for this, see Section Contributing) + +## Examples [OpeningMoves-AOE2.scx](files/OpeningMoves-AOE2.scx) -is a fully automated conversion of a scenario from the AOE1 demo version: +is a fully automated conversion of a Scenario file from the AOE1 demo version: - $ GenieEdit.exe copymap files/examples/aoe2x-Empty.scx "files/examples/aoe1demo-Reigno_1-Opening Moves.scn" files/OpeningMoves-AOE2.scx + $ GenieEdit.exe convert files/examples/aoe2x-Empty.scx "files/examples/aoe1demo-Reigno_1-Opening Moves.scn" files/OpeningMoves-AOE2.scx (Stone are set to 100 to be able to build a town center from the beginning.) -It can also be used to dump units from any version of a scenario: +A unit dump looks like the following: $ GenieEdit.exe dumpunits Debug2.scx Scenario Editor @@ -36,13 +44,37 @@ It can also be used to dump units from any version of a scenario: 1 69 23 ( 2,5, 11,5) ... -### Code +# Library -Have a look at the command implementations. They are very short. +The namespace `AdrianKousz.GenieEngine` contains classes +to read, write, and manipulate Scenario files. + +`Scenario` contains all data structures related to a Scenario file. +They are easily understandable. + +The map is stored in linear order. +This way, it is easier to process seperate tiles. +The code below gets the map tile at (10,5). +The map origin (0,0) is in the left corner of the map: + +![Map coordinate system](doc/MapCoord.png) + + Scenario scn; + int x = 10; + int y = 5; + Scenario.ScnMap.Tile tile = scn.Map.LinearTiles[scn.Map.SizeX * y + x]; + +`GenieFile` is the starting point for reading and writing: + + Scenario scn = GenieFile.Deserialize(filestream); + +`ScnDefaultFactory` is a class that is able to produce an empty +Scenario file. Eventually, it should be able to create a `Scenario` +that is usable without any modifications. ## Build -Clone my projects MainUtil.cs ExUtil.cs and this repository +Clone the projects MainUtil.cs, ExUtil.cs, and this one, and build `src/GenieEdit.sln`. ## Contributing @@ -53,12 +85,10 @@ Keep in mind that the API is still very unstable. Suggestions: 1. Gather UnitIDs of AOE1 -2. Much help is appreciated to figure out ID mappings +2. Much help is appreciated to figure out Unit ID mappings for the conversion process. 3. Ideas how to configure the converter (mapping tables). There are some notes in German: [AOE1](files/units-aoe1.txt), [AOE2](files/units-aoe2.txt) -3. The application should be able to generate maps from images - in the future. How should units be placed using the image? -4. Feedback about the API. +3. Feedback about the API. diff --git a/doc/MapCoord.png b/doc/MapCoord.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff2e3b0022561889549eeca37c1cbc5a0267806 GIT binary patch literal 34404 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 JPDHLkV1nwB`S$<- literal 0 HcmV?d00001 diff --git a/files/OpeningMoves-AOE2.scx b/files/OpeningMoves-AOE2.scx index ae890f65676ba9534ba8e573c57f79dd1cfcf8e4..d8b41854484c8c4ae9d1a8581d4b9f49b2660195 100644 GIT binary patch literal 113756 zcmZ^}byOVB7d?mtcY@o5;BEne6EqN90}MXE;O-V&gS)$1aCdhL?(XiklkaEuclM9n znbUpxRK2?IzWZKv*Gx4VGdmkM9267`6cm)UDjVl#$hEu;$O>#_0+6+K0@*VH*f`nP z0pCQ?kkOEp4MA4=c3^A3cPo1bJ4ZtYu(g#v@4p^ZE3gB|2;gXC1hNCTT07bS>>Uja zLH72>jurq5kUpf@-V|)Z_+Ot5$lAsN1TfWi0s(C7tnF<;c96mPR*=KUN#Dv4WW)>r zNa;KMV`1rN;Q+R=07DGGRsbtUO9PM{Bf!BF1aJUb{=={b7+OOvjIICY7~o(HFaViA zOhGO-5X65F|BUSot!+R6Yvcb2IDqWzzz)`St`I-}=&M-&&j_S%?*M?fvIl(AH*mGE zwqgX>gB=|8|AhuY{D)%>+A6{Db`0t^zi(1KTr+JKC7qLG0}Tc3>xn z6i)gU79dwffPtd}L>$N%2RpFgKR6qGdwYEo5Cj%N7y@7q0$4!k+5^D$00RqaLvx6Y zf$RUEWx)>mR#squK7^3TfBcQ@tgRftAUkFNggGRz|F{`hLp1oOgR!H7quoDjCw=>W zDf&n9|3n1I4!{{~VF54(+d;zpUlJf3j6nJpkah>t|F_ToM;>R0m;YNjXE21SCB)0qk=?*wxFkDmd=!~h~S1P)>YDF#DGwft8(5F-cxq{H4Bqz{P~!rcKPmi2$?{D%+W zE@I{Sf1LhKti!} z1vo)c3MnW%NPv(T;0T6L*8hJwW=2DX4Egq7yA?p+4l?9lDE1)83GDE%Y@GG&{+CFQ z1=td7^-mlK#s3dVXvmP81r!u4bw%IXuqyD?*;u(7CI3k!Sv%f4;v@os+`fgHg za$XkF))HgVmU_DunlQxCb~#mG%tIuRyGb$>UB-jI?A((F`qR?MzztK>8+M%LK(#Q8 zG0?OE1l1jIHcCaW5@cnONY9CtChC>=9D=!vsOwaVRY2GL=RtcflNIytyBH`OV-m2Y zoEM%G_pL(h_nwzDLQ3?W_D^H--d?tzo=rE2&X4XR$6@moue+ANI!^B2H?RKxzW7@0 zg)W}tI_p|xiJ`aF_f0pXg5Ed3Cf4se_dBjS_k+kDUaW;K9-qk{USKgi-ntM3y-$8k z2;FqHO4mw>#acv-S+yrD?x!7bVYhJ6ciB zOme%!7rJ{Te}2<#Yjm)*b#w(C3ANVOx4Ug`JzWjg)m^V}I9s}U9!}3jm?tKv73yd; zRrA(4ZEyAE*VT=1SI7Z@n!S5<3?uX8>dzG{<=P$1oQ|N&`26DIQU>$+M77J^K64kK z8|ZSWFJDGpPS(@w5?7}WGO~h2x1%{6Hlb1$*m8M=B2yYEU#|NzMN`)+d0!*7xzRU% zgyE`3`IteOg|RJIG|}sscYIL!VxumMVLq`yjky#>Lst_B)Y1LviPq6Gk_n9VOTe4| zTX>;tt~|lqez7zcZw`TEs$AF5Ru>uXmXp9i6^YX_^fpW+o<`zPnq7`?tM3R~_J2^Jeu#+hUe& z{M|5yL>8I#O}NUeFSC^;d?}hu)$MoFS4U4vc@fmySBr_2EZf3s6VuxVZRUxIEY)=L zm5f&t)8dY;t+<@GDl6s_Vc85yoUi!7l=D^nZ)KUbz_GVej9EdSOk%=U zs7VWxeH|@L+{r6S7$Fan?})(ZhCil>&wzCgDE?dnWL;kX9P(5YD+-qCC_8` zXWi@4?AFmpF8P{9`vdlw#ZOJQqkO7E{4dRF)ufisTQT3@vNKzyCTCyjv0=bwU!lp!bGLgzj(tMti*%>gB2}hLhlYUUv>Jl`W&x*JJ#$9h4zI^T;&N;ds z8JW-91XXRhhaD__UD<0mtydo+g852T>}BTZdATJ6gZ(D>RXT8F%MtTntB)biKk-A- z2*Eb@--S=Hf0Yy6undh)hmhc{wDD~!4Suv$Ie>mfNn>xx`~6C&G7o9!y)M&EP0`V6 z4n>br26oeTR@dh}yfbrPGFt@qB_`}p>wNye|449g_3pKE?swPO;7b5?FOJ$ytd746 z7bz$E%G=SAXZkA~9lqm}R8rO$bGFx4Ot~Zied`pM%@#h(DyWh*0Wk z;{{@Cm#?>VhXi|h936#bSv>9@H};BiE{b1#I)f@w={~0rWLf!uTybG#l; z>gUzfbd(A+E_!xygk^ZT!c5J>+f4rc)zJd#w93%&PX!Q{N{{*}WJxntYB%5e&P(yn zCm1bX(f1$U5+B2~(m|oo3|y8TAy+c$#87LrH!>o+JU&qXB4I0~I@$^xP>_YZNKHJF zdoJs!bT(8EJslovMleZFHv7Wx)vbIehZ6UNuEaS59PTRRi*^I3I_=Pcv~x(3E=C)= zIBZ?Fm&8714B@8fgW@OoiG5^nn(k#t=DWky6Xyst47^)M+0bkZ89TTfJ$HE#0O;FM z&AM#cEbXWZ+g@4wjDIjLBN9J7s_(MfXpN|c-D&H3T_VR*i;xFKVuxm(i2r$@7>7kw zn1CHyrR7A6+8%Z!^iWPrV1eE`wvfJSIWbmVnMXGLTRM`M7)KP~sV=U#t?-e_{t&xv zz)|~^h&OxkL1(WaYZmHNo!gDwp7i4rQ8+tbu9|FU-QJM zfk17~XiO~+5a=<6$mL-F%aMvHKjFknN)bXHf?cUcH0(ux%5*q$rFL8M)zQxKiR5AW zaj8rtW95p5^18~rtL34pBBNSY%j_->dv>D8R$BpcBLOeQ(ua{_%EJ+LYevPi;2)cq z`nld15sk%}@7RHlg$3=aO9RrGT0mFTJjUdZgue{rbn#?e!wv0UJSPgzvCOMfo<=jh zb}D||2{=b^B$-@w+_-lXu03Edj2YL=hNtFlze*ftOOj#dUVUmM+k5VLiMJjK47zYj zI$!A8ChI@Wmb`pB5FN(u?ZUW3!LWbD^61?UBJXOKynIx&@M^sAi{uY?K5^f{@*uDL z*G6_t@Y@x2-Mj3@Q|OBJZri0*I&w?Z4f*+kUH}dDaV9_VZIY(yJ!HD$)-balY)hgW zxyctP80eU`&DOeoJDDrLd9C~qKA$VUeaq+te=g4td^(U9(t1i2dJ@f-yjYDCdQyH! z9;kZzxOPcO^1dzqqH(w_&#&nQx9|F~QnKnay0GePXh2%%YTlb{IfMRn!O+9I{^mmY zAK=~gvxmT|%Hj6H9rqjho#Atjydk+xMJ&~?79_f3!t zi^tZ042t}#!(oUnzxvZkKqdq5=|(=@>o`$R(QWr-ow1z%+T}2xgwYFO zp`Q6gQHdI9+^mJze>%d_tbrq$&XBU7diZl(V;>wKQ4tQCgn=9kS+P6u5hlS$Oj}wAXzwI85HpWD&StF*wX6e}0|5 z_k6jRiR8bEl=i+IV8{>hD${v7hu zf4!)A&$&6Ed25)K_uA7<@H*J%%a;_Y({*t8MQ8p6Lj9qpO$~wJCDzJD)&}-Y8vTKemdD=$T!h>n2^qFX%Cz~k9%wD z6QY#`PRnGv*p}WrToEs*)4jfgd26^Cw<$f{Xtv$Nj(BT7%|6K;T35a_wz z+~=FTU%o529d*1&9I7Yi(s>@vrRKA=*Q&amHR!Tr-fd}CLoJbp~{4}+aqo8UdIEu3`d=}qMOyRH_NN%tGvtv z;kzXGY)tJ?#yci~dH$`|;jrULSEl1~!gt#Gt+dtwZMpJwr17T3nl$dM@csIop7dR4 zo&I&+`$m#rfMjYt=AEGGDB`_c^~vVZri=akePTi_F(IM8bk5B)Xk@KWMXBe$EUxER?3C386r?=Z*Si+-6f#=>J+3=FJ>_0=!9h4XnRRKeJUeNOL zaV#5>b0k~|o>x!ReLYflUh7RfuH!yhc-~939{ls#pK9$D|2#Vs7BNRZ-icv7tiDtB zauHaDKY-WKV88Agd0V;q9E~stZ1tmdkz6xUG(TcFf3(=1r?$MPORsGEOyjX{ZlcSe ziD16IaZJ4az`GQ}H+#P>5=L-az}w8TMZE5^-}S+y={+_rMv^P_-BB=)<{kLx)9NhU)Kih1j57lgtg!nq`($9}8OpJ3! zKEJXrBlR1tY6`Rx^iMS6^!1CFbe zrJ^qUcSl6Od-%pnT!GB|w)jEr8QG^Eug7bAcJ0PBVe6;E7bW1mG0Iggve?5hQUbIg1dh2U7~$&?cPMT=F~wa|iX z%{D8@B8)r1{hTZH@9Z>!p>@iHmP)`RD9ntE+tt zPM~#AdPC3aUmcXHV~1{2o*y$O4=zdKi|LHS#u_<%0|Uv7;92w>+TlN#lW31L$V*rl zNPa$xEIC& z+g6@C!*vXgPL}?yzKVup1M?WlRh|%A>JgFLGq>tUWsUmnE!z6n^W6BUX|C}|34_X| z6YiEp)y@@1w5|0&mR_}JV}DXCr0PxP1rAEMBqxSV729@~2oCY&D2kMcTTJcM1+QNC zge9scsOg}pkiB`Bm=RC{MebS8mh9BDcqjK=ojyo3=bICW1VYoEc11QDyP{XbjhW=u zAqurvT`Q1Oo^vf`!P|uPusPvgv3`WoTg#DwOV*T~+2u~HpK}0}HJb9uo9siao*;lR znFDL1#q;bQpxsT?mSc#kS`eyNn5uvS0|ocY@KN&)7~0ldbo}{< zcfeQICK$nGPMnG=wq`+HlHbjQ+siGyMT7f?J|h*i$rEQiVC{^ddz(B8fxhqqXB$b8 z9N?di7h7kX0So>xseBvI`odq+Mnv!}a;jfjQtErm6WSkm5d^so1F6FYsOnw0`IxI$ z`l1fpZ1FWVGk87)*bH(WOV|g^kB!sZn>Xh-W_klrMJ&3(K6D!h_{Q_Qflf?8LG!}l zjXLuE$SH|Q7pMk=P`y*a73TP@fm8a3&+f87xQH(Mzg2_H{2=&R2->>roVcY{{A(%@meaz&pQ!D+q zlm=sJYN{T;54;}5THsFty4fL^aJ0zF$8pQfim@Im97kbOiEwe4uWti?ol4P&C|6Y( zdV%H5tm?%ob#B1QT)vbnwz-@NJ>lE@Fxd*f%^=4C%58m0UUXaE?2v7Px(DADFX2UV z^NbC2@8%TQ=_^;kOy9ZbkDs8CGpL2AF18{s$L>+FB&ShG;FiRY83>Q;9Nc^3I(rM_ z;9|l_9n~tsmRb3sf%u(Yp@Qg^V6jMiNK^l;<)f;GnIK9kuldq2YH7@+OPS3t7jIMB zzS_y&E-b662go4cgTDYP!4`Z|a2EnM&BhPaN{m%zM|O{RE;ynMA&TNpO0DVxUOjNk zh|-VsCN3l`!bUiQbuNt+eCQjX5T&lSuF6w9wBWskKFnCQUgMiDQc+ehy|ZjitXW0& z=d&WmKxdO|vfy5R!LNN+WKpm?b^Cs_?kzPkmBvA9g>85F1HClO`1uGtu{Sr)g;q+GJMNnC=<@k3nRFp^-RI>Kt3=)Ch*EfvHaoHX&w_uJN)okktHpc;DgrOh%RmP zSx^ccSs2^vMKukI|*WDEFy-%Zvs?4LbQ)@9_l1C5!5#bIWPtu>vph3 z_+;D$iG+q#8Zdl5BhVoIADj^e{8%-1R$a95!Ypcx7)=oc)w_j*?>Vz(6tmwafT#xg zI}cH!u$I63DSgq(+*gg_qQ;AlC|CV}bK6-b#c$g)G6RuGkrOWxTYP+=B zt)4Q(jgL}LisS{;8RYJKr3+VwU79n5bnLK59FT*+6b4s@G78Yd_*fQ<>l8RiG&Dq` z7gzB2^bFa(Uku-CR~S8MP;V3WOU0}@-7j=xV47P-siJcCkPSg)^o}2Vb&*-ND*)lU zH;KojJ*l+Luef~5EOSmIO<^v%q9g;#QqPKRCI_Y{BA!VWi8{+6n<>!fNc`7|V2c+c zQtnDE3jHwiJ?Ry73VbJd^;cR+nj1VSV+>PL{VFP}d(1|Mbx&@u#Pq6~s$~RG#X7!r zSzPO=*vP$fMucn7b80#?V&xom#q!FEIhIooUo9;_?-wb(%|?SEg<>{(4EJY3`sOex z%a3I~fPl(B93M}`u?FQh_E7^`<{1or3WtdLX$C4OPX@O-9@OrR+%xKIG!+~oD{KJ( z1Bj0gAC`PEpQ^_(r1xcZbWx*@48A|~_fCsjD@paT$4N}%@(wB` zVITC8Ec;@%hFD}TFb*nNp1KhTbDBU?6*(d;qEp;P70B6{&VFBfu$&6kQ*jGn3_|#3 zZ)@~V%6#hWVEjd1+%Z<4> z@vs1P(OLA}7eLC(vkd}NvO(>)&VDHU6_oGv(3>>xp6x#DRJnAXt~$T6eW~vrIekFn zJpT376P{N=a!{hSw5Pa5vkE03#OLXdm2>1qqeB?KEIN9>P#AGl*z8H8ul)SIfCkfc z6qKp(%^0FC}IZ@nGIRiLyEjJ;TWEpV9DSMH{*Q30yY*p6iCoJ8Yk+<)hmsFvH5 z`1jQ<6xEj%P5B)`N1R0Gy>E4$uTJ7P*^{;LmAzDPK*E8n9~VR*CdK8COjSsyk!B4V zR5{XoR;a@tdOzL{q&2TZ|`xC!k`Yq?LC1D(kS%BQutlZHL{scBjua8`fbnKB+=pU z*P56l$|za@h`~ZzlX3ZOfqcq{l?6XI2_40ALvx(S&%RA9`-1a3WZf@0Hv=O{+GcDC z`ey`FJa{jb$2svw`soVheD5hQ3kzSt(z5PuM3%kfc5q(kL0N__68NPG@8Mu!)Rtxw zY;0?*mD7ym;g`GvEE0rUDEbt9hM#m=ph6jj03DU9f}7z_`c9qBUjBW<)$p_jS%I+m zWVBm(cFfz1vcb>Yv!8MpS>-+v)1CFw_eE$_5Xq}(2GeHxq4q};xxR_Tmn!NV7wnaw zecY}ceVx32`o41S{Nlw@AO+u^U4J$SO)p4@`ci<3gvn7CMLDE|ifCK*&FJ@6ORU-QW8h$8P_p1^zyo`k# z?rhtU*xPpHP>CO8>`L@5;I2z-V(cJh zcSR4XEYHllcl~nQXabqC|%WnORbHU5*D($f|^%4 zDk)bnfPp4XXJz)-I?7a~9p==E>+k@>W zAx1w>+d+MbP1DEVG;}oyY*}7bWv()Lrfc8#3(~BgpU^xNP>2-}^4{Dd^FQ%|fA)nJ z&&6tA{RIA?zfpHcz;Wp~vtUWQm9nt<;Wgh6M|$y>K}Q^Xuw6wONm$PZqRornSIi9c zHL|A}#eawxmjX(lciZU5ek9#KC70U>oo!{|)9ix7zZsw+!u3HD9(_)#;*6f zS`eq3eYqkN(;kH=b3KV3!oHlL{8!Ep<*GR9BRBzho=)ss zI_9Wl2g7P!F+1#{ip*g0KAU)^Zw*MjE(?**z9myw6`?vJ(nj;Ex4Rj!A7|%Jl(GZe zatuG*OOm%*TFj@VNU&If3Xu7hp*_+7BU`IZVQXJ8)44jPe8n*>BoxiByT{N0^Wf9i z64PY2jb>?LwF{oIqzr@3RUltuI+o)$4jU^xnBL3qOL{i{aOk}ryUD5V8U6nG)_7UW zh2HRV!em?+9<1-!lTX?%4@Z|>TM@qG?%_vs=%}7*S`Yl#^I-gi&lH;OB9*!sfj>gs z+wu^cdI*gs9C8rZ@cuH&lPeG<{^F*X`htw=)P%w=Q)^UBA1BYO#(Eqx)|+yH+7ph% z=p<~=75I?~eU^*J(bhy|U&*%!1$Pi<^-N(XcM37hG`N|YC~_bdiv})uh>{$)R#A$1 zH%lcYGcud5zi3$|I|*6?hj7#NQykZz49LRu=0dhep3ZY2ze&0)KO`HR@Y5!Pw}9dK zqW~{6u5d{-FKR`Fof6fHBP|pmK_q6r;8?axoP#9Tf{1#7=-r?MiNNai^k~I5pNUEB z%d_&eaoZX?THz|@7k*JL94|1Z!HvK*?hr&Ci{lF(2Y*EVA^W0we}h6ny0whv90nq$4t10^q0^ZO6DFP z1I#8P*Va~6);pS}4u4P&-E~=HAg!(k<^}jWE}bLrdKu4iEs4ZUCtj@`9$vWc3zC&4 zH*5|8h%(Y9TX9Rp_-9}zNyoF2mjoQt>A#3|^;Fr$(YY3+ZzY`dkV-N9eh%m^ut`)} zxO4L-@yAlcRFZ4Cc1tG8MEisC2W#morG{8oiJ;t}?mE8;Q&*U~Zx*Hf zHf-1duM(1!I33)>aF+rrEW1`I$QL^gWRzXKZE!zJ^AIizc)|cDBZ=bIJ)3MhmMj@O zFa}aazpxQvwGJ#_4#Pi}muhI_nWxYOK*h8j%l7B_pj)RUe{befImJuFt2J}C%2lgO z)!NLOLe@-oGAymbx12LudU@fev|jL0te%Q)T8xO09Ul)oRVzm}=q4Y}Tbkk~mdMvx zudr}$5jGQJ*8*W8Tr0DL9&s|tL$buLVWfG;S)~|q%I+}pR50T`u^4J)6L&Yn)YwkM z8*=Y78Y7)kwmu3b@hGW`^w2u?31=ZGyx{Zaf4HNynD)qn;v~usfm!J4k}8VOIccft z`P&;K`L_!Q*Gc~an$`?S15=bsjU>&^o#m5yY|ge(u=$8&08*Y+Ixp4V=`sR~ z!-uHr^&nx=2P=_BQ+yK3cFkAmD%=QSaHGCD7x5H<9T$QBo`=?$E+>&$ zstU+&V%$=MvoPie3(TFLeP*J6z?Qa;GIGd?zfq@=bWY<(lzrcEbWbA> z7Faz(nB4TiCLq{4QRPgM+L22U`Ic5sf+82}%a19&tI2bb1jVB$K{#&1ej7GEVrzb3GU7KEgUH#(Hf*G`fmg17B z3isVzw+)JzO6jQjGOR|nUs=ui(n@Pp_2Upq>a#w)AD4j#Nwj+9eCe{EwN;%ziZi}u zdFKx;>e0Y#o3+F5DKHL&G=@@Zn|e0vQZP1K0C~%SdSRFQ8Q>;w#c^7Czy;prc9rCZ0fVGCartmfTF!44X0V|oYizez z$sf+J*1vypu+W7L4kVo;Z}tZj2--Tw7`m z68ktyugd-)uS3;s)>d8EqDb8!6}&W8p-J{L6CL7$4n21?;m^N44wq-WW=%ew^q{{pk!Ltuc&1k4x#A*Se{t_JXMe zquQs~UmX&dwa=_(@R%jTx$J}e0|Spf!u~m0_m>g*Ytvbgd~!D$%BKqdpTLTAWJ=>v{Xlc)Gudx zOC(&ulQ96fJ3HK54ic*v*_|5>;B59w8+eZCi->Vofw+6OPpt=A;Hs7m>y+}P!0U;T z8uo~4l;k2QxVke9p-IDtAZ+~XLD=DE7X}qke@Q7at7`JHx zekbC612P`@pYDC9WxI*z0Wl1}>15xFAl@rA0d`aND>w*Y^Qu_>~YD%kTv|zYumVBr|UJ$=N#VjHnq}Kvt5x_rhdGxj5!@^&ud?% zMy(>V$!nriT=#h)UkzD0eT47mAt=vkc;m~)i?-BUeQoweCcX*wAV*PztEFjG{m4Ja z!&pA?nA(JW=y_&Dip|5F&9X~jIg~MLwxc>isIVKQr*LabFc^rapAQBatg7=52c`oQ z+58<3I5MvK@g>rI6xMMAw7$h6`xigR&sVKd@Kz#9Set#M_!F{&&w(o5T%$EQz?<-J z{A`;v$^S9%Y6#_|r<;{+b?VbD3h_;A+mr1jLfgboBz{lF6FYiALp&Ze3aEv6+SJ!k3r(hoIPMnA~pHK%pJiWX= zyO1+Vt|a#xz@Dext^)5d;oI>GZa!y*5BTLeL}ijh&QY@NFqVbly{Ye!{o8M0JSEDH z9i36`@q?@VMOxdWu!M!mhz`tQ4Z-GumS8*8I&e$-ZQ~Y#s97sufuBr-+~uLjk_Ci! z?7Ov!?nsfwn&BL?Rb?y=_sAM*K$b;>TKW)jN_6%cMTx^HWlavN>JvIIl4b%Naz^p- z7b;`ef&i9FShH#|_z-6J-TgsFiz^scd9Iiv?azC)KjC9w1!wXWBc^n1+3|KF#P5)Q zKr0O7?@+~)^i?ZSwh{cHBGmh_z0Y3%8x<>bU8nmZ4xq3GohePaxFF}Y#V?{2Ge2gW zuK#$3{#h$^l$zp>AiP7l6x>X0g_UJed%VO-=^{=ErqVWy+(c0jvY(0sGhL5KZj`#yS` z-MTtOg%&=Q^AK2wT69xo!yMyIW$d?k))Kn+hmz?yljl$3k#ZlcEUyrZ$aY)9Z zrM_q5ub25GnC>S| zVNOB)yZ7M7c@JsTUlYF6HV!Jax9QgWc%qnH5^G*m{>^VopMFVcE37ezd-(G0GrD)D zYS@bNz|2z2+=b?mnmXOmZ)Y9z1y&m_oRIOd5V|vptlX><%K{9Y@%I-L7gej(gF7tp zcJkP5`xFtDzmWG8Pha*I7H&Jhm2J`v=4)?`8gfl&h|L8L_a(Vyrri0YKucuX%>^LG zõ|Cp{wNjjgp|C`%ESJ1LSmKrM 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