TEX File Format Description
Die Namen der Blöcke sind von mir frei erfunden. Ich habe diese so benannt, dass es Sinn ergibt. Bis jetzt bin ich mit dieser Strategie sehr gut gefahren und habe brauchbare Ergebnisse erziehlt. Ich denke die nachfolgende Beschreibung für das TEX-Format dürfte ausreichend sein um das Dateiformat zu verstehen.
BLOCK-Description
PALETTE (768)
pred 1 red color
pgreen 1 green color
pblue 1 blue color
reserved 1 unused (=0)
FILEHEADER (22)
texturecount 2 number of textures stored
unknown 2 65535
unknown 2 1
string <16> 16 'CMerlinTexture'
TEXTUREHEADER (6 + x)
string <8> x name of texture
reserved 2 0
isdecal 2 (1 if a decal, 0 if not)
imagecount 2 number of images used
Die Anzahl der Mipmaps wird wie folgt berechnet. Die kleinste Mipmap-Textur darf pro Seite nicht weniger als 4 Pixel aufweisen. So hat eine Textur von 512x128 Pixel die folgenden Mipmaps: 256x64, 128x32, 64x16, 32x8, 16x4. Imagecount ist in diesem Fall 6.
IMAGEEHEADER (10)
width 2 width of image
mwidth 2 width of image - 1
height 2 height of image
mheight 2 height of image - 1
unknown 2 2^n of smaller texture side
Wenn ein Bild mit der Größe 512x128 verwendet wird, so steht hier 7, denn 2^7 ergibt 128. Ich schätze es handelt sich hier um einen Wert der den Raycaster von Hover! steuert.
PIXELDATA (4 + x)
pixelsused 4 number of pixels used for image
pixeldata x pixel data
TRANSPARENTDATA
fields 4 number of fields to draw
n = width of image
repeated n times {
fieldsrow 2 number of fields in this column = m
repeated m times {
fieldstart 2 start drawing here
fieldend 2 end drawing here
}
}
undefined 2 0
NEXTBLOCK (2)
unknown 1 1
unknown 1 128
ENDBLOCK (2)
unknown 1 0
unknown 1 0
Infos zu PIXELDATA und TRANSPARENTDATA
Der erste Integerwert beschreibt die Anzahl der Pixel, die für das aktuelle Bild verwendet werden. Eine Textur mit der Auflösung von 256 auf 256 Pixel ohne Transparenz hat genau 65536 Pixel. Jedes transparente Pixel wird nicht mitberechnet. Sind von der Textur (z.B. 256x256, also 65536 Pixel) nun 5000 Pixel transparent, so werden auch nur 60536 Pixel geschrieben. Das besondere an Hover! ist, dass die Texturen nicht zeilenweise, sondern spaltenweise abgearbeitet werden. Das folgende Bild demonstriert, wie eine Textur samt Transparenzinformationen gespeichert wird.