From 4bddff39d6767838f019f79d069591020223389c Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Tue, 28 Jul 2009 14:05:26 +0000 Subject: * 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 --- crawl-ref/docs/changelog.txt | 5 +- crawl-ref/source/delay.cc | 9 ++- crawl-ref/source/rltiles/dc-dngn.txt | 4 +- .../source/rltiles/dc-dngn/escape_hatch_down.png | Bin 0 -> 897 bytes .../source/rltiles/dc-dngn/escape_hatch_up.png | Bin 0 -> 1023 bytes .../source/rltiles/dc-dngn/rock_stairs_down.png | Bin 879 -> 0 bytes .../source/rltiles/dc-dngn/rock_stairs_up.png | Bin 675 -> 0 bytes crawl-ref/source/spells2.cc | 9 ++- crawl-ref/source/tilepick.cc | 11 ++-- crawl-ref/source/view.cc | 64 +++++++++++++++++---- 10 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.png create mode 100644 crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.png delete mode 100644 crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.png delete mode 100644 crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.png 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 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_down.png 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 Binary files /dev/null and b/crawl-ref/source/rltiles/dc-dngn/escape_hatch_up.png 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 Binary files a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_down.png and /dev/null 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 Binary files a/crawl-ref/source/rltiles/dc-dngn/rock_stairs_up.png and /dev/null 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); -- cgit v1.2.3