v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Editing User:Andux/Format research/WORLD.DAT

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.


The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 81: Line 81:
 
| int32
 
| int32
 
| Unk17
 
| Unk17
|
 
|-
 
| int32
 
| Unk18
 
|
 
|-
 
| int32
 
| Unk19
 
|
 
|-
 
| int32
 
| Unk20
 
|
 
|-
 
| int32
 
| Unk21
 
|
 
|-
 
| int32
 
| Unk22
 
|
 
|-
 
| int32
 
| Unk23
 
 
|  
 
|  
 
|-
 
|-
Line 143: Line 119:
 
|}
 
|}
  
Immediately after the world name come the generated raws and string table.
+
Immediately after the world name come the beast defs and string table.
  
====Generated raws====
+
====Beast defs====
Generated raws are stored in a List of string-lists; each string-list is a List of String structures which contain the raw tags. There may be multiple sections of generated raws, depending on version; in the order they appear in the file, these are:
+
The beast defs are composed of a List of string-lists; each string-list is a List of String structures which contain the raw tags defining a forgotten beast, demon, titan, or night creature.
 
 
{| {{prettytable}}
 
|-
 
! §
 
! [[User:Andux/Format_research#Save_files|save_version]]
 
! Contents
 
|-
 
! 1.
 
| > 1362
 
| MATERIAL raws
 
 
 
|-
 
! 2.
 
| >= 1400
 
| ITEM raws
 
 
 
|-
 
! 3.
 
| >= 1287
 
| CREATURE raws
 
 
 
|-
 
! 4.
 
| > 1362
 
| INTERACTION raws
 
 
 
|}
 
  
 
====String tables====
 
====String tables====
 
The string tables enumerate all the raw section names used by the save.
 
The string tables enumerate all the raw section names used by the save.
  
Each section is a List of String structures containing the name of a raw object; there are a total of 19 or 20 sections, depending on version:
+
Each section is a List of String structures containing the name of a raw object; there are a total of 19 sections:
  
 
# INORGANIC materials
 
# INORGANIC materials
Line 199: Line 148:
 
# BODY_DETAIL_PLAN entries
 
# BODY_DETAIL_PLAN entries
 
# CREATURE_VARIATION types
 
# CREATURE_VARIATION types
# INTERACTION types (if [[User:Andux/Format_research#Save_files|save_version]] > 1372)
 
  
 
===World data===
 
===World data===
Line 213: Line 161:
 
# int32 (or List?)
 
# int32 (or List?)
 
# int32 (or List?)
 
# int32 (or List?)
 
====New in 0.34.xx====
 
These are only present if the save version is 1372 or greater.
 
 
# List of int32s
 
# List of int32s -- book/slab ids?
 
# int32 (or List?)
 
# int32 (or List?)
 
# int32 (or List?)
 
 
=====Book defs=====
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
 
|-
 
| bytes
 
|
 
| Generally 89? bytes for slabs, 129-133 bytes for books?
 
 
|-
 
| string
 
| title
 
| Name of the book/slab/letter.
 
 
|-
 
| int32
 
|
 
| Only present in slabs?
 
|-
 
| int16
 
|
 
| Only present in slabs?
 
 
|}
 
  
 
====Entity defs====
 
====Entity defs====
Line 727: Line 637:
  
 
So... yeah.
 
So... yeah.
 
=====Entity POSITION defs=====
 
To be documented.
 
 
 
====Region data====
 
After the last entity def comes the region data, which is divided into blocks.
 
 
=====REGION SAVE block=====
 
This structure appears unchanged from [[User:Rick/Save_research#Region_Information_Block|its 40d version]].
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| string
 
| magic
 
| Always "*START REGION SAVE*"
 
|-
 
| byte
 
|
 
| 1
 
|-
 
| int16
 
|
 
| 0
 
|-
 
| int32
 
|
 
| 1
 
|-
 
| int32
 
|
 
| 0
 
|-
 
| int32
 
|
 
| 0
 
|-
 
| byte
 
| has_name
 
| If this is 1, a name struct immediately follows.
 
 
|}
 
 
=====REGION DIM SAVE block=====
 
This structure immediately follows the REGION SAVE block, and defines the dimensions of the world map.
 
It also appears to be unchanged from [[User:Rick/Save_research#Region_Dimensions_Block|its 40d version]].
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| string
 
| magic
 
| Always "*START REGION DIM SAVE*"
 
|-
 
| int16
 
| region_width
 
|
 
|-
 
| int16
 
| region_height
 
|
 
|-
 
| int32
 
|
 
| ?
 
|-
 
| int16
 
|
 
| ?
 
|-
 
| int32
 
|
 
| ?
 
|-
 
| int16
 
|
 
| ?
 
|-
 
 
|}
 
 
=====REGION MAP SAVE block=====
 
This structure immediately follows the REGION DIM SAVE block.
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| string
 
| magic
 
| Always "*START REGION MAP SAVE*"
 
|-
 
| byte
 
| has_block_info
 
| If this is 1, an array of block_info structs follows
 
|-
 
 
|}
 
 
======Block info array======
 
The number of elements in the array is always equal to (region_width * region_height).
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| int32
 
|
 
| Always 3? Might be the length value for a byte-list.
 
|-
 
| byte
 
|
 
| ?
 
|-
 
| byte
 
|
 
| ?
 
|-
 
| byte
 
|
 
| ?
 
|-
 
 
| int16
 
| elevation
 
|
 
|-
 
| int16
 
| rainfall
 
| Appears to be a percentage.
 
|-
 
| int16
 
| vegetation
 
|
 
|-
 
| int16
 
| temperature
 
| This is in worldgen temperature units, not in [[Temperature#Temperature_scale|Urists]]. Values may be negative.
 
|-
 
| int16
 
| evil
 
|
 
|-
 
| int16
 
| drainage
 
| Appears to be a percentage.
 
|-
 
| int16
 
| volcanism
 
| Appears to be a percentage.
 
|-
 
| int16
 
| savagery
 
| Appears to be a percentage.
 
|-
 
| int16
 
|
 
| ??
 
|-
 
 
| int32
 
|
 
| ??
 
|-
 
| int32
 
|
 
| ??
 
|-
 
| int16
 
|
 
| ??
 
|-
 
| int16
 
|
 
| ??
 
|-
 
 
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
| int16
 
|
 
| Always -30000?
 
|-
 
 
| int32
 
|
 
| ??
 
|-
 
| int32
 
|
 
| ??
 
|-
 
| int16
 
| GeologyID
 
| ??
 
|-
 
 
|}
 
Field names based on info from [http://www.bay12forums.com/smf/index.php?topic=86417.msg3461193#msg3461193 Mimos].
 
 
======Minimap array======
 
The following struct is repeated 8 times, but the last 7 have their minimap_data filled with zeroes.
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| byte
 
| has_minimap
 
| If this is 1, minimap data follows
 
|-
 
| [???]
 
| minimap_data
 
| Size is always (((region_width DIV 16) + 1) * (((region_height DIV 16) + 1) * 4) bytes
 
|-
 
 
|}
 
 
======Unknown data======
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| int32
 
|
 
| ????
 
|-
 
| int32
 
|
 
| Always 1?
 
|-
 
|}
 
 
A [[User:Andux/Format_research#List|List]] struct immediately follows; each entry has the following form:
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| int32
 
| index
 
| Starts at 0, increases with each subsequent record.
 
|-
 
| int32
 
| b
 
| Always 1?
 
|-
 
| byte
 
| c
 
| Always 0?
 
|-
 
| int32
 
| d
 
| Always -1?
 
|-
 
| int32
 
| e
 
| Always -1?
 
|-
 
| int32
 
| f
 
| ????
 
|-
 
| int32
 
| g
 
| Always -1?
 
|-
 
| int32
 
| h
 
| Always -1?
 
|-
 
| int32
 
| i
 
| ????
 
|-
 
 
| int32
 
| j
 
| Seems to be -1 unless (f = -1)
 
|-
 
 
| int32
 
| k
 
| 0
 
|-
 
| int32
 
| l
 
| Seems to be 0 unless (j = -1)
 
|-
 
 
| int32
 
| m
 
| 0
 
|-
 
| int16
 
| n
 
| ??
 
|-
 
| int32
 
| o
 
| ????
 
|-
 
| int16
 
| p
 
| ??
 
|-
 
| int32
 
| q
 
| ????
 
|-
 
 
|}
 
 
 
=====REGION GEOLOGY SAVE block=====
 
This structure immediately follows the REGION MAP SAVE block.
 
 
{| {{prettytable}}
 
|-
 
! Type
 
! Name
 
! Description
 
|-
 
| string
 
| magic
 
| Always "*START REGION GEOLOGY SAVE*"
 
|-
 
 
|}
 
 
To be documented.
 
  
  
 
[[Category:Hacking]]
 
[[Category:Hacking]]

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)

Template used on this page: