2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-01-13 20:21:48 +00:00

Initial commit of BSP compilation

This commit is contained in:
LJW-Dev
2025-07-07 23:04:08 +08:00
parent f3c83f702a
commit c045d54739
14 changed files with 3406 additions and 2 deletions

View File

@@ -159,6 +159,51 @@ namespace T6
AUFT_NUM_FIELD_TYPES,
};
struct customMapVertex
{
vec3_t pos;
float binormalSign;
float color[4];
float texCoord[2];
vec3_t normal;
vec3_t tangent;
unsigned int packedLmapCoord;
};
struct worldSurface
{
char flags;
char lightmapIndex;
std::string materialName;
char primaryLightIndex;
char reflectionProbeIndex;
int triCount;
int firstVertexIndex;
int firstIndex_Index;
};
struct customMapGfx
{
int vertexCount;
customMapVertex* vertices;
int indexCount;
uint16_t* indices;
int surfaceCount;
worldSurface* surfaces;
};
struct customMapInfo
{
std::string name;
std::string bspName;
customMapGfx gfxInfo;
};
using AssetPhysPreset = Asset<ASSET_TYPE_PHYSPRESET, PhysPreset>;
using AssetPhysConstraints = Asset<ASSET_TYPE_PHYSCONSTRAINTS, PhysConstraints>;
using AssetDestructibleDef = Asset<ASSET_TYPE_DESTRUCTIBLEDEF, DestructibleDef>;
@@ -208,6 +253,7 @@ namespace T6
using AssetFootstepTable = Asset<ASSET_TYPE_FOOTSTEP_TABLE, FootstepTableDef>;
using AssetFootstepFxTable = Asset<ASSET_TYPE_FOOTSTEPFX_TABLE, FootstepFXTableDef>;
using AssetZBarrier = Asset<ASSET_TYPE_ZBARRIER, ZBarrierDef>;
using AssetCustomMap = Asset<ASSET_TYPE_CUSTOM_MAP, customMapInfo>;
} // namespace T6
DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysPreset, name);

View File

@@ -304,6 +304,8 @@ namespace T6
ASSET_TYPE_REPORT = 0x3E,
ASSET_TYPE_DEPEND = 0x3F,
ASSET_TYPE_FULL_COUNT = 0x40,
ASSET_TYPE_CUSTOM_MAP = 0x41
};
enum XFileBlock
@@ -1244,13 +1246,13 @@ namespace T6
struct GfxWorldVertexData0
{
byte128* data;
byte128* data; // GfxPackedWorldVertex
void /*ID3D11Buffer*/* vb;
};
struct GfxWorldVertexData1
{
byte128* data;
byte128* data; // GfxPackedWorldVertex
void /*ID3D11Buffer*/* vb;
};
@@ -5718,6 +5720,11 @@ namespace T6
unsigned int packed;
};
union PackedLmapCoords
{
unsigned int packed;
};
struct type_align(16) GfxPackedVertex
{
vec3_t xyz;
@@ -5728,6 +5735,17 @@ namespace T6
PackedUnitVec tangent;
};
struct GfxPackedWorldVertex
{
vec3_t xyz;
float binormalSign;
GfxColor color;
PackedTexCoords texCoord;
PackedUnitVec normal;
PackedUnitVec tangent;
PackedLmapCoords lmapCoord;
};
struct XRigidVertList
{
uint16_t boneOffset;