Skip to content

Commit

Permalink
Finish Release-1.7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
EliotVU committed Oct 18, 2024
2 parents bb377bb + 9b275c1 commit 94770b6
Show file tree
Hide file tree
Showing 33 changed files with 796 additions and 110 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
#

## [1.7.0](https://github.com/EliotVU/Unreal-Library/releases/tag/1.7.0)

* 0ff0ed96 Added .NET Standard 2.1 and .NET 8.0 as framework targets.
* 48b427f1 Support for Mass Effect: Legendary Edition
* 83c7ecfe Support for Men of Valor
* a226a6c7 Support for Tom Clancy's Splinter Cell: Double Agent (Offline Mode)
* 660c0c28 Support for Stargate SG-1: The Alliance
* 1dd24dc5 Improved support for Frontlines: Fuel of War

## [1.6.1](https://github.com/EliotVU/Unreal-Library/releases/tag/1.6.1)

* Added .NET Standard 2.0 as a target framework, when targeting this standard any code releated to WinForms will be excluded (This will be deprecated in its entirety with UELib 2.0)
Expand Down
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[![Nuget](https://img.shields.io/nuget/dt/Eliot.UELib?style=for-the-badge)](https://www.nuget.org/packages/Eliot.UELib/)
[![Nuget](https://img.shields.io/nuget/v/Eliot.UELib?style=for-the-badge)](https://www.nuget.org/packages/Eliot.UELib/)
![Platform](https://img.shields.io/badge/platform-.NET-blue.svg?style=for-the-badge)
![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)

# UELib

Expand All @@ -20,19 +21,15 @@ Additionally UELib is also capable of deserializing of many more data classes su
UTextureCube, UTextureFlipBook, UTextureMovie
UPrimitive, UPolys

## How to use

To use this library you will need [.NET Framework 4.8](https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48) (The library will move to .NET 6 or higher at version 2.0)

Install using either:

* Package Manager:
## Install

```cmd
Install-Package Eliot.UELib
```

* NuGet: <https://www.nuget.org/packages/Eliot.UELib>
| Module | Version | License |
|---|---|---|
| <img src="https://img.shields.io/badge/UELib-brightgreen.svg?style=for-the-badge" /> | [![Nuget](https://img.shields.io/nuget/v/Eliot.UELib?label=Version&logo=nuget&style=for-the-badge)](https://www.nuget.org/packages/Eliot.UELib/) | ![GitHub](https://img.shields.io/github/license/EliotVU/Unreal-Library.svg?style=for-the-badge) |

* Usage: See the [documentation](https://github.com/EliotVU/Unreal-Library/wiki/Usage) for more examples.

Expand Down Expand Up @@ -106,6 +103,7 @@ This is a table of games that are confirmed to be compatible with the current st
| XIII | 829 | 100/058 | |
| Postal 2: Paradise Lost | 1417 | 118/002 | |
| Tom Clancy's Splinter Cell | 829 | 100/017 | |
| Tom Clancy's Splinter Cell: Double Agent | 829 | 100/167:SCX | (PC) Offline mode version |
| Tom Clancy's Rainbow Six 3: Raven Shield | 600-927 | 118/012-014 | |
| Unreal Tournament 2003 | 1077-2225 | 119/025 | |
| Devastation | 600-? | 118-120/004-008 | |
Expand All @@ -124,8 +122,10 @@ This is a table of games that are confirmed to be compatible with the current st
| Shark Tale | 2226 | 129/003 | |
| Lemony Snicket's A Series of Unfortunate Events | 2226 | 129/003 | |
| Swat 4 | 2226:Vengeance | 129/027 | |
| Stargate SG1: The Alliance | 4180 | 130/004 | |
| Tribes: Vengeance | 2226:Vengeance | 130/027 | |
| Bioshock | 2226:Vengeance | 130-141/056 | |
| Men of Valor | 926 | 137/000 | PC |
| Bioshock 2 | 2226:Vengeance | 143/059 | |
| Unreal Championship 2: Liandri Conflict | 3323 | 151/002 | [Third-party](https://forums.beyondunreal.com/threads/unreal-championship-2-script-decompiler-release.206036/) |
| The Chronicles of Spellborn | 3323 | 159/029 | |
Expand All @@ -134,12 +134,16 @@ This is a table of games that are confirmed to be compatible with the current st
| | | | |
| Tom Clancy's EndWar | Unknown | 329/000 | |
| Roboblitz | 2306 | 369/006 | |
| Mass Effect (Xbox 360) | 2674 | 391/092 | Xenon |
| Medal of Honor: Airborne | 2859 | 421/011 | |
| Frontlines: Fuel of War | 2917 | 433/052 | Poor output of functions |
| Frontlines: Fuel of War | 2917 | 433/052 | |
| Army of Two | 3004 | 445/079 | Overall quality has not been verified |
| Mortal Kombat Komplete Edition | 2605 | 472/046 | |
| Stargate Worlds | 3004 | 486/007 | |
| Gears of War | 3329 | 490/009 | |
| Mass Effect (Windows) | 3240 | 491/1008(~112) | PC |
| Robert Ludlum's The Bourne Conspiracy | | 511/039 | |
| Transformers: War for Cybertron | | 511/144,145 | PC, PS3, Xenon |
| Unreal Tournament 3 | 3809 | 512/000 | |
| Mirrors Edge | 3716 | 536/043 | |
| Alpha Protocol | 3857 | 539/091 | |
Expand All @@ -159,6 +163,8 @@ This is a table of games that are confirmed to be compatible with the current st
| Blacklight: Tango Down | 6165 | 673/002 | |
| Dungeons & Dragons: Daggerdale | 6165 | 674/000 | |
| Dungeon Defenders | 6262 | 678/002 | |
| Mass Effect 3 (Windows) | 6383 | 684/194 | PC (platform must be set to `Console`) |
| Mass Effect: Legendary Edition (Windows) | 6383 | 684/171 | PC (platform must be set to `Console`) |
| Alice Madness Returns | 6760 | 690/000 | |
| The Ball | 6699 | 706/000 | |
| Bioshock Infinite | 6829 | 727/075 | |
Expand Down Expand Up @@ -191,6 +197,8 @@ This is a table of games that are confirmed to be compatible with the current st
| DmC: Devil May Cry | 8916 | 845/004 | |
| XCOM: Enemy Unknown | 8916 | 845/059 | |
| Gears of War: Judgement | 10566 | 846/000 | |
| Transformers: Fall of Cybertron | 846(~587)/181 | |
| Deadpool | 846(~587)/181 | |
| InMomentum | 8980 | 848/000 | |
| [Unmechanical](http://unmechanical.net/) | 9249 | 852/000 | |
| Deadlight | 9375 | 854/000 | |
Expand Down
73 changes: 52 additions & 21 deletions src/Branch/PackageObjectLegacyVersion.cs
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
namespace UELib.Branch
using System.Runtime.CompilerServices;

namespace UELib.Branch
{
public enum PackageObjectLegacyVersion
{
Undefined = 0,

/// <summary>
/// FIXME: Version 61 is the lowest package version I know that supports StateFlags.
/// FIXME: Version 61 is the lowest package version I know that supports StateFlags.
/// </summary>
AddedStateFlagsToUState = 61,

/// <summary>
/// This should mark the first approximated version with dynamic arrays that are accessible using UnrealScript.
///
/// FIXME: Version, generally not accessible in Unreal Engine 1 except for some, so we'll map the tokens for v62.
/// This should mark the first approximated version with dynamic arrays that are accessible using UnrealScript.
/// FIXME: Version, generally not accessible in Unreal Engine 1 except for some, so we'll map the tokens for v62.
/// </summary>
DynamicArrayTokensAdded = 62,

/// <summary>
/// Mixed changes.
/// Mixed changes.
/// </summary>
Release62 = 62,
ReturnExpressionAddedToReturnToken = 62,
SphereExtendsPlane = 62,
LazyArraySkipCountChangedToSkipOffset = 62,

/// <summary>
/// Mixed changes.
/// Mixed changes.
/// </summary>
Release64 = 64,

CharRemapAddedToUFont = 69,

/// <summary>
/// FIXME: Unknown version.
/// FIXME: Unknown version.
/// </summary>
CastStringSizeTokenDeprecated = 70,

Expand All @@ -44,7 +45,7 @@ public enum PackageObjectLegacyVersion
DynamicArrayInsertTokenAdded = 95,

/// <summary>
/// FIXME: Version, set 95 (Deus Ex: IW)
/// FIXME: Version, set 95 (Deus Ex: IW)
/// </summary>
PrimitiveCastTokenAdded = 95,

Expand All @@ -67,9 +68,8 @@ public enum PackageObjectLegacyVersion
CompactIndexDeprecated = 178,

/// <summary>
/// Present in all released UE3 games (starting with RoboBlitz).
///
/// FIXME: Unknown version.
/// Present in all released UE3 games (starting with RoboBlitz).
/// FIXME: Unknown version.
/// </summary>
IsLocalAddedToDelegateFunctionToken = 181,

Expand Down Expand Up @@ -109,7 +109,7 @@ public enum PackageObjectLegacyVersion
AddedFuncMapToUState = 220,

/// <summary>
/// And ComponentMap
/// And ComponentMap
/// </summary>
ArchetypeAddedToExports = 220,

Expand Down Expand Up @@ -144,7 +144,7 @@ public enum PackageObjectLegacyVersion
InterfaceClassesDeprecated = 288,

/// <summary>
/// Some properties like SizeX, SizeY, Format have been displaced to ScriptProperties.
/// Some properties like SizeX, SizeY, Format have been displaced to ScriptProperties.
/// </summary>
DisplacedUTextureProperties = 297,

Expand All @@ -159,29 +159,60 @@ public enum PackageObjectLegacyVersion

NetObjectCountAdded = 322,

CompressionAdded = 334,

NumberAddedToName = 343,

// FIXME: Version 374-491; Delegate source type changed from Name to Object
ChangedDelegateSourceFromNameToObject = 376,

[Discardable] GameGOW = 374,

/// <summary>
/// Not attested in (GoW v374, oldest attest (v421)
/// FIXME: Version
/// </summary>
SkipSizeAddedToArrayFindTokenIntrinsics = GameGOW + 1,

/// <summary>
/// Not attested in GoW (v374), oldest attest (v421)
/// FIXME: Unknown version
/// </summary>
StructReferenceAddedToStructMember = GameGOW + 1,

// 417 according to the GoW client
LightingChannelsAddedToPoly = 417,

// FIXME: Version, not attested in (RoboBlitz v369, but attested in GoW v490).
SkipSizeAddedToArrayFindTokenIntrinsics = 400,

AddedArrayEnumToUProperty = 401,

// FIXME: Version, not attested in (GoW v490)
SkipSizeAddedToArrayTokenIntrinsics = 491,
/// <summary>
/// Oldest attest MOHA (v421), but not MKKE (v472, non standard)
/// FIXME: Unknown version
/// </summary>
IsCopyAddedToStructMember = GameGOW + 1,

[Discardable] GameFFOW = 433,

/// <summary>
/// Oldest attest FFOW (v433), but not MKKE (v472, non standard)
/// FIXME: Unknown version
/// </summary>
IsModificationAddedToStructMember = GameFFOW,

[Discardable] GameGOWPC = 490,

/// <summary>
/// FIXME: Version, not attested in (GoW v490)
/// </summary>
SkipSizeAddedToArrayTokenIntrinsics = GameGOWPC + 1,

VerticalOffsetAddedToUFont = 506,
CleanupFonts = 511,

ComponentMapDeprecated = 543,

/// <summary>
/// Added with <see cref="ClassGuidDeprecated"/>
/// Added with <see cref="ClassGuidDeprecated" />
/// </summary>
ClassPlatformFlagsDeprecated = 547,

Expand Down Expand Up @@ -221,6 +252,6 @@ public enum PackageObjectLegacyVersion
AddedNativeClassNameToUClass = 813,

AddedATITCToUTexture2D = 857,
AddedETCToUTexture2D = 864,
AddedETCToUTexture2D = 864
}
}
25 changes: 25 additions & 0 deletions src/Branch/UE2/ShadowStrike/EngineBranch.ShadowStrike.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using UELib.Core;
using UELib.Core.Tokens;

namespace UELib.Branch.UE2.ShadowStrike
{
public class EngineBranchShadowStrike : DefaultEngineBranch
{
public EngineBranchShadowStrike(BuildGeneration generation) : base(BuildGeneration.UE2)
{
}

protected override TokenMap BuildTokenMap(UnrealPackage linker)
{
var tokenMap = base.BuildTokenMap(linker);

if (linker.Build == UnrealPackage.GameBuild.BuildName.SC_DA_Online)
{
// TODO: All tokens
tokenMap[0x28] = typeof(UStruct.UByteCodeDecompiler.NativeParameterToken);
}

return tokenMap;
}
}
}
15 changes: 15 additions & 0 deletions src/Branch/UE3/SFX/Classes/UBioMask4Property.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using UELib.Core;

namespace UELib.Branch.UE3.SFX.Classes
{
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.SFX)]
public class UBioMask4Property : UProperty
{
/// <inheritdoc/>
public override string GetFriendlyType()
{
return "mask4";
}
}
}
15 changes: 15 additions & 0 deletions src/Branch/UE3/SFX/Classes/UStringRefProperty.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using UELib.Core;

namespace UELib.Branch.UE3.SFX.Classes
{
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.SFX)]
public class UStringRefProperty : UProperty
{
/// <inheritdoc/>
public override string GetFriendlyType()
{
return "strref";
}
}
}
Loading

0 comments on commit 94770b6

Please sign in to comment.