Difference between revisions of "Sims 3:0x02019972"

From SimsWiki
Jump to: navigation, search
m (Reformatted)
m (Format)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:PackedFileTypes]]
+
{{TS3AdvancedModdingHeader}}
<br/>[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:RCOL]]
+
{{TS3Resource
<hr/>
+
|name=MTST
==Description==
+
|typeid= 0x02019972
 +
|expansion=The Sims 3
 +
}}
 +
<br clear="all">
 +
 
 +
==Overview==
 
This is a [[Sims 3:RCOL]] chunk.
 
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:
+
The purpose of the MTST (Material Set) 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 [[FNV|FNV32]] hashed and matched with the hash name to locate and swap out the object's material.
  
 
==Format==
 
==Format==
 
  DWORD 'MTST'
 
  DWORD 'MTST'
 
  DWORD Version
 
  DWORD Version
  DWORD // unknown
+
  DWORD [[FNV|FNV32]] of MATD Name
  DWORD Initial MATD index | 0x10000000
+
  DWORD Initial [[Sims 3:0x01D0E75D|MATD]] index
 
  DWORD Count
 
  DWORD Count
  --count repeats of
+
  --''Count'' repeats of
  DWORD MATD index | 0x10000000
+
  DWORD MATD index
  DWORD FNV32 of MATD Name
+
  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.
 
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 MATD index       // == ''Initial MATD index''
  DWORD 0x2EA8FB98 // FNV32 hash of "Default"
+
  DWORD 0x2EA8FB98       // FNV32 of "default"
<hr/>
+
DWORD 0xEEAB4327      // FNV32 of "dirty"
[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:PackedFileTypes]]
+
DWORD 0x2E5DF9BB      // FNV32 of "verydirty"
<br/>[[Tutorials:TS3 Advanced Coding Tutorials]] -> [[Sims 3:RCOL]]
+
DWORD 0xC3867C32      // FNV32 of "burnt"
 +
DWORD 0x257FB026      // FNV32 of "clogged" 
 +
Where the MTST is a [[Sims_3:0x01661233|MODL]] block, ''index'' is ''or''-d with 0x10000000 and refers to the MODL resource RCOL block number.
 +
Where it is a MTST resource, ''index'' is ''or''-d with 0x30000000 (not sure what it indexes into, if anything).
 +
 
 +
{{TS3AdvancedModdingHeader}}

Latest revision as of 22:33, 31 July 2011

Modding Reference by Category

Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference 

MTST
TypeID:0x02019972
Game Version:The Sims 3



[edit] Overview

This is a Sims 3:RCOL chunk.

The purpose of the MTST (Material Set) 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.

[edit] Format

DWORD 'MTST'
DWORD Version
DWORD FNV32 of MATD Name
DWORD Initial MATD index
DWORD Count
--Count repeats of
	DWORD MATD index
	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
DWORD 0x2EA8FB98       // FNV32 of "default"
DWORD 0xEEAB4327       // FNV32 of "dirty"
DWORD 0x2E5DF9BB       // FNV32 of "verydirty"
DWORD 0xC3867C32       // FNV32 of "burnt"
DWORD 0x257FB026       // FNV32 of "clogged"  

Where the MTST is a MODL block, index is or-d with 0x10000000 and refers to the MODL resource RCOL block number. Where it is a MTST resource, index is or-d with 0x30000000 (not sure what it indexes into, if anything).

Modding Reference by Category

Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference 

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox