STATIC_PTR int NDECL(doconduct); /**/
STATIC_PTR boolean NDECL(minimal_enlightenment);
-STATIC_DCL void FDECL(enlght_line, (const char *,const char *,const char *));
+STATIC_DCL void FDECL(enlght_line, (const char *,const char *,const char *,char *));
STATIC_DCL char *FDECL(enlght_combatinc, (const char *,int,int,char *));
#if defined(UNIX) || defined(SAFERHANGUP)
static void NDECL(end_of_input);
have_been[] = "have been ",
have_never[] = "have never ", never[] = "never ";
-#define enl_msg(prefix,present,past,suffix) \
- enlght_line(prefix, final ? past : present, suffix)
-#define you_are(attr) enl_msg(You_,are,were,attr)
-#define you_have(attr) enl_msg(You_,have,had,attr)
-#define you_can(attr) enl_msg(You_,can,could,attr)
-#define you_have_been(goodthing) enl_msg(You_,have_been,were,goodthing)
-#define you_have_never(badthing) enl_msg(You_,have_never,never,badthing)
-#define you_have_X(something) enl_msg(You_,have,(const char *)"",something)
+#define enl_msg(prefix,present,past,suffix,ps) \
+ enlght_line(prefix, final ? past : present, suffix, ps)
+#define you_are(attr,ps) enl_msg(You_,are,were,attr,ps)
+#define you_have(attr,ps) enl_msg(You_,have,had,attr,ps)
+#define you_can(attr,ps) enl_msg(You_,can,could,attr,ps)
+#define you_have_been(goodthing) enl_msg(You_,have_been,were,goodthing,"")
+#define you_have_never(badthing) enl_msg(You_,have_never,never,badthing,"")
+#define you_have_X(something) enl_msg(You_,have,(const char *)"",something,"")
static void
-enlght_line(start, middle, end)
+enlght_line(start, middle, end, ps)
const char *start, *middle, *end;
+char *ps;
{
char buf[BUFSZ];
- Sprintf(buf, "%s%s%s.", start, middle, end);
+ Sprintf(buf, "%s%s%s%s.", start, middle, end, ps);
putstr(en_win, 0, buf);
}
"the Envoy of Balance",
"the Glory of Arioch"
};
- you_are(hofe_titles[u.uevent.uhand_of_elbereth - 1]);
+ you_are(hofe_titles[u.uevent.uhand_of_elbereth - 1],"");
}
#endif
/* note: piousness 20 matches MIN_QUEST_ALIGN (quest.h) */
- if (u.ualign.record >= 20) you_are("piously aligned");
- else if (u.ualign.record > 13) you_are("devoutly aligned");
- else if (u.ualign.record > 8) you_are("fervently aligned");
- else if (u.ualign.record > 3) you_are("stridently aligned");
- else if (u.ualign.record == 3) you_are("aligned");
- else if (u.ualign.record > 0) you_are("haltingly aligned");
- else if (u.ualign.record == 0) you_are("nominally aligned");
- else if (u.ualign.record >= -3) you_have("strayed");
- else if (u.ualign.record >= -8) you_have("sinned");
- else you_have("transgressed");
+ if (u.ualign.record >= 20) you_are("piously aligned","");
+ else if (u.ualign.record > 13) you_are("devoutly aligned","");
+ else if (u.ualign.record > 8) you_are("fervently aligned","");
+ else if (u.ualign.record > 3) you_are("stridently aligned","");
+ else if (u.ualign.record == 3) you_are("aligned","");
+ else if (u.ualign.record > 0) you_are("haltingly aligned","");
+ else if (u.ualign.record == 0) you_are("nominally aligned","");
+ else if (u.ualign.record >= -3) you_have("strayed","");
+ else if (u.ualign.record >= -8) you_have("sinned","");
+ else you_have("transgressed","");
#ifdef WIZARD
if (wizard) {
Sprintf(buf, " %d", u.ualign.record);
- enl_msg("Your alignment ", "is", "was", buf);
+ enl_msg("Your alignment ", "is", "was", buf, "");
}
#endif
/*** Resistances to troubles ***/
- if (Fire_resistance) you_are("fire resistant");
- if (Cold_resistance) you_are("cold resistant");
- if (Sleep_resistance) you_are("sleep resistant");
- if (Disint_resistance) you_are("disintegration-resistant");
- if (Shock_resistance) you_are("shock resistant");
- if (Poison_resistance) you_are("poison resistant");
- if (Drain_resistance) you_are("level-drain resistant");
- if (Sick_resistance) you_are("immune to sickness");
- if (Antimagic) you_are("magic-protected");
- if (Acid_resistance) you_are("acid resistant");
+ if (Fire_resistance) you_are("fire resistant",from_what(FIRE_RES));
+ if (Cold_resistance) you_are("cold resistant",from_what(COLD_RES));
+ if (Sleep_resistance) you_are("sleep resistant",from_what(SLEEP_RES));
+ if (Disint_resistance)
+ you_are("disintegration-resistant",from_what(DISINT_RES));
+ if (Shock_resistance) you_are("shock resistant",from_what(SHOCK_RES));
+ if (Poison_resistance) you_are("poison resistant",from_what(POISON_RES));
+ if (Drain_resistance)
+ you_are("level-drain resistant",from_what(DRAIN_RES));
+ if (Sick_resistance) you_are("immune to sickness",from_what(SICK_RES));
+ if (Antimagic) you_are("magic-protected",from_what(ANTIMAGIC));
+ if (Acid_resistance) you_are("acid resistant",from_what(ACID_RES));
if (Stone_resistance)
- you_are("petrification resistant");
- if (Invulnerable) you_are("invulnerable");
- if (u.uedibility) you_can("recognize detrimental food");
+ you_are("petrification resistant",from_what(STONE_RES));
+ if (Invulnerable) you_are("invulnerable",from_what(INVULNERABLE));
+ if (u.uedibility) you_can("recognize detrimental food","");
/*** Troubles ***/
if (Halluc_resistance)
- enl_msg("You resist", "", "ed", " hallucinations");
+ enl_msg("You resist", "", "ed", " hallucinations",
+ from_what(HALLUC_RES));
if (final) {
- if (Hallucination) you_are("hallucinating");
- if (Stunned) you_are("stunned");
- if (Confusion) you_are("confused");
- if (Blinded) you_are("blinded");
- if (Deaf) you_are("deaf");
+ if (Hallucination) you_are("hallucinating","");
+ if (Stunned) you_are("stunned","");
+ if (Confusion) you_are("confused","");
+ if (Blinded) you_are("blinded",from_what(BLINDED));
+ if (Deaf) you_are("deaf",from_what(DEAF));
if (Sick) {
if (u.usick_type & SICK_VOMITABLE)
- you_are("sick from food poisoning");
+ you_are("sick from food poisoning","");
if (u.usick_type & SICK_NONVOMITABLE)
- you_are("sick from illness");
+ you_are("sick from illness","");
}
}
- if (Stoned) you_are("turning to stone");
- if (Slimed) you_are("turning into slime");
- if (Strangled) you_are((u.uburied) ? "buried" : "being strangled");
+ if (Stoned) you_are("turning to stone","");
+ if (Slimed) you_are("turning into slime","");
+ if (Strangled) you_are((u.uburied) ? "buried" : "being strangled","");
if (Glib) {
Sprintf(buf, "slippery %s", makeplural(body_part(FINGER)));
- you_have(buf);
+ you_have(buf,"");
}
- if (Fumbling) enl_msg("You fumble", "", "d", "");
+ if (Fumbling) enl_msg("You fumble", "", "d", "",from_what(FUMBLING));
if (Wounded_legs
#ifdef STEED
&& !u.usteed
#endif
) {
Sprintf(buf, "wounded %s", makeplural(body_part(LEG)));
- you_have(buf);
+ you_have(buf,"");
}
#if defined(WIZARD) && defined(STEED)
if (Wounded_legs && u.usteed && wizard) {
Strcpy(buf, x_monnam(u.usteed, ARTICLE_YOUR, (char *)0,
SUPPRESS_SADDLE | SUPPRESS_HALLUCINATION, FALSE));
*buf = highc(*buf);
- enl_msg(buf, " has", " had", " wounded legs");
+ enl_msg(buf, " has", " had", " wounded legs", "");
}
#endif
- if (Sleeping) enl_msg("You ", "fall", "fell", " asleep");
- if (Hunger) enl_msg("You hunger", "", "ed", " rapidly");
+ if (Sleeping) enl_msg("You ", "fall", "fell", " asleep", "");
+ if (Hunger) enl_msg("You hunger", "", "ed", " rapidly", "");
/*** Vision and senses ***/
- if (See_invisible) enl_msg(You_, "see", "saw", " invisible");
- if (Blind_telepat) you_are("telepathic");
- if (Warning) you_are("warned");
+ if (See_invisible) enl_msg(You_, "see", "saw", " invisible",
+ from_what(SEE_INVIS));
+ if (Blind_telepat) you_are("telepathic",from_what(TELEPAT));
+ if (Warning) you_are("warned", from_what(WARNING));
if (Warn_of_mon && context.warntype) {
Sprintf(buf, "aware of the presence of %s",
(context.warntype & M2_ORC) ? "orcs" :
(context.warntype & M2_DEMON) ? "demons" :
something);
- you_are(buf);
+ you_are(buf,from_what(WARN_OF_MON));
}
- if (Undead_warning) you_are("warned of undead");
- if (Searching) you_have("automatic searching");
- if (Clairvoyant) you_are("clairvoyant");
- if (Infravision) you_have("infravision");
- if (Detect_monsters) you_are("sensing the presence of monsters");
- if (u.umconf) you_are("going to confuse monsters");
+ if (Undead_warning) you_are("warned of undead",from_what(WARN_UNDEAD));
+ if (Searching) you_have("automatic searching",from_what(SEARCHING));
+ if (Clairvoyant) you_are("clairvoyant",from_what(CLAIRVOYANT));
+ if (Infravision) you_have("infravision",from_what(INFRAVISION));
+ if (Detect_monsters)
+ you_are("sensing the presence of monsters", "");
+ if (u.umconf) you_are("going to confuse monsters","");
/*** Appearance and behavior ***/
if (Adornment) {
if(uleft && uleft->otyp == RIN_ADORNMENT) adorn += uleft->spe;
if(uright && uright->otyp == RIN_ADORNMENT) adorn += uright->spe;
if (adorn < 0)
- you_are("poorly adorned");
+ you_are("poorly adorned","");
else
- you_are("adorned");
+ you_are("adorned","");
}
- if (Invisible) you_are("invisible");
- else if (Invis) you_are("invisible to others");
+ if (Invisible) you_are("invisible",from_what(INVIS));
+ else if (Invis) you_are("invisible to others",from_what(INVIS));
/* ordinarily "visible" is redundant; this is a special case for
the situation when invisibility would be an expected attribute */
else if ((HInvis || EInvis || pm_invisible(youmonst.data)) && BInvis)
- you_are("visible");
- if (Displaced) you_are("displaced");
- if (Stealth) you_are("stealthy");
- if (Aggravate_monster) enl_msg("You aggravate", "", "d", " monsters");
- if (Conflict) enl_msg("You cause", "", "d", " conflict");
+ you_are("visible","");
+ if (Displaced) you_are("displaced","");
+ if (Stealth) you_are("stealthy",from_what(STEALTH));
+ if (Aggravate_monster)
+ enl_msg("You aggravate", "", "d", " monsters","");
+ if (Conflict) enl_msg("You cause", "", "d", " conflict","");
/*** Transportation ***/
- if (Jumping) you_can("jump");
- if (Teleportation) you_can("teleport");
- if (Teleport_control) you_have("teleport control");
- if (Lev_at_will) you_are("levitating, at will");
- else if (Levitation) you_are("levitating"); /* without control */
- else if (Flying) you_can("fly");
- if (Wwalking) you_can("walk on water");
- if (Swimming) you_can("swim");
- if (Breathless) you_can("survive without air");
- else if (Amphibious) you_can("breathe water");
- if (Passes_walls) you_can("walk through walls");
+ if (Jumping) you_can("jump",from_what(JUMPING));
+ if (Teleportation) you_can("teleport",from_what(TELEPORT));
+ if (Teleport_control)
+ you_have("teleport control",from_what(TELEPORT_CONTROL));
+ if (Lev_at_will) you_are("levitating, at will", "");
+ else if (Levitation)
+ you_are("levitating",from_what(LEVITATION)); /* without control */
+ else if (Flying) you_can("fly",from_what(FLYING));
+ if (Wwalking) you_can("walk on water",from_what(WWALKING));
+ if (Swimming) you_can("swim",from_what(SWIMMING));
+ if (Breathless) you_can("survive without air",from_what(MAGICAL_BREATHING));
+ else if (Amphibious) you_can("breathe water",from_what(MAGICAL_BREATHING));
+ if (Passes_walls) you_can("walk through walls",from_what(PASSES_WALLS));
#ifdef STEED
/* If you die while dismounting, u.usteed is still set. Since several
* places in the done() sequence depend on u.usteed, just detect this
* special case. */
if (u.usteed && (final < 2 || strcmp(killer.name, "riding accident"))) {
Sprintf(buf, "riding %s", y_monnam(u.usteed));
- you_are(buf);
+ you_are(buf,"");
}
#endif
if (u.uswallow) {
#ifdef WIZARD
if (wizard) Sprintf(eos(buf), " (%u)", u.uswldtim);
#endif
- you_are(buf);
+ you_are(buf,"");
} else if (u.ustuck) {
Sprintf(buf, "%s %s",
(Upolyd && sticks(youmonst.data)) ? "holding" : "held by",
a_monnam(u.ustuck));
- you_are(buf);
+ you_are(buf,"");
}
/*** Physical attributes ***/
if (u.uhitinc)
- you_have(enlght_combatinc("to hit", u.uhitinc, final, buf));
+ you_have(enlght_combatinc("to hit", u.uhitinc, final, buf),"");
if (u.udaminc)
- you_have(enlght_combatinc("damage", u.udaminc, final, buf));
- if (Slow_digestion) you_have("slower digestion");
- if (Regeneration) enl_msg("You regenerate", "", "d", "");
+ you_have(enlght_combatinc("damage", u.udaminc, final, buf),"");
+ if (Slow_digestion) you_have("slower digestion",from_what(SLOW_DIGESTION));
+ if (Regeneration) enl_msg("You regenerate", "", "d", "",from_what(REGENERATION));
if (u.uspellprot || Protection) {
int prot = 0;
prot += u.uspellprot;
if (prot < 0)
- you_are("ineffectively protected");
+ you_are("ineffectively protected","");
else
- you_are("protected");
+ you_are("protected","");
}
if (Protection_from_shape_changers)
- you_are("protected from shape changers");
- if (Polymorph) you_are("polymorphing");
- if (Polymorph_control) you_have("polymorph control");
+ you_are("protected from shape changers","");
+ if (Polymorph) you_are("polymorphing","");
+ if (Polymorph_control)
+ you_have("polymorph control",from_what(POLYMORPH_CONTROL));
if (u.ulycn >= LOW_PM) {
Strcpy(buf, an(mons[u.ulycn].mname));
- you_are(buf);
+ you_are(buf,"");
}
if (Upolyd) {
if (u.umonnum == u.ulycn) Strcpy(buf, "in beast form");
#ifdef WIZARD
if (wizard) Sprintf(eos(buf), " (%d)", u.mtimedone);
#endif
- you_are(buf);
+ you_are(buf,"");
}
- if (Unchanging) you_can("not change from your current form");
- if (Fast) you_are(Very_fast ? "very fast" : "fast");
- if (Reflecting) you_have("reflection");
- if (Free_action) you_have("free action");
- if (Fixed_abil) you_have("fixed abilities");
+ if (Unchanging) you_can("not change from your current form","");
+ if (Fast) you_are(Very_fast ? "very fast" : "fast",from_what(FAST));
+ if (Reflecting) you_have("reflection",from_what(REFLECTING));
+ if (Free_action) you_have("free action",from_what(FREE_ACTION));
+ if (Fixed_abil) you_have("fixed abilities",from_what(FIXED_ABIL));
if (Lifesaved)
- enl_msg("Your life ", "will be", "would have been", " saved");
- if (u.twoweap) you_are("wielding two weapons at once");
- if (u.utraptype == TT_BURIEDBALL) you_are("fastened to a buried ball");
+ enl_msg("Your life ", "will be", "would have been", " saved","");
+ if (u.twoweap) you_are("wielding two weapons at once","");
+ if (u.utraptype == TT_BURIEDBALL) you_are("fastened to a buried ball","");
/*** Miscellany ***/
if (Luck) {
#ifdef WIZARD
if (wizard) Sprintf(eos(buf), " (%d)", Luck);
#endif
- you_are(buf);
+ you_are(buf,"");
}
#ifdef WIZARD
- else if (wizard) enl_msg("Your luck ", "is", "was", " zero");
+ else if (wizard) enl_msg("Your luck ", "is", "was", " zero","");
#endif
- if (u.moreluck > 0) you_have("extra luck");
- else if (u.moreluck < 0) you_have("reduced luck");
+ if (u.moreluck > 0) you_have("extra luck","");
+ else if (u.moreluck < 0) you_have("reduced luck","");
if (carrying(LUCKSTONE) || stone_luck(TRUE)) {
- ltmp = stone_luck(FALSE);
+ ltmp = stone_luck(0);
if (ltmp <= 0)
- enl_msg("Bad luck ", "does", "did", " not time out for you");
+ enl_msg("Bad luck ", "does", "did", " not time out for you","");
if (ltmp >= 0)
- enl_msg("Good luck ", "does", "did", " not time out for you");
+ enl_msg("Good luck ", "does", "did", " not time out for you","");
}
if (u.ugangr) {
#ifdef WIZARD
if (wizard) Sprintf(eos(buf), " (%d)", u.ugangr);
#endif
- enl_msg(u_gname(), " is", " was", buf);
+ enl_msg(u_gname(), " is", " was", buf,"");
} else
/*
* We need to suppress this when the game is over, because death
#ifdef WIZARD
if (wizard) Sprintf(eos(buf), " (%d)", u.ublesscnt);
#endif
- you_can(buf);
+ you_can(buf,"");
}
{
break;
}
}
- if (p) enl_msg(You_, "have been killed ", p, buf);
+ if (p) enl_msg(You_, "have been killed ", p, buf, "");
}
display_nhwindow(en_win, TRUE);
putstr(en_win, 0, "");
if (!u.uconduct.food)
- enl_msg(You_, "have gone", "went", " without food");
+ enl_msg(You_, "have gone", "went", " without food", "");
/* But beverages are okay */
else if (!u.uconduct.unvegan)
you_have_X("followed a strict vegan diet");
if (!u.uconduct.wisharti)
enl_msg(You_, "have not wished", "did not wish",
- " for any artifacts");
+ " for any artifacts", "");
}
/* Pop up the window and wait for a key */