2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-06-06 08:42:35 +00:00

feat: gfxworld now uses surface flags for surfaces

This commit is contained in:
LJW-Dev
2026-03-22 18:45:05 +08:00
committed by Jan Laupetin
parent 816fc2f7cb
commit f47792ebe4
2 changed files with 31 additions and 75 deletions
@@ -61,11 +61,6 @@ namespace BSP
BSPSurface& bspSurface = bsp->gfxWorld.surfaces.at(surfIdx);
GfxSurface* gfxSurface = &gfxWorld->dpvs.surfaces[surfIdx];
gfxSurface->primaryLightIndex = BSPEditableConstants::DEFAULT_SURFACE_LIGHT;
gfxSurface->lightmapIndex = BSPEditableConstants::DEFAULT_SURFACE_LIGHTMAP;
gfxSurface->reflectionProbeIndex = BSPEditableConstants::DEFAULT_SURFACE_REFLECTION_PROBE;
gfxSurface->flags = BSPEditableConstants::DEFAULT_SURFACE_FLAGS;
gfxSurface->tris.triCount = bspSurface.triCount;
gfxSurface->tris.baseIndex = bspSurface.indexOfFirstIndex;
gfxSurface->tris.vertexCount = bspSurface.vertexCount;
@@ -109,6 +104,20 @@ namespace BSP
gfxSurface->tris.maxs.y = gfxSurface->bounds[1].y;
gfxSurface->tris.maxs.z = gfxSurface->bounds[1].z;
gfxSurface->flags = 0;
if ((bspMaterial.contentFlags & BSPFlags::surfaceTypeToFlagMap[BSPFlags::SURF_TYPE_SKY].contentFlags) != 0)
gfxSurface->flags |= GFX_SURFACE_IS_SKY;
if ((bspMaterial.contentFlags & BSPFlags::surfaceTypeToFlagMap[BSPFlags::SURF_TYPE_NODRAW].contentFlags) != 0)
gfxSurface->flags |= GFX_SURFACE_NO_DRAW;
if ((bspMaterial.surfaceFlags & BSPFlags::surfaceTypeToFlagMap[BSPFlags::SURF_TYPE_CASTSUNSHADOW].surfaceFlags) != 0)
gfxSurface->flags |= GFX_SURFACE_CASTS_SUN_SHADOW;
if ((bspMaterial.surfaceFlags & BSPFlags::surfaceTypeToFlagMap[BSPFlags::SURF_TYPE_NOCASTSHADOW].surfaceFlags) == 0)
gfxSurface->flags |= GFX_SURFACE_CASTS_SHADOW;
gfxSurface->primaryLightIndex = BSPEditableConstants::DEFAULT_SURFACE_LIGHT;
gfxSurface->lightmapIndex = BSPEditableConstants::DEFAULT_SURFACE_LIGHTMAP;
gfxSurface->reflectionProbeIndex = BSPEditableConstants::DEFAULT_SURFACE_REFLECTION_PROBE;
// unknown value
gfxSurface->tris.himipRadiusInvSq = 0.0f;
}