diff --git a/README.md b/README.md index 965faca..c220eb0 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ This is a table of games that are confirmed to be compatible with the current st | Red Orchestra: Ostfront 41-45 | 3323-3369 | 128/029 | | | Killing Floor | 3369 | 128/029 | | | Battle Territory Battery | Unknown | Unknown | | +| Vanguard: Saga of Heroes | Unknown | 129/035 | | | Swat 4 | Vengeance | 129/027 | | | Tribes: Vengeance | Vengeance | 130/027 | | | Bioshock | Vengeance | 130-141/056 | | diff --git a/src/UnrealPackage.cs b/src/UnrealPackage.cs index c1c36b0..be8d9b5 100644 --- a/src/UnrealPackage.cs +++ b/src/UnrealPackage.cs @@ -160,18 +160,21 @@ public enum BuildName /// /// Standard + /// /// 61/000 /// [Build(61, 0)] Unreal1, /// /// Standard, Unreal Tournament & Deus Ex + /// /// 68:69/000 /// [Build(68, 69, 0u, 0u)] UT, /// /// Deus Ex: Invisible War + /// /// Missing support for custom classes such as BitfieldProperty and BitfieldEnum among others. /// 95/69 /// @@ -179,6 +182,7 @@ public enum BuildName /// /// Thief: Deadly Shadows + /// /// 95/133 /// [Build(95, 133, BuildGeneration.Thief)] @@ -203,15 +207,17 @@ public enum BuildName /// /// Tom Clancy's Rainbow Six 3: Raven Shield + /// /// 118/011:014 /// [Build(118, 118, 11u, 14u)] R6RS, /// /// Unreal II: eXpanded MultiPlayer + /// /// 126/000 /// - [Build(126, 0)] Unreal2XMP, + [Build(123, 126, 0u, 0u)] Unreal2XMP, /// /// 118:128/025:029 @@ -221,17 +227,29 @@ public enum BuildName UT2004, /// - /// Built on UT2004 + /// America's Army 2.X /// Represents both AAO and AAA + /// + /// Built on UT2004 /// 128/032:033 /// [Build(128, 128, 32u, 33u, BuildGeneration.UE2_5)] [BuildEngineBranch(typeof(EngineBranchAA2))] AA2, + /// + /// Vanguard: Saga of Heroes + /// + /// 129/035 + /// Some packages have 128/025 but those are in conflict with UT2004. + /// + [Build(128, 129, 34u, 35u, BuildGeneration.UE2_5)] Vanguard_SOH, + // IrrationalGames/Vengeance - 129:143/027:059 /// /// Tribes: Vengeance + /// + /// 130/027 /// [Build(130, 27, BuildGeneration.Vengeance)] Tribes_VG, @@ -244,6 +262,7 @@ public enum BuildName /// /// BioShock 1 & 2 + /// /// 130:143/056:059 /// [Build(130, 143, 56u, 59u, BuildGeneration.Vengeance)] @@ -260,11 +279,15 @@ public enum BuildName Spellborn, /// + /// Standard + /// /// 369/006 /// [Build(369, 6)] RoboBlitz, /// + /// Medal of Honor: Airborne + /// /// 421/011 /// [Build(421, 11)] MOHA, @@ -276,6 +299,8 @@ public enum BuildName MKKE, /// + /// Gears of War + /// /// 490/009 /// [Build(490, 9)] GoW1, @@ -307,11 +332,15 @@ public enum BuildName [Build(539, 91)] AlphaProtocol, /// + /// APB: All Points Bulletin & APB: Reloaded + /// /// 547/028:032 /// [Build(547, 547, 28u, 32u)] APB, /// + /// Standard, Gears of War 2 + /// /// 575/000 /// Xenon is enabled here, because the package is missing editor data, the editor data of UStruct is however still serialized. /// @@ -324,8 +353,9 @@ public enum BuildName [Build(576, 5)] CrimeCraft, /// - /// 576/021 + /// Batman: Arkham Asylum /// + /// 576/021 /// No Special support, but there's no harm in recognizing this build. /// [Build(576, 21)] Batman1, @@ -367,6 +397,8 @@ public enum BuildName [Build(610, 14)] Tera, /// + /// DC Universe Online + /// /// 648/6405 /// [Build(648, 6405)] DCUO, @@ -396,6 +428,8 @@ public enum BuildName InfinityBlade, /// + /// Standard, Gears of War 3 + /// /// 828/000 /// [Build(828, 0, BuildFlags.ConsoleCooked)] @@ -418,11 +452,15 @@ public enum BuildName InfinityBlade2, /// + /// XCom + /// /// 845/059 /// [Build(845, 59)] XCOM_EU, /// + /// XCom 2: War of The Chosen + /// /// 845/120 /// [Build(845, 120)] XCOM2WotC, @@ -445,11 +483,11 @@ public enum BuildName /// 807/104 /// 863/32995 /// - [Build(805, 101, BuildGeneration.Batman2)] + [Build(805, 101, BuildGeneration.Batman2)] // Batman: Arkham City [Build(806, 103, BuildGeneration.Batman3)] - [Build(807, 807, 137, 138, BuildGeneration.Batman3)] + [Build(807, 807, 137, 138, BuildGeneration.Batman3)] // Batman: Arkham Origins [Build(807, 104, BuildGeneration.Batman3MP)] - [Build(863, 32995, BuildGeneration.Batman4)] + [Build(863, 32995, BuildGeneration.Batman4)] // Batman: Arkham Knight BatmanUDK, /// diff --git a/src/UnrealStream.cs b/src/UnrealStream.cs index ae9ce3b..e6a6c3a 100644 --- a/src/UnrealStream.cs +++ b/src/UnrealStream.cs @@ -840,6 +840,12 @@ public static UName ReadNameReference(this IUnrealStream stream) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int ReadLength(this IUnrealStream stream) { +#if VANGUARD + if (stream.Package.Build == UnrealPackage.GameBuild.BuildName.Vanguard_SOH) + { + return stream.UR.ReadInt32(); + } +#endif return stream.UR.ReadIndex(); }