--- deliantra/server/common/item.C 2007/05/07 07:47:32 1.31 +++ deliantra/server/common/item.C 2007/05/12 18:14:47 1.33 @@ -274,7 +274,7 @@ enc = 0; for (i = 0; i < NUM_STATS; i++) - enc += get_attr_value (&op->stats, i); + enc += op->stats.stat (i); /* This protection logic is pretty flawed. 20% fire resistance * is much more valuable than 20% confusion, or 20% slow, or @@ -504,10 +504,8 @@ for (attr = 0; attr < NUM_STATS; attr++) { - if ((val = get_attr_value (&(op->stats), attr)) != 0) - { - sprintf (buf + strlen (buf), "(%s%+d)", short_stat_name[attr], val); - } + if ((val = op->stats.stat (attr))) + sprintf (buf + strlen (buf), "(%s%+d)", short_stat_name[attr], val); } if (op->stats.exp) @@ -1086,14 +1084,16 @@ case POWER_CRYSTAL: if (op->stats.maxsp > 1000) { /*higher capacity crystals */ - i = (op->stats.maxsp % 100) / 10; + i = (op->stats.maxsp % 1000) / 100; + if (i) - snprintf (buf, MAX_BUF, "(capacity %d.%dk). It is ", op->stats.maxsp / 100, i); + snprintf (buf, MAX_BUF, "(capacity %d.%dk). It is ", op->stats.maxsp / 1000, i); else - snprintf (buf, MAX_BUF, "(capacity %dk). It is ", op->stats.maxsp / 100); + snprintf (buf, MAX_BUF, "(capacity %dk). It is ", op->stats.maxsp / 1000); } else snprintf (buf, MAX_BUF, "(capacity %d). It is ", op->stats.maxsp); + strcat (retbuf, buf); i = (op->stats.sp * 10) / op->stats.maxsp; if (op->stats.sp == 0) @@ -1168,7 +1168,7 @@ for (attr = 0; attr < NUM_STATS; attr++) { - if ((val = get_attr_value (&(op->stats), attr)) != 0) + if ((val = op->stats.stat (attr))) { sprintf (buf, "(%s%+d)", short_stat_name[attr], val); strcat (retbuf, buf); @@ -1435,7 +1435,7 @@ /* Check to see if it increases/decreases any stats */ for (i = 0; i < NUM_STATS; i++) - if (get_attr_value (&(op->stats), i) != 0) + if (op->stats.stat (i)) return 1; /* If it doesn't fall into any of the above categories, must @@ -1454,40 +1454,41 @@ { switch (op->type) { - case RING: - case WAND: - case ROD: - case HORN: - case SCROLL: - case SKILL: - case SKILLSCROLL: - case SPELLBOOK: - case FOOD: - case POTION: - case BOW: - case ARROW: - case WEAPON: - case ARMOUR: - case SHIELD: - case HELMET: - case AMULET: - case BOOTS: - case GLOVES: - case BRACERS: - case GIRDLE: - case CONTAINER: - case DRINK: - case FLESH: - case INORGANIC: - case CLOSE_CON: - case CLOAK: - case GEM: - case POWER_CRYSTAL: - case POISON: - case BOOK: - case SKILL_TOOL: - return 1; + case RING: + case WAND: + case ROD: + case HORN: + case SCROLL: + case SKILL: + case SKILLSCROLL: + case SPELLBOOK: + case FOOD: + case POTION: + case BOW: + case ARROW: + case WEAPON: + case ARMOUR: + case SHIELD: + case HELMET: + case AMULET: + case BOOTS: + case GLOVES: + case BRACERS: + case GIRDLE: + case CONTAINER: + case DRINK: + case FLESH: + case INORGANIC: + case CLOSE_CON: + case CLOAK: + case GEM: + case POWER_CRYSTAL: + case POISON: + case BOOK: + case SKILL_TOOL: + return 1; } + /* Try to track down some stuff that may show up here. Thus, the * archetype file can be updated, and this function removed. */