Skip to main content

Module savegame

Module savegame 

Source
Expand description

The game-state stream of a save: the game loop’s serializer over every manager and every object. See docs/SAVE-GAME-STATE.md.

Objects (Object::Internal) are written where they are first referenced (InternalBasePtr::Serialize): a present byte, the object’s factory index, its tag and its type id; the first time an index appears its serializer follows inline (InternalFactory::PersistObject).

Each type’s serializer is described by a schema (crate::savegame_schema) of fields, blocks, lists and version conditions, read (and written) by one interpreter. Every block must be consumed exactly.

Original: FUN_14009af60, Runtime 0x1800c29f0, Runtime 0x1800c2780.

Structs§

Fields
Named values in serialization order.
GameMap
The gameplay map (version 4).
GameMapCell
One cell of the gameplay map, as the game state stores it (48 bytes in memory).
GameState
The whole game state.
Object
A decoded object.

Enums§

Value
A decoded value.

Functions§

empty_animations
Graphics::AnimationManager::Serialize with no animated instances: a count of 0.
empty_audio_scene
The sound scene’s block with nothing playing, as a new save writes it: 4,096 empty sound slots (a position, a value, the effect, a time, a value, the volume 1.0 and no points), then the five bytes that every sample save has.
managers
The blocks after the gameplay map (jobs, tools, calendar, event_log, environment, minimap) at serializer version version.

Type Aliases§

ObjId
An object’s factory index (Internal).