Sims 4:0x034AEECB

From SimsWiki
Revision as of 21:29, 2 October 2014 by Granthes (Talk | contribs)

Jump to: navigation, search

Format from Maxis Documentation

This information was provided on Sept 5, 2014 by SimGuruModSquad on [official forums] as part of the Modding Documentation.

The layout will be using the Maxis provided data type descriptors, i.e.: UINT32 vs DWORD


 UINT32   version        // currently 0x1a is only supported version
 UINT32   dataSize       // Size of following data (before ResourceKeyArray)
 ----BEGIN dataSize----
 UINT32   numPresets     // Presets are not used in TS4
 
 7STRING  name          //
 FLOAT    DisplayIndex  //  Sort order in catalog
 UINT16   SecondaryDisplayIndex 
 UINT32   PrototypeID
 UINT32   AuralMateralHash
 struct   ParmFlags partFlags // See below
 UINT64   ExcludePartFlags
 UINT32   ExcludeModifierRegionFlags
 struct   TagMultimap Tags    // see below
 UINT32   SimoleaonPrice
 UINT32   PartTitleKey      // Index into STBLs for the title
 UINT32   PartDescKey       // Index into STBLs for the description
 BYTE     UniqueTextureSpace
 INT32    BodyType
 INT32    --UNUSED1--      // Value is 0x08
 UINT32   AgeGender
 BYTE     --UNUSED2--      // Value MUST be 0x01
 BYTE     --UNUSED3--      // Value MUST be 0x00
 struct   SwatchColorSet SwatchColors
 BYTE     BuffResKey          //  These keys are all indexes into the keyTable below
 BYTE     VariantThumbKey
 BYTE     NakedKey
 BYTE     ParentKey
 INT32    SortLayer
 BYTE     numLODs
 struct   LOD mlods[numLODs]
 BYTE     numSlotKeys
 BYTE     mSlotKey[numSlotKeys]    // used?
 BYTE     DiffuseKey               // This is the primary color texture type 0x3453cf95
 BYTE     ShadowKey                // And the other texture 0x3453cf95
 BYTE     CompositionMethod
 BYTE     RegionMapKey             // type 0xac16fbec
 BYTE     Overrides
 BYTE     NormalMapKey             // have not seen a normal map used
 BYTE     SpecularMapKey           // texture file type 0xba856c78
 -----END dataSize-----  
 struct   ResourceKeyArray keyTable  // List of TGI keys referenced

struct ParmFlags is a bitfield of size BYTE

 [7-6]    not_used
 [5]      ShowInCasDemo
 [4]      ShowInSimInfoPanel
 [3]      ShowInUI
 [2]      AllowForRandom
 [1]      DefaultThumnailPart
 [0]      DefaultForBodyType      

struct TagMultimap is a counted array of struct Tag entries

 UINT32   tagCount
 struct   Tag[]

struct Tag is a simple struct

 UINT16   Category
 UINT16   tagValue

struct SwatchColorSet is a counted array of UINT32 (color values)

 BYTE     usedColorCount
 UINT32   rawData[usedColorCount]     //  Data is RGBA value

struct LOD is a complex struct

 BYTE     level
 UINT32   --unused--
 BYTE     numAssets
 struct   LODAsset assets[numAssets]
 BYTE     numLODKeys
 BYTE     lodKey[numLODKeys]         //  These keys are all indexes into the keyTable

struct LODAsset is a simple struct

 INT32    sorting
 INT32    specLevel
 INT32    casShadow

Format

This is what was discovered early in the process -- now obsolete

 DWORD version	// 0x1a is current
 DWORD offset	// to resource reference table from end of header (ie offset + 8)
 DWORD presetCount? // For all files I read so far, it's 0. It might still be a count
 7STRING		// UnicodeBE
 FLOAT sortPriority	// CAS sorts on this value, from largest to smallest


 // This block hasn't been test for multiple files.
 Byte[22] Unknown
 DWORD count
 --repeat(count)
    DWORD
 // Unknown bytes
 // Resource reference table in I64GT format (not TGI64)
 BYTE count
 --repeat(count)
       QWORD instance
       DWORD group
       DWORD type
Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox