[Hide Content]From 18743302a7f0bb6a2786e226f42ae9e782a93d84 Mon Sep 17 00:00:00 2001
From: Nate Rook <nrook@google.com>
Date: Sat, 19 Jul 2014 13:42:49 -0700
Subject: [PATCH] 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)
---
.../source/webserver/game_data/static/dungeon_renderer.js | 2 +-
crawl-ref/source/webserver/game_data/static/map_knowledge.js | 3 +--
crawl-ref/source/webserver/game_data/static/monster_list.js | 10 ++++------
3 files changed, 6 insertions(+), 9 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 3a303fb..8f23696 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 e5564d4..f57f546 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 18f4943..92aefed 100644
--- a/crawl-ref/source/webserver/game_data/static/monster_list.js
+++ b/crawl-ref/source/webserver/game_data/static/monster_list.js
@@ -16,13 +16,11 @@ function ($, map_knowledge, cr, dungeon_renderer, options) {
function update_loc(loc)
{
- var mon = map_knowledge.get(loc.x, loc.y).mon;
- if (mon)
+ var map_cell = map_knowledge.get(loc.x, loc.y);
+ var mon = map_cell.mon;
+ if (mon && map_knowledge.visible(map_cell))
{
- if (map_knowledge.visible(loc.x, loc.y))
- monsters[[loc.x,loc.y]] = { mon: mon, loc: loc };
- else
- delete monsters[[loc.x,loc.y]];
+ monsters[[loc.x,loc.y]] = { mon: mon, loc: loc };
}
else
delete monsters[[loc.x,loc.y]];
--
1.9.1