Last active
August 29, 2015 14:12
-
-
Save Wunkolo/fda865bd9c166cdc17cd to your computer and use it in GitHub Desktop.
010 editor templates for various Fox engine file formats
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
typedef enum <uint> | |
{ | |
FTEX_Param = 1, // Found for srm and mtm files | |
// Each channel acts as material parameter | |
// R = Ambient Occlusion | |
// G = Specular Albedo | |
// B = Roughness | |
FTEX_Color = 3, // Found for bsm files(albedo texture) | |
FTEX_Cubemap = 7, // Found for cbm(cubemap) and | |
FTEX_NormalMap = 9 // Found for nrm files | |
} FTEX_USAGE; | |
typedef enum <ushort> | |
{ | |
DXT1 = 2, | |
UnknownA1 = 3, | |
DXT5 = 4, | |
UnknownA3 = 5, | |
} FTEX_COMP; | |
struct FTEX_Header | |
{ | |
unsigned int Magic <format=hex,bgcolor=cPurple>; // 1480938566(0x58455446) | |
unsigned int Unknown <format=hex>; // 1073867653(0x4001EB85) Float? Version? | |
FTEX_COMP DXType <bgcolor=cLtRed>; // 2 = DXT1, 4 = DXT5 | |
unsigned short Width <bgcolor=cAqua>, | |
Height <bgcolor=cGreen>; | |
unsigned short One; // ? | |
unsigned char MipMaps <bgcolor=cYellow>; | |
unsigned char Unkn; | |
unsigned short UnknShrt <bgcolor=cYellow>; | |
unsigned char Flag1 <bgcolor=cLtRed>; | |
unsigned char Flag2 <bgcolor=cRed>; | |
unsigned short UnknShrt3 <bgcolor=cAqua>; | |
unsigned int Flag2 <bgcolor=cLtRed>; | |
unsigned FTEX_USAGE Usage <bgcolor=cLtBlue>; // Bitfield | |
unsigned int Flag3 <bgcolor=cRed>; | |
unsigned int Pad2[3]; | |
unsigned int Hash128[4] <bgcolor=cPurple>; | |
}; | |
struct FTEX_Entry | |
{ | |
unsigned int ChunkMapOffset <bgcolor=cLtRed>; // Offset within FTEXS file | |
unsigned int Flags; // ? | |
unsigned int DataSize <bgcolor=cAqua>; // Not including block headers | |
unsigned char MipLevel <bgcolor=cLtRed>; | |
unsigned char StreamNumber <bgcolor=cLtPurple>; | |
unsigned short StreamChunkCount <bgcolor=cLtGreen>; | |
}; | |
FTEX_Header Header; | |
if ((char)Header.Usage == FTEX_Cubemap) // Cubemap | |
{ | |
SetForeColor(cRed); | |
FTEX_Entry Front[Header.MipMaps]; | |
FTEX_Entry Back[Header.MipMaps]; | |
SetForeColor(cBlue); | |
FTEX_Entry Left[Header.MipMaps]; | |
FTEX_Entry Right[Header.MipMaps]; | |
SetForeColor(cGreen); | |
FTEX_Entry Up[Header.MipMaps]; | |
FTEX_Entry Down[Header.MipMaps]; | |
} | |
else | |
{ | |
FTEX_Entry MipLevels[Header.MipMaps]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment