From d42ebe9760cd79893c0e1fc873281f51d227a79a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Tue, 10 Jun 2025 22:53:54 -0300 Subject: [PATCH] limit levelmesh models to StaticMapModel class --- src/rendering/hwrenderer/doom_levelmesh.cpp | 14 +++++++++----- wadsrc/static/zscript/doombase.zs | 4 +++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/rendering/hwrenderer/doom_levelmesh.cpp b/src/rendering/hwrenderer/doom_levelmesh.cpp index 0b276c89b..a3d10185f 100644 --- a/src/rendering/hwrenderer/doom_levelmesh.cpp +++ b/src/rendering/hwrenderer/doom_levelmesh.cpp @@ -283,16 +283,20 @@ DoomLevelMesh::DoomLevelMesh(FLevelLocals& doomMap) // Collect all the models we want to bake into the level mesh if (lm_models) { + PClass * cls = PClass::FindClass("StaticMapModel"); auto it = doomMap.GetThinkerIterator(); AActor* thing; while ((thing = it.Next()) != nullptr) { - bool isPicnumOverride = thing->picnum.isValid(); - int spritenum = thing->sprite; - FSpriteModelFrame* modelframe = isPicnumOverride ? nullptr : FindModelFrame(thing, spritenum, thing->frame, !!(thing->flags & MF_DROPPED)); - if (modelframe && modelframe->modelIDs.size() != 0) + if(thing->GetClass()->IsDescendantOf(cls)) { - CreateModelSurfaces(thing, modelframe); + bool isPicnumOverride = thing->picnum.isValid(); + int spritenum = thing->sprite; + FSpriteModelFrame* modelframe = isPicnumOverride ? nullptr : FindModelFrame(thing, spritenum, thing->frame, !!(thing->flags & MF_DROPPED)); + if (modelframe && modelframe->modelIDs.size() != 0) + { + CreateModelSurfaces(thing, modelframe); + } } } } diff --git a/wadsrc/static/zscript/doombase.zs b/wadsrc/static/zscript/doombase.zs index ffd5b461c..b3aa147d3 100644 --- a/wadsrc/static/zscript/doombase.zs +++ b/wadsrc/static/zscript/doombase.zs @@ -983,4 +983,6 @@ struct Lightmap // Multiplier for the sun's intensity (or brightness) // Calling this does NOT recalculate the lightmap. native static void SetSunIntensity(double intensity); -}; \ No newline at end of file +}; + +class StaticMapModel : Actor {}