ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/item.C
(Generate patch)

Comparing deliantra/server/common/item.C (file contents):
Revision 1.57 by root, Mon Oct 12 04:03:41 2009 UTC vs.
Revision 1.61 by root, Mon Oct 19 21:48:48 2009 UTC

3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * it under the terms of the GNU General Public License as published by 9 * the terms of the Affero GNU General Public License as published by the
10 * the Free Software Foundation, either version 3 of the License, or 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * (at your option) any later version. 11 * option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * You should have received a copy of the GNU General Public License 18 * You should have received a copy of the Affero GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * and the GNU General Public License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>.
20 * 21 *
21 * The authors can be reached via e-mail to <support@deliantra.net> 22 * The authors can be reached via e-mail to <support@deliantra.net>
22 */ 23 */
23 24
24#include <global.h> 25#include <global.h>
169 {SPELLBOOK, "spellbook", "spellbooks", SK_LITERACY, 0}, 170 {SPELLBOOK, "spellbook", "spellbooks", SK_LITERACY, 0},
170 {CLOAK, "cloak", "cloaks", SK_SMITHERY, 0}, 171 {CLOAK, "cloak", "cloaks", SK_SMITHERY, 0},
171 {SPINNER, "spinner", "spinners", 0, 0}, 172 {SPINNER, "spinner", "spinners", 0, 0},
172 {GATE, "gate", "gates", 0, 0}, 173 {GATE, "gate", "gates", 0, 0},
173 {BUTTON, "button", "buttons", 0, 0}, 174 {BUTTON, "button", "buttons", 0, 0},
174 {CF_HANDLE, "cf handle", "cf handles", 0, 0}, 175 {T_HANDLE, "cf handle", "cf handles", 0, 0},
175 {HOLE, "hole", "holes", 0, 0}, 176 {HOLE, "hole", "holes", 0, 0},
176 {TRAPDOOR, "trapdoor", "trapdoors", 0, 0}, 177 {TRAPDOOR, "trapdoor", "trapdoors", 0, 0},
177 {SIGN, "sign", "signs", 0, 0}, 178 {SIGN, "sign", "signs", 0, 0},
178 {BOOTS, "boots", "boots", SK_SMITHERY, 0}, 179 {BOOTS, "boots", "boots", SK_SMITHERY, 0},
179 {GLOVES, "gloves", "gloves", SK_SMITHERY, 0}, 180 {GLOVES, "gloves", "gloves", SK_SMITHERY, 0},
380 * but do put a newline at the end. Useful when dumping to files 381 * but do put a newline at the end. Useful when dumping to files
381 */ 382 */
382const char * 383const char *
383describe_resistance (const object *op, int newline) 384describe_resistance (const object *op, int newline)
384{ 385{
385 static char buf[VERY_BIG_BUF]; 386 static dynbuf_text buf; buf.clear ();
386 char buf1[VERY_BIG_BUF];
387 int tmpvar;
388 387
389 buf[0] = 0; 388 for (int i = 0; i < NROFATTACKS; i++)
390 for (tmpvar = 0; tmpvar < NROFATTACKS; tmpvar++)
391 {
392 if (op->resist[tmpvar] && (op->type != FLESH || atnr_is_dragon_enabled (tmpvar) == 1)) 389 if (op->resist[i] && (op->type != FLESH || atnr_is_dragon_enabled (i) == 1))
393 { 390 buf.printf (newline ? "%s %d\n" : "(%s %+d)", resist_plus[i], op->resist[i]);
394 if (!newline)
395 sprintf (buf1, "(%s %+d)", resist_plus[tmpvar], op->resist[tmpvar]);
396 else
397 sprintf (buf1, "%s %d\n", resist_plus[tmpvar], op->resist[tmpvar]);
398
399 strcat (buf, buf1);
400 }
401 }
402 391
403 return buf; 392 return buf;
404} 393}
405 394
406 395
648 637
649 buf << query_short_name (op); 638 buf << query_short_name (op);
650 639
651 if (QUERY_FLAG (op, FLAG_INV_LOCKED)) 640 if (QUERY_FLAG (op, FLAG_INV_LOCKED))
652 buf << " *"; 641 buf << " *";
653 if (op->type == CONTAINER && ((op->env && op->env->container == op) || (!op->env && QUERY_FLAG (op, FLAG_APPLIED)))) 642 if (op->is_open_container ())
654 buf << " (open)"; 643 buf << " (open)";
655 644
656 if (QUERY_FLAG (op, FLAG_KNOWN_CURSED)) 645 if (QUERY_FLAG (op, FLAG_KNOWN_CURSED))
657 { 646 {
658 if (QUERY_FLAG (op, FLAG_DAMNED)) 647 if (QUERY_FLAG (op, FLAG_DAMNED))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines