Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Updates
ACE.DatLoader.FileTypes.SurfaceTextureto preserve resource metadata identified through analysis of the original Asheron's Call client serialization format.The existing parser reads the resource identifier and texture references but does not expose the
DataCategoryandTextureTypefields present in the serialized record.This change makes those fields available to DAT consumers while retaining the existing texture-reference parsing behavior.
Problem
The original client identifies
ImgTexasSURFACETEXTURE(DB type0x0B).Analysis of the original serialization implementation established the following layout:
UInt32)UInt32)Byte)List<UInt32>)Without exposing this metadata, applications consuming
SurfaceTextureresources cannot inspect the full decoded resource header.Changes
DataCategoryproperty usingUInt32to preserve the original serialized value.TextureTypeproperty using the existingTextureTypeenumeration.SurfaceTexture.Unpack()to populate both properties.The implementation follows the established field layout already represented by
RenderTexture.Validation
Added
SurfaceTextureTests.cswith four regression scenarios:SurfaceTextureand the independently implementedRenderTextureparser interpret the same binary record consistently.Each test verifies that the parser consumes exactly the expected number of bytes.
Tests construct binary records in memory and do not require installed DAT archives or initialization of the
DatManagersingleton.All examined retail
SurfaceTextureresources containedDataCategory = 0. The synthetic tests additionally verify nonzero values to protect the parser against potential variations.Impact
This is a focused DAT metadata preservation change.
It does not modify resource identifiers, texture references, rendering behavior, game-server functionality, or the underlying DAT format.
The additional metadata may benefit downstream consumers such as ACViewer, DAT inspection utilities, and future content-editing applications requiring access to original resource properties.
Scope
Limited to:
ACE.DatLoader/FileTypes/SurfaceTexture.csACE.DatLoader.Tests/SurfaceTextureTests.csNo gameplay or rendering changes are intended.