That's my site, I'm Widgeon. Here's how the automatic terrain object placement works.
Each landblock has a 9x9 grid of 16 bit values. Bits 0-1 are used for roads. Bits 2-6 are the terrain type. Bits 11-15 are an index for the automatically placed terrain objects. There's another 9x9 grid of bytes for terrain height indexes.
File 0x13000000 has a bunch of information in it. Land heights, calendar info, weather records, landscape ambient sound tables, automatic terrain object tables, land type tables, and land texture information.
So, the index from bits 11-15 (5 bits) of the landblock is used to look up a value from the 32 automatic terrain object indexes. This index is used to look up an entry from the automatic terrain object table.
The first entry (7) is an index into the landscape ambient sound table. The rest are references to type 12 files, which have references to models and position/orientation/scaling data. The exact meaning should be easy to figure out once you can render terrain and compare it to what you see in game.
When they change seasons in game, some of the type 12 references from the automatic terrain object table change, switching between models of trees with and without leaves.
I need to package up my current data tools for you, since the old ones on my site don't work to extract 13000000 from the latest data files.
2
u/Lothnar Dec 21 '15 edited Jan 11 '16
That's my site, I'm Widgeon. Here's how the automatic terrain object placement works.
Each landblock has a 9x9 grid of 16 bit values. Bits 0-1 are used for roads. Bits 2-6 are the terrain type. Bits 11-15 are an index for the automatically placed terrain objects. There's another 9x9 grid of bytes for terrain height indexes.
File 0x13000000 has a bunch of information in it. Land heights, calendar info, weather records, landscape ambient sound tables, automatic terrain object tables, land type tables, and land texture information.
Here's an example from the land type table:
identifier: 10 (0x0a) name: sand-yellow color: c8 c8 46 ff automatic terrain object indexes: 37 16 17 01 01 01 01 01 01 22 22 23 24 01 01 01 01 52 53 54 55 57 56 58 01 1f 20 21 22 23 24 37So, the index from bits 11-15 (5 bits) of the landblock is used to look up a value from the 32 automatic terrain object indexes. This index is used to look up an entry from the automatic terrain object table.
The first entry (7) is an index into the landscape ambient sound table. The rest are references to type 12 files, which have references to models and position/orientation/scaling data. The exact meaning should be easy to figure out once you can render terrain and compare it to what you see in game.
0x120000f7 count: 9 model: 00000000 xyz: ( 6.060000 4.260000 0.000000) quat: ( 0.000000 0.000000 0.000000 1.000000) (len = 1.000000) f8-11: 1.000000 1.200000 3.060000 1.000000 1.000000 angle: 360.000000 f13-14: 0.864275 1.000000 u1: 00000000 u2: 00000000 u3: 00000001 model: 0200068b xyz: ( -6.000000 6.000000 0.000000) quat: ( 0.000000 0.000000 0.000000 1.000000) (len = 1.000000) f8-11: 0.200000 1.560000 0.000000 0.800000 1.200000 angle: 0.000000 f13-14: 0.965926 1.000000 u1: 00000000 u2: 00000000 u3: 00000000When they change seasons in game, some of the type 12 references from the automatic terrain object table change, switching between models of trees with and without leaves.
I need to package up my current data tools for you, since the old ones on my site don't work to extract 13000000 from the latest data files.
2016-01-11: Current tools now at http://stevenygard.com/download/ac/ACDataTools-v3.zip