DAT
Savegames stored in DAT files consist of various sections. The main parts of it are the GameState and the Inventory. Also the GlobalVars are saved here.
| Size |
Type |
Section |
Description |
|
ZZVersion |
Header |
This version has to be compatible with the internal savegame ZZVersion structure |
|
zstring |
Header |
The players name |
| 4B |
uint |
Location |
The structure size of the location block (always 8) |
| 4B |
uint |
Location |
Scene ID |
| 4B |
uint |
Location |
Entrance Trigger ID |
| 4B |
uint |
GameState |
Count of scenes for which are GameState Modifier saved |
|
GameStateScene[] |
GameState |
The scene data |
| 4B |
uint |
Inventory |
The count of cards in the players inventory |
|
InventoryCard[] |
Inventory |
The inventory card data |
| 4B |
uint |
PixieCount |
The current amount of pixies hold on by the player |
| 4B |
uint |
PixieCount |
The total amount of pixies catched by the player |
| 4B |
uint |
GlobalVars |
The count of global variables (always 49) |
|
GlobalVar[] |
GlobalVars |
The global variables |
| 4B |
uint |
SwitchGameMinTries |
The minimal count of tries for the switch game |
GameStateScene
| Size |
Type |
Description |
|
zstring |
The scene name |
| 4B |
uint |
The GameState modifier count for this scene |
|
GameStateMod[] |
The GameState modifiers |
GameStateMod
GameStateModType
GSModDisableAttackTrigger
| Size |
Type |
Description |
| 4B |
uint |
triggerId |
GSModRemoveItem
| Size |
Type |
Description |
| 4B |
uint |
modelId |
GSModChangeNpcState
| Size |
Type |
Description |
| 4B |
uint |
triggerId |
| 4B |
uint |
databaseId - The fb0x05 UID of the NPC to change into |
GSModDisableTrigger
| Size |
Type |
Description |
| 4B |
uint |
triggerId |
GSModRemoveSimpleModel
| Size |
Type |
Description |
| 4B |
uint |
modelId |
GSModSetTrigger
| Size |
Type |
Description |
| 4B |
uint |
triggerId |
| 4B |
uint |
ii1 - The trigger parameters |
| 4B |
uint |
ii2 - If one of these are -1 |
| 4B |
uint |
ii3 - this said parameter is not set |
| 4B |
uint |
ii4 |
GSModSetNpcModifier
| Size |
Type |
Description |
| 4B |
uint |
triggerId |
| 4B |
uint |
value - Actually just sets the triggers ii2 param |
InventoryCard
| Size |
Type |
Description |
| 4B |
CardId |
The CardId, thus also encodes the type |
| 4B |
uint |
atIdx - The index at which Zanzarah puts this card in the internal inventory list |
| 4B |
uint |
dbUID - The database ID (so either fb0x01, fb0x03 or fb0x04) of the card |
| 4B |
uint |
amount |
| 1B |
bool |
isUsed |
|
|
InventoryCard-specific data |
InventoryItem
Items do not have any extra information
InventorySlot
| Size |
Type |
Description |
| 4B |
uint |
usageCount - How many times this spell was used |
| 4B |
uint |
curMana |
InventoryFairy
| Size |
Type |
Description |
| 4B |
uint |
changeCountLevel - How many times this fairy leveled up |
| 4B |
uint |
level |
| 4B |
uint |
unknown |
| 4B |
uint |
unknown |
| 4B |
uint |
changeCountXP - How many times this fairy got XP |
| 4B |
uint |
curXP |
| 12B |
SpellReq[4] |
The current spell requirements |
| 16B |
uint[4] |
The spell indices (in the inventory of the player) |
| 4B |
uint |
The slot index in the players deck |
| 4B |
uint |
statusEffect |
| 20B |
uint[5] |
unknown |
| 4B |
uint |
Current health points |
|
zstring |
name |
SpellReq
| Size |
Type |
Description |
| 1B |
enum |
class1 - (see Classes) |
| 1B |
enum |
class2 - (see Classes) |
| 1B |
enum |
class3 - (see Classes) |