sitting there and taking the attacks until they die
prefer herbivorous stone-to-flesh message when hero is a vegitarian
try even harder to avoid incorrect map display while changing levels
+no "freaked" message by exploding black light, unless you really are
Platform- and/or Interface-Specific Fixes
E void FDECL(make_sick, (long, const char *, BOOLEAN_P,int));
E void FDECL(make_slimed, (long,const char*));
E void FDECL(make_vomiting, (long,BOOLEAN_P));
-E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
+E boolean FDECL(make_hallucinated, (long,BOOLEAN_P,long));
E int NDECL(dodrink);
E int FDECL(dopotion, (struct obj *));
E int FDECL(peffects, (struct obj *));
break;
case 4: (void) adjattrib(rn2(A_MAX), -1, FALSE);
break;
- case 5: make_hallucinated(HHallucination + lcount, TRUE, 0L);
+ case 5: (void) make_hallucinated(HHallucination + lcount, TRUE, 0L);
break;
}
return;
did_prop++;
break;
case prop2trbl(HALLUC):
- make_hallucinated(0L, TRUE, 0L);
+ (void) make_hallucinated(0L, TRUE, 0L);
did_prop++;
break;
case prop2trbl(VOMITING):
* that can print a message--need to guard against being printed
* when restoring a game
*/
- make_hallucinated((long)!on, restoring ? FALSE : TRUE, wp_mask);
+ (void) make_hallucinated((long)!on, restoring ? FALSE : TRUE, wp_mask);
}
if (spfx & SPFX_ESP) {
if(on) ETelepat |= wp_mask;
}
break;
case 4 : pline("%s your mind!", Tobjnam(obj, "zap"));
- make_hallucinated(HHallucination + rnd(100),FALSE,0L);
+ (void) make_hallucinated(HHallucination + rnd(100),FALSE,0L);
break;
case 5 : pline("%s!", Tobjnam(obj, "explode"));
useup(obj);
u.umonnum == PM_VIOLET_FUNGUS ||
dmgtype(youmonst.data, AD_STUN));
if (!not_affected) {
+ boolean chg;
if (!Hallucination)
- You("are freaked by a blast of kaleidoscopic light!");
- make_hallucinated(HHallucination + (long)tmp,FALSE,0L);
+ You("are caught in a blast of kaleidoscopic light!");
+ chg = make_hallucinated(HHallucination + (long)tmp,FALSE,0L);
+ You("%s.", chg ? "are freaked out" : "seem unaffected");
}
break;
}
}
-void
+boolean
make_hallucinated(xtime, talk, mask)
long xtime; /* nonzero if this is an attempt to turn on hallucination */
boolean talk;
context.botl = 1;
if (talk) pline(message, verb);
}
+ return changed;
}
STATIC_OVL void
break;
case POT_HALLUCINATION:
if (Hallucination || Halluc_resistance) nothing++;
- make_hallucinated(itimeout_incr(HHallucination,
+ (void) make_hallucinated(itimeout_incr(HHallucination,
rn1(200, 600 - 300 * bcsign(otmp))),
TRUE, 0L);
break;
}
if(Hallucination) {
You("are shocked back to your senses!");
- make_hallucinated(0L,FALSE,0L);
+ (void) make_hallucinated(0L,FALSE,0L);
}
break;
case POT_CONFUSION:
healup(d(6 + 2 * bcsign(otmp), 8),
otmp->blessed ? 5 : !otmp->cursed ? 2 : 0,
!otmp->cursed, TRUE);
- make_hallucinated(0L,TRUE,0L);
+ (void) make_hallucinated(0L,TRUE,0L);
exercise(A_CON, TRUE);
exercise(A_STR, TRUE);
break;
u.ulevelmax -= 1;
pluslvl(FALSE);
}
- make_hallucinated(0L,TRUE,0L);
+ (void) make_hallucinated(0L,TRUE,0L);
exercise(A_STR, TRUE);
exercise(A_CON, TRUE);
break;
break;
case TROUBLE_HALLUCINATION:
pline ("Looks like you are back in Kansas.");
- make_hallucinated(0L,FALSE,0L);
+ (void) make_hallucinated(0L,FALSE,0L);
break;
#ifdef STEED
case TROUBLE_SADDLE:
break;
case HALLUC:
HHallucination = 1;
- make_hallucinated(0L, TRUE, 0L);
+ (void) make_hallucinated(0L, TRUE, 0L);
stop_occupation();
break;
case SLEEPING:
stagger(youmonst.data, "stagger"));
}
make_stunned(HStun + rn1(7, 16),FALSE);
- make_hallucinated(HHallucination + rn1(5, 16),FALSE,0L);
+ (void) make_hallucinated(HHallucination + rn1(5, 16),FALSE,0L);
break;
default: impossible("bad chest trap");
break;