2A51171B

From SimsWiki
Revision as of 07:10, 19 April 2008 by Niol (Talk | contribs)

Jump to: navigation, search
2A51171B
Short name: 3DARY
Long name: 3D array

Contents

Format

ZEROs [offset ranges
0-63 / 0x00-0x3F]
Unknown
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
Unknown;
  • Based on the pattern, this may be the array for floor tile pattern and the value may be the floor map reference number that may be found in String Map (SMAP; CAC4FC40); 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))-} ]


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)


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


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)]


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)]

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

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox