From a89251cdf87bbe1fd885edb5e48842a641180952 Mon Sep 17 00:00:00 2001 From: lethosor Date: Sat, 14 May 2016 16:07:27 -0400 Subject: [PATCH] Find job in job screen --- library/modules/Gui.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/library/modules/Gui.cpp b/library/modules/Gui.cpp index 3fc353abf..2cc955d63 100644 --- a/library/modules/Gui.cpp +++ b/library/modules/Gui.cpp @@ -51,6 +51,7 @@ using namespace DFHack; #include "df/viewscreen_dwarfmodest.h" #include "df/viewscreen_dungeonmodest.h" #include "df/viewscreen_dungeon_monsterstatusst.h" +#include "df/viewscreen_jobst.h" #include "df/viewscreen_joblistst.h" #include "df/viewscreen_unitlistst.h" #include "df/viewscreen_buildinglistst.h" @@ -761,6 +762,10 @@ df::job *Gui::getSelectedJob(color_ostream &out, bool quiet) { df::viewscreen *top = Core::getTopViewscreen(); + if (VIRTUAL_CAST_VAR(screen, df::viewscreen_jobst, top)) + { + return screen->job; + } if (VIRTUAL_CAST_VAR(joblist, df::viewscreen_joblistst, top)) { df::job *job = vector_get(joblist->jobs, joblist->cursor_pos); @@ -1057,9 +1062,12 @@ df::building *Gui::getAnyBuilding(df::viewscreen *top) using df::global::world; using df::global::ui_sidebar_menus; - if (auto screen = strict_virtual_cast(top)) + if (VIRTUAL_CAST_VAR(screen, df::viewscreen_buildinglistst, top)) return vector_get(screen->buildings, screen->cursor); + if (VIRTUAL_CAST_VAR(screen, df::viewscreen_workshop_profilest, top)) + return df::building::find(screen->building_id); + if (auto dfscreen = dfhack_viewscreen::try_cast(top)) return dfscreen->getSelectedBuilding();