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.223 by root, Wed Apr 30 08:29:31 2008 UTC vs.
Revision 1.224 by root, Fri May 2 20:16:24 2008 UTC

606} 606}
607 607
608object & 608object &
609object::operator =(const object &src) 609object::operator =(const object &src)
610{ 610{
611 bool is_freed = flag [FLAG_FREED]; 611 remove ();
612 bool is_removed = flag [FLAG_REMOVED];
613 612
614 *(object_copy *)this = src; 613 *(object_copy *)this = src;
615 614
616 flag [FLAG_FREED] = is_freed;
617 flag [FLAG_REMOVED] = is_removed; 615 flag [FLAG_REMOVED] = true;
618 616
619 /* Copy over key_values, if any. */ 617 /* Copy over key_values, if any. */
620 if (src.key_values) 618 if (src.key_values)
621 { 619 {
622 key_value *tail = 0; 620 key_value *tail = 0;
2326 * create clone from object to another 2324 * create clone from object to another
2327 */ 2325 */
2328object * 2326object *
2329object_create_clone (object *asrc) 2327object_create_clone (object *asrc)
2330{ 2328{
2331 object *dst = 0, *tmp, *src, *prev, *item; 2329 object *dst = 0;
2332 2330
2333 if (!asrc) 2331 if (!asrc)
2334 return 0; 2332 return 0;
2335 2333
2336 src = asrc->head_ (); 2334 object *src = asrc->head_ ();
2337 2335
2338 prev = 0; 2336 object *prev = 0;
2339 for (object *part = src; part; part = part->more) 2337 for (object *part = src; part; part = part->more)
2340 { 2338 {
2341 tmp = part->clone (); 2339 object *tmp = part->clone ();
2340
2342 tmp->x -= src->x; 2341 tmp->x -= src->x;
2343 tmp->y -= src->y; 2342 tmp->y -= src->y;
2344 2343
2345 if (!part->head) 2344 if (!part->head)
2346 { 2345 {
2356 prev->more = tmp; 2355 prev->more = tmp;
2357 2356
2358 prev = tmp; 2357 prev = tmp;
2359 } 2358 }
2360 2359
2361 for (item = src->inv; item; item = item->below) 2360 for (object *item = src->inv; item; item = item->below)
2362 insert_ob_in_ob (object_create_clone (item), dst); 2361 insert_ob_in_ob (object_create_clone (item), dst);
2363 2362
2364 return dst; 2363 return dst;
2365} 2364}
2366 2365

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines