ZoneCode: Add commands for GfxWorld and enable it

This commit is contained in:
Jan 2019-12-24 01:59:58 +01:00
parent 80bc10752a
commit 551deeec34
3 changed files with 36 additions and 15 deletions

View File

@ -661,6 +661,7 @@ set count smodelIndexes smodelIndexCount;
// GfxPortal // GfxPortal
use GfxPortal; use GfxPortal;
set condition writable never;
set reusable cell; set reusable cell;
set count vertices vertexCount; set count vertices vertexCount;
@ -722,6 +723,19 @@ set count tris numTris;
use SSkinAnim; use SSkinAnim;
set count data 4 * width * frames; set count data 4 * width * frames;
// GfxShadowGeometry
use GfxShadowGeometry;
set count sortedSurfIndex surfaceCount;
set count smodelIndex smodelCount;
// GfxLightRegion
use GfxLightRegion;
set count hulls hullCount;
// GfxLightRegionHull
use GfxLightRegionHull;
set count axis axisCount;
// GfxWorldDpvsStatic // GfxWorldDpvsStatic
use GfxWorldDpvsStatic; use GfxWorldDpvsStatic;
set block smodelVisData XFILE_BLOCK_RUNTIME_VIRTUAL; set block smodelVisData XFILE_BLOCK_RUNTIME_VIRTUAL;
@ -757,18 +771,23 @@ reorder:
smodelDrawInsts smodelDrawInsts
surfaceMaterials; surfaceMaterials;
// GfxStaticModelLmapVertexInfo
use GfxStaticModelLmapVertexInfo;
set count lmapVertexColors numLmapVertexColors;
set condition lmapVertexColorsVB never;
// GfxWorldDpvsDynamic // GfxWorldDpvsDynamic
use GfxWorldDpvsDynamic; use GfxWorldDpvsDynamic;
set block dynEntCellBits XFILE_BLOCK_RUNTIME_VIRTUAL; set block dynEntCellBits XFILE_BLOCK_RUNTIME_VIRTUAL;
set count dynEntCellBits[0] dynEntClientWordCount[0] * GfxWorld::dpvsPlanes::cellCount; set count dynEntCellBits[0] dynEntClientWordCount[0] * GfxWorld::dpvsPlanes::cellCount;
set count dynEntCellBits[1] dynEntClientWordCount[1] * GfxWorld::dpvsPlanes::cellCount; set count dynEntCellBits[1] dynEntClientWordCount[1] * GfxWorld::dpvsPlanes::cellCount;
set block dynEntVisData XFILE_BLOCK_RUNTIME_VIRTUAL; set block dynEntVisData XFILE_BLOCK_RUNTIME_VIRTUAL;
set count dynEntVisData[0][0] dynEntClientWordCount[0]; set count dynEntVisData[0][0] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][0] dynEntClientWordCount[1]; set count dynEntVisData[1][0] 32 * dynEntClientWordCount[1];
set count dynEntVisData[0][1] dynEntClientWordCount[0]; set count dynEntVisData[0][1] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][1] dynEntClientWordCount[1]; set count dynEntVisData[1][1] 32 * dynEntClientWordCount[1];
set count dynEntVisData[0][2] dynEntClientWordCount[0]; set count dynEntVisData[0][2] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][2] dynEntClientWordCount[1]; set count dynEntVisData[1][2] 32 * dynEntClientWordCount[1];
// GfxWaterBuffer // GfxWaterBuffer
use GfxWaterBuffer; use GfxWaterBuffer;

View File

@ -1122,6 +1122,7 @@ namespace T6
}; };
typedef __declspec(align(4)) char aligned_byte_pointer; typedef __declspec(align(4)) char aligned_byte_pointer;
typedef __declspec(align(4)) GfxCompressedLightGridCoeffs GfxCompressedLightGridCoeffs_align4;
struct GfxLightGrid struct GfxLightGrid
{ {
@ -1139,7 +1140,7 @@ namespace T6
unsigned int colorCount; unsigned int colorCount;
GfxCompressedLightGridColors* colors; GfxCompressedLightGridColors* colors;
unsigned int coeffCount; unsigned int coeffCount;
GfxCompressedLightGridCoeffs* coeffs; GfxCompressedLightGridCoeffs_align4* coeffs;
unsigned int skyGridVolumeCount; unsigned int skyGridVolumeCount;
GfxSkyGridVolume* skyGridVolumes; GfxSkyGridVolume* skyGridVolumes;
}; };
@ -1171,6 +1172,7 @@ namespace T6
vec3_t sunFxPosition; vec3_t sunFxPosition;
}; };
typedef __declspec(align(4)) GfxDrawSurf GfxDrawSurf_align4;
struct GfxWorldDpvsStatic struct GfxWorldDpvsStatic
@ -1195,7 +1197,7 @@ namespace T6
GfxStaticModelInst* smodelInsts; GfxStaticModelInst* smodelInsts;
GfxSurface* surfaces; GfxSurface* surfaces;
GfxStaticModelDrawInst* smodelDrawInsts; GfxStaticModelDrawInst* smodelDrawInsts;
GfxDrawSurf* surfaceMaterials; GfxDrawSurf_align4* surfaceMaterials;
raw_byte128* surfaceCastsSunShadow; raw_byte128* surfaceCastsSunShadow;
raw_byte128* surfaceCastsShadow; raw_byte128* surfaceCastsShadow;
raw_byte128* smodelCastsShadow; raw_byte128* smodelCastsShadow;
@ -3463,7 +3465,7 @@ namespace T6
};*/ };*/
struct GfxLightGridEntry struct __declspec(align(4)) GfxLightGridEntry
{ {
unsigned __int16 colorsIndex; unsigned __int16 colorsIndex;
char primaryLightIndex; char primaryLightIndex;
@ -3471,7 +3473,7 @@ namespace T6
}; };
struct GfxCompressedLightGridColors struct __declspec(align(4)) GfxCompressedLightGridColors
{ {
char rgb[56][3]; char rgb[56][3];
}; };
@ -3547,7 +3549,7 @@ namespace T6
}; };
struct GfxSceneDynBrush struct __declspec(align(4)) GfxSceneDynBrush
{ {
BModelDrawInfo info; BModelDrawInfo info;
unsigned __int16 dynEntId; unsigned __int16 dynEntId;
@ -5545,7 +5547,7 @@ namespace T6
{ {
char_align128* pixelShaderAlign; char_align128* pixelShaderAlign;
char_align4* pixelShader; char_align4* pixelShader;
char_align128* vertexShader; char_align4* vertexShader;
int pixelShaderSize; int pixelShaderSize;
int vertexShaderSize; int vertexShaderSize;
}; };
@ -5585,7 +5587,7 @@ namespace T6
half w; half w;
}; };
unsigned __int64 v; // unsigned __int64 v;
}; };
@ -5601,7 +5603,7 @@ namespace T6
}; };
struct SSkinVert struct __declspec(align(4)) SSkinVert
{ {
half4 pos_bone; half4 pos_bone;
PackedUnitVec normal; PackedUnitVec normal;

View File

@ -128,7 +128,7 @@ void ContentLoaderT6::LoadXAsset(const bool atStreamStart)
LOAD_ASSET(ASSET_TYPE_GAMEWORLD_SP, GameWorldSp, gameWorldSp); LOAD_ASSET(ASSET_TYPE_GAMEWORLD_SP, GameWorldSp, gameWorldSp);
LOAD_ASSET(ASSET_TYPE_GAMEWORLD_MP, GameWorldMp, gameWorldMp); LOAD_ASSET(ASSET_TYPE_GAMEWORLD_MP, GameWorldMp, gameWorldMp);
LOAD_ASSET(ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts); LOAD_ASSET(ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts);
// LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld); LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld);
LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef); LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef);
LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font); LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font);
LOAD_ASSET(ASSET_TYPE_FONTICON, FontIcon, fontIcon); LOAD_ASSET(ASSET_TYPE_FONTICON, FontIcon, fontIcon);