Skip to content

Commit

Permalink
Implement support for UTexture2D, 3D, etc; and implement a dozen of c…
Browse files Browse the repository at this point in the history
…omponent stubs to help with the deserialization of properties.
  • Loading branch information
EliotVU committed Dec 7, 2022
1 parent 41b57fa commit f1b74af
Show file tree
Hide file tree
Showing 21 changed files with 607 additions and 13 deletions.
17 changes: 12 additions & 5 deletions src/Branch/PackageObjectLegacyVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ public enum PackageObjectLegacyVersion
// -- whether if this indicates the addition of such an ObjectFlag or just the conditional test.
ClassDefaultCheckAddedToTemplateName = 267,

DisplacedUTexture2DProperties = 297,

// FIXME: Not attested in the GoW client, must have been before v321
LightMapScaleRemovedFromPoly = 300,

Expand All @@ -109,23 +111,28 @@ public enum PackageObjectLegacyVersion
VerticalOffsetAddedToUFont = 506,
CleanupFonts = 511,

AddedTextureFileCacheGuidToTexture2D = 567,

LightmassAdded = 600,
UProcBuildingReferenceAddedToPoly = 606,

EnumNameAddedToBytePropertyTag = 633,

LightmassShadowIndirectOnlyOptionAdded = 652,
LightmassExplicitEmissiveLightRadiusAdded = 636,

LightmassExplicitEmissiveLightRadiusAdded = 636,
// FIXME: Version
EndTokenAppendedToArrayTokenIntrinsics = 649,

LightmassShadowIndirectOnlyOptionAdded = 652,
PolyRulesetVariationTypeChangedToName = 670,

BoolValueToByteForBoolPropertyTag = 673,

AddedPVRTCToUTexture2D = 674,

ProbeMaskReducedAndIgnoreMaskRemoved = 692,
ForceScriptOrderAddedToUClass = 749,
SuperReferenceMovedToUStruct = 756,

AddedATITCToUTexture2D = 857,
AddedETCToUTexture2D = 864,
}
}
15 changes: 15 additions & 0 deletions src/Eliot.UELib.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,14 @@
<Compile Include="Core\Tokens\ValidateObjectToken.cs" />
<Compile Include="Engine\Classes\UActorComponent.cs" />
<Compile Include="Core\Types\UBulkData.cs" />
<Compile Include="Engine\Classes\UBrushComponent.cs" />
<Compile Include="Engine\Classes\UDecalComponent.cs" />
<Compile Include="Engine\Classes\ULightComponent.cs" />
<Compile Include="Engine\Classes\UMaterial.cs" />
<Compile Include="Engine\Classes\UMaterialInterface.cs" />
<Compile Include="Engine\Classes\UMeshComponent.cs" />
<Compile Include="Engine\Classes\UModelComponent.cs" />
<Compile Include="Engine\Classes\UPrimitive.cs" />
<Compile Include="Engine\Classes\UPrimitiveComponent.cs" />
<Compile Include="Core\Tokens\TokenFactory.cs" />
<Compile Include="Core\Tokens\TokenMap.cs" />
Expand Down Expand Up @@ -226,8 +232,17 @@
<Compile Include="Engine\Classes\UMultiFont.cs" />
<Compile Include="Engine\Classes\UProcBuildingRuleset.cs" />
<Compile Include="Engine\Classes\URenderedMaterial.cs" />
<Compile Include="Engine\Classes\UShadowMapTexture2D.cs" />
<Compile Include="Engine\Classes\USoundGroup.cs" />
<Compile Include="Engine\Classes\USurface.cs" />
<Compile Include="Engine\Classes\UTerrainWeightMapTexture.cs" />
<Compile Include="Engine\Classes\UTexture2D.cs" />
<Compile Include="Engine\Classes\UTexture2DComposite.cs" />
<Compile Include="Engine\Classes\UTexture2DDynamic.cs" />
<Compile Include="Engine\Classes\UTexture3D.cs" />
<Compile Include="Engine\Classes\UTextureCube.cs" />
<Compile Include="Engine\Classes\UTextureFlipBook.cs" />
<Compile Include="Engine\Classes\UTextureMovie.cs" />
<Compile Include="Engine\Types\LightingChannelContainer.cs" />
<Compile Include="Engine\Types\LightmassPrimitiveSettings.cs" />
<Compile Include="ObjectModel\Annotations\OutputAttribute.cs" />
Expand Down
14 changes: 12 additions & 2 deletions src/Engine/Classes/UActorComponent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using UELib.Branch;
using UELib.Core;

namespace UELib.Core
namespace UELib.Engine
{
/// <summary>
/// Implements UActorComponent/Engine.ActorComponent
Expand All @@ -10,4 +11,13 @@ namespace UELib.Core
public class UActorComponent : UComponent
{
}
}

/// <summary>
/// Implements UAudioComponent/Engine.AudioComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UAudioComponent : UActorComponent
{
}
}
15 changes: 15 additions & 0 deletions src/Engine/Classes/UBrushComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using UELib.Branch;

namespace UELib.Engine
{
/// <summary>
/// Implements UBrushComponent/Engine.BrushComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UBrushComponent : UPrimitiveComponent
{
// TODO: CachedPhysBrushData
protected override void Deserialize() => base.Deserialize();
}
}
15 changes: 15 additions & 0 deletions src/Engine/Classes/UDecalComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using UELib.Branch;

namespace UELib.Engine
{
/// <summary>
/// Implements UDecalComponent/Engine.DecalComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UDecalComponent : UPrimitiveComponent
{
// TODO: StaticReceivers
protected override void Deserialize() => base.Deserialize();
}
}
15 changes: 15 additions & 0 deletions src/Engine/Classes/ULightComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using UELib.Branch;

namespace UELib.Engine
{
/// <summary>
/// Implements ULightComponent/Engine.LightComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class ULightComponent : UActorComponent
{
// TODO: InclusionConvexVolumes, ExclusionConvexVolumes
protected override void Deserialize() => base.Deserialize();
}
}
31 changes: 31 additions & 0 deletions src/Engine/Classes/UMeshComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using UELib.Branch;

namespace UELib.Engine
{
/// <summary>
/// Implements UMeshComponent/Engine.MeshComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UMeshComponent : UPrimitiveComponent
{
}

/// <summary>
/// Implements USkeletalMeshComponent/Engine.SkeletalMeshComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class USkeletalMeshComponent : UMeshComponent
{
}

/// <summary>
/// Implements UStaticMeshComponent/Engine.StaticMeshComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UStaticMeshComponent : UModelComponent
{
}
}
4 changes: 2 additions & 2 deletions src/Engine/Classes/UModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace UELib.Core
/// </summary>
[Output("Brush")]
[UnrealRegisterClass]
public class UModel : UObject
public class UModel : UPrimitive
{
[Output]
public UPolys Polys;
Expand All @@ -23,4 +23,4 @@ protected override void Deserialize()
base.Deserialize();
}
}
}
}
29 changes: 29 additions & 0 deletions src/Engine/Classes/UModelComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using UELib.Branch;
using UELib.Core;

namespace UELib.Engine
{
/// <summary>
/// Implements UModelComponent/Engine.ModelComponent
/// </summary>
[UnrealRegisterClass]
[BuildGeneration(BuildGeneration.UE3)]
public class UModelComponent : UPrimitiveComponent
{
public UObject Model;
public int ZoneIndex;

protected override void Deserialize()
{
base.Deserialize();

_Buffer.Read(out Model);
Record(nameof(Model), Model);

_Buffer.Read(out ZoneIndex);
Record(nameof(ZoneIndex), ZoneIndex);

// TODO: Elements (structure not implemented), ComponentIndex, Nodes
}
}
}
23 changes: 23 additions & 0 deletions src/Engine/Classes/UPrimitive.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
namespace UELib.Core
{
/// <summary>
/// Implements UPrimitive/Engine.Primitive
/// </summary>
[UnrealRegisterClass]
public class UPrimitive : UObject
{
public UBox BoundingBox;
public USphere BoundingSphere;

protected override void Deserialize()
{
base.Deserialize();

_Buffer.ReadStruct(out BoundingBox);
Record(nameof(BoundingBox), BoundingBox);

_Buffer.ReadStruct(out BoundingSphere);
Record(nameof(BoundingSphere), BoundingSphere);
}
}
}
Loading

0 comments on commit f1b74af

Please sign in to comment.