From: nethack.allison Date: Sat, 5 Jun 2004 05:22:40 +0000 (+0000) Subject: C342-46: cleric cast lightning X-Git-Tag: MOVE2GIT~1452 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7de00a45beea2e498f3edf2afa1354d443e25c8e;p=nethack C342-46: cleric cast lightning Get rid of an old known buglist entry C342-46 > Cleric cast lightning doesn't blind as other lightning does --- diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 6e6baa5c6..509681487 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -29,6 +29,7 @@ calculate weight of corpses on special levels correctly Sting could trigger premature display of orcs during savegame restore Sting now glows light blue again prevent "offering" or other words with similar ending from matching ring quote +make cleric cast lightning blind as other lightning does Platform- and/or Interface-Specific Fixes diff --git a/include/extern.h b/include/extern.h index a684735df..c7c6f06c5 100644 --- a/include/extern.h +++ b/include/extern.h @@ -2451,6 +2451,7 @@ E void FDECL(destroy_item, (int,int)); E int FDECL(destroy_mitem, (struct monst *,int,int)); E int FDECL(resist, (struct monst *,CHAR_P,int,int)); E void NDECL(makewish); +E boolean FDECL(flashburn, (long)); #endif /* !MAKEDEFS_C && !LEV_LEX_C */ diff --git a/src/mcastu.c b/src/mcastu.c index 24ea19ad6..9135399a0 100644 --- a/src/mcastu.c +++ b/src/mcastu.c @@ -522,6 +522,7 @@ int spellnum; if (Half_spell_damage) dmg = (dmg + 1) / 2; destroy_item(WAND_CLASS, AD_ELEC); destroy_item(RING_CLASS, AD_ELEC); + (void) flashburn((long)rnd(100)); break; } case CLC_CURSE_ITEMS: diff --git a/src/zap.c b/src/zap.c index e6f884bbd..fededb390 100644 --- a/src/zap.c +++ b/src/zap.c @@ -1920,11 +1920,7 @@ boolean ordinary; } destroy_item(WAND_CLASS, AD_ELEC); destroy_item(RING_CLASS, AD_ELEC); - if (!resists_blnd(&youmonst)) { - You(are_blinded_by_the_flash); - make_blinded((long)rnd(100),FALSE); - if (!Blind) Your(vision_clears); - } + (void) flashburn((long)rnd(100)); break; case SPE_FIREBALL: @@ -2099,12 +2095,7 @@ boolean ordinary; case EXPENSIVE_CAMERA: #endif damage += rnd(25); - if (!resists_blnd(&youmonst)) { - You(are_blinded_by_the_flash); - make_blinded((long)damage, FALSE); - makeknown(obj->otyp); - if (!Blind) Your(vision_clears); - } + if (flashburn((long)damage)) makeknown(obj->otyp); damage = 0; /* reset */ break; case WAN_OPENING: @@ -2161,6 +2152,19 @@ boolean ordinary; return(damage); } +boolean +flashburn(duration) +long duration; +{ + if (!resists_blnd(&youmonst)) { + You(are_blinded_by_the_flash); + make_blinded(duration, FALSE); + if (!Blind) Your(vision_clears); + return TRUE; + } + return FALSE; +} + #ifdef STEED /* you've zapped a wand downwards while riding * Return TRUE if the steed was hit by the wand. @@ -3459,11 +3463,7 @@ register int dx,dy; } else { pline("%s whizzes by you!", The(fltxt)); } - if (abstype == ZT_LIGHTNING && !resists_blnd(&youmonst)) { - You(are_blinded_by_the_flash); - make_blinded((long)d(nd,50),FALSE); - if (!Blind) Your(vision_clears); - } + if (abstype == ZT_LIGHTNING) (void) flashburn((long)d(nd,50)); stop_occupation(); nomul(0); }