… | |
… | |
737 | } |
737 | } |
738 | |
738 | |
739 | mapspace &m = op->ms (); |
739 | mapspace &m = op->ms (); |
740 | |
740 | |
741 | if (!(m.flags_ & P_UPTODATE)) |
741 | if (!(m.flags_ & P_UPTODATE)) |
742 | /* nop */; |
742 | m.update_up (); // nothing to do except copy up |
743 | else if (action == UP_OBJ_INSERT) |
743 | else if (action == UP_OBJ_INSERT) |
744 | { |
744 | { |
745 | #if 0 |
745 | #if 0 |
746 | // this is likely overkill, TODO: revisit (schmorp) |
746 | // this is likely overkill, TODO: revisit (schmorp) |
747 | if ((op->flag [FLAG_BLOCKSVIEW] && !(m.flags_ & P_BLOCKSVIEW)) |
747 | if ((op->flag [FLAG_BLOCKSVIEW] && !(m.flags_ & P_BLOCKSVIEW)) |
… | |
… | |
768 | * that is being removed. |
768 | * that is being removed. |
769 | */ |
769 | */ |
770 | else if (action == UP_OBJ_CHANGE || action == UP_OBJ_REMOVE) |
770 | else if (action == UP_OBJ_CHANGE || action == UP_OBJ_REMOVE) |
771 | m.invalidate (); |
771 | m.invalidate (); |
772 | else if (action == UP_OBJ_FACE) |
772 | else if (action == UP_OBJ_FACE) |
773 | /* Nothing to do for that case */ ; |
773 | m.update_up (); // nothing to do for that case, except copy up |
774 | else |
774 | else |
775 | LOG (llevError, "update_object called with invalid action: %d\n", action); |
775 | LOG (llevError, "update_object called with invalid action: %d\n", action); |
776 | |
776 | |
777 | if (op->more) |
777 | if (op->more) |
778 | update_object (op->more, action); |
778 | update_object (op->more, action); |
… | |
… | |
898 | * if some form of movement is allowed, let objects |
898 | * if some form of movement is allowed, let objects |
899 | * drop on that space. |
899 | * drop on that space. |
900 | */ |
900 | */ |
901 | if (!drop_to_ground |
901 | if (!drop_to_ground |
902 | || !map |
902 | || !map |
903 | || map->in_memory != MAP_ACTIVE |
903 | || !map->linkable () |
904 | || map->no_drop |
904 | || map->no_drop |
905 | || ms ().move_block == MOVE_ALL) |
905 | || ms ().move_block == MOVE_ALL) |
906 | { |
906 | { |
907 | while (inv) |
907 | while (inv) |
908 | inv->destroy (); |
908 | inv->destroy (); |
… | |
… | |
1015 | path = "<freed objects map>"; |
1015 | path = "<freed objects map>"; |
1016 | name = "/internal/freed_objects_map"; |
1016 | name = "/internal/freed_objects_map"; |
1017 | no_drop = 1; |
1017 | no_drop = 1; |
1018 | no_reset = 1; |
1018 | no_reset = 1; |
1019 | |
1019 | |
1020 | in_memory = MAP_ACTIVE; |
1020 | state = MAP_ACTIVE; |
1021 | } |
1021 | } |
1022 | |
1022 | |
1023 | ~freed_map () |
1023 | ~freed_map () |
1024 | { |
1024 | { |
1025 | destroy (); |
1025 | destroy (); |
… | |
… | |
1198 | |
1198 | |
1199 | above = 0; |
1199 | above = 0; |
1200 | below = 0; |
1200 | below = 0; |
1201 | |
1201 | |
1202 | ms.invalidate (); |
1202 | ms.invalidate (); |
1203 | |
|
|
1204 | if (map->in_memory == MAP_SAVING) |
|
|
1205 | return; |
|
|
1206 | |
1203 | |
1207 | int check_walk_off = !flag [FLAG_NO_APPLY]; |
1204 | int check_walk_off = !flag [FLAG_NO_APPLY]; |
1208 | |
1205 | |
1209 | if (object *pl = ms.player ()) |
1206 | if (object *pl = ms.player ()) |
1210 | { |
1207 | { |