summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/rename.cpp5
-rw-r--r--scripts/gui/rename.lua10
-rw-r--r--scripts/gui/siege-engine.lua4
3 files changed, 12 insertions, 7 deletions
diff --git a/plugins/rename.cpp b/plugins/rename.cpp
index 99dc6848..f9de83bd 100644
--- a/plugins/rename.cpp
+++ b/plugins/rename.cpp
@@ -357,10 +357,11 @@ static command_result rename(color_ostream &out, vector <string> &parameters)
if (parameters.size() != 2)
return CR_WRONG_USAGE;
- if (ui->main.mode != ui_sidebar_mode::QueryBuilding)
+ df::building *bld = Gui::getSelectedBuilding(out, true);
+ if (!bld)
return CR_WRONG_USAGE;
- if (!renameBuilding(world->selected_building, parameters[1]))
+ if (!renameBuilding(bld, parameters[1]))
{
out.printerr("This type of building is not supported.\n");
return CR_FAILURE;
diff --git a/scripts/gui/rename.lua b/scripts/gui/rename.lua
index a457a0bf..70a09b2f 100644
--- a/scripts/gui/rename.lua
+++ b/scripts/gui/rename.lua
@@ -13,10 +13,12 @@ local function verify_mode(expected)
end
end
-if string.match(focus, '^dwarfmode/QueryBuilding/Some') then
+local unit = dfhack.gui.getSelectedUnit(true)
+local building = dfhack.gui.getSelectedBuilding(true)
+
+if building and (not unit or mode == 'building') then
verify_mode('building')
- local building = df.global.world.selected_building
if plugin.canRenameBuilding(building) then
dlg.showInputPrompt(
'Rename Building',
@@ -30,9 +32,7 @@ if string.match(focus, '^dwarfmode/QueryBuilding/Some') then
'Cannot rename this type of building.', COLOR_LIGHTRED
)
end
-elseif dfhack.gui.getSelectedUnit(true) then
- local unit = dfhack.gui.getSelectedUnit(true)
-
+elseif unit then
if mode == 'unit-profession' then
dlg.showInputPrompt(
'Rename Unit',
diff --git a/scripts/gui/siege-engine.lua b/scripts/gui/siege-engine.lua
index c98cb167..f460bb21 100644
--- a/scripts/gui/siege-engine.lua
+++ b/scripts/gui/siege-engine.lua
@@ -74,6 +74,10 @@ function SiegeEngine:onDestroy()
end
end
+function SiegeEngine:onGetSelectedBuilding()
+ return df.global.world.selected_building
+end
+
function SiegeEngine:showCursor(enable)
local cursor = guidm.getCursorPos()
if cursor and not enable then