diff --git a/include/light/bounce.hh b/include/light/bounce.hh index 4ddc0be1..49d84be8 100644 --- a/include/light/bounce.hh +++ b/include/light/bounce.hh @@ -44,7 +44,7 @@ typedef struct { // public functions const std::vector &BounceLights(); -std::vector BounceLightsForFaceNum(int facenum); +const std::vector &BounceLightsForFaceNum(int facenum); void MakeTextureColors (const bsp2_t *bsp); void MakeBounceLights (const globalconfig_t &cfg, const bsp2_t *bsp); /** Returns color components in [0, 255] */ diff --git a/light/bounce.cc b/light/bounce.cc index 2ca8138b..ae2104c2 100644 --- a/light/bounce.cc +++ b/light/bounce.cc @@ -261,13 +261,15 @@ const std::vector &BounceLights() return radlights; } -std::vector BounceLightsForFaceNum(int facenum) +const std::vector &BounceLightsForFaceNum(int facenum) { const auto &vec = radlightsByFacenum.find(facenum); if (vec != radlightsByFacenum.end()) { return vec->second; } - return {}; + + static std::vector empty; + return empty; } glm::vec3 Palette_GetColor(int i) diff --git a/light/ltface.cc b/light/ltface.cc index 32bed96a..b3bd39f1 100644 --- a/light/ltface.cc +++ b/light/ltface.cc @@ -1644,7 +1644,7 @@ LightFace_BounceLightsDebug(const lightsurf_t *lightsurf, lightmapdict_t *lightm // reset all lightmaps to black (lazily) Lightmap_ClearAll(lightmaps); - std::vector vpls = BounceLightsForFaceNum(Face_GetNum(lightsurf->bsp, lightsurf->face)); + const std::vector &vpls = BounceLightsForFaceNum(Face_GetNum(lightsurf->bsp, lightsurf->face)); if (vpls.size()) { Q_assert(vpls.size() == 1); // for now only 1 vpl per face