mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
Clean up terrain when shutting the Ref down
This commit is contained in:
parent
e0dee12578
commit
716a574abe
7 changed files with 92 additions and 19 deletions
|
@ -630,8 +630,8 @@ static void ParseFace( dsurface_t *ds, drawVert_t *verts, msurface_t *surf, int
|
||||||
numPoints = LittleLong( ds->numVerts );
|
numPoints = LittleLong( ds->numVerts );
|
||||||
if (numPoints > MAX_FACE_POINTS) {
|
if (numPoints > MAX_FACE_POINTS) {
|
||||||
ri.Printf( PRINT_WARNING, "WARNING: MAX_FACE_POINTS exceeded: %i\n", numPoints);
|
ri.Printf( PRINT_WARNING, "WARNING: MAX_FACE_POINTS exceeded: %i\n", numPoints);
|
||||||
numPoints = MAX_FACE_POINTS;
|
numPoints = MAX_FACE_POINTS;
|
||||||
surf->shader = tr.defaultShader;
|
surf->shader = tr.defaultShader;
|
||||||
}
|
}
|
||||||
|
|
||||||
numIndexes = LittleLong( ds->numIndexes );
|
numIndexes = LittleLong( ds->numIndexes );
|
||||||
|
|
|
@ -1754,6 +1754,8 @@ void RE_Shutdown( qboolean destroyWindow ) {
|
||||||
|
|
||||||
R_ShutdownFont();
|
R_ShutdownFont();
|
||||||
|
|
||||||
|
R_ShutdownTerrain();
|
||||||
|
|
||||||
tr.registered = qfalse;
|
tr.registered = qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1770,6 +1772,8 @@ void RE_BeginRegistration(glconfig_t* glconfigOut) {
|
||||||
R_IssuePendingRenderCommands();
|
R_IssuePendingRenderCommands();
|
||||||
|
|
||||||
R_LevelMarksFree();
|
R_LevelMarksFree();
|
||||||
|
R_TerrainFree();
|
||||||
|
|
||||||
ri.Hunk_Clear();
|
ri.Hunk_Clear();
|
||||||
|
|
||||||
*glconfigOut = glConfig;
|
*glconfigOut = glConfig;
|
||||||
|
|
|
@ -2182,6 +2182,8 @@ void R_MarkTerrainPatch(cTerraPatchUnpacked_t* pPatch);
|
||||||
void R_AddTerrainSurfaces();
|
void R_AddTerrainSurfaces();
|
||||||
void R_AddTerrainMarkSurfaces();
|
void R_AddTerrainMarkSurfaces();
|
||||||
void R_InitTerrain();
|
void R_InitTerrain();
|
||||||
|
void R_ShutdownTerrain();
|
||||||
|
void R_TerrainFree();
|
||||||
void R_TerrainPrepareFrame();
|
void R_TerrainPrepareFrame();
|
||||||
qboolean R_TerrainHeightForPoly(cTerraPatchUnpacked_t* pPatch, polyVert_t* pVerts, int nVerts);
|
qboolean R_TerrainHeightForPoly(cTerraPatchUnpacked_t* pPatch, polyVert_t* pVerts, int nVerts);
|
||||||
void R_SwapTerraPatch(cTerraPatch_t* pPatch);
|
void R_SwapTerraPatch(cTerraPatch_t* pPatch);
|
||||||
|
|
|
@ -1490,14 +1490,7 @@ void R_TerrainRestart_f(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_pVert) {
|
R_TerrainFree();
|
||||||
ri.Free(g_pVert);
|
|
||||||
g_pVert = NULL;
|
|
||||||
}
|
|
||||||
if (g_pTris) {
|
|
||||||
ri.Free(g_pTris);
|
|
||||||
g_pTris = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
R_PreTessellateTerrain();
|
R_PreTessellateTerrain();
|
||||||
}
|
}
|
||||||
|
@ -1654,6 +1647,37 @@ void R_InitTerrain()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
R_ShutdownTerrain
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void R_ShutdownTerrain()
|
||||||
|
{
|
||||||
|
ri.Cmd_RemoveCommand("ter_restart");
|
||||||
|
|
||||||
|
R_TerrainFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
R_TerrainFree
|
||||||
|
|
||||||
|
Frees terrain memory
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void R_TerrainFree()
|
||||||
|
{
|
||||||
|
if (g_pVert) {
|
||||||
|
ri.Free(g_pVert);
|
||||||
|
g_pVert = NULL;
|
||||||
|
}
|
||||||
|
if (g_pTris) {
|
||||||
|
ri.Free(g_pTris);
|
||||||
|
g_pTris = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
====================
|
====================
|
||||||
R_SwapTerraPatch
|
R_SwapTerraPatch
|
||||||
|
|
|
@ -1836,6 +1836,12 @@ void RE_Shutdown( qboolean destroyWindow ) {
|
||||||
Com_Memset( &glState, 0, sizeof( glState ) );
|
Com_Memset( &glState, 0, sizeof( glState ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// OPENMOHAA-specific stuff
|
||||||
|
//=========================
|
||||||
|
R_ShutdownTerrain();
|
||||||
|
//=========================
|
||||||
|
|
||||||
tr.registered = qfalse;
|
tr.registered = qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1858,6 +1864,18 @@ void RE_BeginRegistration(glconfig_t* glconfigOut) {
|
||||||
R_ClearFlares();
|
R_ClearFlares();
|
||||||
RE_ClearScene();
|
RE_ClearScene();
|
||||||
|
|
||||||
|
//
|
||||||
|
// OPENMOHAA-specific stuff
|
||||||
|
//=========================
|
||||||
|
R_LevelMarksFree();
|
||||||
|
R_TerrainFree();
|
||||||
|
|
||||||
|
R_InitLensFlare();
|
||||||
|
R_LevelMarksInit();
|
||||||
|
|
||||||
|
ri.UI_LoadResource("*124");
|
||||||
|
//=========================
|
||||||
|
|
||||||
tr.registered = qtrue;
|
tr.registered = qtrue;
|
||||||
}
|
}
|
||||||
//=========================
|
//=========================
|
||||||
|
|
|
@ -3174,6 +3174,8 @@ void R_MarkTerrainPatch(cTerraPatchUnpacked_t* pPatch);
|
||||||
void R_AddTerrainSurfaces();
|
void R_AddTerrainSurfaces();
|
||||||
void R_AddTerrainMarkSurfaces();
|
void R_AddTerrainMarkSurfaces();
|
||||||
void R_InitTerrain();
|
void R_InitTerrain();
|
||||||
|
void R_ShutdownTerrain();
|
||||||
|
void R_TerrainFree();
|
||||||
void R_TerrainPrepareFrame();
|
void R_TerrainPrepareFrame();
|
||||||
qboolean R_TerrainHeightForPoly(cTerraPatchUnpacked_t* pPatch, polyVert_t* pVerts, int nVerts);
|
qboolean R_TerrainHeightForPoly(cTerraPatchUnpacked_t* pPatch, polyVert_t* pVerts, int nVerts);
|
||||||
void R_SwapTerraPatch(cTerraPatch_t* pPatch);
|
void R_SwapTerraPatch(cTerraPatch_t* pPatch);
|
||||||
|
|
|
@ -1489,15 +1489,8 @@ void R_TerrainRestart_f(void)
|
||||||
if (tr.world->numTerraPatches < 0) {
|
if (tr.world->numTerraPatches < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_pVert) {
|
R_TerrainFree();
|
||||||
ri.Free(g_pVert);
|
|
||||||
g_pVert = NULL;
|
|
||||||
}
|
|
||||||
if (g_pTris) {
|
|
||||||
ri.Free(g_pTris);
|
|
||||||
g_pTris = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
R_PreTessellateTerrain();
|
R_PreTessellateTerrain();
|
||||||
}
|
}
|
||||||
|
@ -1654,6 +1647,36 @@ void R_InitTerrain()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
R_ShutdownTerrain
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void R_ShutdownTerrain()
|
||||||
|
{
|
||||||
|
ri.Cmd_RemoveCommand("ter_restart");
|
||||||
|
|
||||||
|
R_TerrainFree();
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
================
|
||||||
|
R_TerrainFree
|
||||||
|
|
||||||
|
Frees terrain memory
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void R_TerrainFree()
|
||||||
|
{
|
||||||
|
if (g_pVert) {
|
||||||
|
ri.Free(g_pVert);
|
||||||
|
g_pVert = NULL;
|
||||||
|
}
|
||||||
|
if (g_pTris) {
|
||||||
|
ri.Free(g_pTris);
|
||||||
|
g_pTris = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
====================
|
====================
|
||||||
R_SwapTerraPatch
|
R_SwapTerraPatch
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue