unreal.js
Version:
A pak reader for games like VALORANT & Fortnite written in Node.JS
120 lines (119 loc) • 10.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FRenderingObjectVersion = exports.EFRenderingObjectVersion = void 0;
const Guid_1 = require("../objects/core/misc/Guid");
const Game_1 = require("./Game");
var EFRenderingObjectVersion;
(function (EFRenderingObjectVersion) {
// Before any version changes were made
EFRenderingObjectVersion[EFRenderingObjectVersion["BeforeCustomVersionWasAdded"] = 0] = "BeforeCustomVersionWasAdded";
// Added support for 3 band SH in the ILC
EFRenderingObjectVersion[EFRenderingObjectVersion["IndirectLightingCache3BandSupport"] = 1] = "IndirectLightingCache3BandSupport";
// Allows specifying resolution for reflection capture probes
EFRenderingObjectVersion[EFRenderingObjectVersion["CustomReflectionCaptureResolutionSupport"] = 2] = "CustomReflectionCaptureResolutionSupport";
EFRenderingObjectVersion[EFRenderingObjectVersion["RemovedTextureStreamingLevelData"] = 3] = "RemovedTextureStreamingLevelData";
// translucency is now a property which matters for materials with the decal domain
EFRenderingObjectVersion[EFRenderingObjectVersion["IntroducedMeshDecals"] = 4] = "IntroducedMeshDecals";
// Reflection captures are no longer prenormalized
EFRenderingObjectVersion[EFRenderingObjectVersion["ReflectionCapturesStoreAverageBrightness"] = 5] = "ReflectionCapturesStoreAverageBrightness";
EFRenderingObjectVersion[EFRenderingObjectVersion["ChangedPlanarReflectionFadeDefaults"] = 6] = "ChangedPlanarReflectionFadeDefaults";
EFRenderingObjectVersion[EFRenderingObjectVersion["RemovedRenderTargetSize"] = 7] = "RemovedRenderTargetSize";
// Particle Cutout (SubUVAnimation) data is now stored in the ParticleRequired Module
EFRenderingObjectVersion[EFRenderingObjectVersion["MovedParticleCutoutsToRequiredModule"] = 8] = "MovedParticleCutoutsToRequiredModule";
EFRenderingObjectVersion[EFRenderingObjectVersion["MapBuildDataSeparatePackage"] = 9] = "MapBuildDataSeparatePackage";
// StaticMesh and SkeletalMesh texcoord size data.
EFRenderingObjectVersion[EFRenderingObjectVersion["TextureStreamingMeshUVChannelData"] = 10] = "TextureStreamingMeshUVChannelData";
// Added type handling to material normalize and length (sqrt) nodes
EFRenderingObjectVersion[EFRenderingObjectVersion["TypeHandlingForMaterialSqrtNodes"] = 11] = "TypeHandlingForMaterialSqrtNodes";
EFRenderingObjectVersion[EFRenderingObjectVersion["FixedBSPLightmaps"] = 12] = "FixedBSPLightmaps";
EFRenderingObjectVersion[EFRenderingObjectVersion["DistanceFieldSelfShadowBias"] = 13] = "DistanceFieldSelfShadowBias";
EFRenderingObjectVersion[EFRenderingObjectVersion["FixedLegacyMaterialAttributeNodeTypes"] = 14] = "FixedLegacyMaterialAttributeNodeTypes";
EFRenderingObjectVersion[EFRenderingObjectVersion["ShaderResourceCodeSharing"] = 15] = "ShaderResourceCodeSharing";
EFRenderingObjectVersion[EFRenderingObjectVersion["MotionBlurAndTAASupportInSceneCapture2d"] = 16] = "MotionBlurAndTAASupportInSceneCapture2d";
EFRenderingObjectVersion[EFRenderingObjectVersion["AddedTextureRenderTargetFormats"] = 17] = "AddedTextureRenderTargetFormats";
// Triggers a rebuild of the mesh UV density while also adding an update in the postedit
EFRenderingObjectVersion[EFRenderingObjectVersion["FixedMeshUVDensity"] = 18] = "FixedMeshUVDensity";
EFRenderingObjectVersion[EFRenderingObjectVersion["AddedbUseShowOnlyList"] = 19] = "AddedbUseShowOnlyList";
EFRenderingObjectVersion[EFRenderingObjectVersion["VolumetricLightmaps"] = 20] = "VolumetricLightmaps";
EFRenderingObjectVersion[EFRenderingObjectVersion["MaterialAttributeLayerParameters"] = 21] = "MaterialAttributeLayerParameters";
EFRenderingObjectVersion[EFRenderingObjectVersion["StoreReflectionCaptureBrightnessForCooking"] = 22] = "StoreReflectionCaptureBrightnessForCooking";
// FModelVertexBuffer does serialize a regular TArray instead of a TResourceArray
EFRenderingObjectVersion[EFRenderingObjectVersion["ModelVertexBufferSerialization"] = 23] = "ModelVertexBufferSerialization";
EFRenderingObjectVersion[EFRenderingObjectVersion["ReplaceLightAsIfStati"] = 24] = "ReplaceLightAsIfStati";
// Added per FShaderType permutation id.
EFRenderingObjectVersion[EFRenderingObjectVersion["ShaderPermutationId"] = 25] = "ShaderPermutationId";
// Changed normal precision in imported data
EFRenderingObjectVersion[EFRenderingObjectVersion["IncreaseNormalPrecision"] = 26] = "IncreaseNormalPrecision";
EFRenderingObjectVersion[EFRenderingObjectVersion["VirtualTexturedLightmaps"] = 27] = "VirtualTexturedLightmaps";
EFRenderingObjectVersion[EFRenderingObjectVersion["GeometryCacheFastDecoder"] = 28] = "GeometryCacheFastDecoder";
EFRenderingObjectVersion[EFRenderingObjectVersion["LightmapHasShadowmapData"] = 29] = "LightmapHasShadowmapData";
// Removed old gaussian and bokeh DOF methods from deferred shading renderer.
EFRenderingObjectVersion[EFRenderingObjectVersion["DiaphragmDOFOnlyForDeferredShadingRenderer"] = 30] = "DiaphragmDOFOnlyForDeferredShadingRenderer";
// Lightmaps replace ULightMapVirtualTexture (non-UTexture derived class) with ULightMapVirtualTexture2D (derived from UTexture)
EFRenderingObjectVersion[EFRenderingObjectVersion["VirtualTexturedLightmapsV2"] = 31] = "VirtualTexturedLightmapsV2";
EFRenderingObjectVersion[EFRenderingObjectVersion["SkyAtmosphereStaticLightingVersioning"] = 32] = "SkyAtmosphereStaticLightingVersioning";
// UTextureRenderTarget2D now explicitly allows users to create sRGB or non-sRGB type targets
EFRenderingObjectVersion[EFRenderingObjectVersion["ExplicitSRGBSetting"] = 33] = "ExplicitSRGBSetting";
EFRenderingObjectVersion[EFRenderingObjectVersion["VolumetricLightmapStreaming"] = 34] = "VolumetricLightmapStreaming";
//ShaderModel4 support removed from engine
EFRenderingObjectVersion[EFRenderingObjectVersion["RemovedSM4"] = 35] = "RemovedSM4";
// Deterministic ShaderMapID serialization
EFRenderingObjectVersion[EFRenderingObjectVersion["MaterialShaderMapIdSerialization"] = 36] = "MaterialShaderMapIdSerialization";
// Add force opaque flag for static mesh
EFRenderingObjectVersion[EFRenderingObjectVersion["StaticMeshSectionForceOpaqueField"] = 37] = "StaticMeshSectionForceOpaqueField";
// Add force opaque flag for static mesh
EFRenderingObjectVersion[EFRenderingObjectVersion["AutoExposureChanges"] = 38] = "AutoExposureChanges";
// Removed emulated instancing from instanced static meshes
EFRenderingObjectVersion[EFRenderingObjectVersion["RemovedEmulatedInstancing"] = 39] = "RemovedEmulatedInstancing";
// Added per instance custom data (for Instanced Static Meshes)
EFRenderingObjectVersion[EFRenderingObjectVersion["PerInstanceCustomData"] = 40] = "PerInstanceCustomData";
// Added material attributes to shader graph to support anisotropic materials
EFRenderingObjectVersion[EFRenderingObjectVersion["AnisotropicMaterial"] = 41] = "AnisotropicMaterial";
// Add if anything has changed in the exposure, override the bias to avoid the new default propagating
EFRenderingObjectVersion[EFRenderingObjectVersion["AutoExposureForceOverrideBiasFlag"] = 42] = "AutoExposureForceOverrideBiasFlag";
// Override for a special case for objects that were serialized and deserialized between versions AutoExposureChanges and AutoExposureForceOverrideBiasFlag
EFRenderingObjectVersion[EFRenderingObjectVersion["AutoExposureDefaultFix"] = 43] = "AutoExposureDefaultFix";
// Remap Volume Extinction material input to RGB
EFRenderingObjectVersion[EFRenderingObjectVersion["VolumeExtinctionBecomesRGB"] = 44] = "VolumeExtinctionBecomesRGB";
// Add a new virtual texture to support virtual texture light map on mobile
EFRenderingObjectVersion[EFRenderingObjectVersion["VirtualTexturedLightmapsV3"] = 45] = "VirtualTexturedLightmapsV3";
// -----<new versions can be added above this line>-------------------------------------------------
EFRenderingObjectVersion[EFRenderingObjectVersion["LatestVersion"] = 45] = "LatestVersion";
})(EFRenderingObjectVersion = exports.EFRenderingObjectVersion || (exports.EFRenderingObjectVersion = {}));
class FRenderingObjectVersion {
static get(Ar) {
const ver = Ar.customVersion(this.GUID);
if (ver >= 0)
return ver;
const game = Ar.game;
if (game < Game_1.Game.GAME_UE4(12))
return EFRenderingObjectVersion.BeforeCustomVersionWasAdded;
if (game < Game_1.Game.GAME_UE4(13))
return EFRenderingObjectVersion.CustomReflectionCaptureResolutionSupport;
if (game < Game_1.Game.GAME_UE4(14))
return EFRenderingObjectVersion.IntroducedMeshDecals;
if (game < Game_1.Game.GAME_UE4(16))
return EFRenderingObjectVersion.FixedBSPLightmaps; // 4.14 and 4.15
if (game < Game_1.Game.GAME_UE4(17))
return EFRenderingObjectVersion.ShaderResourceCodeSharing;
if (game < Game_1.Game.GAME_UE4(18))
return EFRenderingObjectVersion.AddedbUseShowOnlyList;
if (game < Game_1.Game.GAME_UE4(19))
return EFRenderingObjectVersion.VolumetricLightmaps;
if (game < Game_1.Game.GAME_UE4(20))
return EFRenderingObjectVersion.ShaderPermutationId;
if (game < Game_1.Game.GAME_UE4(21))
return EFRenderingObjectVersion.IncreaseNormalPrecision;
if (game < Game_1.Game.GAME_UE4(23))
return EFRenderingObjectVersion.VirtualTexturedLightmaps;
if (game < Game_1.Game.GAME_UE4(24))
return EFRenderingObjectVersion.GeometryCacheFastDecoder;
if (game < Game_1.Game.GAME_UE4(25))
return EFRenderingObjectVersion.MaterialShaderMapIdSerialization;
if (game < Game_1.Game.GAME_UE4(26))
return EFRenderingObjectVersion.AutoExposureDefaultFix;
return EFRenderingObjectVersion.LatestVersion;
}
}
exports.FRenderingObjectVersion = FRenderingObjectVersion;
FRenderingObjectVersion.GUID = new Guid_1.FGuid(0x12F88B9F, 0x88754AFC, 0xA67CD90C, 0x383ABD29);