Plumbing Simulator

From SC4D Encyclopaedia
Revision as of 05:06, 6 July 2021 by Seba (talk | contribs) (→‎Structure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page pertains to the format of the Plumbing Simulator Subfile within Savegame files. This file has Type ID 0x298f9b2d. This particular subfile was decoded by smf_16.

The plumbing simulator contains a few lists:

  • A 2-dimensional array containing a byte for every tile in the city (values not studied in detail yet).
  • A list of pointers to all water producing buildings (note: pointers are always stored as two consecutive DWORDS containing address and Type ID).
  • A list of pointers to all pipe segments from the Pipe Occupant Subfile.

Structure

DWORD	Size
DWORD	CRC
DWORD	Memory address
DWORD	Major version (0x0004)
DWORD   Pointer to SimGrid
DWORD	0x49b9e602 (Type ID of SimGridUint8)
DWORD	Pointer to SimGrid
DWORD	0x49b9e602 (Type ID of SimGridUint8)
DWORD	xSize of city (64, 128 or 256)
DWORD	zSize of city (64, 128 or 256)
	BYTE	A byte for every tile in the city. Order is (0, 0), (1, 0), ...
DWORD	Revision. Seems like every time you change something to the plumbing situation
	(such as building a water tower, laying pipes, ...) this value is increased by 1.
DWORD	Unknown (mostly 0x00000000, seen 24 and 42 as well).
DWORD x 2	Unknown (only seen 0x00000000)
DWORD	Number of water related buildings
DWORD	Unknown (only seen 0x00000000)

	# Repeat for amount of buildings
	DWORD	X coordinate of anchor building
	DWORD	Z coordinate of anchor building
	DWORD	Min X coordinate of lot
	DWORD	Min Z coordinate of lot
	DWORD	Max X coordinate of lot
	DWORD	Max Z coordinate of lot
	DWORD	Water produced per month
	DWORD	Actual water produced per month (uses degradation)
	DWORD	Pointer to entry in building subfile
	DWORD	0xa9bd882d (Type ID of building subfile)

DWORD x 9	Unknown (only seen 0x00000000)
BYTE	Unknown (only seen 0x02)
DWORD	Unknown (only seen 0x00000000)
DWORD	City size (64, 128 or 256)
DWORD x 3	Unknown (only seen 0x00000000)
DWORD	X size of city minus 1 (63, 127 or 255)
DWORD	Z size of city minus 1 (63, 127 or 255)
DWORD	Water filter capacity?
DWORD	Unknown (only seen 0x00000000)
DWORD	Amount of pipe segments to follow
DWORD x 2 (Unknown, only  seen 0x00000000)
	
	# Repeat for amount of pipe sections
	DWORD	Pointer to Pipe Occupant record
	DWORD	0x49c05b9f (Type ID of PipeOccupant)

DWORD	Pointer to Department Budget record
DWORD	0xe990bffc (Type Id of Department Budget)
DWORD	Total water produced
DWORD	Unknown (only seen 0x00000000)
DWORD	Actual filter capacity, taking into account degradation?
DWORD x 5	Unknown (only seen 0x00000000)