*** ../nethack-3.3.0/src/artifact.c Sat Dec 11 06:20:53 1999 --- ./src/artifact.c Mon Jul 24 21:57:52 2000 *************** *** 1189,1195 **** break; } case ENLIGHTENING: ! enlightenment(0); break; case CREATE_AMMO: { struct obj *otmp = mksobj(ARROW, TRUE, FALSE); --- 1189,1195 ---- break; } case ENLIGHTENING: ! enlightenment(0, FALSE); break; case CREATE_AMMO: { struct obj *otmp = mksobj(ARROW, TRUE, FALSE); *** ../nethack-3.3.0/src/cmd.c Sat Dec 11 06:20:53 1999 --- ./src/cmd.c Tue Jul 25 20:50:56 2000 *************** *** 689,704 **** } void ! enlightenment(final) int final; /* 0 => still in progress; 1 => over, survived; 2 => dead */ { int ltmp; ! char buf[BUFSZ]; en_win = create_nhwindow(NHW_MENU); putstr(en_win, 0, final ? "Final Attributes:" : "Current Attributes:"); putstr(en_win, 0, ""); #ifdef ELBERETH if (u.uevent.uhand_of_elbereth) { static const char *hofe_titles[3] = { --- 689,708 ---- } void ! enlightenment(final, want_dump) int final; /* 0 => still in progress; 1 => over, survived; 2 => dead */ + boolean want_dump; { int ltmp; ! char buf[BUFSZ], buf2[BUFSZ]; en_win = create_nhwindow(NHW_MENU); putstr(en_win, 0, final ? "Final Attributes:" : "Current Attributes:"); putstr(en_win, 0, ""); + if (want_dump) /* This one's safe: final>1 <==> want_dump==TRUE */ + dump("", "Final attributes"); + #ifdef ELBERETH if (u.uevent.uhand_of_elbereth) { static const char *hofe_titles[3] = { *************** *** 707,825 **** "the Glory of Arioch" }; 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"); #ifdef WIZARD if (wizard) { Sprintf(buf, " %d", u.ualign.record); 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 (Stone_resistance) ! you_are("petrification resistant"); ! if (Invulnerable) you_are("invulnerable"); /*** Troubles ***/ ! if (Halluc_resistance) enl_msg("You resist", "", "ed", " hallucinations"); if (final) { ! if (Hallucination) you_are("hallucinating"); ! if (Stunned) you_are("stunned"); ! if (Confusion) you_are("confused"); ! if (Blinded) you_are("blinded"); if (Sick) { ! if (u.usick_type & SICK_VOMITABLE) you_are("sick from food poisoning"); ! if (u.usick_type & SICK_NONVOMITABLE) you_are("sick from illness"); } } ! if (Stoned) you_are("turning to stone"); ! if (Strangled) you_are((u.uburied) ? "buried" : "being strangled"); if (Glib) { Sprintf(buf, "slippery %s", makeplural(body_part(FINGER))); you_have(buf); } ! if (Slimed) you_are("turning into slime"); ! if (Fumbling) enl_msg("You fumble", "", "d", ""); if (Wounded_legs) { Sprintf(buf, "wounded %s", makeplural(body_part(LEG))); you_have(buf); } - 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 (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"); /*** Appearance and behavior ***/ ! if (Adornment) you_are("adorned"); ! if (Invisible) you_are("invisible"); ! else if (Invis) you_are("invisible to others"); /* 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"); /*** 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"); /*** Physical attributes ***/ ! if (Slow_digestion) you_have("slower digestion"); ! if (Regeneration) enl_msg("You regenerate", "", "d", ""); ! if (Protection) 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"); if (u.ulycn >= LOW_PM) { Strcpy(buf, an(mons[u.ulycn].mname)); you_are(buf); } if (Upolyd) { if (u.ulycn >= LOW_PM) Strcpy(buf, "in beast form"); else Sprintf(buf, "polymorphed into %s", an(youmonst.data->mname)); --- 711,1071 ---- "the Glory of Arioch" }; you_are(hofe_titles[u.uevent.uhand_of_elbereth - 1]); + + if (want_dump) + dump(" You were ", (char *)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"); ! if (want_dump) dump(" You were ", "piously aligned"); ! } else if (u.ualign.record > 13) { ! you_are("devoutly aligned"); ! if (want_dump) dump(" You were ", "devoutly aligned"); ! } else if (u.ualign.record > 8) { ! you_are("fervently aligned"); ! if (want_dump) dump(" You were ", "fervently aligned"); ! } else if (u.ualign.record > 3) { ! you_are("stridently aligned"); ! if (want_dump) dump(" You were ", "stridently aligned"); ! } else if (u.ualign.record == 3) { ! you_are("aligned"); ! if (want_dump) dump(" You were ", "aligned"); ! } else if (u.ualign.record > 0) { ! you_are("haltingly aligned"); ! if (want_dump) dump(" You were ", "haltingly aligned"); ! } else if (u.ualign.record == 0) { ! you_are("nominally aligned"); ! if (want_dump) dump(" You were ", "nominally aligned"); ! } else if (u.ualign.record >= -3) { ! you_have("strayed"); ! if (want_dump) dump(" You have ", "strayed"); ! } else if (u.ualign.record >= -8) { ! you_have("sinned"); ! if (want_dump) dump(" You have ", "sinned"); ! } else { ! you_have("transgressed"); ! if (want_dump) dump(" You have ", "transgressed"); ! } ! #ifdef WIZARD if (wizard) { Sprintf(buf, " %d", u.ualign.record); enl_msg("Your alignment ", "is", "was", buf); + + if (want_dump) + dump(" Your alignment was ", buf); } #endif /*** Resistances to troubles ***/ ! if (Fire_resistance) { ! you_are("fire resistant"); ! if (want_dump) dump(" You were ", "fire resistant"); ! } ! ! if (Cold_resistance) { ! you_are("cold resistant"); ! if (want_dump) dump(" You were ", "cold resistant"); ! } ! ! if (Sleep_resistance) { ! you_are("sleep resistant"); ! if (want_dump) dump(" You were ", "sleep resistant"); ! } ! ! if (Disint_resistance) { ! you_are("disintegration-resistant"); ! if (want_dump) dump(" You were ", "disintegration-resistant"); ! } ! ! if (Shock_resistance) { ! you_are("shock resistant"); ! if (want_dump) dump(" You were ", "shock-resistant"); ! } ! ! if (Poison_resistance) { ! you_are("poison resistant"); ! if (want_dump) dump(" You were ", "poison resistant"); ! } ! ! if (Drain_resistance) { ! you_are("level-drain resistant"); ! if (want_dump) dump(" You were ", "level-drain resistant"); ! } ! ! if (Sick_resistance) { ! you_are("immune to sickness"); ! if (want_dump) dump(" You were ", "immune to sickness"); ! } ! ! if (Antimagic) { ! you_are("magic-protected"); ! if (want_dump) dump(" You were ", "magic protected"); ! } ! ! if (Acid_resistance) { ! you_are("acid resistant"); ! if (want_dump) dump(" You were ", "acid resistant"); ! } ! ! if (Stone_resistance) { ! you_are("petrification resistant"); ! if (want_dump) dump(" You were ", "petrification resistant"); ! } ! ! if (Invulnerable) { ! you_are("invulnerable"); ! if (want_dump) dump(" You were ", "invulnerable"); ! } /*** Troubles ***/ ! if (Halluc_resistance) { enl_msg("You resist", "", "ed", " hallucinations"); + if (want_dump) dump(" ", "You resisted hallucinations"); + } + if (final) { ! if (Hallucination) { ! you_are("hallucinating"); ! if (want_dump) dump(" You were ", "hallucinating"); ! } ! ! if (Stunned) { ! you_are("stunned"); ! if (want_dump) dump(" You were ", "stunned"); ! } ! ! if (Confusion) { ! you_are("confused"); ! if (want_dump) dump(" You were ", "confused"); ! } ! ! if (Blinded) { ! you_are("blinded"); ! if (want_dump) dump(" You were ", "blinded"); ! } ! if (Sick) { ! if (u.usick_type & SICK_VOMITABLE) { you_are("sick from food poisoning"); ! if (want_dump) dump(" You were ", "sick from food poisoning"); ! } ! ! if (u.usick_type & SICK_NONVOMITABLE) { you_are("sick from illness"); + if (want_dump) dump(" You were ", "sick from illness"); + } } } ! if (Stoned) { ! you_are("turning to stone"); ! if (want_dump) dump(" You were ", "turning to stone"); ! } ! ! if (Strangled) { ! you_are((u.uburied) ? "buried" : "being strangled"); ! if (want_dump) dump(" You were ", (u.uburied) ? "buried" : "being strangled"); ! } ! if (Glib) { Sprintf(buf, "slippery %s", makeplural(body_part(FINGER))); you_have(buf); + if (want_dump) dump(" You had ", buf); + } + + if (Slimed) { + you_are("turning into slime"); + if (want_dump) dump(" You were ", "turning into slime"); + } + + if (Fumbling) { + enl_msg("You fumble", "", "d", ""); + if (want_dump) dump(" ", "You fumbled"); } ! if (Wounded_legs) { Sprintf(buf, "wounded %s", makeplural(body_part(LEG))); you_have(buf); + if (want_dump) dump(" You had ", buf); + } + + if (Hunger) { + enl_msg("You hunger", "", "ed", " rapidly"); + if (want_dump) dump(" ", "You hungered rapidly"); } /*** Vision and senses ***/ ! if (See_invisible) { ! enl_msg(You_, "see", "saw", " invisible"); ! if (want_dump) dump(" ", "You saw invisible"); ! } ! ! if (Blind_telepat) { ! you_are("telepathic"); ! if (want_dump) dump(" You were ", "telepathic"); ! } ! ! if (Warning) { ! you_are("warned"); ! if (want_dump) dump(" You were ", "warned"); ! } ! ! if (Undead_warning) { ! you_are("warned of undead"); ! if (want_dump) dump(" You were ", "warned of undead"); ! } ! ! if (Searching) { ! you_have("automatic searching"); ! if (want_dump) dump(" You had ", "automatic searching"); ! } ! ! if (Clairvoyant) { ! you_are("clairvoyant"); ! if (want_dump) dump(" You were ", "clairvoyant"); ! } ! ! if (Infravision) { ! you_have("infravision"); ! if (want_dump) dump(" You had ", "infravision"); ! } ! ! if (Detect_monsters) { ! you_are("sensing the presence of monsters"); ! if (want_dump) dump(" You were ", "sensing the presence of monsters"); ! } ! /*** Appearance and behavior ***/ ! if (Adornment) { ! you_are("adorned"); ! if (want_dump) dump(" You were ", "adorned"); ! } ! ! if (Invisible) { ! you_are("invisible"); ! if (want_dump) dump(" You were ", "invisible"); ! } else if (Invis) { ! you_are("invisible to others"); ! if (want_dump) dump(" You were ", "invisible to others"); ! } else if ((HInvis || EInvis || pm_invisible(youmonst.data)) && BInvis) { /* ordinarily "visible" is redundant; this is a special case for the situation when invisibility would be an expected attribute */ ! you_are("visible"); ! if (want_dump) dump(" You were ", "visible"); ! } ! ! if (Displaced) { ! you_are("displaced"); ! if (want_dump) dump(" You were ", "displaced"); ! } ! ! if (Stealth) { ! you_are("stealthy"); ! if (want_dump) dump(" You were ", "stealthy"); ! } ! ! if (Aggravate_monster) { ! enl_msg("You aggravate", "", "d", " monsters"); ! if (want_dump) dump(" ", "You aggravated monsters"); ! } ! ! if (Conflict) { ! enl_msg("You cause", "", "d", " conflict"); ! if (want_dump) dump(" ", "You caused conflict"); ! } ! /*** Transportation ***/ ! if (Jumping) { ! you_can("jump"); ! if (want_dump) dump(" You could ", "jump"); ! } ! ! if (Teleportation) { ! you_can("teleport"); ! if (want_dump) dump(" You could ", "teleport"); ! } ! ! if (Teleport_control) { ! you_have("teleport control"); ! if (want_dump) dump(" You had ", "teleport control"); ! } ! ! if (Lev_at_will) { ! you_are("levitating, at will"); ! if (want_dump) dump(" You were ", "levitating, at will"); ! } else if (Levitation) { ! you_are("levitating"); ! if (want_dump) dump(" You were ", "levitating"); /* without control */ ! } else if (Flying) { ! you_can("fly"); ! if (want_dump) dump(" You could ", "fly"); ! } ! ! if (Wwalking) { ! you_can("walk on water"); ! if (want_dump) dump(" You could ", "walk on water"); ! } ! ! if (Swimming) { ! you_can("swim"); ! if (want_dump) dump(" You could ", "swim"); ! } ! ! if (Breathless) { ! you_can("survive without air"); ! if (want_dump) dump(" You could ", "survive without air"); ! } else if (Amphibious) { ! you_can("breathe water"); ! if (want_dump) dump(" You could ", "breathe water"); ! } ! ! if (Passes_walls) { ! you_can("walk through walls"); ! if (want_dump) dump(" You could ", "walk through walls"); ! } /*** Physical attributes ***/ ! if (Slow_digestion) { ! you_have("slower digestion"); ! if (want_dump) dump(" You had ", "slower digestion"); ! } ! ! if (Regeneration) { ! enl_msg("You regenerate", "", "d", ""); ! if (want_dump) dump(" ", "You regenerated"); ! } ! ! if (Protection) { ! you_are("protected"); ! if (want_dump) dump(" You were ", "protected"); ! } ! ! if (Protection_from_shape_changers) { you_are("protected from shape changers"); ! if (want_dump) dump(" You were ", "protected from shape changers"); ! } ! ! if (Polymorph) { ! you_are("polymorphing"); ! if (want_dump) dump(" You were ", "polymorphing"); ! } ! ! if (Polymorph_control) { ! you_have("polymorph control"); ! if (want_dump) dump(" You had ", "polymorph control"); ! } ! if (u.ulycn >= LOW_PM) { Strcpy(buf, an(mons[u.ulycn].mname)); you_are(buf); + if (want_dump) dump(" You were ", buf); } + if (Upolyd) { if (u.ulycn >= LOW_PM) Strcpy(buf, "in beast form"); else Sprintf(buf, "polymorphed into %s", an(youmonst.data->mname)); *************** *** 827,840 **** if (wizard) Sprintf(eos(buf), " (%d)", u.mtimedone); #endif 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 (Lifesaved) enl_msg("Your life ", "will be", "would have been", " saved"); /*** Miscellany ***/ if (Luck) { --- 1073,1110 ---- if (wizard) Sprintf(eos(buf), " (%d)", u.mtimedone); #endif you_are(buf); + if (want_dump) dump(" You were ", buf); + } + + if (Unchanging) { + you_can("not change from your current form"); + if (want_dump) dump(" You could ", "not change from your current form"); + } + + if (Fast) { + you_are(Very_fast ? "very fast" : "fast"); + if (want_dump) dump(" You were ", Very_fast ? "very fast" : "fast"); + } + + if (Reflecting) { + you_have("reflection"); + if (want_dump) dump(" You had ", "reflection"); + } + + if (Free_action) { + you_have("free action"); + if (want_dump) dump(" You had ", "free action"); } ! ! if (Fixed_abil) { ! you_have("fixed abilities"); ! if (want_dump) dump(" You had ", "fixed abilities"); ! } ! ! if (Lifesaved) { enl_msg("Your life ", "will be", "would have been", " saved"); + if (want_dump) dump(" ", "Your life would have been saved"); + } /*** Miscellany ***/ if (Luck) { *************** *** 846,863 **** if (wizard) Sprintf(eos(buf), " (%d)", Luck); #endif you_are(buf); } #ifdef WIZARD ! 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 (carrying(LUCKSTONE) || stone_luck(TRUE)) { ltmp = stone_luck(FALSE); ! if (ltmp <= 0) 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"); } if (u.ugangr) { --- 1116,1148 ---- if (wizard) Sprintf(eos(buf), " (%d)", Luck); #endif you_are(buf); + if (want_dump) dump(" You were ", buf); } #ifdef WIZARD ! else if (wizard) { ! enl_msg("Your luck ", "is", "was", " zero"); ! if (want_dump) dump(" ", "Your luck was zero"); ! } ! #endif ! if (u.moreluck > 0) { ! you_have("extra luck"); ! if (want_dump) dump(" You had ", "extra luck"); ! } else if (u.moreluck < 0) { ! you_have("reduced luck"); ! if (want_dump) dump(" You had ", "reduced luck"); ! } ! if (carrying(LUCKSTONE) || stone_luck(TRUE)) { ltmp = stone_luck(FALSE); ! if (ltmp <= 0) { enl_msg("Bad luck ", "does", "did", " not time out for you"); ! if (want_dump) dump(" ", "Bad luck did not time out for you"); ! } ! ! if (ltmp >= 0) { enl_msg("Good luck ", "does", "did", " not time out for you"); + if (want_dump) dump(" ", "Good luck did not time out for you"); + } } if (u.ugangr) { *************** *** 867,872 **** --- 1152,1161 ---- if (wizard) Sprintf(eos(buf), " (%d)", u.ugangr); #endif enl_msg(u_gname(), " is", " was", buf); + if (want_dump) { + Sprintf(buf2, "%s was %s", u_gname(), buf); + dump(" ", buf2); + } } else /* * We need to suppress this when the game is over, because death *************** *** 885,890 **** --- 1174,1180 ---- if (wizard) Sprintf(eos(buf), " (%d)", u.ublesscnt); #endif you_can(buf); + if (want_dump) dump(" You could ", buf); } { *************** *** 911,921 **** break; } } ! if (p) enl_msg(You_, "have been killed ", p, buf); } display_nhwindow(en_win, TRUE); destroy_nhwindow(en_win); return; } --- 1201,1221 ---- break; } } ! if (p) { ! enl_msg(You_, "have been killed ", p, buf); ! if (want_dump) { ! Sprintf(buf2, "You %s %s", p, buf); ! dump(" ", buf2); ! } ! } } display_nhwindow(en_win, TRUE); destroy_nhwindow(en_win); + + if (want_dump) + dump("", ""); + return; } *************** *** 923,929 **** wiz_attributes() { if (wizard || discover) ! enlightenment(0); else pline("Unavailable command '^X'."); return 0; --- 1223,1229 ---- wiz_attributes() { if (wizard || discover) ! enlightenment(0, FALSE); else pline("Unavailable command '^X'."); return 0; *************** *** 935,947 **** STATIC_PTR int doconduct() { ! show_conduct(0); return 0; } void ! show_conduct(final) int final; { char buf[BUFSZ]; int ngenocided; --- 1235,1248 ---- STATIC_PTR int doconduct() { ! show_conduct(0, FALSE); return 0; } void ! show_conduct(final, want_dump) int final; + boolean want_dump; { char buf[BUFSZ]; int ngenocided; *************** *** 951,1033 **** putstr(en_win, 0, "Voluntary challenges:"); putstr(en_win, 0, ""); ! if (!u.uconduct.food) enl_msg(You_, "have gone", "went", " without food"); /* But beverages are okay */ ! else if (!u.uconduct.flesh) ! you_have_been("a strict vegan"); ! else if (!u.uconduct.meat) you_have_been("vegetarian"); ! if (!u.uconduct.gnostic) you_have_been("an atheist"); ! if (!u.uconduct.weaphit) you_have_never("hit with a wielded weapon"); #ifdef WIZARD ! else if (wizard) { Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit, plur(u.uconduct.weaphit)); you_have_X(buf); ! } #endif ! if (!u.uconduct.killer) you_have_been("a pacifist"); ! if (!u.uconduct.literate) you_have_been("illiterate"); #ifdef WIZARD ! else if (wizard) { Sprintf(buf, "read items or engraved %ld time%s", u.uconduct.literate, plur(u.uconduct.literate)); you_have_X(buf); ! } #endif ngenocided = num_genocides(); if (ngenocided == 0) { you_have_never("genocided any monsters"); } else { Sprintf(buf, "genocided %d type%s of monster%s", ngenocided, plur(ngenocided), plur(ngenocided)); you_have_X(buf); } ! if (!u.uconduct.polypiles) you_have_never("polymorphed an object"); #ifdef WIZARD ! else if (wizard) { Sprintf(buf, "polymorphed %ld item%s", u.uconduct.polypiles, plur(u.uconduct.polypiles)); you_have_X(buf); ! } #endif ! if (!u.uconduct.polyselfs) you_have_never("changed form"); #ifdef WIZARD ! else if (wizard) { Sprintf(buf, "changed form %ld time%s", u.uconduct.polyselfs, plur(u.uconduct.polyselfs)); you_have_X(buf); ! } #endif ! if (!u.uconduct.wishes) you_have_X("used no wishes"); ! else { Sprintf(buf, "used %ld wish%s", u.uconduct.wishes, (u.uconduct.wishes > 1L) ? "es" : ""); you_have_X(buf); ! if (!u.uconduct.wisharti) enl_msg(You_, "have not wished", "did not wish", " for any artifacts"); } /* Pop up the window and wait for a key */ display_nhwindow(en_win, TRUE); destroy_nhwindow(en_win); } #endif /* OVLB */ --- 1252,1364 ---- putstr(en_win, 0, "Voluntary challenges:"); putstr(en_win, 0, ""); ! if (want_dump) ! dump("", "Voluntary challenges"); ! ! ! if (!u.uconduct.food) { enl_msg(You_, "have gone", "went", " without food"); /* But beverages are okay */ ! if (want_dump) dump("", " You have gone without food"); ! } else if (!u.uconduct.flesh) { ! you_have_been("a strict vegan"); ! if (want_dump) dump("", " You have been a strict vegan"); ! } else if (!u.uconduct.meat) { you_have_been("vegetarian"); + if (want_dump) dump("", " You have been vegetarian"); + } ! if (!u.uconduct.gnostic) { you_have_been("an atheist"); + if (want_dump) dump("", " You have been an atheist"); + } ! if (!u.uconduct.weaphit) { you_have_never("hit with a wielded weapon"); + if (want_dump) dump("", " You have never hit with a wielded weapon"); #ifdef WIZARD ! } else if (wizard) { Sprintf(buf, "used a wielded weapon %ld time%s", u.uconduct.weaphit, plur(u.uconduct.weaphit)); you_have_X(buf); ! if (want_dump) dump(" You have ", buf); #endif ! } ! ! if (!u.uconduct.killer) { you_have_been("a pacifist"); + if (want_dump) dump("", " You have been a pacifist"); + } ! if (!u.uconduct.literate) { you_have_been("illiterate"); + if (want_dump) dump("", " You have been illiterate"); #ifdef WIZARD ! } else if (wizard) { Sprintf(buf, "read items or engraved %ld time%s", u.uconduct.literate, plur(u.uconduct.literate)); you_have_X(buf); ! if (want_dump) dump(" You have ", buf); #endif + } ngenocided = num_genocides(); if (ngenocided == 0) { you_have_never("genocided any monsters"); + if (want_dump) dump("", " You have never genocided any monster"); } else { Sprintf(buf, "genocided %d type%s of monster%s", ngenocided, plur(ngenocided), plur(ngenocided)); you_have_X(buf); + if (want_dump) dump(" You have ", buf); } ! if (!u.uconduct.polypiles) { you_have_never("polymorphed an object"); + if (want_dump) dump("", " You have never polymorphed an object"); #ifdef WIZARD ! } else if (wizard) { Sprintf(buf, "polymorphed %ld item%s", u.uconduct.polypiles, plur(u.uconduct.polypiles)); you_have_X(buf); ! if (want_dump) dump(" You have ", buf); #endif + } ! if (!u.uconduct.polyselfs) { you_have_never("changed form"); + if (want_dump) dump("", " You have never changed form"); #ifdef WIZARD ! } else if (wizard) { Sprintf(buf, "changed form %ld time%s", u.uconduct.polyselfs, plur(u.uconduct.polyselfs)); you_have_X(buf); ! if (want_dump) dump(" You have ", buf); #endif + } ! if (!u.uconduct.wishes) { you_have_X("used no wishes"); ! if (want_dump) dump("", " You have used no wishes"); ! } else { Sprintf(buf, "used %ld wish%s", u.uconduct.wishes, (u.uconduct.wishes > 1L) ? "es" : ""); you_have_X(buf); + if (want_dump) dump(" You have ", buf); ! if (!u.uconduct.wisharti) { enl_msg(You_, "have not wished", "did not wish", " for any artifacts"); + if (want_dump) dump("", " You have not wished for any artifact"); + } } /* Pop up the window and wait for a key */ display_nhwindow(en_win, TRUE); destroy_nhwindow(en_win); + + if (want_dump) + dump("",""); } #endif /* OVLB */ *** ../nethack-3.3.0/src/decl.c Sat Dec 11 06:20:53 1999 --- ./src/decl.c Mon Jul 24 22:44:45 2000 *************** *** 187,194 **** const char *him[3] = { "him", "her", "it" }; const char *his[3] = { "his", "her", "its" }; ! /* originally from dog.c */ NEARDATA char dogname[PL_PSIZ] = DUMMY; NEARDATA char catname[PL_PSIZ] = DUMMY; NEARDATA char horsename[PL_PSIZ] = DUMMY; char preferred_pet; /* '\0', 'c', 'd' */ --- 187,195 ---- const char *him[3] = { "him", "her", "it" }; const char *his[3] = { "his", "her", "its" }; ! /* originally from dog.c and end.c (dump_fn) */ NEARDATA char dogname[PL_PSIZ] = DUMMY; + NEARDATA char dump_fn[PL_PSIZ] = DUMMY; NEARDATA char catname[PL_PSIZ] = DUMMY; NEARDATA char horsename[PL_PSIZ] = DUMMY; char preferred_pet; /* '\0', 'c', 'd' */ *** ../nethack-3.3.0/src/end.c Sat Dec 11 06:20:54 1999 --- ./src/end.c Mon Jul 24 22:44:55 2000 *************** *** 33,40 **** STATIC_DCL void FDECL(get_valuables, (struct obj *)); STATIC_DCL void FDECL(sort_valuables, (struct valuable_data *,int)); STATIC_DCL void FDECL(savelife, (int)); ! STATIC_DCL void NDECL(list_vanquished); ! STATIC_DCL void NDECL(list_genocided); #if defined(UNIX) || defined(VMS) || defined (__EMX__) static void FDECL(done_hangup, (int)); #endif --- 33,40 ---- STATIC_DCL void FDECL(get_valuables, (struct obj *)); STATIC_DCL void FDECL(sort_valuables, (struct valuable_data *,int)); STATIC_DCL void FDECL(savelife, (int)); ! STATIC_DCL void FDECL(list_vanquished, (BOOLEAN_P)); ! STATIC_DCL void FDECL(list_genocided, (BOOLEAN_P)); #if defined(UNIX) || defined(VMS) || defined (__EMX__) static void FDECL(done_hangup, (int)); #endif *************** *** 78,83 **** --- 78,110 ---- }; + + /* Yes, I know: AVOID GLOBAL VARIABLES! */ + FILE *dump_fp = (FILE *)0; /* file pointer for dumps */ + + + void + dump_init () + { + dump_fp = fopen (dump_fn, "w"); + } + + void + dump_exit () + { + if (dump_fp) + fclose (dump_fp); + } + + void dump (pre, str) + char *pre, *str; + { + if (dump_fp) + fprintf (dump_fp, "%s%s\n", pre, str); + } + + + /*ARGSUSED*/ void done1(sig_unused) /* called as signal() handler, so sent at least one arg */ *************** *** 282,287 **** --- 309,317 ---- char c; char qbuf[QBUFSZ]; + if (dump_fn) + dump_init(); + if (invent && !done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'i'))) { if(taken) *************** *** 297,304 **** makeknown(obj->otyp); obj->known = obj->bknown = obj->dknown = obj->rknown = 1; } ! (void) display_inventory((char *)0, TRUE); ! container_contents(invent, TRUE, TRUE); } if (c == 'q') done_stopprint++; } --- 327,336 ---- makeknown(obj->otyp); obj->known = obj->bknown = obj->dknown = obj->rknown = 1; } ! ! (void) display_inventory((char *)0, TRUE, TRUE); ! container_contents(invent, TRUE, TRUE, TRUE); ! } if (c == 'q') done_stopprint++; } *************** *** 306,331 **** if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'a'))) { c = yn_function("Do you want to see your attributes?",ynqchars,'y'); ! if (c == 'y') enlightenment(how >= PANICKED ? 1 : 2); /* final */ if (c == 'q') done_stopprint++; } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'v'))) { ! list_vanquished(); } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'g'))) { ! list_genocided(); } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'c'))) { c = yn_function("Do you want to see your conduct?",ynqchars,'y'); ! if (c == 'y') show_conduct(how >= PANICKED ? 1 : 2); if (c == 'q') done_stopprint++; } } /* try to get the player back in a viable state after being killed */ --- 338,366 ---- if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'a'))) { c = yn_function("Do you want to see your attributes?",ynqchars,'y'); ! if (c == 'y') enlightenment(how >= PANICKED ? 1 : 2, TRUE); /* final */ if (c == 'q') done_stopprint++; } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'v'))) { ! list_vanquished(TRUE); } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'g'))) { ! list_genocided(TRUE); } if (!done_stopprint && (!flags.end_disclose[0] || index(flags.end_disclose, 'c'))) { c = yn_function("Do you want to see your conduct?",ynqchars,'y'); ! if (c == 'y') show_conduct(how >= PANICKED ? 1 : 2, TRUE); if (c == 'q') done_stopprint++; } + + if (dump_fn) + dump_exit(); } /* try to get the player back in a viable state after being killed */ *************** *** 762,770 **** void ! container_contents(list, identified, all_containers) struct obj *list; ! boolean identified, all_containers; { register struct obj *box, *obj; char buf[BUFSZ]; --- 797,805 ---- void ! container_contents(list, identified, all_containers, want_dump) struct obj *list; ! boolean identified, all_containers, want_dump; { register struct obj *box, *obj; char buf[BUFSZ]; *************** *** 774,779 **** --- 809,818 ---- if (box->cobj) { winid tmpwin = create_nhwindow(NHW_MENU); Sprintf(buf, "Contents of %s:", the(xname(box))); + + if (want_dump) + dump("", buf); + putstr(tmpwin, 0, buf); putstr(tmpwin, 0, ""); for (obj = box->cobj; obj; obj = obj->nobj) { *************** *** 783,801 **** obj->dknown = obj->rknown = 1; } putstr(tmpwin, 0, doname(obj)); } display_nhwindow(tmpwin, TRUE); destroy_nhwindow(tmpwin); if (all_containers) ! container_contents(box->cobj, identified, TRUE); } else { pline("%s is empty.", The(xname(box))); display_nhwindow(WIN_MESSAGE, FALSE); } } if (!all_containers) break; } } --- 822,850 ---- obj->dknown = obj->rknown = 1; } putstr(tmpwin, 0, doname(obj)); + + if (want_dump) + dump(" ", doname(obj)); } display_nhwindow(tmpwin, TRUE); destroy_nhwindow(tmpwin); if (all_containers) ! container_contents(box->cobj, identified, TRUE, want_dump); } else { pline("%s is empty.", The(xname(box))); + + if (want_dump) + dump(The(xname(box)), " is empty."); + display_nhwindow(WIN_MESSAGE, FALSE); } } if (!all_containers) break; } + + if (want_dump) + dump("", ""); } *************** *** 818,824 **** } STATIC_OVL void ! list_vanquished() { register int i, lev; int ntypes = 0, max_lev = 0, nkilled; --- 867,874 ---- } STATIC_OVL void ! list_vanquished(want_dump) ! boolean want_dump; { register int i, lev; int ntypes = 0, max_lev = 0, nkilled; *************** *** 846,851 **** --- 896,904 ---- putstr(klwin, 0, "Vanquished creatures:"); putstr(klwin, 0, ""); + if (want_dump) + dump("", "Vanquished creatures"); + /* countdown by monster "toughness" */ for (lev = max_lev; lev >= 0; lev--) for (i = LOW_PM; i < NUMMONS; i++) *************** *** 867,872 **** --- 920,929 ---- nkilled, makeplural(mons[i].mname)); } putstr(klwin, 0, buf); + + if (want_dump) + dump(" ", buf); + } /* * if (Hallucination) *************** *** 876,884 **** --- 933,947 ---- putstr(klwin, 0, ""); Sprintf(buf, "%ld creatures vanquished.", total_killed); putstr(klwin, 0, buf); + + if (want_dump) + dump("", buf); } display_nhwindow(klwin, TRUE); destroy_nhwindow(klwin); + + if (want_dump) + dump("", ""); } } } *************** *** 896,902 **** } STATIC_OVL void ! list_genocided() { register int i; int ngenocided; --- 959,966 ---- } STATIC_OVL void ! list_genocided(want_dump) ! boolean want_dump; { register int i; int ngenocided; *************** *** 916,921 **** --- 980,988 ---- putstr(klwin, 0, "Genocided species:"); putstr(klwin, 0, ""); + if (want_dump) + dump("", "Genocided species"); + for (i = LOW_PM; i < NUMMONS; i++) if (mvitals[i].mvflags & G_GENOD) { if ((mons[i].geno & G_UNIQ) && i != PM_HIGH_PRIEST) *************** *** 925,938 **** --- 992,1014 ---- else Strcpy(buf, makeplural(mons[i].mname)); putstr(klwin, 0, buf); + + if (want_dump) + dump(" ", buf); } putstr(klwin, 0, ""); Sprintf(buf, "%d species genocided.", ngenocided); putstr(klwin, 0, buf); + if (want_dump) + dump("", buf); + display_nhwindow(klwin, TRUE); destroy_nhwindow(klwin); + + if (want_dump) + dump("", ""); } } } *** ../nethack-3.3.0/src/fountain.c Sat Dec 11 06:20:54 1999 --- ./src/fountain.c Mon Jul 24 21:35:23 2000 *************** *** 236,242 **** You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(0); exercise(A_WIS, TRUE); pline_The("feeling subsides."); break; --- 236,242 ---- You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(0, FALSE); exercise(A_WIS, TRUE); pline_The("feeling subsides."); break; *** ../nethack-3.3.0/src/invent.c Sat Dec 11 06:20:54 1999 --- ./src/invent.c Mon Jul 24 21:45:01 2000 *************** *** 859,865 **** } } if(ilet == '?' || ilet == '*') { ! ilet = display_inventory(ilet=='?' ? lets:(char *)0, TRUE); if(!ilet) continue; if(ilet == '\033') { if(flags.verbose) --- 859,865 ---- } } if(ilet == '?' || ilet == '*') { ! ilet = display_inventory(ilet=='?' ? lets:(char *)0, TRUE, FALSE); if(!ilet) continue; if(ilet == '\033') { if(flags.verbose) *************** *** 1001,1007 **** getlin(qbuf, buf); if (buf[0] == '\033') return(0); if (index(buf, 'i')) { ! if (display_inventory((char *)0, TRUE) == '\033') return 0; } else break; } --- 1001,1007 ---- getlin(qbuf, buf); if (buf[0] == '\033') return(0); if (index(buf, 'i')) { ! if (display_inventory((char *)0, TRUE, FALSE) == '\033') return 0; } else break; } *************** *** 1346,1352 **** int ddoinv() { ! (void) display_inventory((char *)0, FALSE); return 0; } --- 1346,1352 ---- int ddoinv() { ! (void) display_inventory((char *)0, FALSE, FALSE); return 0; } *************** *** 1391,1399 **** * was selected. */ char ! display_inventory(lets, want_reply) register const char *lets; boolean want_reply; { struct obj *otmp; char ilet, ret; --- 1391,1400 ---- * was selected. */ char ! display_inventory(lets, want_reply, want_dump) register const char *lets; boolean want_reply; + boolean want_dump; { struct obj *otmp; char ilet, ret; *************** *** 1413,1418 **** --- 1414,1422 ---- } else win = WIN_INVEN; + if (want_dump) + dump("", "Your inventory"); + /* Exit early if no inventory -- but keep going if we are doing a permanent inventory update. We need to keep going so the *************** *** 1424,1431 **** an issue if empty checks are done before hand and the call to here is short circuited away. */ if (!invent && !(flags.perm_invent && !lets && !want_reply)) { ! pline("Not carrying anything%s.", u.ugold ? " except gold" : ""); return 0; } --- 1428,1441 ---- an issue if empty checks are done before hand and the call to here is short circuited away. */ + if (!invent && !(flags.perm_invent && !lets && !want_reply)) { ! pline(" Not carrying anything%s.", u.ugold ? " except gold" : ""); ! ! if (want_dump) ! dump(" Not carrying anything", ! u.ugold ? " except gold." : "."); ! return 0; } *************** *** 1442,1447 **** --- 1452,1461 ---- ret = message_menu(lets[0], want_reply ? PICK_ONE : PICK_NONE, xprname(otmp, (char *)0, lets[0], TRUE, 0L)); + + if (want_dump) + dump(" ", xprname(otmp, (char *)0, lets[0], TRUE, 0L)); + break; } } *************** *** 1460,1471 **** --- 1474,1491 ---- any.a_void = 0; /* zero */ add_menu(win, NO_GLYPH, &any, 0, 0, ATR_INVERSE, let_to_name(*invlet, FALSE), MENU_UNSELECTED); + if (want_dump) + dump(" ", let_to_name(*invlet, FALSE)); + classcount++; } any.a_char = ilet; add_menu(win, obj_to_glyph(otmp), &any, ilet, 0, ATR_NONE, doname(otmp), MENU_UNSELECTED); + + if (want_dump) + dump(" ", doname(otmp)); } } } *************** *** 1487,1492 **** --- 1507,1515 ---- } else ret = !n ? '\0' : '\033'; /* cancelled */ + if (want_dump) + dump("", ""); + return ret; } *************** *** 2022,2028 **** if(uarmg) lets[ct++] = obj_to_let(uarmg); if(uarmf) lets[ct++] = obj_to_let(uarmf); lets[ct] = 0; ! (void) display_inventory(lets, FALSE); } return 0; } --- 2045,2051 ---- if(uarmg) lets[ct++] = obj_to_let(uarmg); if(uarmf) lets[ct++] = obj_to_let(uarmf); lets[ct] = 0; ! (void) display_inventory(lets, FALSE, FALSE); } return 0; } *************** *** 2039,2045 **** if(uleft) lets[ct++] = obj_to_let(uleft); if(uright) lets[ct++] = obj_to_let(uright); lets[ct] = 0; ! (void) display_inventory(lets, FALSE); } return 0; } --- 2062,2068 ---- if(uleft) lets[ct++] = obj_to_let(uleft); if(uright) lets[ct++] = obj_to_let(uright); lets[ct] = 0; ! (void) display_inventory(lets, FALSE, FALSE); } return 0; } *************** *** 2080,2086 **** lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) You("are not using any tools."); ! else (void) display_inventory(lets, FALSE); return 0; } --- 2103,2109 ---- lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) You("are not using any tools."); ! else (void) display_inventory(lets, FALSE, FALSE); return 0; } *************** *** 2098,2104 **** lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) You("are not wearing or wielding anything."); ! else (void) display_inventory(lets, FALSE); return 0; } --- 2121,2127 ---- lets[ct++] = obj_to_let(otmp); lets[ct] = '\0'; if (!ct) You("are not wearing or wielding anything."); ! else (void) display_inventory(lets, FALSE, FALSE); return 0; } *** ../nethack-3.3.0/src/options.c Sat Dec 11 06:20:55 1999 --- ./src/options.c Mon Jul 24 22:40:35 2000 *************** *** 194,199 **** --- 194,201 ---- sizeof(flags.end_disclose) }, { "dogname", "the name of your (first) dog (e.g., dogname:Fang)", PL_PSIZ }, + { "dumpfile", "where to dump data (e.g., dumpfile:/tmp/nh.dump)", + PL_PSIZ }, { "dungeon", "the symbols to use in drawing the dungeon map", MAXDCHARS+1 }, { "effects", "the symbols to use in drawing special effects", *************** *** 852,857 **** --- 854,867 ---- return; } + fullname = "dumpfile"; + if (match_optname(opts, fullname, 3, TRUE)) { + if (negated) bad_negation(fullname, FALSE); + else if ((op = string_for_env_opt(fullname, opts, FALSE)) != 0) + nmcpy(dump_fn, op, PL_PSIZ); + return; + } + fullname = "horsename"; if (match_optname(opts, fullname, 5, TRUE)) { if (negated) bad_negation(fullname, FALSE); *************** *** 1778,1783 **** --- 1788,1794 ---- aligns[flags.initalign].adj, 0); doset_add_menu(tmpwin, "catname", catname[0] ? catname : "(null)", 0); doset_add_menu(tmpwin, "dogname", dogname[0] ? dogname : "(null)", 0); + doset_add_menu(tmpwin, "dumpfile", dump_fn[0] ? dump_fn : "(null)", 0); doset_add_menu(tmpwin, "horsename", horsename[0] ? horsename : "(null)", 0); Sprintf(buf, "%u", iflags.msg_history); doset_add_menu(tmpwin, "msghistory", buf, 0); *** ../nethack-3.3.0/src/pickup.c Sat Dec 11 06:20:55 1999 --- ./src/pickup.c Mon Jul 24 21:40:38 2000 *************** *** 168,174 **** simple_look(objs, here); /* dumb if objs==invent */ goto ask_again; } else if (sym == 'i') { ! (void) display_inventory((char *)0, TRUE); goto ask_again; } else if (sym == 'm') { m_seen = TRUE; --- 168,174 ---- simple_look(objs, here); /* dumb if objs==invent */ goto ask_again; } else if (sym == 'i') { ! (void) display_inventory((char *)0, TRUE, FALSE); goto ask_again; } else if (sym == 'm') { m_seen = TRUE; *************** *** 1632,1638 **** add_valid_menu_class(0); /* reset */ switch (yn_function(qbuf, ":ynq", 'n')) { case ':': ! container_contents(current_container, FALSE, FALSE); goto ask_again2; case 'y': if (query_classes(select, &one_by_one, &allflag, --- 1632,1638 ---- add_valid_menu_class(0); /* reset */ switch (yn_function(qbuf, ":ynq", 'n')) { case ':': ! container_contents(current_container, FALSE, FALSE, FALSE); goto ask_again2; case 'y': if (query_classes(select, &one_by_one, &allflag, *** ../nethack-3.3.0/src/potion.c Sat Dec 11 06:20:55 1999 --- ./src/potion.c Mon Jul 24 21:40:54 2000 *************** *** 448,454 **** } You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(0); pline_The("feeling subsides."); exercise(A_WIS, TRUE); } --- 448,454 ---- } You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(0, FALSE); pline_The("feeling subsides."); exercise(A_WIS, TRUE); } *** ../nethack-3.3.0/src/zap.c Sat Dec 11 06:20:57 1999 --- ./src/zap.c Mon Jul 24 21:42:07 2000 *************** *** 1586,1592 **** known = TRUE; You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(FALSE); pline("The feeling subsides."); exercise(A_WIS, TRUE); break; --- 1586,1592 ---- known = TRUE; You_feel("self-knowledgeable..."); display_nhwindow(WIN_MESSAGE, FALSE); ! enlightenment(FALSE, FALSE); pline("The feeling subsides."); exercise(A_WIS, TRUE); break; *** ../nethack-3.3.0/include/decl.h Sat Dec 11 06:20:49 1999 --- ./include/decl.h Mon Jul 24 22:45:38 2000 *************** *** 169,174 **** --- 169,175 ---- E const char *configfile; E NEARDATA char plname[PL_NSIZ]; E NEARDATA char dogname[]; + E NEARDATA char dump_fn[]; E NEARDATA char catname[]; E NEARDATA char horsename[]; E char preferred_pet; *** ../nethack-3.3.0/include/extern.h Sat Dec 11 06:20:50 1999 --- ./include/extern.h Mon Jul 24 22:45:21 2000 *************** *** 1,5 **** - /* SCCS Id: @(#)extern.h 3.3 1999/12/06 */ - /* Copyright (c) Steve Creps, 1988. */ /* NetHack may be freely redistributed. See license for details. */ #ifndef EXTERN_H --- 1,3 ---- *************** *** 169,176 **** E void FDECL(rhack, (char *)); E int NDECL(doextlist); E int NDECL(extcmd_via_menu); ! E void FDECL(enlightenment, (int)); ! E void FDECL(show_conduct, (int)); E int FDECL(xytod, (SCHAR_P,SCHAR_P)); E void FDECL(dtoxy, (coord *,int)); E int FDECL(movecmd, (CHAR_P)); --- 167,174 ---- E void FDECL(rhack, (char *)); E int NDECL(doextlist); E int NDECL(extcmd_via_menu); ! E void FDECL(enlightenment, (int, BOOLEAN_P)); ! E void FDECL(show_conduct, (int, BOOLEAN_P)); E int FDECL(xytod, (SCHAR_P,SCHAR_P)); E void FDECL(dtoxy, (coord *,int)); E int FDECL(movecmd, (CHAR_P)); *************** *** 534,542 **** E void VDECL(panic, (const char *,...)) PRINTF_F(1,2); #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C) E void FDECL(done, (int)); ! E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P)); E void FDECL(terminate, (int)); E int NDECL(num_genocides); /* ### engrave.c ### */ --- 532,542 ---- E void VDECL(panic, (const char *,...)) PRINTF_F(1,2); #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C) E void FDECL(done, (int)); ! E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P)); E void FDECL(terminate, (int)); E int NDECL(num_genocides); + E void dump(char *, char *); + /* ### engrave.c ### */ *************** *** 741,747 **** E void FDECL(prinv, (const char *,struct obj *,long)); E char *FDECL(xprname, (struct obj *,const char *,CHAR_P,BOOLEAN_P,long)); E int NDECL(ddoinv); ! E char FDECL(display_inventory, (const char *,BOOLEAN_P)); E int FDECL(display_binventory, (int,int,BOOLEAN_P)); E struct obj *FDECL(display_cinventory,(struct obj *)); E struct obj *FDECL(display_minventory,(struct monst *,int)); --- 741,747 ---- E void FDECL(prinv, (const char *,struct obj *,long)); E char *FDECL(xprname, (struct obj *,const char *,CHAR_P,BOOLEAN_P,long)); E int NDECL(ddoinv); ! E char FDECL(display_inventory, (const char *,BOOLEAN_P,BOOLEAN_P)); E int FDECL(display_binventory, (int,int,BOOLEAN_P)); E struct obj *FDECL(display_cinventory,(struct obj *)); E struct obj *FDECL(display_minventory,(struct monst *,int));