From e62fd0abb7aa7a3e2b7870c34bc87f5f00601604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Wed, 17 Feb 2016 17:58:14 +0200 Subject: [PATCH] Renderer|Environment: Fall back to "texture.reflect.default" If no map-specific reflections are found, use "texture.reflect.default" if that is found instead. --- doomsday/apps/client/src/render/environ.cpp | 24 +++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/doomsday/apps/client/src/render/environ.cpp b/doomsday/apps/client/src/render/environ.cpp index df0cbb7985..48c13c6b1b 100644 --- a/doomsday/apps/client/src/render/environ.cpp +++ b/doomsday/apps/client/src/render/environ.cpp @@ -28,6 +28,7 @@ using namespace de; +static String const ID_DEFAULT ("default"); static String const DEF_PATH ("path"); static String const DEF_INTERIOR_PATH("interior.path"); static String const DEF_EXTERIOR_PATH("exterior.path"); @@ -165,16 +166,27 @@ DENG2_PIMPL(Environment) auto found = maps.constFind(mapId); if(found != maps.constEnd()) { - EnvMaps const &env = found.value(); - DENG2_ASSERT(!(env.interior.isEmpty() && env.exterior.isEmpty())); - - if(!env.exterior.isEmpty()) + loadEnvMaps(found.value()); + } + else + { + // Maybe the default maps, then? + found = maps.constFind(ID_DEFAULT); + if(found != maps.constEnd()) { - loadCubeMap(reflectionTextures[Exterior], env.exterior); + loadEnvMaps(found.value()); } + } + } - loadCubeMap(reflectionTextures[Interior], env.interior); + void loadEnvMaps(EnvMaps const &env) + { + DENG2_ASSERT(!(env.interior.isEmpty() && env.exterior.isEmpty())); + if(!env.exterior.isEmpty()) + { + loadCubeMap(reflectionTextures[Exterior], env.exterior); } + loadCubeMap(reflectionTextures[Interior], env.interior); } };