--- deliantra/server/common/loader.C 2006/12/30 10:16:10 1.31 +++ deliantra/server/common/loader.C 2006/12/31 17:17:22 1.33 @@ -542,6 +542,7 @@ case KW_arch: { const char *str = thawer.get_str (); + fprintf (stderr, "arch %s\n", str);//D if (op->arch) { @@ -553,7 +554,7 @@ object *tmp; - if (arch != NULL) + if (arch) tmp = arch_to_object (arch); else { @@ -562,6 +563,11 @@ tmp->name = str; } + // decativate the object we, as we are still going + // to read the speed value. Objects should be activated + // when the map, object or player is completly loaded. + tmp->deactivate (); + parse_object (tmp, thawer, map_flags); if (tmp->arch) @@ -603,7 +609,11 @@ op->arch = archetype::find (str); if (op->arch) - op->arch->clone.copy_to (op); + { + op->arch->clone.copy_to (op); + // copy_to activates, this should be fixed properly + op->deactivate (); + } else if (!arch_init) /* record the name of the broken object */ op->name = str; @@ -1463,6 +1473,6 @@ save_object (fp, tmp, flag); fp.put (op); - fp.put (KW_end, 0); + fp.put (KW_end); }