summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-28 14:05:26 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-28 14:05:26 +0000
commit4bddff39d6767838f019f79d069591020223389c (patch)
treeb8869ace0b3417b93b7d5afc0c3cac6af05b9fd9
parent4626c89fde4187298219d76253415b58347b199c (diff)
downloadcrawl-ref-4bddff39d6767838f019f79d069591020223389c.tar.gz
crawl-ref-4bddff39d6767838f019f79d069591020223389c.zip
* Another magic mapping fix in cooperation with zebez. Thanks! :)
* Don't make Detect creatures "detect" monsters you can currently see. * Replace rock stair tiles with Eino's escape hatch tiles. * Update change log once again. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.5@10447 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/changelog.txt5
-rw-r--r--crawl-ref/source/delay.cc9
-rw-r--r--crawl-ref/source/rltiles/dc-dngn.txt4
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.pngbin0 -> 897 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.pngbin0 -> 1023 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.pngbin879 -> 0 bytes
-rw-r--r--crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.pngbin675 -> 0 bytes
-rw-r--r--crawl-ref/source/spells2.cc9
-rw-r--r--crawl-ref/source/tilepick.cc11
-rw-r--r--crawl-ref/source/view.cc64
10 files changed, 79 insertions, 23 deletions
diff --git a/crawl-ref/docs/changelog.txt b/crawl-ref/docs/changelog.txt
index 8362f4025b..79e10dca24 100644
--- a/crawl-ref/docs/changelog.txt
+++ b/crawl-ref/docs/changelog.txt
@@ -1,4 +1,4 @@
-Stone Soup 0.5.1 (2009????)
+Stone Soup 0.5.1 (20090728)
---------------------------
Disclaimer: These are merely the highlights, not an exhaustive list of changes.
@@ -23,6 +23,7 @@ Disclaimer: These are merely the highlights, not an exhaustive list of changes.
* Fixed berserking allies taking orders from 'ta'.
* Fixed random blinking sometimes placing the player in dangerous clouds.
* Fixed certain incorporeal monsters flying instead of levitating.
+* Fixed server disconnects at --More-- prompts allowing to avoid retribution.
* Staff of earth damage is reduced by AC.
* Lowered damage output for elemental staves.
* Once entered, the gate to Zot remains open even without carrying runes.
@@ -52,7 +53,7 @@ Disclaimer: These are merely the highlights, not an exhaustive list of changes.
* Add new milestones for the CAO tournament.
* Tiles: Re-allow selection of player dolls ('-' command).
* Add missing tiles options to the options guide (docs/, '?&' command).
-* Use clearer tiles for disturbances in shallow water.
+* Improve tiles for escape hatches and disturbances in shallow water.
* Document tiles lags in tiles_help.txt and in the in-game FAQ ('?Q' command).
Stone Soup 0.5.0 (20090612)
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index e7d4200907..dcc2498d6c 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -829,8 +829,15 @@ void handle_delay()
// XXX: need to handle passwall when monster digs -- bwr
if (delay.type == DELAY_FEED_VAMPIRE)
{
+ // Vampires stop feeding if ...
+ // * engorged ("alive")
+ // * bat form runs out due to becoming full
+ // * corpse becomes poisonous as the Vampire loses poison resistance
if (you.hunger_state == HS_ENGORGED
- || you.hunger_state > HS_SATIATED && player_in_bat_form())
+ || you.hunger_state > HS_SATIATED && player_in_bat_form()
+ || you.hunger_state >= HS_SATIATED
+ && is_valid_item(mitm[delay.parm1])
+ && is_poisonous(mitm[delay.parm1]))
{
// Messages handled in _food_change() in food.cc.
stop_delay();
diff --git a/crawl-ref/source/rltiles/dc-dngn.txt b/crawl-ref/source/rltiles/dc-dngn.txt
index 4205f072ad..bfde09af29 100644
--- a/crawl-ref/source/rltiles/dc-dngn.txt
+++ b/crawl-ref/source/rltiles/dc-dngn.txt
@@ -359,9 +359,9 @@ dngn_trap_zot DNGN_TRAP_ZOT
dngn_trap_needle DNGN_TRAP_NEEDLE
dngn_trap_shaft DNGN_TRAP_SHAFT
stone_stairs_down DNGN_STONE_STAIRS_DOWN
-rock_stairs_down DNGN_ROCK_STAIRS_DOWN
+escape_hatch_down DNGN_ESCAPE_HATCH_DOWN
stone_stairs_up DNGN_STONE_STAIRS_UP
-rock_stairs_up DNGN_ROCK_STAIRS_UP
+escape_hatch_up DNGN_ESCAPE_HATCH_UP
%sdir dc-dngn/shops
##dngn_enter_shop DNGN_ENTER_SHOP
diff --git a/crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.png b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.png
new file mode 100644
index 0000000000..6a2e4f222e
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.png b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.png
new file mode 100644
index 0000000000..99095652b1
--- /dev/null
+++ b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.png
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.png b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.png
deleted file mode 100644
index 12cf07512d..0000000000
--- a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.png
+++ /dev/null
Binary files differ
diff --git a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.png b/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.png
deleted file mode 100644
index 4e4dec8cdd..0000000000
--- a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.png
+++ /dev/null
Binary files differ
diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc
index 20ef704622..49b2d0fbf3 100644
--- a/crawl-ref/source/spells2.cc
+++ b/crawl-ref/source/spells2.cc
@@ -197,9 +197,12 @@ int detect_creatures(int pow, bool telepathic)
{
if (monsters *mon = monster_at(*ri))
{
- creatures_found++;
-
- _mark_detected_creature(*ri, mon, fuzz_chance, fuzz_radius);
+ // If you can see the monster, don't "detect" it elsewhere.
+ if (!mons_near(mon) || !player_monster_visible(mon))
+ {
+ creatures_found++;
+ _mark_detected_creature(*ri, mon, fuzz_chance, fuzz_radius);
+ }
// Assuming that highly intelligent spellcasters can
// detect scrying. -- bwr
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index e9f17e482b..243e4afcbd 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -2406,13 +2406,13 @@ int tileidx_feature(int object, int gx, int gy)
case DNGN_STONE_STAIRS_DOWN_III:
return TILE_DNGN_STONE_STAIRS_DOWN;
case DNGN_ESCAPE_HATCH_DOWN:
- return TILE_DNGN_ROCK_STAIRS_DOWN;
+ return TILE_DNGN_ESCAPE_HATCH_DOWN;
case DNGN_STONE_STAIRS_UP_I:
case DNGN_STONE_STAIRS_UP_II:
case DNGN_STONE_STAIRS_UP_III:
return TILE_DNGN_STONE_STAIRS_UP;
case DNGN_ESCAPE_HATCH_UP:
- return TILE_DNGN_ROCK_STAIRS_UP;
+ return TILE_DNGN_ESCAPE_HATCH_UP;
case DNGN_ENTER_DIS:
return TILE_DNGN_ENTER_DIS;
case DNGN_ENTER_GEHENNA:
@@ -4483,19 +4483,20 @@ void tile_place_monster(int gx, int gy, int idx, bool foreground, bool detected)
else
{
// Retain the magic mapped terrain, but don't give away the real
- // features either.
+ // features.
if (is_terrain_mapped(gc))
{
unsigned int feature = grd(gc);
unsigned int grid_symbol;
- unsigned short grid_color;
- get_item_symbol(feature, &grid_symbol, &grid_color);
+ unsigned short grid_colour;
+ get_item_symbol(feature, &grid_symbol, &grid_colour);
unsigned int fg;
unsigned int bg;
tileidx_unseen(fg, bg, grid_symbol, gc);
env.tile_bk_bg(gc) = bg;
+// env.tile_bk_bg(gc) = fg;
}
env.tile_bk_fg(gc) = t0;
}
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 7d4878c93f..171141a3c8 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -826,19 +826,38 @@ void clear_map(bool clear_detected_items, bool clear_detected_monsters)
if (!clear_detected_monsters && is_envmap_detected_mons(p))
continue;
- if (is_terrain_mapped(p))
+#ifdef USE_TILE
+ if (is_terrain_mapped(p) && !is_envmap_detected_mons(p))
continue;
+#endif
- set_envmap_obj(p, is_terrain_known(p)? grd(p) : DNGN_UNSEEN);
+ set_envmap_obj(p, is_terrain_seen(p) || is_terrain_mapped(p)
+ ? grd(p) : DNGN_UNSEEN);
set_envmap_detected_mons(p, false);
set_envmap_detected_item(p, false);
#ifdef USE_TILE
- set_envmap_obj(p, is_terrain_known(p)? grd(p) : DNGN_UNSEEN);
- env.tile_bk_fg(p) = 0;
- env.tile_bk_bg(p) = is_terrain_known(p) ?
- tile_idx_unseen_terrain(p.x, p.y, grd(p)) :
- tileidx_feature(DNGN_UNSEEN, p.x, p.y);
+ if (is_terrain_mapped(p))
+ {
+ unsigned int feature = grd(p);
+
+ unsigned int grid_symbol;
+ unsigned short grid_colour;
+ get_item_symbol(feature, &grid_symbol, &grid_colour);
+
+ unsigned int fg;
+ unsigned int bg;
+ tileidx_unseen(fg, bg, grid_symbol, p);
+ env.tile_bk_bg(p) = bg;
+ env.tile_bk_fg(p) = fg;
+ }
+ else
+ {
+ env.tile_bk_bg(p) = is_terrain_seen(p) ?
+ tile_idx_unseen_terrain(p.x, p.y, grd(p)) :
+ tileidx_feature(DNGN_UNSEEN, p.x, p.y);
+ env.tile_bk_fg(p) = 0;
+ }
#endif
}
}
@@ -3918,17 +3937,34 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
if (is_terrain_changed(*ri))
clear_envmap_grid(*ri);
+#if 0
#ifdef USE_TILE
if (!wizard_map && is_terrain_known(*ri) && !is_terrain_mapped(*ri))
{
// Can't use set_envmap_obj because that would
// overwrite the gmap.
- env.tile_bk_bg(*ri) = tile_idx_unseen_terrain(ri->x, ri->y,
- grd(*ri));
+ if (is_terrain_seen(*ri))
+ {
+ env.tile_bk_bg(*ri) = tile_idx_unseen_terrain(ri->x, ri->y,
+ grd(*ri));
+ }
+ else
+ {
+ unsigned int feature = grd(*ri);
+ unsigned int grid_symbol;
+ unsigned short grid_color;
+ get_item_symbol(feature, &grid_symbol, &grid_color);
+
+ unsigned int fg;
+ unsigned int bg;
+ tileidx_unseen(fg, bg, grid_symbol, *ri);
+ env.tile_bk_bg(*ri) = bg;
+ }
}
#endif
+#endif
- if (!wizard_map && (is_terrain_known(*ri) || is_terrain_seen(*ri)))
+ if (!wizard_map && (is_terrain_seen(*ri) || is_terrain_mapped(*ri)))
continue;
bool open = true;
@@ -3953,7 +3989,15 @@ bool magic_mapping(int map_radius, int proportion, bool suppress_msg,
set_envmap_obj(*ri, grd(*ri));
if (wizard_map)
+ {
set_terrain_seen(*ri);
+#ifdef USE_TILE
+ // Can't use set_envmap_obj because that would
+ // overwrite the gmap.
+ env.tile_bk_bg(*ri) = tile_idx_unseen_terrain(ri->x, ri->y,
+ grd(*ri));
+#endif
+ }
else
set_terrain_mapped(*ri);