summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/losparam.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/losparam.cc')
-rw-r--r--crawl-ref/source/losparam.cc25
1 files changed, 21 insertions, 4 deletions
diff --git a/crawl-ref/source/losparam.cc b/crawl-ref/source/losparam.cc
index 85e0954499..cd746d0b58 100644
--- a/crawl-ref/source/losparam.cc
+++ b/crawl-ref/source/losparam.cc
@@ -50,23 +50,40 @@ opacity_type los_param_permissive::opacity(const coord_def& p) const
}
-/* los_param_base */
+/* los_param_nocloud */
-los_param_base::los_param_base(const coord_def& c)
+los_param_nocloud::los_param_nocloud(const coord_def& c)
: los_param_trans(c)
{
}
-dungeon_feature_type los_param_base::feature(const coord_def& p) const
+dungeon_feature_type los_param_nocloud::feature(const coord_def& p) const
{
return env.grid(trans(p));
}
-unsigned los_param_base::appearance(const coord_def& p) const
+unsigned los_param_nocloud::appearance(const coord_def& p) const
{
return grid_appearance(trans(p));
}
+opacity_type los_param_nocloud::opacity(const coord_def& p) const
+{
+ dungeon_feature_type f = feature(p);
+ if (grid_is_opaque(f))
+ return OPC_OPAQUE;
+ else
+ return OPC_CLEAR;
+}
+
+
+/* los_param_base */
+
+los_param_base::los_param_base(const coord_def& c)
+ : los_param_nocloud(c)
+{
+}
+
unsigned short los_param_base::cloud_idx(const coord_def& p) const
{
return env.cgrid(trans(p));