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

Comparing deliantra/server/common/arch.C (file contents):
Revision 1.65 by root, Thu Jun 7 18:55:24 2007 UTC vs.
Revision 1.68 by root, Sun Jul 1 05:00:17 2007 UTC

1/* 1/*
2 * This file is part of Crossfire TRT, the Multiplayer Online Role Playing Game. 2 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team 4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT 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 * Crossfire TRT is free software; you can redistribute it and/or modify it 8 * Crossfire TRT is free software: you can redistribute it and/or modify
9 * under the terms of the GNU General Public License as published by the Free 9 * it under the terms of the GNU General Public License as published by
10 * Software Foundation; either version 2 of the License, or (at your option) 10 * the Free Software Foundation, either version 3 of the License, or
11 * any later version. 11 * (at your option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, but 13 * This program is distributed in the hope that it will be useful,
14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * 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 along 18 * You should have received a copy of the GNU General Public License
19 * with Crossfire TRT; if not, write to the Free Software Foundation, Inc. 51 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 * 20 *
22 * The authors can be reached via e-mail to <crossfire@schmorp.de> 21 * The authors can be reached via e-mail to <crossfire@schmorp.de>
23 */ 22 */
24 23
25#include <cassert> 24#include <cassert>
69find_archetype_by_object_name (const char *name) 68find_archetype_by_object_name (const char *name)
70{ 69{
71 shstr_cmp name_cmp (name); 70 shstr_cmp name_cmp (name);
72 71
73 for_all_archetypes (at) 72 for_all_archetypes (at)
74 if (at->archname == name_cmp) 73 if (at->name == name_cmp)
75 return at; 74 return at;
76 75
77 return 0; 76 return 0;
78} 77}
79 78
86find_archetype_by_object_type_name (int type, const char *name) 85find_archetype_by_object_type_name (int type, const char *name)
87{ 86{
88 shstr_cmp name_cmp (name); 87 shstr_cmp name_cmp (name);
89 88
90 for_all_archetypes (at) 89 for_all_archetypes (at)
91 if (at->archname == name_cmp && at->type == type) 90 if (at->name == name_cmp && at->type == type)
92 return at; 91 return at;
93 92
94 return 0; 93 return 0;
95} 94}
96 95
443 archetype *less = new_head; 442 archetype *less = new_head;
444 for (auto (p, parts.begin () + 1); p != parts.end (); ++p) 443 for (auto (p, parts.begin () + 1); p != parts.end (); ++p)
445 { 444 {
446 archetype *at = *p; 445 archetype *at = *p;
447 446
447 // some flags get inherited formt he head (probably a lot more)
448 // doing it here doesn't feel too cozy, but it allows code
449 // to ignore head checks for these flags, which saves time
450 at->flag [FLAG_ALIVE] = new_head->flag [FLAG_ALIVE];
451 at->flag [FLAG_NO_PICK] = new_head->flag [FLAG_NO_PICK];
452 at->flag [FLAG_MONSTER] = new_head->flag [FLAG_MONSTER];
453 at->flag [FLAG_IS_FLOOR] = new_head->flag [FLAG_IS_FLOOR];
454
448 if (at->x < new_head->min_x) new_head->min_x = at->x; 455 if (at->x < new_head->min_x) new_head->min_x = at->x;
449 if (at->y < new_head->min_y) new_head->min_y = at->y; 456 if (at->y < new_head->min_y) new_head->min_y = at->y;
450 if (at->x > new_head->max_x) new_head->max_x = at->x; 457 if (at->x > new_head->max_x) new_head->max_x = at->x;
451 if (at->y > new_head->max_y) new_head->max_y = at->y; 458 if (at->y > new_head->max_y) new_head->max_y = at->y;
452 459
520 527
521 if (!strcmp (name, "bug")) 528 if (!strcmp (name, "bug"))
522 abort (); 529 abort ();
523 530
524 char buf[MAX_BUF]; 531 char buf[MAX_BUF];
525 sprintf (buf, "bug, please report (%s)", ARCH_SINGULARITY, name); 532 sprintf (buf, "bug, please report (%s)", name);
526 533
527 object *op = get_archetype ("bug"); 534 object *op = get_archetype ("bug");
528 op->name = op->name_pl = buf; 535 op->name = op->name_pl = buf;
529 536
530 return op; 537 return op;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines