From 462bedb75708043f3ef9520e8fb84640ebaec945 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Thu, 20 Sep 2012 11:11:59 +0400 Subject: Fix the rename plugin and script to use the new getSelectedBuilding API. --- plugins/rename.cpp | 5 +++-- scripts/gui/rename.lua | 10 +++++----- scripts/gui/siege-engine.lua | 4 ++++ 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 ¶meters) 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 -- cgit v1.2.1