Difference between revisions of "2A51171B"
From SimsWiki
(+ more infos on instance 0x00 array data format) |
(→Instance ID 0x01) |
||
Line 70: | Line 70: | ||
;Data storage format: | ;Data storage format: | ||
:Float (in singles) | :Float (in singles) | ||
+ | |||
+ | [[Image:Hex001-lotfile.png]] | ||
+ | [[Image:Hex001-lot.png]] | ||
* Functions: | * Functions: | ||
Line 77: | Line 80: | ||
** 3. Negative value can exist in singles and later values can be smaller than the previous values for every layer/story/level as V!ND!CARE's <4-click wall tutorial suggests. | ** 3. Negative value can exist in singles and later values can be smaller than the previous values for every layer/story/level as V!ND!CARE's <4-click wall tutorial suggests. | ||
** 4. if there's a swim pool, the underground layer of grid points will be placed earlier than the ground lot origin. | ** 4. if there's a swim pool, the underground layer of grid points will be placed earlier than the ground lot origin. | ||
− | |||
===Instance ID 0x03=== | ===Instance ID 0x03=== |
Revision as of 12:52, 19 April 2008
2A51171B | |
---|---|
Short name: | 3DARY |
Long name: | 3D array |
Contents |
Format
- ZEROs
- Unknown [offset ranges: 0-63 / 0x00-0x3F]
- DWORD
- Block ID [offset ranges: 64-67 / 0x40-0x43] (0x2a51171b)
- DWORD
- Block Version [offset ranges: 68-71 / 0x44-0x47]
- 7BITSTR
- Block name count [offset ranges: 72 / 0x48] (character count 8)
- Block name [offset ranges: 73-80 / 0x49-0x50] (c3DArray)
_______________________________________________________________
- *** the following parts depend on the instance number.
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (instance number dependent)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (instance number dependent)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (instance number dependent)
- variable
- Array[X,Y,Z] (see below)
- Array format
- Array[X,Y,Z] is a 3-dimensional array *of Objects* with height X, width Y, and depth Z. The type of data contained within the Object varies by the Instance ID of the file.
_______________________________________________________________
Instance ID 0x00
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
- Data storage format
- Note: W = West; N = North; E = East; S = South; "?" = Unknown where Known values of "?" = 0
- 8 Bytes
- Format = W? N? E? S? , where W, N, E, S = any of the floor tile map reference number found in String Map file instance 0x0E
- Based on the pattern, this is apparently the array for floor tile pattern and the value may be the floor tile map reference number (found in instance 0x0E of String Map (SMAP; CAC4FC40) files); 0x0000 = untiled;
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
- eg1 = empty3x2-LO@FR [ 120(0x0001)-120(0x0000)-120(0x0002)-120(0x0003)-120(0x0004)-120(0x0005)-120(0x0003)-120(0x0006)-120(0x0000)-120(0x0001)-2400(0x0000) ]
- eg2 = empty3x2-LO@BR [ 30{80(0x0000)-4(0x0001)-4(0x0000)-4(0x0006)-4(0x0003)-4(0x0005)-4(0x0004)-4(0x0003)-4(0x0002)-4(0x0000)-4(0x0001)-} ]
- eg3 = empty3x2-LO@BL [ 2400(0x0000)-120(0x0001)-120(0x0000)-120(0x0006)-120(0x0003)-120(0x0005)-120(0x0004)-120(0x0003)-120(0x0002)-120(0x0000)-120(0x0001) ]
- eg4 = empty3x2-LO@FL [ 30{4(0x0001)-4(0x0000)-4(0x0002)-4(0x0003)-4(0x0004)-4(0x0005)-4(0x0003)-4(0x0006)-4(0x0000)-4(0x0001)-80(0x0000))-} ]
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
Instance ID 0x01
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = [n1 x 10] + 1)
- (number of grid point along the Width)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = [n2 x 10] + 1)
- (number of grid point along the Height)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
- Data storage format
- Float (in singles)
- Functions:
- 1. To store arrays of the height values of grid points in singles. And, the layer/story/level of grid point is presumed probably based on values of W, H and layer/story/level probably partly dependent on the same 3D array instance file.
- 2. Every standard level height is 16-click-high/16-step-high, and it has a value of 3 in singles. In other words, each click (in terms of elevation tools)/step (in terms of modular stairs) is 0.1875 in singles.
- 3. Negative value can exist in singles and later values can be smaller than the previous values for every layer/story/level as V!ND!CARE's <4-click wall tutorial suggests.
- 4. if there's a swim pool, the underground layer of grid points will be placed earlier than the ground lot origin.
Instance ID 0x03
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
- Data storage format
- BYTE
- Unknown
- Guesses: This may be a road pattern array or tiled grid array?
- (Lot origin is the 'corner point' the shadow points at, and it is the origin a lot rotates at.)
- eg1 = 30 repeats of 20(0x00)-10(0x01) for a lot (Width=30 & Height=30; lot origin @ right & back corner; an empty 3x2 lot)
- eg2 = 30 repeats of 10(0x01)-20(0x00) for a lot (Width=30 & Height=30; lot origin @ left & front corner; an empty 3x2 lot)
- eg3 = 600(0x00)-300(0x01) for a lot (Width=30 & Height=30; lot origin @ left & back corner; an empty 3x2 lot)
- eg4 = 300(0x01)-600(0x00) for a lot (Width=30 & Height=30; lot origin @ right & front corner; an empty 3x2 lot)
- eg5 = 300(0x01)-900(0x00) for a lot (Width=40 & Height=30; lot origin @ right & front corner; an empty 3x3 lot)
- eg6 = 400(0x01)-1200(0x00) for a lot (Width=40 & Height=40; lot origin @ right & front corner; an empty 4x3 lot)
- (Lot origin is the 'corner point' the shadow points at, and it is the origin a lot rotates at.)
Instance ID 0x09, 0x0A, or 0x0B
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
- Data storage format
- Unknown
- repeat count = 2^3 x W x H
- eg1 = 7200(0x00) for empty unbuilt lots of Width=30 & Height=30
- eg2 = 9600(0x00) for empty unbuilt lots of Width=40 & Height=30
- eg3 = 12800(0x00) for empty unbuilt lots of Width=40 & Height=40
- eg4 = 14400(0x00) for empty built lots of Width=30 & Height=30 with the only ground wall deleted
- repeat count = 2^3 x W x H
Instance ID 0x0C
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
;DWORD :Count n ;''for each entry'' ;DWORD :unknown
- Data storage format
- Unknown
- Known "values"
- 0x00000001
- 0x00000002
- 0x00000003
- 0x00000004
- 0x00000005
- 0x00000006
- 0x00000007
- 0x00000008
- 0x0000008c (140)
- Array format
- length = 3636 offsets
Instance ID 0x14
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (0x00000000)
- Data storage format
- 16 bytes
- Unknown
- Array format
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
- eg1 = empty3x2-LO@FR [(nil/null)]
- eg2 = empty3x2-LO@BR [(nil/null)]
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
Instance ID 0x15
- DWORD
- Count X [offset ranges: 81-84 / 0x51-0x54] (Width = n1 x 10)
- DWORD
- Count Y [offset ranges: 85-88 / 0x55-0x58] (Height = n2 x 10)
- DWORD
- Count Z [offset ranges: 89-92 / 0x59-0x5C] (number of array layers/levels/stories)
- Data storage format
- 4 bytes
- unknown (Unlikely Singles)
- Array format
- 4(Width x Height)
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
- eg1 = empty3x2-LO@FR [3600(0x01)]
- eg2 = empty3x2-LO@BR [3600(0x01)]
- empty3x2= Width=30 & Height=30; LO = Lot Origin; @ = at; F = Front; B = Back; R = Right; L = Left
See Also
This article is imported from the old MTS2 wiki. It's original page, with comments, can be found at http://old_wiki.modthesims2.com/2A51171B