Show whole topic Apr 18, 2008 12:01 pm
alzi Offline
Developer, Moderator
Registered since: Aug 12, 2007
Location: Ditzingen (nahe Stuttgart)


Subject: Re: Karteneditor
Wir verwenden jetzt ja das original MAX-Format, also die *.WRL-Dateien.

Aufgabeut sind sie so:

erstmal der Header:
DateiTyp: 5 Bytes lang , im original ists "WRL" + NUll-Terminierung und einem freien Byte, bei den Russen das selbe mit WRX. Nur diese beiden Einträge werden von uns unterstützt.
Breite: 2 Bytes
Höhe: 2 Bytes

Dann kommen Pixeldaten für eine "Minimap" also das kleine Bild das im auswahlmenu angezeigt wird.
Für jeden Pixel einen Byte der auf den Index einer Palette verweist (Diese kommt später), also Höhe*Breite Pixel.

Dannach folgen die eigentlichen Kartendaten. Für jede "Kachel" ein Integer von 2 Bytes größe der auf den Index einer bestimmt Art Terrain verweist. Diese kommen auch später. Dieser Abschnitt hat folglich eine Länge von Höhe*Breite*2 Bytes.

Jetzt kommt ein Integer von 2 Bytes länge, der beschreibt wie viele verschiedene Arten von Terrains in dieser Karte verwendet werden, also zum Beipsiel alle Wassergrafiken, die Küsten, Gelände, usw.

Jetzt folgen die Pixeldaten der einzelnen Terrains. Jede Terraingrafik ist 64x64 Pixel groß. Wie bei der Minimap gibts es für jeden Pixel einen Byte der auf den Index der gleich folgenden Palette verweist. Wieviele Grafiken verwendet werden, wurde davor ja ausgelesen. Dieser Abschnitt hat also eine Länge von AnzahlDerTerrains*64*64 Bytes. Diese Terrains sind quasi der Reihe nach indexiert, also hierrauf wurde bei den Kartendaten verwiesen.

Hier kommt dann die Palette. Sie beinhaltet 256 Farben und für jede die Farbwerte Rot, Grün, Blau in jeweils einem Byte und in dieser Reihfolge. Sie ist also 256*3 Bytes lang. Die Indezierung beginnt ganz vorne mit Null ( wär hätts gedacht Wink ), es gibt also 255 indizes.

Zum Schluss folgt noch eine Typspezifizierung für die einzelnen Terrains. Für jedes Terrain ein Byte, dieser Abschnitt ist also die ausgelesene Anzahl an Terrains lang. Jeder dieser Bytes kann entweder den Wert 0, 1, 2 oder 3 annehmen. 0 Bedeutet, dass das entsprechende Terrain ein normal befahrbares Land-Terrain is. 1 Steht für Wasser, 2 Für Küsten und 3 für blockierte Gelände wie zum Beispiel Berge.

Das wars dann endlich. Wie man sieht is das Format nicht unbedingt einfach aufgebaut, aber beinhaltet dafür alles was die Karte brauch. Ich hoffe ich hab dir das ganze irgendwie verständlich machen können ^^
Albert Ziegenhagel