diff --git a/SAGE/Games/Kane's Wrath/AptAptData.cs b/SAGE/Games/Kane's Wrath/AptAptData.cs new file mode 100644 index 0000000..01c604f --- /dev/null +++ b/SAGE/Games/Kane's Wrath/AptAptData.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using Files; +using SAGE; + +namespace SAGE.Compiler +{ + public class AptAptData : CompileHandler + { + public override bool Compile(GameAssetType gameAsset, Uri baseUri, BinaryAsset asset, XmlNode node, GameDefinition game, + string trace, ref int position, out string ErrorDescription) + { + BinaryAsset blob = new BinaryAsset(0); + string file = null; + foreach (XmlAttribute attribute in node.Attributes) + { + switch (attribute.Name) + { + case "File": + file = attribute.Value; + break; + } + } + if (file == null) + { + ErrorDescription = string.Format("No file set for {0}", trace); + return false; + } + Uri fileUri = Macro.Parse(file); + if (!fileUri.IsAbsoluteUri) + { + fileUri = new Uri(baseUri, fileUri); + } + file = fileUri.LocalPath; + if (!File.Exists(file)) + { + ErrorDescription = string.Format("File not found for {0}", trace); + return false; + } + using (FileStream blobStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + using (BinaryReader blobReader = new BinaryReader(blobStream)) + { + blob.Content = blobReader.ReadBytes((int)(blobStream.Length)); + } + } + asset.SubAssets.Add(0x04, blob); + FileHelper.SetInt(blob.Content.Length, 0x08, asset.Content); + ErrorDescription = string.Empty; + return true; + } + } +} diff --git a/SAGE/Games/Kane's Wrath/AptAssets.xml b/SAGE/Games/Kane's Wrath/AptAssets.xml new file mode 100644 index 0000000..bcc4add --- /dev/null +++ b/SAGE/Games/Kane's Wrath/AptAssets.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/AptConstData.cs b/SAGE/Games/Kane's Wrath/AptConstData.cs new file mode 100644 index 0000000..e99d8d8 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/AptConstData.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using Files; +using SAGE; + +namespace SAGE.Compiler +{ + public class AptConstData : CompileHandler + { + public override bool Compile(GameAssetType gameAsset, Uri baseUri, BinaryAsset asset, XmlNode node, GameDefinition game, + string trace, ref int position, out string ErrorDescription) + { + BinaryAsset blob = new BinaryAsset(0); + string file = null; + foreach (XmlAttribute attribute in node.Attributes) + { + switch (attribute.Name) + { + case "File": + file = attribute.Value; + break; + } + } + if (file == null) + { + ErrorDescription = string.Format("No file set for {0}", trace); + return false; + } + Uri fileUri = Macro.Parse(file); + if (!fileUri.IsAbsoluteUri) + { + fileUri = new Uri(baseUri, fileUri); + } + file = fileUri.LocalPath; + if (!File.Exists(file)) + { + ErrorDescription = string.Format("File not found for {0}", trace); + return false; + } + using (FileStream blobStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + using (BinaryReader blobReader = new BinaryReader(blobStream)) + { + blob.Content = blobReader.ReadBytes((int)(blobStream.Length)); + } + } + asset.SubAssets.Add(0x04, blob); + FileHelper.SetInt(blob.Content.Length, 0x08, asset.Content); + ErrorDescription = string.Empty; + return true; + } + } +} diff --git a/SAGE/Games/Kane's Wrath/AptDatData.cs b/SAGE/Games/Kane's Wrath/AptDatData.cs new file mode 100644 index 0000000..e99d8d8 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/AptDatData.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using Files; +using SAGE; + +namespace SAGE.Compiler +{ + public class AptConstData : CompileHandler + { + public override bool Compile(GameAssetType gameAsset, Uri baseUri, BinaryAsset asset, XmlNode node, GameDefinition game, + string trace, ref int position, out string ErrorDescription) + { + BinaryAsset blob = new BinaryAsset(0); + string file = null; + foreach (XmlAttribute attribute in node.Attributes) + { + switch (attribute.Name) + { + case "File": + file = attribute.Value; + break; + } + } + if (file == null) + { + ErrorDescription = string.Format("No file set for {0}", trace); + return false; + } + Uri fileUri = Macro.Parse(file); + if (!fileUri.IsAbsoluteUri) + { + fileUri = new Uri(baseUri, fileUri); + } + file = fileUri.LocalPath; + if (!File.Exists(file)) + { + ErrorDescription = string.Format("File not found for {0}", trace); + return false; + } + using (FileStream blobStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + using (BinaryReader blobReader = new BinaryReader(blobStream)) + { + blob.Content = blobReader.ReadBytes((int)(blobStream.Length)); + } + } + asset.SubAssets.Add(0x04, blob); + FileHelper.SetInt(blob.Content.Length, 0x08, asset.Content); + ErrorDescription = string.Empty; + return true; + } + } +} diff --git a/SAGE/Games/Kane's Wrath/AptGeometryData.cs b/SAGE/Games/Kane's Wrath/AptGeometryData.cs new file mode 100644 index 0000000..567b65c --- /dev/null +++ b/SAGE/Games/Kane's Wrath/AptGeometryData.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using Files; +using SAGE; + +namespace SAGE.Compiler +{ + public class AptConstData : CompileHandler + { + public override bool Compile(GameAssetType gameAsset, Uri baseUri, BinaryAsset asset, XmlNode node, GameDefinition game, + string trace, ref int position, out string ErrorDescription) + { + BinaryAsset blob = new BinaryAsset(0); + string file = null; + foreach (XmlAttribute attribute in node.Attributes) + { + switch (attribute.Name) + { + case "File": + file = attribute.Value; + break; + case "AptID": + FileHelper.SetInt(int.Parse(attribute.Value), 0x0C, asset.Content); + break; + } + } + if (file == null) + { + ErrorDescription = string.Format("No file set for {0}", trace); + return false; + } + Uri fileUri = Macro.Parse(file); + if (!fileUri.IsAbsoluteUri) + { + fileUri = new Uri(baseUri, fileUri); + } + file = fileUri.LocalPath; + if (!File.Exists(file)) + { + ErrorDescription = string.Format("File not found for {0}", trace); + return false; + } + using (FileStream blobStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + using (BinaryReader blobReader = new BinaryReader(blobStream)) + { + blob.Content = blobReader.ReadBytes((int)(blobStream.Length)); + } + } + asset.SubAssets.Add(0x04, blob); + FileHelper.SetInt(blob.Content.Length, 0x08, asset.Content); + ErrorDescription = string.Empty; + return true; + } + } +} diff --git a/SAGE/Games/Kane's Wrath/Audio.xml b/SAGE/Games/Kane's Wrath/Audio.xml index 7699f7c..fb231fb 100644 --- a/SAGE/Games/Kane's Wrath/Audio.xml +++ b/SAGE/Games/Kane's Wrath/Audio.xml @@ -1,68 +1,454 @@  + + NONE + XAS + EALAYER3 + + + + NONE + XAS + EALAYER3 + + + + + + + + + + + + + TypeHash="822598043" + HasSpecialCompileHandling="true"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + LOWEST + LOW + NORMAL + HIGH + HIGHEST + CRITICAL + + + + SOUNDFX + VOICE + MUSIC + AMBIENT + MOVIE + NONE + + + + + + + + + UI + WORLD + SHROUDED + VOICE + PLAYER + ALLIES + ENEMIES + EVERYONE + + + + + + LOOP + SEQUENTIAL + RANDOMSTART + INTERRUPT + FADE_ON_KILL + FADE_ON_START + ALLOW_KILL_MID_FILE + + + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TypeHash="3556692593"> + + + + TypeHash="3167789449"> + + TypeHash="1717852637"> + - + + TypeHash="532307505"> + + + LOOP + PLAY_ONE + + + + + TypeHash="2768493560"> + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/BootupDisplaySequence.xml b/SAGE/Games/Kane's Wrath/BootupDisplaySequence.xml new file mode 100644 index 0000000..550c3fc --- /dev/null +++ b/SAGE/Games/Kane's Wrath/BootupDisplaySequence.xml @@ -0,0 +1,64 @@ + + + + + STATIC_SCREEN + LOAD_SCREEN + MOVIE + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/CampaignManager.xml b/SAGE/Games/Kane's Wrath/CampaignManager.xml index 9b5a855..ddd8b58 100644 --- a/SAGE/Games/Kane's Wrath/CampaignManager.xml +++ b/SAGE/Games/Kane's Wrath/CampaignManager.xml @@ -194,6 +194,13 @@ IsVoid="true" /> + + + + @@ -229,6 +236,13 @@ MaxLength="0" /> + + + + diff --git a/SAGE/Games/Kane's Wrath/DLContent.xml b/SAGE/Games/Kane's Wrath/DLContent.xml new file mode 100644 index 0000000..612969c --- /dev/null +++ b/SAGE/Games/Kane's Wrath/DLContent.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/ExperienceLevelTemplate.xml b/SAGE/Games/Kane's Wrath/ExperienceLevelTemplate.xml index a1c7cc9..de96b18 100644 --- a/SAGE/Games/Kane's Wrath/ExperienceLevelTemplate.xml +++ b/SAGE/Games/Kane's Wrath/ExperienceLevelTemplate.xml @@ -13,6 +13,13 @@ IsAttribute="true" /> + + + + diff --git a/SAGE/Games/Kane's Wrath/FXList.xml b/SAGE/Games/Kane's Wrath/FXList.xml index a10a1f8..ea0c74f 100644 --- a/SAGE/Games/Kane's Wrath/FXList.xml +++ b/SAGE/Games/Kane's Wrath/FXList.xml @@ -39,6 +39,11 @@ id="StopIfPlayed" AssetType="SageBool" IsAttribute="true" /> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/InGameUICommonCommandSlots.xml b/SAGE/Games/Kane's Wrath/InGameUICommonCommandSlots.xml new file mode 100644 index 0000000..55c0bca --- /dev/null +++ b/SAGE/Games/Kane's Wrath/InGameUICommonCommandSlots.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/InGameUIFixedElementHotKeySlotMap.xml b/SAGE/Games/Kane's Wrath/InGameUIFixedElementHotKeySlotMap.xml new file mode 100644 index 0000000..9ff7f08 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/InGameUIFixedElementHotKeySlotMap.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/InGameUITacticalCommandSlots.xml b/SAGE/Games/Kane's Wrath/InGameUITacticalCommandSlots.xml new file mode 100644 index 0000000..78e6a48 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/InGameUITacticalCommandSlots.xml @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/MusicScript.xml b/SAGE/Games/Kane's Wrath/MusicScript.xml index 5750665..23ec650 100644 --- a/SAGE/Games/Kane's Wrath/MusicScript.xml +++ b/SAGE/Games/Kane's Wrath/MusicScript.xml @@ -8,6 +8,20 @@ AssetType="BaseAssetType" /> + + + + + + + + + + + + UNKNOWN + PENTIUM_4 + CORE_DUO + ATHLON + ATHLON_64 + + + + UNKNOWN + GENERIC_PIXEL_SHADER_1 + GEFORCE_5_LOW + GEFORCE_3 + RADEON_8_AND_9_LOW + GEFORCE_4 + GEFORCE_5_MEDIUM + GEFORCE_6_LOW + _MINIMUM_FOR_LOW_LOD + GENERIC_PIXEL_SHADER_2 + GEFORCE_5_HIGH + RADEON_9_MEDIUM + RADEON_X_LOW + _MINIMUM_FOR_MEDIUM_LOD + GEFORCE_6_MEDIUM + RADEON_X1_LOW + RADEON_9_HIGH + RADEON_X_MEDIUM + GEFORCE_7_LOW + RADEON_X1_MEDIUM + RADEON_HD_MEDIUM + _MINIMUM_FOR_HIGH_LOD + RADEON_X_HIGH + GENERIC_PIXEL_SHADER_3 + GEFORCE_6_HIGH + GEFORCE_7_MEDIUM + _MINIMUM_FOR_ULTRA_HIGH_LOD + RADEON_X1_HIGH + GEFORCE_7_HIGH + GEFORCE_8_HIGH + + + + UNKNOWN + VERY_LOW + LOW + MEDIUM + HIGH + ULTRA_HIGH + CUSTOM + + + + LOW + MEDIUM + HIGH + ULTRA_HIGH + + + + UNKNOWN + LOW + HIGH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/TheVersion.xml b/SAGE/Games/Kane's Wrath/TheVersion.xml new file mode 100644 index 0000000..c61ce18 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/TheVersion.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/UIConfigList.xml b/SAGE/Games/Kane's Wrath/UIConfigList.xml new file mode 100644 index 0000000..25065b0 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/UIConfigList.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INGAME + SHELL + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/VideoSequence.xml b/SAGE/Games/Kane's Wrath/VideoSequence.xml new file mode 100644 index 0000000..7fd5e3a --- /dev/null +++ b/SAGE/Games/Kane's Wrath/VideoSequence.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + LEFT + RIGHT + CENTER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SAGE/Games/Kane's Wrath/WaterTransparency.xml b/SAGE/Games/Kane's Wrath/WaterTransparency.xml new file mode 100644 index 0000000..d0b93b2 --- /dev/null +++ b/SAGE/Games/Kane's Wrath/WaterTransparency.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file