--- deliantra/server/random_maps/wall.C 2006/12/20 09:14:22 1.10 +++ deliantra/server/random_maps/wall.C 2006/12/30 10:16:11 1.11 @@ -269,15 +269,10 @@ break; } wall_arch = archetype::find (wall_name); - if (wall_arch) - return arch_to_object (wall_arch); - else - { - nroferrors--; - return arch_to_object (the_wall->arch); - } - + return wall_arch + ? arch_to_object (wall_arch) + : arch_to_object (the_wall->arch); } @@ -389,21 +384,24 @@ strcat (RP->wall_name, "_4"); break; } + wall_arch = archetype::find (RP->wall_name); - if (wall_arch != NULL) + + if (!wall_arch) { new_wall = arch_to_object (wall_arch); new_wall->x = i; new_wall->y = j; + if (the_wall && the_wall->map) { the_wall->remove (); the_wall->destroy (); } + the_wall->move_block = MOVE_ALL; insert_ob_in_map (new_wall, the_map, new_wall, INS_NO_MERGE | INS_NO_WALK_ON); } - else - nroferrors--; /* it's OK not to find an arch. */ + return new_wall; }