WFoundation/WF.Compiler: Compiler for Wherigo cartridges (github.com)
driquet/gwcd (github.com)
Eine GWC-Datei besteht aus fünf Abschnitten
- Signatur
- Information zu den vorhandenen Dateien
- Header mit allgemeinen Information zur Cartridge
- Startkoordinate und Beschreibung des Startes
- Erstelldatum
- Art der Cartridge
- Name und ID des Spielers
- Name der Cartridge
- Beschreibung der Cartridge
- Version
- Autor und Firma
- Completion-Code
- LUA-Bytecode
- Dateien der Bilder, Töne, Texte
Der Byte-weise Aufbau ist wie in der folgenden Tabelle dargestellt. Hierbei gilt:
- Zahlen werden im Format “Little endian” abgespeichert
- Zeichenketten enden mit 0x00.
- Double-Zahlen werden im Format “double-precision floating point” abgespeichert
Hinweis: Earwigo hat im Header weitere Datenfelder eingebracht!
Adresse | Länge | Inhalt | Bemerkung |
@0000 | Beginn Signatur | ||
2 Byte | Version | 0x02 gefolgt von 0x0a oder 0x0b | |
4 Byte | CART | ||
1 Byte | 0x00 | ||
@0007 | Anzahl der Objekte | ||
2 Byte | |||
@0009 | ID und Adresse pro Objekt | jeweils 6 Byte pro Objekt | |
2 Byte | Objekt-ID | ||
4 Byte | Adresse des Objektes | ||
@xxxx | Beginn des Header | @0009 + Anzahl Objekte * 6 Byte | |
4 Byte | Länge des Headers | ||
8 Byte | Latitude | ||
8 Byte | Longitude | ||
8 Byte | Altitude | ||
4 Byte | Datum der Erstellung | Sekunden seit dem 10.02.2004 01:00 | |
2 Byte | Objekt-ID des Splashscreen | -1 wenn kein Splashscreen | |
2 Byte | Objekt-ID des Icons | -1 wenn kein Icon | |
? Byte | Typ der Cartridge | Tour guide, Puzzle, etc. | |
? Byte | Name des Spieles | ||
4 Byte | Spieler-ID | ID aus der Groundspeak-Datenbank | |
? Byte | Name der Cartridge | ||
? Byte | GUID der Cartridge | ||
? Byte | Beschreibung der Cartridge | ||
? Byte | Beschreibung des Startpunktes | ||
? Byte | Version | ||
? Byte | Autor | ||
? Byte | Firma | ||
? Byte | Empfohlenes Gerät | Garmin Colorad, Windows PPC, etc. | |
4 Byte | Länge des Completion Codes | ||
? Byte | Completion Code | ||
? Byte | Zusätzliche Datenfelder von Earwigo; bspw. – Land – Region – Durchgespielt – Datum letztes Spiel – Datum Publish – Datum Update – Builder Version | ||
@yyyy | Beginn der Dateien | @0009 + Anzahl Objekte * 6 Byte + Länge Header | |
LUA-Bytecode | Objekt-ID = 0 | ||
4 Byte | Größe des LUA-Bytecode | ||
? Byte | LUA-Bytecode | ||
@zzzz | Mediendateien | Objekt-ID = 1, 2, 3, … | |
1 Byte | gültiges Objekt | wenn 0, dann ist Objekt gelöscht | |
4 Byte | Objekt-Typ | 1 = BMP 2 = PNG 3 = JPG 4 = GIF 17 = WAV 18 = MP3 19 = FDL 20 = SND 21 = OGG 33 = SWF 49 = TXT | |
4 Byte | Größe des Objektes | ||
? Byte | Objektinhalt |