diff --git a/library/lua/gui/widgets.lua b/library/lua/gui/widgets.lua index 0ec92030b..e526408fb 100644 --- a/library/lua/gui/widgets.lua +++ b/library/lua/gui/widgets.lua @@ -246,11 +246,12 @@ function render_text(obj,dc,x0,y0,pen,dpen,disabled) local keypen if dc then + local tpen = getval(token.pen) if disabled or is_disabled(token) then - dc:pen(getval(token.dpen) or dpen) + dc:pen(getval(token.dpen) or tpen or dpen) keypen = COLOR_GREEN else - dc:pen(getval(token.pen) or pen) + dc:pen(tpen or pen) keypen = COLOR_LIGHTGREEN end end diff --git a/plugins/workflow.cpp b/plugins/workflow.cpp index 8280adb54..ca8388413 100644 --- a/plugins/workflow.cpp +++ b/plugins/workflow.cpp @@ -40,6 +40,7 @@ #include "df/plant_raw.h" #include "df/inorganic_raw.h" #include "df/builtin_mats.h" +#include "df/vehicle.h" using std::vector; using std::string; @@ -994,6 +995,15 @@ static bool itemInRealJob(df::item *item) != job_type_class::Hauling; } +static bool isRouteVehicle(df::item *item) +{ + int id = item->getVehicleID(); + if (id < 0) return false; + + auto vehicle = df::vehicle::find(id); + return vehicle && vehicle->route_id >= 0; +} + static void map_job_items(color_ostream &out) { for (size_t i = 0; i < constraints.size(); i++) @@ -1103,6 +1113,7 @@ static void map_job_items(color_ostream &out) item->flags.bits.owned || item->flags.bits.in_chest || item->isAssignedToStockpile() || + isRouteVehicle(item) || itemInRealJob(item) || itemBusy(item)) {