diff options
author | Nate Rook <nrook@google.com> | 2014-07-19 13:42:49 -0700 |
---|---|---|
committer | Neil Moore <neil@s-z.org> | 2014-07-20 15:32:15 -0400 |
commit | 9ff0d5b6caf744aa25243612a9d2c61fe8781cf0 (patch) | |
tree | ebb93a282250479a829813c1f62894580c6375bd /crawl-ref/source/webserver | |
parent | c0b7207e917e7787ce182b86de917ab0d83ee27c (diff) | |
download | crawl-ref-9ff0d5b6caf744aa25243612a9d2c61fe8781cf0.tar.gz crawl-ref-9ff0d5b6caf744aa25243612a9d2c61fe8781cf0.zip |
Webtiles: Make visible() take a cell rather than coordinates.
All callers already have a cell; this leads to performance improvements
in those cases, since get() doesn't need to be called.
Previously calls to visible() took around 4.3ms per player move. Now
they take around 2.1ms. (V8)
[Committer's note: removed some now-unnecessary braces. -nfm]
Diffstat (limited to 'crawl-ref/source/webserver')
3 files changed, 6 insertions, 11 deletions
diff --git a/crawl-ref/source/webserver/game_data/static/dungeon_renderer.js b/crawl-ref/source/webserver/game_data/static/dungeon_renderer.js index 3a303fba18..8f236969b8 100644 --- a/crawl-ref/source/webserver/game_data/static/dungeon_renderer.js +++ b/crawl-ref/source/webserver/game_data/static/dungeon_renderer.js @@ -246,7 +246,7 @@ function ($, cr, map_knowledge, options, dngn) { { var map_cell = map_knowledge.get(cx, cy); var cell = map_cell.t; - if (map_knowledge.visible(cx, cy) && cell_is_animated(cell)) + if (map_knowledge.visible(map_cell) && cell_is_animated(cell)) { animate_cell(cell); var x = (cx - this.view.x) * this.cell_width; diff --git a/crawl-ref/source/webserver/game_data/static/map_knowledge.js b/crawl-ref/source/webserver/game_data/static/map_knowledge.js index e5564d4f83..f57f546cf6 100644 --- a/crawl-ref/source/webserver/game_data/static/map_knowledge.js +++ b/crawl-ref/source/webserver/game_data/static/map_knowledge.js @@ -33,9 +33,8 @@ define(["jquery", "./enums"], function ($, enums) { bounds = null; } - function visible(x, y) + function visible(cell) { - var cell = get(x, y); if (cell.t) { cell.t.bg = enums.prepare_bg_flags(cell.t.bg || 0); diff --git a/crawl-ref/source/webserver/game_data/static/monster_list.js b/crawl-ref/source/webserver/game_data/static/monster_list.js index 18f4943085..200d7be300 100644 --- a/crawl-ref/source/webserver/game_data/static/monster_list.js +++ b/crawl-ref/source/webserver/game_data/static/monster_list.js @@ -16,14 +16,10 @@ function ($, map_knowledge, cr, dungeon_renderer, options) { function update_loc(loc) { - var mon = map_knowledge.get(loc.x, loc.y).mon; - if (mon) - { - if (map_knowledge.visible(loc.x, loc.y)) - monsters[[loc.x,loc.y]] = { mon: mon, loc: loc }; - else - delete monsters[[loc.x,loc.y]]; - } + var map_cell = map_knowledge.get(loc.x, loc.y); + var mon = map_cell.mon; + if (mon && map_knowledge.visible(map_cell)) + monsters[[loc.x,loc.y]] = { mon: mon, loc: loc }; else delete monsters[[loc.x,loc.y]]; } |