summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilereg.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-27 15:12:42 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-27 15:12:42 +0000
commitefde5f5a0ac8266096eaf03b82cfaf18db0d7c29 (patch)
tree25ed5bee6cafca50fca81b47de30ffc1a3e658d3 /crawl-ref/source/tilereg.cc
parent074c9aa085ffb0538baf9eb247d14454ca040540 (diff)
downloadcrawl-ref-efde5f5a0ac8266096eaf03b82cfaf18db0d7c29.tar.gz
crawl-ref-efde5f5a0ac8266096eaf03b82cfaf18db0d7c29.zip
[2021068] Projectiles, explosions, beams, etc. now drawn again in tiles version.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7039 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tilereg.cc')
-rw-r--r--crawl-ref/source/tilereg.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc
index 75b9c1016c..6d241280c5 100644
--- a/crawl-ref/source/tilereg.cc
+++ b/crawl-ref/source/tilereg.cc
@@ -725,6 +725,29 @@ void DungeonRegion::render()
glDrawArrays(GL_QUADS, 0, m_verts.size());
}
+ m_verts.clear();
+ for (unsigned int i = 0; i < m_overlays.size(); i++)
+ {
+ // overlays must be from the main image and must be in LOS.
+ if (!crawl_view.in_grid_los(m_overlays[i].gc))
+ continue;
+
+ int idx = m_overlays[i].idx;
+ if (idx >= TILE_MAIN_MAX)
+ continue;
+
+ int x = m_overlays[i].gc.x - m_cx_to_gx;
+ int y = m_overlays[i].gc.y - m_cy_to_gy;
+ add_quad(TEX_DEFAULT, idx, x, y);
+ }
+ if (m_verts.size() > 0)
+ {
+ m_image->m_textures[TEX_DEFAULT].bind();
+ glVertexPointer(2, GL_FLOAT, sizeof(tile_vert), &m_verts[0].pos_x);
+ glTexCoordPointer(2, GL_FLOAT, sizeof(tile_vert), &m_verts[0].tex_x);
+ glDrawArrays(GL_QUADS, 0, m_verts.size());
+ }
+
// Draw text labels
// TODO enne - add an option for this
// TODO enne - be more intelligent about not covering stuff up
@@ -1019,6 +1042,19 @@ void DungeonRegion::add_text_tag(text_tag_type type, const std::string &tag,
m_tags[type].push_back(t);
}
+void DungeonRegion::add_overlay(const coord_def &gc, int idx)
+{
+ tile_overlay over;
+ over.gc = gc;
+ over.idx = idx;
+
+ m_overlays.push_back(over);
+}
+
+void DungeonRegion::clear_overlays()
+{
+ m_overlays.clear();
+}
InventoryTile::InventoryTile()
{