-/* NetHack 3.7 invent.c $NHDT-Date: 1612912018 2021/02/09 23:06:58 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.319 $ */
+/* NetHack 3.7 invent.c $NHDT-Date: 1614474790 2021/02/28 01:13:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.320 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
#endif /*0*/
void
-assigninvlet(register struct obj *otmp)
+assigninvlet(struct obj *otmp)
{
boolean inuse[52];
register int i;
}
void
-useup(register struct obj *obj)
+useup(struct obj *obj)
{
/* Note: This works correctly for containers because they (containers)
don't merge. */
/* remove an object from the hero's inventory */
void
-freeinv(register struct obj *obj)
+freeinv(struct obj *obj)
{
extract_nobj(obj, &g.invent);
freeinv_core(obj);
/* destroy object in fobj chain (if unpaid, it remains on the bill) */
void
-delobj(register struct obj *obj)
+delobj(struct obj *obj)
{
boolean update_map;
}
struct obj *
-carrying(register int type)
+carrying(int type)
{
register struct obj *otmp;
}
struct obj *
-o_on(unsigned int id, register struct obj *objchn)
+o_on(unsigned int id, struct obj *objchn)
{
struct obj *temp;
}
boolean
-obj_here(register struct obj *obj, int x, int y)
+obj_here(struct obj *obj, int x, int y)
{
register struct obj *otmp;
}
struct obj *
-g_at(register int x, register int y)
+g_at(int x, int y)
{
register struct obj *obj = g.level.objects[x][y];
/* compact a string of inventory letters by dashing runs of letters */
static void
-compactify(register char *buf)
+compactify(char *buf)
{
register int i1 = 1, i2 = 1;
register char ilet, ilet1, ilet2;
* it with &cg.zeroobj, so its behavior can be undefined in that case.
*/
struct obj *
-getobj(register const char *word,
+getobj(const char *word,
int (*obj_ok)(OBJ_P), /* callback */
unsigned int ctrlflags)
{
int mx, const char *word)
{
struct obj *otmp, *otmpo;
- register char sym, ilet;
+ char sym, ilet;
int cnt = 0, dud = 0, tmp;
boolean takeoff, nodot, ident, take_out, put_in, first, ininv, bycat;
char qbuf[QBUFSZ], qpfx[QBUFSZ];
{
winid win;
struct obj *otmp, *marker, *contnr;
- register char ilet;
+ char ilet;
char *invlet = flags.inv_order;
int classcount, count, num_so_far;
long cost, totcost;
doprarm(void)
{
char lets[8];
- register int ct = 0;
+ int ct = 0;
/*
* Note: players sometimes get here by pressing a function key which
* transmits ''ESC [ <something>'' rather than by pressing '[';
int
doprring(void)
{
- if (!uleft && !uright)
+ if (!uleft && !uright) {
You("are not wearing any rings.");
- else {
+ } else {
char lets[3];
- register int ct = 0;
+ int ct = 0;
if (uleft)
lets[ct++] = obj_to_let(uleft);
char lets[52 + 1];
for (otmp = g.invent; otmp; otmp = otmp->nobj)
- if (tool_in_use(otmp))
+ if (tool_in_use(otmp)) {
+ /* we could be carrying more than 52 items; theoretically they
+ might all be lit candles so avoid potential lets[] overflow */
+ if (ct >= (int) sizeof lets - 1)
+ break;
lets[ct++] = obj_to_let(otmp);
+ }
lets[ct] = '\0';
if (!ct)
You("are not using any tools.");
char lets[52 + 1];
for (otmp = g.invent; otmp; otmp = otmp->nobj)
- if (is_worn(otmp) || tool_in_use(otmp))
+ if (is_worn(otmp) || tool_in_use(otmp)) {
+ /* we could be carrying more than 52 items; theoretically they
+ might all be lit candles so avoid potential lets[] overflow */
+ if (ct >= (int) sizeof lets - 1)
+ break;
lets[ct++] = obj_to_let(otmp);
+ }
lets[ct] = '\0';
if (!ct)
You("are not wearing or wielding anything.");
* uses up an object that's on the floor, charging for it as necessary
*/
void
-useupf(register struct obj *obj, long numused)
+useupf(struct obj *obj, long numused)
{
- register struct obj *otmp;
+ struct obj *otmp;
boolean at_u = (obj->ox == u.ux && obj->oy == u.uy);
/* burn_floor_objects() keeps an object pointer that it tries to
* MINV_ALL - display all inventory
*/
struct obj *
-display_minventory(register struct monst *mon, int dflags, char *title)
+display_minventory(struct monst *mon, int dflags, char *title)
{
struct obj *ret;
char tmp[QBUFSZ];
* Currently, this is only used for statues, via wand of probing.
*/
struct obj *
-display_cinventory(register struct obj *obj)
+display_cinventory(struct obj *obj)
{
struct obj *ret;
char qbuf[QBUFSZ];