Hallo
Wegen des Nordic DLCs musste ich mal wieder in der EXE Datei herum wühlen da man die FileFilter nicht ändern kann.
TF Savegames sind "heute" zwei mal mit LZ4 komprimiert.
http://code.google.com/p/lz4/ (Ist mittlerweile auf Github, ich nutze noch eine alte Version, lz4.exe sollte die Daten verarbeiten können)
Um ein Savegame zu laden müssen diese auch wieder doppelt komprimiert werden!
Die Header Daten+Config Dict scheinen keine Checksumme zu haben, das restlichen Daten wohl aber!
Header 4 Bytes: tf**, danach Savegame Version.
Strings werden als Dword Länge + Char*länge ohne terminierende Null gespeichert = <tfstring>
Beispiel: 0x04 0x00 0x00 0x00 Test
Header Daten
- ?
- Mod Strings <dword> <tfstring>
- Mod Liste <dword Einträge>
- <dword ?> <tfstring>
Config Dict: <dword Einträge>
- Eintrag: <tfstring key> <tfstring value>
- fileFilters: werden an LUA setActiveFileFilter weitergereicht beim Laden
Modell Liste:
- Einträge der Modelle, die Array Position eines Eintrags darf sich nicht ändern, neue Einträge werden hinzugefügt.
- Es wird kein Alt-Eintrag gelöscht, dies würde das Savegame unbrauchbar machen! TF referenziert sehr viel mit einen einfachen Array Index
- <dword refCount?> <tfstring>
Eine Grobe (und sehr alte Übersicht der Daten der Release Version)
http://www.bytetransfer.de/projects/tf/TFSavegameParts.txt