Add: Setting to allow placing houses manually in-game (#13266)

This commit is contained in:
Tyler Trahan
2025-02-09 13:34:31 -05:00
committed by GitHub
parent 01b639bb23
commit b2f5a4901b
6 changed files with 57 additions and 12 deletions

View File

@@ -481,13 +481,21 @@ static CallBackFunction MenuClickMap(int index)
/* --- Town button menu --- */
enum TownMenuEntries {
TME_SHOW_DIRECTORY = 0,
TME_SHOW_FOUND_TOWN,
TME_SHOW_PLACE_HOUSES,
};
static CallBackFunction ToolbarTownClick(Window *w)
{
if (_settings_game.economy.found_town == TF_FORBIDDEN) {
PopupMainToolbarMenu(w, WID_TN_TOWNS, {STR_TOWN_MENU_TOWN_DIRECTORY});
} else {
PopupMainToolbarMenu(w, WID_TN_TOWNS, {STR_TOWN_MENU_TOWN_DIRECTORY, STR_TOWN_MENU_FOUND_TOWN});
}
DropDownList list;
list.push_back(MakeDropDownListStringItem(STR_TOWN_MENU_TOWN_DIRECTORY, TME_SHOW_DIRECTORY));
if (_settings_game.economy.found_town != TF_FORBIDDEN) list.push_back(MakeDropDownListStringItem(STR_TOWN_MENU_FOUND_TOWN, TME_SHOW_FOUND_TOWN));
if (_settings_game.economy.place_houses != PH_FORBIDDEN) list.push_back(MakeDropDownListStringItem(STR_SCENEDIT_TOWN_MENU_PACE_HOUSE, TME_SHOW_PLACE_HOUSES));
PopupMainToolbarMenu(w, WID_TN_TOWNS, std::move(list), 0);
return CBF_NONE;
}
@@ -500,10 +508,13 @@ static CallBackFunction ToolbarTownClick(Window *w)
static CallBackFunction MenuClickTown(int index)
{
switch (index) {
case 0: ShowTownDirectory(); break;
case 1: // setting could be changed when the dropdown was open
case TME_SHOW_DIRECTORY: ShowTownDirectory(); break;
case TME_SHOW_FOUND_TOWN: // Setting could be changed when the dropdown was open
if (_settings_game.economy.found_town != TF_FORBIDDEN) ShowFoundTownWindow();
break;
case TME_SHOW_PLACE_HOUSES: // Setting could be changed when the dropdown was open
if (_settings_game.economy.place_houses != PH_FORBIDDEN) ShowBuildHousePicker(nullptr);
break;
}
return CBF_NONE;
}