--- deliantra/server/common/map.C 2006/12/25 15:28:35 1.50 +++ deliantra/server/common/map.C 2006/12/25 17:11:16 1.51 @@ -603,7 +603,7 @@ * in order to do map tiling properly. */ void -save_objects (maptile *m, object_freezer & fp, object_freezer & fp2, int flag) +save_objects (maptile *m, object_freezer &fp, object_freezer &fp2, int flag) { int i, j = 0, unique = 0; object *op; @@ -613,9 +613,10 @@ for (j = 0; j < m->height; j++) { unique = 0; + for (op = m->at (i, j).bot; op; op = op->above) { - if (op->flag [FLAG_IS_FLOOR] && op->flag [FLAG_UNIQUE]) + if (op->flag [FLAG_UNIQUE] && op->flag [FLAG_IS_FLOOR]) unique = 1; if (op->type == PLAYER) @@ -625,9 +626,9 @@ continue; if (unique || op->flag [FLAG_UNIQUE]) - save_object (fp2, op, 3); + save_object (fp2, op, 1); else if (flag == 0 || (flag == 2 && (!op->flag [FLAG_OBJ_ORIGINAL] && !op->flag [FLAG_UNPAID]))) - save_object (fp, op, 3); + save_object (fp, op, 1); } } }