switch source tree from k&r to c99

This commit is contained in:
nhmall
2021-01-26 21:06:16 -05:00
parent a2a9cb7b4f
commit f963c5aca7
232 changed files with 12099 additions and 17782 deletions

310
src/zap.c
View File

@@ -12,22 +12,22 @@
*/
#define MAGIC_COOKIE 1000
static void FDECL(polyuse, (struct obj *, int, int));
static void FDECL(create_polymon, (struct obj *, int));
static int FDECL(stone_to_flesh_obj, (struct obj *));
static boolean FDECL(zap_updown, (struct obj *));
static void FDECL(zhitu, (int, int, const char *, XCHAR_P, XCHAR_P));
static void FDECL(revive_egg, (struct obj *));
static boolean FDECL(zap_steed, (struct obj *));
static void FDECL(skiprange, (int, int *, int *));
static int FDECL(zap_hit, (int, int));
static void FDECL(disintegrate_mon, (struct monst *, int, const char *));
static void FDECL(backfire, (struct obj *));
static int FDECL(zap_ok, (struct obj *));
static void FDECL(boxlock_invent, (struct obj *));
static int FDECL(spell_hit_bonus, (int));
static void FDECL(destroy_one_item, (struct obj *, int, int));
static void FDECL(wishcmdassist, (int));
static void polyuse(struct obj *, int, int);
static void create_polymon(struct obj *, int);
static int stone_to_flesh_obj(struct obj *);
static boolean zap_updown(struct obj *);
static void zhitu(int, int, const char *, xchar, xchar);
static void revive_egg(struct obj *);
static boolean zap_steed(struct obj *);
static void skiprange(int, int *, int *);
static int zap_hit(int, int);
static void disintegrate_mon(struct monst *, int, const char *);
static void backfire(struct obj *);
static int zap_ok(struct obj *);
static void boxlock_invent(struct obj *);
static int spell_hit_bonus(int);
static void destroy_one_item(struct obj *, int, int);
static void wishcmdassist(int);
#define ZT_MAGIC_MISSILE (AD_MAGM - 1)
#define ZT_FIRE (AD_FIRE - 1)
@@ -93,8 +93,7 @@ const char *const flash_types[] = /* also used in buzzmu(mcastu.c) */
/* wand discovery gets special handling when hero is blinded */
void
learnwand(obj)
struct obj *obj;
learnwand(struct obj *obj)
{
/* For a wand (or wand-like tool) zapped by the player, if the
effect was observable (determined by caller; usually seen, but
@@ -127,9 +126,7 @@ struct obj *obj;
/* Routines for IMMEDIATE wands and spells. */
/* bhitm: monster mtmp was hit by the effect of wand or spell otmp */
int
bhitm(mtmp, otmp)
struct monst *mtmp;
struct obj *otmp;
bhitm(struct monst *mtmp, struct obj *otmp)
{
boolean wake = TRUE; /* Most 'zaps' should wake monster */
boolean reveal_invis = FALSE, learn_it = FALSE;
@@ -476,8 +473,7 @@ struct obj *otmp;
}
void
probe_monster(mtmp)
struct monst *mtmp;
probe_monster(struct monst *mtmp)
{
struct obj *otmp;
@@ -514,10 +510,7 @@ struct monst *mtmp;
* is not available or subject to the constraints above.
*/
boolean
get_obj_location(obj, xp, yp, locflags)
struct obj *obj;
xchar *xp, *yp;
int locflags;
get_obj_location(struct obj *obj, xchar *xp, xchar *yp, int locflags)
{
switch (obj->where) {
case OBJ_INVENT:
@@ -552,10 +545,9 @@ int locflags;
}
boolean
get_mon_location(mon, xp, yp, locflags)
struct monst *mon;
xchar *xp, *yp;
int locflags; /* non-zero means get location even if monster is buried */
get_mon_location(struct monst *mon, xchar *xp, xchar *yp,
int locflags) /* non-zero means get location even if monster
is buried */
{
if (mon == &g.youmonst) {
*xp = u.ux;
@@ -573,10 +565,9 @@ int locflags; /* non-zero means get location even if monster is buried */
/* used by revive() and animate_statue() */
struct monst *
montraits(obj, cc, adjacentok)
struct obj *obj;
coord *cc;
boolean adjacentok; /* False: at obj's spot only, True: nearby is allowed */
montraits(struct obj *obj, coord *cc,
boolean adjacentok) /* False: at obj's spot only, True: nearby is
allowed */
{
struct monst *mtmp, *mtmp2 = has_omonst(obj) ? get_mtraits(obj, TRUE) : 0;
@@ -698,10 +689,7 @@ boolean adjacentok; /* False: at obj's spot only, True: nearby is allowed */
* if applicable.
*/
struct monst *
get_container_location(obj, loc, container_nesting)
struct obj *obj;
int *loc;
int *container_nesting;
get_container_location(struct obj *obj, int *loc, int *container_nesting)
{
if (!obj || !loc)
return 0;
@@ -728,9 +716,7 @@ int *container_nesting;
* and only one monster will be resurrected.
*/
struct monst *
revive(corpse, by_hero)
struct obj *corpse;
boolean by_hero;
revive(struct obj *corpse, boolean by_hero)
{
struct monst *mtmp = 0;
struct permonst *mptr;
@@ -959,8 +945,7 @@ boolean by_hero;
}
static void
revive_egg(obj)
struct obj *obj;
revive_egg(struct obj *obj)
{
/*
* Note: generic eggs with corpsenm set to NON_PM will never hatch.
@@ -973,8 +958,7 @@ struct obj *obj;
/* try to revive all corpses and eggs carried by `mon' */
int
unturn_dead(mon)
struct monst *mon;
unturn_dead(struct monst *mon)
{
struct obj *otmp, *otmp2;
struct monst *mtmp2;
@@ -1035,7 +1019,7 @@ struct monst *mon;
}
void
unturn_you()
unturn_you(void)
{
(void) unturn_dead(&g.youmonst); /* hit carried corpses and eggs */
@@ -1049,8 +1033,7 @@ unturn_you()
/* cancel obj, possibly carried by you or a monster */
void
cancel_item(obj)
register struct obj *obj;
cancel_item(struct obj *obj)
{
int otyp = obj->otyp;
@@ -1175,9 +1158,7 @@ register struct obj *obj;
* possibly carried by you or a monster
*/
boolean
drain_item(obj, by_you)
struct obj *obj;
boolean by_you;
drain_item(struct obj *obj, boolean by_you)
{
boolean u_ring;
@@ -1253,9 +1234,9 @@ boolean by_you;
}
boolean
obj_resists(obj, ochance, achance)
struct obj *obj;
int ochance, achance; /* percent chance for ordinary objects, artifacts */
obj_resists(struct obj *obj,
int ochance, /* percent chance for ordinary objects */
int achance) /* percent chance for artifacts */
{
if (obj->otyp == AMULET_OF_YENDOR
|| obj->otyp == SPE_BOOK_OF_THE_DEAD
@@ -1271,8 +1252,7 @@ int ochance, achance; /* percent chance for ordinary objects, artifacts */
}
boolean
obj_shudders(obj)
struct obj *obj;
obj_shudders(struct obj *obj)
{
int zap_odds;
@@ -1301,9 +1281,7 @@ struct obj *obj;
* at the top of the pile.
*/
static void
polyuse(objhdr, mat, minwt)
struct obj *objhdr;
int mat, minwt;
polyuse(struct obj *objhdr, int mat, int minwt)
{
register struct obj *otmp, *otmp2;
@@ -1344,9 +1322,7 @@ int mat, minwt;
* a golem of the kind okind.
*/
static void
create_polymon(obj, okind)
struct obj *obj;
int okind;
create_polymon(struct obj *obj, int okind)
{
struct permonst *mdat = (struct permonst *) 0;
struct monst *mtmp;
@@ -1437,8 +1413,7 @@ int okind;
/* Assumes obj is on the floor. */
void
do_osshock(obj)
struct obj *obj;
do_osshock(struct obj *obj)
{
long i;
@@ -1479,8 +1454,7 @@ struct obj *obj;
/* Returns TRUE if obj resists polymorphing */
boolean
obj_unpolyable(obj)
struct obj *obj;
obj_unpolyable(struct obj *obj)
{
return (unpolyable(obj)
|| obj == uball || obj == uskin
@@ -1504,9 +1478,7 @@ static const char charged_objs[] = { WAND_CLASS, WEAPON_CLASS, ARMOR_CLASS,
* This should be safe to call for an object anywhere.
*/
struct obj *
poly_obj(obj, id)
struct obj *obj;
int id;
poly_obj(struct obj *obj, int id)
{
struct obj *otmp;
xchar ox = 0, oy = 0;
@@ -1775,8 +1747,7 @@ int id;
/* stone-to-flesh spell hits and maybe transforms or animates obj */
static int
stone_to_flesh_obj(obj)
struct obj *obj;
stone_to_flesh_obj(struct obj *obj)
{
int res = 1; /* affected object by default */
struct permonst *ptr;
@@ -1899,8 +1870,7 @@ struct obj *obj;
* non-zero if the wand/spell had any effect.
*/
int
bhito(obj, otmp)
struct obj *obj, *otmp;
bhito(struct obj *obj, struct obj *otmp)
{
int res = 1; /* affected object by default */
boolean learn_it = FALSE, maybelearnit;
@@ -2173,11 +2143,7 @@ struct obj *obj, *otmp;
/* returns nonzero if something was hit */
int
bhitpile(obj, fhito, tx, ty, zz)
struct obj *obj;
int FDECL((*fhito), (OBJ_P, OBJ_P));
int tx, ty;
schar zz;
bhitpile(struct obj *obj, int (*fhito)(OBJ_P, OBJ_P), int tx, int ty, schar zz)
{
int hitanything = 0;
register struct obj *otmp, *next_obj;
@@ -2217,8 +2183,7 @@ schar zz;
* added by GAN 11/03/86
*/
int
zappable(wand)
register struct obj *wand;
zappable(struct obj *wand)
{
if (wand->spe < 0 || (wand->spe == 0 && rn2(121)))
return 0;
@@ -2229,7 +2194,7 @@ register struct obj *wand;
}
void
do_enlightenment_effect()
do_enlightenment_effect(void)
{
You_feel("self-knowledgeable...");
display_nhwindow(WIN_MESSAGE, FALSE);
@@ -2243,8 +2208,7 @@ do_enlightenment_effect()
* added by GAN 11/03/86
*/
void
zapnodir(obj)
register struct obj *obj;
zapnodir(struct obj *obj)
{
boolean known = FALSE;
@@ -2291,8 +2255,7 @@ register struct obj *obj;
}
static void
backfire(otmp)
struct obj *otmp;
backfire(struct obj *otmp)
{
int dmg;
@@ -2305,8 +2268,7 @@ struct obj *otmp;
/* getobj callback for object to zap */
static int
zap_ok(obj)
struct obj *obj;
zap_ok(struct obj *obj)
{
if (obj && obj->oclass == WAND_CLASS)
return GETOBJ_SUGGEST;
@@ -2315,7 +2277,7 @@ struct obj *obj;
/* 'z' command (or 'y' if numbed_pad==-1) */
int
dozap()
dozap(void)
{
struct obj *obj;
int damage, need_dir;
@@ -2374,8 +2336,7 @@ dozap()
/* Lock or unlock all boxes in inventory */
static void
boxlock_invent(obj)
struct obj *obj;
boxlock_invent(struct obj *obj)
{
struct obj *otmp;
boolean boxing = FALSE;
@@ -2391,9 +2352,7 @@ struct obj *obj;
}
int
zapyourself(obj, ordinary)
struct obj *obj;
boolean ordinary;
zapyourself(struct obj *obj, boolean ordinary)
{
boolean learn_it = FALSE;
int damage = 0;
@@ -2697,8 +2656,7 @@ boolean ordinary;
/* called when poly'd hero uses breath attack against self */
void
ubreatheu(mattk)
struct attack *mattk;
ubreatheu(struct attack *mattk)
{
int dtyp = 20 + mattk->adtyp - 1; /* breath by hero */
const char *fltxt = flash_types[dtyp]; /* blast of <something> */
@@ -2708,10 +2666,10 @@ struct attack *mattk;
/* light damages hero in gremlin form */
int
lightdamage(obj, ordinary, amt)
struct obj *obj; /* item making light (fake book if spell) */
boolean ordinary; /* wand/camera zap vs wand destruction */
int amt; /* pseudo-damage used to determine blindness duration */
lightdamage(struct obj *obj, /* item making light (fake book if spell) */
boolean ordinary, /* wand/camera zap vs wand destruction */
int amt) /* pseudo-damage used to determine blindness
duration */
{
char buf[BUFSZ];
const char *how;
@@ -2742,8 +2700,7 @@ int amt; /* pseudo-damage used to determine blindness duration */
/* light[ning] causes blindness */
boolean
flashburn(duration)
long duration;
flashburn(long duration)
{
if (!resists_blnd(&g.youmonst)) {
You(are_blinded_by_the_flash);
@@ -2760,8 +2717,7 @@ long duration;
* Return FALSE if the steed was not hit by the wand.
*/
static boolean
zap_steed(obj)
struct obj *obj; /* wand or spell */
zap_steed(struct obj *obj) /* wand or spell */
{
int steedhit = FALSE;
@@ -2824,10 +2780,8 @@ struct obj *obj; /* wand or spell */
* themselves with cancellation.
*/
boolean
cancel_monst(mdef, obj, youattack, allow_cancel_kill, self_cancel)
register struct monst *mdef;
register struct obj *obj;
boolean youattack, allow_cancel_kill, self_cancel;
cancel_monst(struct monst *mdef, struct obj *obj, boolean youattack,
boolean allow_cancel_kill, boolean self_cancel)
{
static const char
writing_vanishes[] = "Some writing vanishes from %s head!",
@@ -2906,8 +2860,7 @@ boolean youattack, allow_cancel_kill, self_cancel;
/* you've zapped an immediate type wand up or down */
static boolean
zap_updown(obj)
struct obj *obj; /* wand or spell */
zap_updown(struct obj *obj) /* wand or spell */
{
boolean striking = FALSE, disclose = FALSE;
int x, y, xx, yy, ptmp;
@@ -3115,13 +3068,13 @@ struct obj *obj; /* wand or spell */
/* used by do_break_wand() was well as by weffects() */
void
zapsetup()
zapsetup(void)
{
g.obj_zapped = FALSE;
}
void
zapwrapup()
zapwrapup(void)
{
/* if do_osshock() set obj_zapped while polying, give a message now */
if (g.obj_zapped)
@@ -3131,8 +3084,7 @@ zapwrapup()
/* called for various wand and spell effects - M. Stephenson */
void
weffects(obj)
struct obj *obj;
weffects(struct obj *obj)
{
int otyp = obj->otyp;
boolean disclose = FALSE, was_unkn = !objects[otyp].oc_name_known;
@@ -3182,8 +3134,7 @@ struct obj *obj;
/* augment damage for a spell dased on the hero's intelligence (and level) */
int
spell_damage_bonus(dmg)
int dmg; /* base amount to be adjusted by bonus or penalty */
spell_damage_bonus(int dmg) /* base amount to be adjusted by bonus or penalty */
{
int intell = ACURR(A_INT);
@@ -3211,8 +3162,7 @@ int dmg; /* base amount to be adjusted by bonus or penalty */
* spell class and dexterity.
*/
static int
spell_hit_bonus(skill)
int skill;
spell_hit_bonus(int skill)
{
int hit_bon = 0;
int dex = ACURR(A_DEX);
@@ -3250,8 +3200,7 @@ int skill;
}
const char *
exclam(force)
int force;
exclam(int force)
{
/* force == 0 occurs e.g. with sleep ray */
/* note that large force is usual with wands so that !! would
@@ -3260,10 +3209,8 @@ int force;
}
void
hit(str, mtmp, force)
const char *str;
struct monst *mtmp;
const char *force; /* usually either "." or "!" */
hit(const char *str, struct monst *mtmp,
const char *force) /* usually either "." or "!" */
{
if ((!cansee(g.bhitpos.x, g.bhitpos.y) && !canspotmon(mtmp)
&& !(u.uswallow && mtmp == u.ustuck)) || !flags.verbose)
@@ -3274,9 +3221,7 @@ const char *force; /* usually either "." or "!" */
}
void
miss(str, mtmp)
register const char *str;
register struct monst *mtmp;
miss(const char *str, struct monst *mtmp)
{
pline(
"%s %s %s.", The(str), vtense(str, "miss"),
@@ -3286,8 +3231,7 @@ register struct monst *mtmp;
}
static void
skiprange(range, skipstart, skipend)
int range, *skipstart, *skipend;
skiprange(int range, int *skipstart, int *skipend)
{
int tr = (range / 4);
int tmp = range - ((tr > 0) ? rnd(tr) : 0);
@@ -3320,13 +3264,12 @@ int range, *skipstart, *skipend;
* one is revealed for a weapon, but if not a weapon is left up to fhitm().
*/
struct monst *
bhit(ddx, ddy, range, weapon, fhitm, fhito, pobj)
register int ddx, ddy, range; /* direction and range */
enum bhit_call_types weapon; /* defined in hack.h */
int FDECL((*fhitm), (MONST_P, OBJ_P)), /* fns called when mon/obj hit */
FDECL((*fhito), (OBJ_P, OBJ_P));
struct obj **pobj; /* object tossed/used, set to NULL
* if object is destroyed */
bhit(int ddx, int ddy, int range, /* direction and range */
enum bhit_call_types weapon, /* defined in hack.h */
int (*fhitm)(MONST_P, OBJ_P), /* fns called when mon/obj hit */
int (*fhito)(OBJ_P, OBJ_P),
struct obj **pobj) /* object tossed/used, set to NULL
if object is destroyed */
{
struct monst *mtmp, *result = (struct monst *) 0;
struct obj *obj = *pobj;
@@ -3630,9 +3573,7 @@ struct obj **pobj; /* object tossed/used, set to NULL
* is too obviously silly.
*/
struct monst *
boomhit(obj, dx, dy)
struct obj *obj;
int dx, dy;
boomhit(struct obj *obj, int dx, int dy)
{
register int i, ct;
int boom; /* showsym[] index */
@@ -3710,10 +3651,8 @@ int dx, dy;
/* used by buzz(); also used by munslime(muse.c); returns damage applied
to mon; note: caller is responsible for killing mon if damage is fatal */
int
zhitm(mon, type, nd, ootmp)
register struct monst *mon;
register int type, nd;
struct obj **ootmp; /* to return worn armor for caller to disintegrate */
zhitm(struct monst *mon, int type, int nd,
struct obj **ootmp) /* to return worn armor for caller to disintegrate */
{
register int tmp = 0;
register int abstype = abs(type) % 10;
@@ -3874,10 +3813,7 @@ struct obj **ootmp; /* to return worn armor for caller to disintegrate */
}
static void
zhitu(type, nd, fltxt, sx, sy)
int type, nd;
const char *fltxt;
xchar sx, sy;
zhitu(int type, int nd, const char *fltxt, xchar sx, xchar sy)
{
int dam = 0, abstyp = abs(type);
@@ -4017,10 +3953,10 @@ xchar sx, sy;
* at position x,y; return the number of objects burned
*/
int
burn_floor_objects(x, y, give_feedback, u_caused)
int x, y;
boolean give_feedback; /* caller needs to decide about visibility checks */
boolean u_caused;
burn_floor_objects(int x, int y,
boolean give_feedback, /* caller needs to decide about
visibility checks */
boolean u_caused)
{
struct obj *obj, *obj2;
long i, scrquan, delquan;
@@ -4078,9 +4014,8 @@ boolean u_caused;
/* will zap/spell/breath attack score a hit against armor class `ac'? */
static int
zap_hit(ac, type)
int ac;
int type; /* either hero cast spell type or 0 */
zap_hit(int ac,
int type) /* either hero cast spell type or 0 */
{
int chance = rn2(20);
int spell_bonus = type ? spell_hit_bonus(type) : 0;
@@ -4096,10 +4031,9 @@ int type; /* either hero cast spell type or 0 */
}
static void
disintegrate_mon(mon, type, fltxt)
struct monst *mon;
int type; /* hero vs other */
const char *fltxt;
disintegrate_mon(struct monst *mon,
int type, /* hero vs other */
const char *fltxt)
{
struct obj *otmp, *otmp2, *m_amulet = mlifesaver(mon);
@@ -4141,10 +4075,7 @@ const char *fltxt;
}
void
buzz(type, nd, sx, sy, dx, dy)
int type, nd;
xchar sx, sy;
int dx, dy;
buzz(int type, int nd, xchar sx, xchar sy, int dx, int dy)
{
dobuzz(type, nd, sx, sy, dx, dy, TRUE);
}
@@ -4159,11 +4090,8 @@ int dx, dy;
* called with dx = dy = 0 with vertical bolts
*/
void
dobuzz(type, nd, sx, sy, dx, dy, say)
register int type, nd;
register xchar sx, sy;
register int dx, dy;
boolean say; /* Announce out of sight hit/miss events if true */
dobuzz(int type, int nd, xchar sx, xchar sy, int dx, int dy,
boolean say) /* Announce out of sight hit/miss events if true */
{
int range, abstype = abs(type) % 10;
register xchar lsx, lsy;
@@ -4430,9 +4358,7 @@ boolean say; /* Announce out of sight hit/miss events if true */
}
void
melt_ice(x, y, msg)
xchar x, y;
const char *msg;
melt_ice(xchar x, xchar y, const char *msg)
{
struct rm *lev = &levl[x][y];
struct obj *otmp;
@@ -4485,9 +4411,9 @@ const char *msg;
* permanent instead.
*/
void
start_melt_ice_timeout(x, y, min_time)
xchar x, y;
long min_time; /* <x,y>'s old melt timeout (deleted by time we get here) */
start_melt_ice_timeout(xchar x, xchar y,
long min_time) /* <x,y>'s old melt timeout (deleted by
time we get here) */
{
int when;
long where;
@@ -4516,9 +4442,7 @@ long min_time; /* <x,y>'s old melt timeout (deleted by time we get here) */
* Called when ice has melted completely away.
*/
void
melt_ice_away(arg, timeout)
anything *arg;
long timeout UNUSED;
melt_ice_away(anything *arg, long timeout UNUSED)
{
xchar x, y;
long where = arg->a_long;
@@ -4539,11 +4463,8 @@ long timeout UNUSED;
* amount by which range is reduced (the latter is just ignored by fireballs)
*/
int
zap_over_floor(x, y, type, shopdamage, exploding_wand_typ)
xchar x, y;
int type;
boolean *shopdamage;
short exploding_wand_typ;
zap_over_floor(xchar x, xchar y, int type, boolean *shopdamage,
short exploding_wand_typ)
{
const char *zapverb;
struct monst *mon;
@@ -4844,8 +4765,7 @@ short exploding_wand_typ;
/* fractured by pick-axe or wand of striking */
void
fracture_rock(obj)
register struct obj *obj; /* no texts here! */
fracture_rock(struct obj *obj) /* no texts here! */
{
xchar x, y;
boolean by_you = !g.context.mon_moving;
@@ -4888,8 +4808,7 @@ register struct obj *obj; /* no texts here! */
/* handle statue hit by striking/force bolt/pick-axe */
boolean
break_statue(obj)
register struct obj *obj;
break_statue(struct obj *obj)
{
/* [obj is assumed to be on floor, so no get_obj_location() needed] */
struct trap *trap = t_at(obj->ox, obj->oy);
@@ -4939,9 +4858,7 @@ const char *const destroy_strings[][3] = {
/* guts of destroy_item(), which ought to be called maybe_destroy_items();
caller must decide whether obj is eligible */
static void
destroy_one_item(obj, osym, dmgtyp)
struct obj *obj;
int osym, dmgtyp;
destroy_one_item(struct obj *obj, int osym, int dmgtyp)
{
long i, cnt, quan;
int dmg, xresist, skip, dindx;
@@ -5086,8 +5003,7 @@ int osym, dmgtyp;
/* target items of specified class for possible destruction */
void
destroy_item(osym, dmgtyp)
int osym, dmgtyp;
destroy_item(int osym, int dmgtyp)
{
register struct obj *obj;
int i, deferral_indx = 0;
@@ -5168,9 +5084,7 @@ int osym, dmgtyp;
}
int
destroy_mitem(mtmp, osym, dmgtyp)
struct monst *mtmp;
int osym, dmgtyp;
destroy_mitem(struct monst *mtmp, int osym, int dmgtyp)
{
struct obj *obj;
int skip, tmp = 0;
@@ -5288,10 +5202,7 @@ int osym, dmgtyp;
}
int
resist(mtmp, oclass, damage, tell)
struct monst *mtmp;
char oclass;
int damage, tell;
resist(struct monst *mtmp, char oclass, int damage, int tell)
{
int resisted;
int alev, dlev;
@@ -5356,8 +5267,7 @@ int damage, tell;
#define MAXWISHTRY 5
static void
wishcmdassist(triesleft)
int triesleft;
wishcmdassist(int triesleft)
{
static NEARDATA const char *
wishinfo[] = {
@@ -5414,7 +5324,7 @@ int triesleft;
}
void
makewish()
makewish(void)
{
char buf[BUFSZ] = DUMMY;
char promptbuf[BUFSZ];