--- deliantra/server/common/item.C 2009/10/12 03:09:02 1.56 +++ deliantra/server/common/item.C 2009/11/07 18:30:05 1.65 @@ -5,18 +5,19 @@ * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team * Copyright (©) 1992,2007 Frank Tore Johansen * - * Deliantra is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Deliantra is free software: you can redistribute it and/or modify it under + * the terms of the Affero GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * You should have received a copy of the Affero GNU General Public License + * and the GNU General Public License along with this program. If not, see + * . * * The authors can be reached via e-mail to */ @@ -66,12 +67,6 @@ /*{"body_dragon_torso", "your body", "a dragon's body"} */ }; -static char numbers[21][20] = { - "no", "", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", - "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", - "eighteen", "nineteen", "twenty" -}; - static char numbers_10[10][20] = { "zero", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety" @@ -171,7 +166,7 @@ {SPINNER, "spinner", "spinners", 0, 0}, {GATE, "gate", "gates", 0, 0}, {BUTTON, "button", "buttons", 0, 0}, - {CF_HANDLE, "cf handle", "cf handles", 0, 0}, + {T_HANDLE, "cf handle", "cf handles", 0, 0}, {HOLE, "hole", "holes", 0, 0}, {TRAPDOOR, "trapdoor", "trapdoors", 0, 0}, {SIGN, "sign", "signs", 0, 0}, @@ -208,7 +203,7 @@ {ITEM_TRANSFORMER, "item_transformer", "item_transformers", 0, 0}, }; -const int item_types_size = sizeof (item_types) / sizeof (*item_types); +static const int item_types_size = sizeof (item_types) / sizeof (*item_types); materialtype_t *materialt; @@ -382,28 +377,15 @@ const char * describe_resistance (const object *op, int newline) { - static char buf[VERY_BIG_BUF]; - char buf1[VERY_BIG_BUF]; - int tmpvar; - - buf[0] = 0; - for (tmpvar = 0; tmpvar < NROFATTACKS; tmpvar++) - { - if (op->resist[tmpvar] && (op->type != FLESH || atnr_is_dragon_enabled (tmpvar) == 1)) - { - if (!newline) - sprintf (buf1, "(%s %+d)", resist_plus[tmpvar], op->resist[tmpvar]); - else - sprintf (buf1, "%s %d\n", resist_plus[tmpvar], op->resist[tmpvar]); + static dynbuf_text buf; buf.clear (); - strcat (buf, buf1); - } - } + for (int i = 0; i < NROFATTACKS; i++) + if (op->resist[i] && (op->type != FLESH || atnr_is_dragon_enabled (i) == 1)) + buf.printf (newline ? "%s %d\n" : "(%s %+d)", resist_plus[i], op->resist[i]); return buf; } - /* * query_weight(object) returns a character pointer to a static buffer * containing the text-representation of the weight of the given object. @@ -455,26 +437,6 @@ } /* - * get_number(integer) returns the text-representation of the given number - * in a static buffer. The buffer might be overwritten at the next - * call to get_number(). - * It is currently only used by the query_name() function. - */ -const char * -get_number (int i) -{ - if (i <= 20) - return numbers[i]; - else - { - static char buf[MAX_BUF]; - - sprintf (buf, "%d", i); - return buf; - } -} - -/* * Returns pointer to static buffer containing ring's or amulet's * abilities * These are taken from old query_name(), but it would work better @@ -487,7 +449,7 @@ /* Aug 95 modified this slightly so that Skill tools don't have magic bonus * from stats.sp - b.t. */ -const char * +static const char * ring_desc (const object *op) { static dynbuf_text buf; buf.clear (); @@ -650,7 +612,7 @@ if (QUERY_FLAG (op, FLAG_INV_LOCKED)) buf << " *"; - if (op->type == CONTAINER && ((op->env && op->env->container == op) || (!op->env && QUERY_FLAG (op, FLAG_APPLIED)))) + if (op->is_open_container ()) buf << " (open)"; if (QUERY_FLAG (op, FLAG_KNOWN_CURSED)) @@ -828,7 +790,7 @@ * fall into the 'lightning fast movement' category. */ if (op->has_active_speed ()) - switch ((int) ((FABS (op->speed)) * 15)) + switch ((int)((fabs (op->speed)) * 15.)) { case 0: buf << "(very slow movement)"; @@ -1210,7 +1172,8 @@ if (op->slaying && op->type != FOOD) buf.printf ("(slay %s)", &op->slaying); - if (op->type == SKILL_TOOL && op->skill) buf.printf ("(%s)", &op->skill); + if (op->type == SKILL_TOOL && op->skill) + buf.printf ("(%s)", &op->skill); buf.add_abilities ("Attacks", op->attacktype); /* resistance on flesh is only visible for quetzals. If