From 3e9b9c280bcddadca4c2b7854535ef4deb3884c5 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 19 Jun 2014 15:22:00 +0200 Subject: [PATCH] - initialize model data at engine start, not at level start. --- src/gl/data/gl_data.cpp | 5 ++--- src/gl/data/gl_data.h | 1 + src/gl/data/gl_setup.cpp | 10 ---------- src/gl/models/gl_models.h | 1 - src/gl/scene/gl_scene.cpp | 1 + src/r_data/sprites.cpp | 4 ++++ 6 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/gl/data/gl_data.cpp b/src/gl/data/gl_data.cpp index da72f63134..641b6b14c9 100644 --- a/src/gl/data/gl_data.cpp +++ b/src/gl/data/gl_data.cpp @@ -477,9 +477,8 @@ void gl_RecalcVertexHeights(vertex_t * v) void gl_InitData() { - LineSpecials[157]=LS_SetGlobalFogParameter; - LineSpecials[159]=LS_Sector_SetPlaneReflection; - gl_InitModels(); + LineSpecials[157] = LS_SetGlobalFogParameter; + LineSpecials[159] = LS_Sector_SetPlaneReflection; AdjustSpriteOffsets(); } diff --git a/src/gl/data/gl_data.h b/src/gl/data/gl_data.h index 6a1589cde9..42b6df26e3 100644 --- a/src/gl/data/gl_data.h +++ b/src/gl/data/gl_data.h @@ -57,6 +57,7 @@ extern TArray currentmapsection; void gl_InitPortals(); void gl_BuildPortalCoverage(FPortalCoverage *coverage, subsector_t *subsector, FPortal *portal); +void gl_InitData(); extern long gl_frameMS; diff --git a/src/gl/data/gl_setup.cpp b/src/gl/data/gl_setup.cpp index a76e618d9a..458019b41b 100644 --- a/src/gl/data/gl_setup.cpp +++ b/src/gl/data/gl_setup.cpp @@ -62,7 +62,6 @@ #include "gl/gl_functions.h" void InitGLRMapinfoData(); -void gl_InitData(); //========================================================================== // @@ -613,15 +612,6 @@ void gl_PreprocessLevel() { int i; - static int datadone=-1; - - - if (datadone != restart) - { - datadone = restart; - gl_InitData(); - } - PrepareSegs(); PrepareSectorData(); InitVertexData(); diff --git a/src/gl/models/gl_models.h b/src/gl/models/gl_models.h index e20010931b..7b32be085d 100644 --- a/src/gl/models/gl_models.h +++ b/src/gl/models/gl_models.h @@ -333,7 +333,6 @@ struct FSpriteModelFrame class GLSprite; -void gl_InitModels(); FSpriteModelFrame * gl_FindModelFrame(const PClass * ti, int sprite, int frame, bool dropped); void gl_RenderModel(GLSprite * spr); diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index 8f8d505321..b1bf9e343d 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -1224,6 +1224,7 @@ void FGLInterface::RenderView(player_t *player) void FGLInterface::Init() { gl_ParseDefs(); + gl_InitData(); } //=========================================================================== diff --git a/src/r_data/sprites.cpp b/src/r_data/sprites.cpp index c1e59c415f..236355f3b1 100644 --- a/src/r_data/sprites.cpp +++ b/src/r_data/sprites.cpp @@ -15,6 +15,8 @@ #include "r_data/voxels.h" #include "textures/textures.h" +void gl_InitModels(); + // variables used to look up // and range check thing_t sprites patches TArray sprites; @@ -988,6 +990,8 @@ void R_InitSprites () // [RH] Sort the skins, but leave base as skin 0 //qsort (&skins[PlayerClasses.Size ()], numskins-PlayerClasses.Size (), sizeof(FPlayerSkin), skinsorter); + + gl_InitModels(); } void R_DeinitSpriteData()