Example #1
0
/*
  Routine to describe visible items
*/
void descitem()
{
    int i, state;

    for (i = 1; i < MAXOBJ; ++i) {
        if (at(i)) {
            if (i == STEPS && toting(NUGGET))
                continue;
            if (g.prop[i] < 0) {
                if (g.closed)
                    continue;
                else {
                    g.prop[i] = 0;
                    if (i == RUG || i == CHAIN
                            || i == SWORD || i == CASK)
                        g.prop[i] = 1;
                    if (i == CLOAK || i == RING)
                        g.prop[i] = 2;
                    --g.tally;
                }
            }
            if (i == STEPS && g.loc == g.fixed[STEPS])
                state = 1;
            else
                state = g.prop[i] % 8;
            pspeak(i, state);
            lookin(i);
        }
    }
    /* If remaining treasures too elusive, zap his lamp */
    if (g.tally == g.tally2 && g.tally != 0 && g.limit > 35)
        g.limit = 35;
    return;
}
/*
  INVENTORY
*/
void inventory()
{
    int i, msg;
    boolean init_msg;

    init_msg = TRUE;
    msg = 98;
    for (i = 1; i < MAXOBJ; i++) {
	if (!holding(i) || wearng(i) || i == BEAR || i == BOAT)
	    continue;
	if (init_msg)
	    rspeak(99);
	pspeak(i, -1);
	init_msg = FALSE;
	msg = 0;
	lookin(i);
    }

    /* Tell him what he is wearing */
    init_msg = TRUE;
    for (i = 1; i < MAXOBJ; i++) {
	if (wearng(i)) {
	    if (init_msg)
		fprintf(stdout, "\nYou are wearing:\n");
	    fprintf(stdout, "     ");
	    pspeak(i, -1);
	    msg = 0;
	    init_msg = FALSE;
	}
    }

    if (holding(BOAT)) {
	rspeak(221);
	lookin(BOAT);
    }
    if (holding(BEAR))
	msg = 141;

    if (msg)
	rspeak(msg);
    return;
}