summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-13 21:59:47 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-13 22:51:35 +0100
commitd958695281c7c79be672abda7cdaf673c27514e6 (patch)
treee7d88894f39703160b6b3bfa3c5599d1dd3f9a76 /crawl-ref
parent2021591fae6918624a49d21849ebd2ca35ff9ff2 (diff)
downloadcrawl-ref-d958695281c7c79be672abda7cdaf673c27514e6.tar.gz
crawl-ref-d958695281c7c79be672abda7cdaf673c27514e6.zip
Convert a bunch of coordinate loops to new radius_iterator.
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/effects.cc2
-rw-r--r--crawl-ref/source/spells2.cc14
-rw-r--r--crawl-ref/source/spells3.cc18
-rw-r--r--crawl-ref/source/spells4.cc4
-rw-r--r--crawl-ref/source/spl-cast.cc9
-rw-r--r--crawl-ref/source/view.cc5
-rw-r--r--crawl-ref/source/xom.cc9
7 files changed, 23 insertions, 38 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 8c521df0ac..2d9c8fbe54 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -2734,7 +2734,7 @@ bool vitrify_area(int radius)
// This hinges on clear wall types having the same order as non-clear ones!
const int clear_plus = DNGN_CLEAR_ROCK_WALL - DNGN_ROCK_WALL;
bool something_happened = false;
- for (radius_iterator ri(you.pos(), radius, false, false); ri; ++ri)
+ for (radius_iterator ri(you.pos(), radius, C_POINTY); ri; ++ri)
{
const dungeon_feature_type grid = grd(*ri);
diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc
index e0378e81f4..4e0a3c366f 100644
--- a/crawl-ref/source/spells2.cc
+++ b/crawl-ref/source/spells2.cc
@@ -80,7 +80,7 @@ int detect_items(int pow)
int items_found = 0;
const int map_radius = 8 + random2(8) + pow;
- for (radius_iterator ri(you.pos(), map_radius, true, false); ri; ++ri)
+ for (radius_iterator ri(you.pos(), map_radius, C_SQUARE); ri; ++ri)
{
// Don't expose new dug out areas:
// Note: assumptions are being made here about how
@@ -193,7 +193,7 @@ int detect_creatures(int pow, bool telepathic)
if (!telepathic)
clear_map(false);
- for (radius_iterator ri(you.pos(), map_radius, true, false); ri; ++ri)
+ for (radius_iterator ri(you.pos(), map_radius, C_SQUARE); ri; ++ri)
{
if (monsters *mon = monster_at(*ri))
{
@@ -219,13 +219,11 @@ int detect_creatures(int pow, bool telepathic)
void corpse_rot()
{
- for (radius_iterator ri(you.pos(), 6); ri; ++ri)
+ for (radius_iterator ri(you.pos(), 6, C_ROUND, &you.get_los_no_trans());
+ ri; ++ri)
{
- if (you.see_cell_no_trans(*ri) && !is_sanctuary(*ri)
- && env.cgrid(*ri) == EMPTY_CLOUD)
- {
+ if (!is_sanctuary(*ri) && env.cgrid(*ri) == EMPTY_CLOUD)
for (stack_iterator si(*ri); si; ++si)
- {
if (si->base_type == OBJ_CORPSES && si->sub_type == CORPSE_BODY)
{
// Found a corpse. Skeletonise it if possible.
@@ -239,8 +237,6 @@ void corpse_rot()
// Don't look for more corpses here.
break;
}
- }
- }
}
if (player_can_smell())
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index 79d34aa1d9..524883c932 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -660,7 +660,8 @@ bool receive_corpses(int pow, coord_def where)
// We should get the same number of corpses in a hallway as in an
// open room.
int spaces_for_corpses = 0;
- for (radius_iterator ri(where, corpse_delivery_radius, true, true, true);
+ for (radius_iterator ri(where, corpse_delivery_radius, C_SQUARE,
+ &you.get_los(), true);
ri; ++ri)
{
if (mons_class_can_pass(MONS_HUMAN, grd(*ri)))
@@ -673,7 +674,9 @@ bool receive_corpses(int pow, coord_def where)
int corpses_generated = 0;
- for (radius_iterator ri(where, corpse_delivery_radius, false, true, false);
+ // XXX: Is it intentional that this loop is different from the one above?
+ for (radius_iterator ri(where, corpse_delivery_radius, C_ROUND,
+ &you.get_los());
ri; ++ri)
{
@@ -1074,10 +1077,9 @@ int animate_dead(actor *caster, int pow, beh_type beha, unsigned short hitting,
int number_raised = 0;
int number_seen = 0;
- radius_iterator ri(caster->pos(), 6, true, true, false,
+ radius_iterator ri(caster->pos(), 6, C_SQUARE,
&caster->get_los_no_trans());
- // Sweep all squares in LOS.
for (; ri; ++ri)
{
// This will produce a message if the corpse you are butchering
@@ -1749,15 +1751,13 @@ bool remove_sanctuary(bool did_attack)
const int radius = 5;
bool seen_change = false;
- for (radius_iterator ri(env.sanctuary_pos, radius, true, false); ri; ++ri)
- {
+ for (radius_iterator ri(env.sanctuary_pos, radius, C_SQUARE); ri; ++ri)
if (is_sanctuary(*ri))
{
_remove_sanctuary_property(*ri);
if (you.see_cell(*ri))
seen_change = true;
}
- }
env.sanctuary_pos.set(-1, -1);
@@ -1798,7 +1798,7 @@ void decrease_sanctuary_radius()
stop_running();
}
- for (radius_iterator ri(env.sanctuary_pos, size+1, true, false); ri; ++ri)
+ for (radius_iterator ri(env.sanctuary_pos, size+1, C_SQUARE); ri; ++ri)
{
int dist = distance(*ri, env.sanctuary_pos);
@@ -1854,7 +1854,7 @@ bool cast_sanctuary(const int power)
int cloud_count = 0;
monsters *seen_mon = NULL;
- for (radius_iterator ri(you.pos(), radius, false, false); ri; ++ri)
+ for (radius_iterator ri(you.pos(), radius, C_POINTY); ri; ++ri)
{
const int dist = _inside_circle(*ri, radius);
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index bbd80c8cab..6970ceb668 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -376,14 +376,12 @@ void cast_detect_secret_doors(int pow)
{
int found = 0;
- for ( radius_iterator ri(you.pos(), 8); ri; ++ri )
- {
+ for (radius_iterator ri(&you.get_los()); ri; ++ri )
if (grd(*ri) == DNGN_SECRET_DOOR && random2(pow) > random2(15))
{
reveal_secret_door(*ri);
found++;
}
- }
if (found)
redraw_screen();
diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc
index 8d96fb7f82..366cfe4882 100644
--- a/crawl-ref/source/spl-cast.cc
+++ b/crawl-ref/source/spl-cast.cc
@@ -637,15 +637,8 @@ void inspect_spells()
static int _get_dist_to_nearest_monster()
{
int minRange = LOS_RADIUS + 1;
- for (radius_iterator ri(you.pos(), LOS_RADIUS, true, false, true); ri; ++ri)
+ for (radius_iterator ri(&you.get_los_no_trans(), true); ri; ++ri)
{
- if (!in_bounds(*ri))
- continue;
-
- // Can we see (and reach) the grid?
- if (!you.see_cell_no_trans(*ri))
- continue;
-
const monsters *mon = monster_at(*ri);
if (mon == NULL)
continue;
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index fd4674cfce..a97b066c0f 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -364,7 +364,8 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
if (!deterministic)
detectable = _tile_detectability();
- for (radius_iterator ri(pos, map_radius, !circular, false); ri; ++ri)
+ for (radius_iterator ri(pos, map_radius, circular ? C_ROUND : C_SQUARE);
+ ri; ++ri)
{
if (!wizard_map)
{
@@ -768,7 +769,7 @@ static bool player_view_update_at(const coord_def &gc)
static void player_view_update()
{
std::vector<coord_def> update_excludes;
- for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri)
+ for (radius_iterator ri(&you.get_los()); ri; ++ri)
if (player_view_update_at(*ri))
update_excludes.push_back(*ri);
update_exclusion_los(update_excludes);
diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc
index f7a694d840..f16e188872 100644
--- a/crawl-ref/source/xom.cc
+++ b/crawl-ref/source/xom.cc
@@ -1975,11 +1975,8 @@ static int _xom_throw_divine_lightning(bool debug = false)
static int _xom_change_scenery(bool debug = false)
{
std::vector<coord_def> candidates;
- for (radius_iterator ri(you.pos(), LOS_RADIUS, false, true); ri; ++ri)
+ for (radius_iterator ri(&you.get_los()); ri; ++ri)
{
- if (!in_bounds(*ri) || !you.see_cell(*ri))
- continue;
-
dungeon_feature_type feat = grd(*ri);
if (feat >= DNGN_FOUNTAIN_BLUE && feat <= DNGN_DRY_FOUNTAIN_BLOOD)
candidates.push_back(*ri);
@@ -2281,7 +2278,7 @@ static void _get_in_view(FixedVector<bool, NUM_FEATURES>& in_view)
{
in_view.init(false);
- for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri)
+ for (radius_iterator ri(&you.get_los()); ri; ++ri)
in_view[grd(*ri)] = true;
}
@@ -3036,7 +3033,7 @@ static int _xom_repel_stairs(bool debug = false)
std::vector<coord_def> stairs_avail;
bool real_stairs = false;
- for (radius_iterator ri(you.pos(), LOS_RADIUS, false, true); ri; ++ri)
+ for (radius_iterator ri(&you.get_los()); ri; ++ri)
{
dungeon_feature_type feat = grd(*ri);
if (feat_stair_direction(feat) != CMD_NO_CMD