[BACK]Return to armor.c CVS log [TXT][DIR] Up to [contributed] / early-roguelike / srogue

Annotation of early-roguelike/srogue/armor.c, Revision 1.1.1.1

1.1       rubenllo    1: /*
                      2:  * This file contains misc functions for dealing with armor
                      3:  *
                      4:  * @(#)armor.c 9.0     (rdk)    7/17/84
                      5:  *
                      6:  * Super-Rogue
                      7:  * Copyright (C) 1984 Robert D. Kindelberger
                      8:  * All rights reserved.
                      9:  *
                     10:  * Based on "Rogue: Exploring the Dungeons of Doom"
                     11:  * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
                     12:  * All rights reserved.
                     13:  *
                     14:  * See the file LICENSE.TXT for full copyright and licensing information.
                     15:  */
                     16:
                     17: #include "rogue.h"
                     18: #include "rogue.ext"
                     19:
                     20: /*
                     21:  * wear:
                     22:  *     The player wants to wear something, so let the hero try
                     23:  */
                     24: void
                     25: wear(void)
                     26: {
                     27:        reg struct linked_list *item;
                     28:        reg struct object *obj;
                     29:
                     30:        if (cur_armor != NULL) {
                     31:                msg("You are already wearing some.");
                     32:                after = FALSE;
                     33:                return;
                     34:        }
                     35:        if ((item = get_item("wear", ARMOR)) == NULL)
                     36:                return;
                     37:        obj = OBJPTR(item);
                     38:        if (obj->o_type != ARMOR) {
                     39:                msg("You can't wear that.");
                     40:                return;
                     41:        }
                     42:        waste_time();
                     43:        msg("Wearing %s.", a_magic[obj->o_which].mi_name);
                     44:        cur_armor = obj;
                     45:        setoflg(obj,ISKNOW);
                     46:        nochange = FALSE;
                     47: }
                     48:
                     49:
                     50: /*
                     51:  * take_off:
                     52:  *     Get the armor off of the players back
                     53:  */
                     54: void
                     55: take_off(void)
                     56: {
                     57:        reg struct object *obj;
                     58:
                     59:        if ((obj = cur_armor) == NULL) {
                     60:                msg("Not wearing any armor.");
                     61:                return;
                     62:        }
                     63:        if (!dropcheck(cur_armor))
                     64:                return;
                     65:        cur_armor = NULL;
                     66:        msg("Was wearing %c) %s",pack_char(obj),inv_name(obj,TRUE));
                     67:        nochange = FALSE;
                     68: }
                     69:
                     70: /*
                     71:  * initarmor:
                     72:  *             Initialize some armor.
                     73:  */
                     74: void
                     75: initarmor(struct object *obj, int what)
                     76: {
                     77:        struct init_armor *iwa;
                     78:        struct magic_item *mi;
                     79:
                     80:        obj->o_type = ARMOR;
                     81:        obj->o_which = what;
                     82:        iwa = &armors[what];
                     83:        mi = &a_magic[what];
                     84:        obj->o_vol = iwa->a_vol;
                     85:        obj->o_ac = iwa->a_class;
                     86:        obj->o_weight = iwa->a_wght;
                     87:        obj->o_typname = things[TYP_ARMOR].mi_name;
                     88: }
                     89:
                     90: /*
                     91:  * hurt_armor:
                     92:  *     Returns TRUE if armor is damaged
                     93:  */
                     94: bool
                     95: hurt_armor(struct object *obj)
                     96: {
                     97:        reg int type, ac;
                     98:
                     99:        if (obj != NULL) {
                    100:                if (o_on(obj, ISPROT) || (o_on(obj, ISBLESS) && rnd(100) < 10))
                    101:                        return FALSE;
                    102:                ac = obj->o_ac;
                    103:                type = obj->o_which;
                    104:                if (type != PADDED && type != LEATHER)
                    105:                        if ((type == STUDDED && ac < 8) || (type != STUDDED && ac < 9))
                    106:                                return TRUE;
                    107:        }
                    108:        return FALSE;
                    109: }

CVSweb