undo clear items

This commit is contained in:
2025-06-02 21:30:15 -05:00
parent c662477c43
commit bdf1b8a4a8
4 changed files with 36 additions and 3 deletions

View File

@@ -694,19 +694,36 @@ void handle_menu_choice(eMenu item_hit) {
change_made = true;
break;
case eMenu::TOWN_ITEMS_NOT_PROPERTY:
if(!town->any_items()){
cChoiceDlog("no-items").show();
break;
}
for(int i = 0; i < town->preset_items.size(); i++)
town->preset_items[i].property = 0;
cChoiceDlog("set-not-owned").show();
draw_terrain();
change_made = true;
break;
case eMenu::TOWN_ITEMS_CLEAR:
case eMenu::TOWN_ITEMS_CLEAR:{
if(!town->any_items()){
cChoiceDlog("no-items").show();
break;
}
if(cChoiceDlog("clear-items-confirm", {"okay", "cancel"}).show() == "cancel")
break;
town->preset_items.clear();
item_changes_t changes;
auto& town_items = town->preset_items;
for(size_t i = 0; i < town_items.size(); ++i){
if(town_items[i].code < 0) continue;
changes[i] = town_items[i];
town_items[i].code = -1;
}
undo_list.add(action_ptr(new aPlaceEraseItem("Clear Items", false, changes)));
update_edit_menu();
draw_terrain();
change_made = true;
break;
}break;
case eMenu::TOWN_SPECIALS:
right_sbar->setPosition(0);
start_special_editing(2,0);