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

Comparing deliantra/server/common/object.C (file contents):
Revision 1.156 by root, Fri May 18 01:01:01 2007 UTC vs.
Revision 1.159 by root, Mon Jun 4 13:04:00 2007 UTC

1/* 1/*
2 * CrossFire, A Multiplayer game 2 * This file is part of Crossfire TRT, the Multiplayer Online Role Playing Game.
3 * 3 *
4 * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team 4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team
5 * Copyright (C) 2001 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * Crossfire TRT is free software; you can redistribute it and/or modify it
9 * it under the terms of the GNU General Public License as published by 9 * under the terms of the GNU General Public License as published by the Free
10 * the Free Software Foundation; either version 2 of the License, or 10 * Software Foundation; either version 2 of the License, or (at your option)
11 * (at your option) any later version. 11 * 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, but
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * GNU General Public License for more details. 16 * 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 GNU General Public License along
19 * along with this program; if not, write to the Free Software 19 * with Crossfire TRT; if not, write to the Free Software Foundation, Inc. 51
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 * 21 *
22 * The authors can be reached via e-mail at <crossfire@schmorp.de> 22 * The authors can be reached via e-mail to <crossfire@schmorp.de>
23 */ 23 */
24 24
25/* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects. 25/* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects.
26 sub/add_weight will transcend the environment updating the carrying 26 sub/add_weight will transcend the environment updating the carrying
27 variable. */ 27 variable. */
1205object * 1205object *
1206insert_ob_in_map_at (object *op, maptile *m, object *originator, int flag, int x, int y) 1206insert_ob_in_map_at (object *op, maptile *m, object *originator, int flag, int x, int y)
1207{ 1207{
1208 for (object *tmp = op->head_ (); tmp; tmp = tmp->more) 1208 for (object *tmp = op->head_ (); tmp; tmp = tmp->more)
1209 { 1209 {
1210 tmp->x = x + tmp->arch->clone.x; 1210 tmp->x = x + tmp->arch->x;
1211 tmp->y = y + tmp->arch->clone.y; 1211 tmp->y = y + tmp->arch->y;
1212 } 1212 }
1213 1213
1214 return insert_ob_in_map (op, m, originator, flag); 1214 return insert_ob_in_map (op, m, originator, flag);
1215} 1215}
1216 1216
1488 object *tmp, *tmp1; 1488 object *tmp, *tmp1;
1489 1489
1490 /* first search for itself and remove any old instances */ 1490 /* first search for itself and remove any old instances */
1491 1491
1492 for (tmp = op->ms ().bot; tmp; tmp = tmp->above) 1492 for (tmp = op->ms ().bot; tmp; tmp = tmp->above)
1493 if (!strcmp (tmp->arch->name, arch_string)) /* same archetype */ 1493 if (!strcmp (tmp->arch->archname, arch_string)) /* same archetype */
1494 tmp->destroy (); 1494 tmp->destroy ();
1495 1495
1496 tmp1 = arch_to_object (archetype::find (arch_string)); 1496 tmp1 = arch_to_object (archetype::find (arch_string));
1497 1497
1498 tmp1->x = op->x; 1498 tmp1->x = op->x;
2495 /* Basically, if the archetype has this key set, 2495 /* Basically, if the archetype has this key set,
2496 * we need to store the null value so when we save 2496 * we need to store the null value so when we save
2497 * it, we save the empty value so that when we load, 2497 * it, we save the empty value so that when we load,
2498 * we get this value back again. 2498 * we get this value back again.
2499 */ 2499 */
2500 if (get_ob_key_link (&op->arch->clone, canonical_key)) 2500 if (get_ob_key_link (op->arch, canonical_key))
2501 field->value = 0; 2501 field->value = 0;
2502 else 2502 else
2503 { 2503 {
2504 if (last) 2504 if (last)
2505 last->next = field->next; 2505 last->next = field->next;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines