--- deliantra/server/common/object.C 2009/11/29 17:26:28 1.308 +++ deliantra/server/common/object.C 2010/03/20 00:42:08 1.312 @@ -1,7 +1,7 @@ /* * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team * Copyright (©) 1992,2007 Frank Tore Johansen * @@ -28,7 +28,6 @@ #include #include #include -#include #include @@ -250,12 +249,12 @@ */ bool object::can_merge_slow (object *ob1, object *ob2) { - /* A couple quicksanity checks */ + /* A couple quick sanity checks */ if (ob1 == ob2 || ob1->type != ob2->type - || fabs (ob1->speed - ob2->speed) >= MIN_ACTIVE_SPEED || ob1->value != ob2->value - || ob1->name != ob2->name) + || ob1->name != ob2->name + || fabs (ob1->speed - ob2->speed) >= MIN_ACTIVE_SPEED) return 0; /* Do not merge objects if nrof would overflow, assume nrof @@ -286,7 +285,7 @@ || ob1->skill != ob2->skill || ob1->value != ob2->value || ob1->animation_id != ob2->animation_id - || (ob1->face != ob2->face && !ob1->animation_id) // face and animation are dependent on each other + || (ob1->face != ob2->face && !ob1->animation_id) // face and animation are dependend on each other || ob1->client_type != ob2->client_type || ob1->material != ob2->material || ob1->lore != ob2->lore @@ -523,6 +522,21 @@ } /* + * Returns the object which has the uuid equal to the argument. + * MOAR VERRRY slow. + */ + +object * +find_object_uuid (UUID i) +{ + for_all_objects (op) + if (op->uuid == i) + return op; + + return 0; +} + +/* * Returns the first object which has a name equal to the argument. * Used only by the patch command, but not all that useful. * Enables features like "patch food 999" @@ -1271,7 +1285,7 @@ for (archetype *at = (archetype *)arch->more; at; at = (archetype *)at->more) { - object *op = arch_to_object (at); + object *op = at->instance (); op->name = name; op->name_pl = name_pl; @@ -2565,7 +2579,7 @@ // insert the "Close Container" object. if (archetype *closer = new_container->other_arch) { - object *closer = arch_to_object (new_container->other_arch); + object *closer = new_container->other_arch->instance (); closer->flag [FLAG_NO_MAP_SAVE] = 1; new_container->insert (closer); }