Difference between revisions of "Sims 3:0x02019972"

From SimsWiki
Jump to: navigation, search
(Added explanation of MTST block's main purpose)
m (Reformatted)
Line 1: Line 1:
[[Sims 3:Main Page]] -> [[Sims 3:PackedFileTypes]]
+
[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:PackedFileTypes]]
<br/>[[Sims 3:Main Page]] -> [[Sims 3:RCOL]]
+
<br/>[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:RCOL]]
<hr/>
+
==MTST==
+
This is a [[Sims_3:RCOL]] chunk.
+
    DWORD // 'MTST'
+
    DWORD // version?
+
    DWORD // unknown
+
    DWORD // (initial MATD index) | 0x10000000;
+
    DWORD // count
+
repeat '''count''' times:
+
    DWORD // (MATD index) | 0x10000000
+
    DWORD // MATD's hash name
+
 
<hr/>
 
<hr/>
 +
==Description==
 +
This is a [[Sims 3:RCOL]] chunk.
  
Postulate based MTST blocks encountered so far ('''Needs Confirmation!'''):
 
 
All MTST blocks have a '''count''' >= 1 and the following block in the repetition section:
 
 
    DWORD // (MATD index = initial MATD index) | 0x10000000
 
    DWORD // 0x2EA8FB98 (fnv32 hash of "Default")
 
<br/>
 
<hr/>
 
<br/>
 
 
The purpose of the MTST is to allow multiple material definitions to be swapped by the game through the function:
 
The purpose of the MTST is to allow multiple material definitions to be swapped by the game through the function:
    ScriptCore.World.ObjectSetMaterial(ObjectGuid objId, string materialSetName, float transitionTime, bool bTransitionToOverlay);
+
ScriptCore.World.ObjectSetMaterial(ObjectGuid objId, string materialSetName, float transitionTime, bool bTransitionToOverlay);
 
For most objects, this function is often accessed through the function:
 
For most objects, this function is often accessed through the function:
    Sims3.Gameplay.Abstracts.GameObject.SetMaterial(string materialSetName);
+
Sims3.Gameplay.Abstracts.GameObject.SetMaterial(string materialSetName);
 
The string argument is fnv32 hashed and matched with the hash name to locate and swap out the object's material.
 
The string argument is fnv32 hashed and matched with the hash name to locate and swap out the object's material.
 +
 +
==Format==
 +
DWORD 'MTST'
 +
DWORD Version
 +
DWORD // unknown
 +
DWORD Initial MATD index | 0x10000000
 +
DWORD Count
 +
--count repeats of
 +
DWORD MATD index | 0x10000000
 +
DWORD FNV32 of MATD Name
 +
 +
Based on all MTST blocks so far seen, 'Count' is >= 1 and there is an entry named "Default", i.e.
 +
DWORD MATD index (== initial MATD index) | 0x10000000
 +
DWORD 0x2EA8FB98 // FNV32 hash of "Default"
 
<hr/>
 
<hr/>
[[Sims 3:Main Page]] -> [[Sims 3:PackedFileTypes]]
+
[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:PackedFileTypes]]
<br/>[[Sims 3:Main Page]] -> [[Sims 3:RCOL]]
+
<br/>[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:RCOL]]

Revision as of 14:02, 13 February 2010

Tutorials:TS3 Advanced Coding Tutorials -> Sims 3:PackedFileTypes
Tutorials:TS3 Advanced Coding Tutorials -> Sims 3:RCOL


Description

This is a Sims 3:RCOL chunk.

The purpose of the MTST is to allow multiple material definitions to be swapped by the game through the function:

ScriptCore.World.ObjectSetMaterial(ObjectGuid objId, string materialSetName, float transitionTime, bool bTransitionToOverlay);

For most objects, this function is often accessed through the function:

Sims3.Gameplay.Abstracts.GameObject.SetMaterial(string materialSetName);

The string argument is fnv32 hashed and matched with the hash name to locate and swap out the object's material.

Format

DWORD 'MTST'
DWORD Version
DWORD		// unknown
DWORD Initial MATD index | 0x10000000
DWORD Count
--count repeats of
	DWORD	MATD index | 0x10000000
	DWORD	FNV32 of MATD Name

Based on all MTST blocks so far seen, 'Count' is >= 1 and there is an entry named "Default", i.e.

DWORD MATD index (== initial MATD index) | 0x10000000
DWORD 0x2EA8FB98 // FNV32 hash of "Default"

Tutorials:TS3 Advanced Coding Tutorials -> Sims 3:PackedFileTypes
Tutorials:TS3 Advanced Coding Tutorials -> Sims 3:RCOL

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox