… | |
… | |
551 | */ |
551 | */ |
552 | archetype *arch = archetype::find (str); |
552 | archetype *arch = archetype::find (str); |
553 | |
553 | |
554 | object *tmp; |
554 | object *tmp; |
555 | |
555 | |
556 | if (arch != NULL) |
556 | if (arch) |
557 | tmp = arch_to_object (arch); |
557 | tmp = arch_to_object (arch); |
558 | else |
558 | else |
559 | { |
559 | { |
560 | tmp = object::create (); |
560 | tmp = object::create (); |
561 | /* record the name of the broken object */ |
561 | /* record the name of the broken object */ |
… | |
… | |
563 | } |
563 | } |
564 | |
564 | |
565 | // decativate the object we, as we are still going |
565 | // decativate the object we, as we are still going |
566 | // to read the speed value. Objects should be activated |
566 | // to read the speed value. Objects should be activated |
567 | // when the map, object or player is completly loaded. |
567 | // when the map, object or player is completly loaded. |
568 | tmp->deactivate (false); |
568 | tmp->deactivate (); |
569 | |
569 | |
570 | parse_object (tmp, thawer, map_flags); |
570 | parse_object (tmp, thawer, map_flags); |
571 | |
571 | |
572 | if (tmp->arch) |
572 | if (tmp->arch) |
573 | { |
573 | { |
… | |
… | |
606 | { |
606 | { |
607 | /* This is the actual archetype definition then */ |
607 | /* This is the actual archetype definition then */ |
608 | op->arch = archetype::find (str); |
608 | op->arch = archetype::find (str); |
609 | |
609 | |
610 | if (op->arch) |
610 | if (op->arch) |
|
|
611 | { |
611 | op->arch->clone.copy_to (op); |
612 | op->arch->clone.copy_to (op); |
|
|
613 | // copy_to activates, this should be fixed properly |
|
|
614 | op->deactivate (); |
|
|
615 | } |
612 | else if (!arch_init) |
616 | else if (!arch_init) |
613 | /* record the name of the broken object */ |
617 | /* record the name of the broken object */ |
614 | op->name = str; |
618 | op->name = str; |
615 | } |
619 | } |
616 | } |
620 | } |
… | |
… | |
1466 | |
1470 | |
1467 | for (object *tmp = op->inv; tmp; tmp = tmp->below) |
1471 | for (object *tmp = op->inv; tmp; tmp = tmp->below) |
1468 | save_object (fp, tmp, flag); |
1472 | save_object (fp, tmp, flag); |
1469 | |
1473 | |
1470 | fp.put (op); |
1474 | fp.put (op); |
1471 | fp.put (KW_end, 0); |
1475 | fp.put (KW_end); |
1472 | } |
1476 | } |
1473 | |
1477 | |