summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abyss.cc
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-22 20:21:15 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-22 20:21:15 +0000
commit9a160b380b94ce9b89c93214fe7b9de3f36ed01f (patch)
tree53d1992a132d6e3178b427bbaca2510120233173 /crawl-ref/source/abyss.cc
parent23e8c7a07f9ea71e683fa748940cc7447e5a8aa1 (diff)
downloadcrawl-ref-9a160b380b94ce9b89c93214fe7b9de3f36ed01f.tar.gz
crawl-ref-9a160b380b94ce9b89c93214fe7b9de3f36ed01f.zip
Massive change from using x and y to using coord_defs(). Not quite tested,
most likely broken in some places and might break tiles. Will fix in the near future. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6636 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abyss.cc')
-rw-r--r--crawl-ref/source/abyss.cc62
1 files changed, 26 insertions, 36 deletions
diff --git a/crawl-ref/source/abyss.cc b/crawl-ref/source/abyss.cc
index ce0fba4011..b7af7c07a2 100644
--- a/crawl-ref/source/abyss.cc
+++ b/crawl-ref/source/abyss.cc
@@ -60,7 +60,7 @@ static bool _place_feature_near( const coord_def &centre,
if (cp == centre || (cp - centre).abs() > radius2 || !in_bounds(cp))
continue;
- if (not_seen && grid_see_grid(cp.x, cp.y, centre.x, centre.y))
+ if (not_seen && grid_see_grid(cp, centre))
continue;
if (grd(cp) == candidate)
@@ -259,7 +259,7 @@ static void _generate_area(int gx1, int gy1, int gx2, int gy2,
true, items_level, 250);
}
- move_item_to_grid( &thing_created, i, j );
+ move_item_to_grid( &thing_created, coord_def(i, j) );
if (thing_created != NON_ITEM)
items_placed++;
@@ -486,46 +486,36 @@ void area_shift(void)
}
// Shift all monsters & items to new area.
- for (int i = you.x_pos - 10; i <= you.x_pos + 10; i++)
+ for (radius_iterator ri(you.pos(), 10, true, false); ri; ++ri)
{
- if (i < 0 || i >= GXM)
- continue;
-
- for (int j = you.y_pos - 10; j <= you.y_pos + 10; j++)
- {
- if (j < 0 || j >= GYM)
- continue;
-
- const int ipos = 45 + i - you.x_pos;
- const int jpos = 35 + j - you.y_pos;
+ const coord_def newpos = coord_def(45,35) + *ri - you.pos();
- // Move terrain.
- grd[ipos][jpos] = grd[i][j];
-
- // Move item.
+ // Move terrain.
+ grd(newpos) = grd(*ri);
+
+ // Move item.
#ifdef DEBUG_ABYSS
- if (igrd[i][j] != NON_ITEM)
- {
- mprf(MSGCH_DIAGNOSTICS,
- "Move item stack from (%d, %d) to (%d, %d)",
- i, j, ipos, jpos);
- }
+ if (igrd(*ri) != NON_ITEM)
+ {
+ mprf(MSGCH_DIAGNOSTICS,
+ "Move item stack from (%d, %d) to (%d, %d)",
+ ri->x, ri->y, newpos.x, newpos.y);
+ }
#endif
- move_item_stack_to_grid( i, j, ipos, jpos );
-
- // Move monster.
- mgrd[ipos][jpos] = mgrd[i][j];
- if (mgrd[i][j] != NON_MONSTER)
- {
- menv[mgrd[ipos][jpos]].x = ipos;
- menv[mgrd[ipos][jpos]].y = jpos;
- mgrd[i][j] = NON_MONSTER;
- }
+ move_item_stack_to_grid( *ri, newpos );
- // Move cloud,
- if (env.cgrid[i][j] != EMPTY_CLOUD)
- move_cloud( env.cgrid[i][j], ipos, jpos );
+ // Move monster.
+ mgrd(newpos) = mgrd(*ri);
+ if (mgrd(*ri) != NON_MONSTER)
+ {
+ menv[mgrd(newpos)].x = newpos.x;
+ menv[mgrd(newpos)].y = newpos.y;
+ mgrd(*ri) = NON_MONSTER;
}
+
+ // Move cloud,
+ if (env.cgrid(*ri) != EMPTY_CLOUD)
+ move_cloud( env.cgrid(*ri), newpos );
}
for (unsigned int i = 0; i < MAX_CLOUDS; i++)