… | |
… | |
407 | floor_removed = 1; |
407 | floor_removed = 1; |
408 | } |
408 | } |
409 | else |
409 | else |
410 | { |
410 | { |
411 | if (floor_removed) |
411 | if (floor_removed) |
|
|
412 | { |
|
|
413 | /* This is the first item that was above the floor */ |
412 | above_floor = tmp; |
414 | above_floor = tmp; |
|
|
415 | floor_removed = 0; |
|
|
416 | } |
413 | } |
417 | } |
414 | |
418 | |
415 | tmp = above; |
419 | tmp = above; |
416 | } |
420 | } |
417 | } |
421 | } |
… | |
… | |
615 | |
619 | |
616 | SET_FLAG (tmp, FLAG_IS_BUILDABLE); |
620 | SET_FLAG (tmp, FLAG_IS_BUILDABLE); |
617 | SET_FLAG (tmp, FLAG_NO_PICK); |
621 | SET_FLAG (tmp, FLAG_NO_PICK); |
618 | |
622 | |
619 | /* |
623 | /* |
620 | * This doesn't work on non unique maps. pedestals under floor will not be saved... |
624 | * Str 1 is a flag that the item [pedestal] should go below the floor. |
621 | insert_flag = ( item->stats.Str == 1 ) ? INS_BELOW_ORIGINATOR : INS_ABOVE_FLOOR_ONLY; |
625 | * Items under the floor on non-unique maps will not be saved, |
|
|
626 | * so make the item itself unique in this situation. |
622 | */ |
627 | */ |
623 | insert_flag = INS_ABOVE_FLOOR_ONLY; |
628 | insert_flag = ( item->stats.Str == 1 ) ? INS_BELOW_ORIGINATOR : INS_ABOVE_FLOOR_ONLY; |
|
|
629 | if (insert_flag == INS_BELOW_ORIGINATOR && !pl->map->no_reset) |
|
|
630 | SET_FLAG (tmp, FLAG_UNIQUE); |
624 | |
631 | |
625 | shstr_tmp connected; |
632 | shstr_tmp connected; |
626 | |
633 | |
627 | switch (tmp->type) |
634 | switch (tmp->type) |
628 | { |
635 | { |