diff --git a/library/Core.cpp b/library/Core.cpp index df6ddbe36..d54218b5c 100644 --- a/library/Core.cpp +++ b/library/Core.cpp @@ -65,8 +65,8 @@ using namespace std; using namespace DFHack; -#include "df/ui.h" -#include "df/ui_sidebar_menus.h" +#include "df/plotinfost.h" +#include "df/gamest.h" #include "df/world.h" #include "df/world_data.h" #include "df/interfacest.h" @@ -1307,7 +1307,7 @@ bool Core::loadScriptFile(color_ostream &out, string fname, bool silent) static void run_dfhack_init(color_ostream &out, Core *core) { CoreSuspender lock; - if (!df::global::world || !df::global::ui || !df::global::gview) + if (!df::global::world || !df::global::plotinfo || !df::global::gview) { out.printerr("Key globals are missing, skipping loading dfhack.init.\n"); return; @@ -1712,10 +1712,10 @@ bool Core::Init() if (!listen.get()) cerr << "TCP listen failed.\n"; - if (df::global::ui_sidebar_menus) + if (df::global::game) { vector args; - const string & raw = df::global::ui_sidebar_menus->command_line.original; + const string & raw = df::global::game->command_line.original; size_t offset = 0; while (offset < raw.size()) { @@ -1879,7 +1879,7 @@ void Core::doUpdate(color_ostream &out) strict_virtual_cast(screen); // save data (do this before updating last_world_data_ptr and triggering unload events) - if ((df::global::ui->main.autosave_request && !d->last_autosave_request) || + if ((df::global::plotinfo->main.autosave_request && !d->last_autosave_request) || (is_load_save && !d->was_load_save && strict_virtual_cast(screen))) { doSaveData(out); @@ -1941,7 +1941,7 @@ void Core::doUpdate(color_ostream &out) // Execute per-frame handlers onUpdate(out); - d->last_autosave_request = df::global::ui->main.autosave_request; + d->last_autosave_request = df::global::plotinfo->main.autosave_request; d->was_load_save = is_load_save; out << std::flush; @@ -2288,14 +2288,14 @@ bool Core::ncurses_wgetch(int in, int & out) /* TODO: understand how this changes for v50 int idx = in - KEY_F(1); // FIXME: copypasta, push into a method! - if(df::global::ui && df::global::gview) + if(df::global::plotinfo && df::global::gview) { df::viewscreen * ws = Gui::getCurViewscreen(); if (strict_virtual_cast(ws) && - df::global::ui->main.mode != ui_sidebar_mode::Hotkeys && - df::global::ui->main.hotkeys[idx].cmd == df::ui_hotkey::T_cmd::None) + df::global::plotinfo->main.mode != ui_sidebar_mode::Hotkeys && + df::global::plotinfo->main.hotkeys[idx].cmd == df::ui_hotkey::T_cmd::None) { - setHotkeyCmd(df::global::ui->main.hotkeys[idx].name); + setHotkeyCmd(df::global::plotinfo->main.hotkeys[idx].name); return false; } else @@ -2422,7 +2422,7 @@ int Core::DFH_SDL_Event(SDL::Event* ev) bool Core::SelectHotkey(int sym, int modifiers) { // Find the topmost viewscreen - if (!df::global::gview || !df::global::ui) + if (!df::global::gview || !df::global::plotinfo) return false; df::viewscreen *screen = &df::global::gview->view; @@ -2477,10 +2477,10 @@ bool Core::SelectHotkey(int sym, int modifiers) idx += 8; if (strict_virtual_cast(screen) && - df::global::ui->main.mode != ui_sidebar_mode::Hotkeys && - df::global::ui->main.hotkeys[idx].cmd == df::ui_hotkey::T_cmd::None) + df::global::plotinfo->main.mode != ui_sidebar_mode::Hotkeys && + df::global::plotinfo->main.hotkeys[idx].cmd == df::ui_hotkey::T_cmd::None) { - cmd = df::global::ui->main.hotkeys[idx].name; + cmd = df::global::plotinfo->main.hotkeys[idx].name; } */ } diff --git a/library/DataStatics.cpp b/library/DataStatics.cpp index 275cae584..fe60e5454 100644 --- a/library/DataStatics.cpp +++ b/library/DataStatics.cpp @@ -6,7 +6,7 @@ #include "df/world.h" #include "df/world_data.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "DataIdentity.h" diff --git a/library/RemoteTools.cpp b/library/RemoteTools.cpp index 1d45a19c0..c8fc810c8 100644 --- a/library/RemoteTools.cpp +++ b/library/RemoteTools.cpp @@ -59,8 +59,8 @@ POSSIBILITY OF SUCH DAMAGE. #include "LuaTools.h" #include "DataDefs.h" -#include "df/ui.h" -#include "df/ui_advmode.h" +#include "df/plotinfost.h" +#include "df/adventurest.h" #include "df/world.h" #include "df/world_data.h" #include "df/unit.h" @@ -375,11 +375,11 @@ static command_result GetDFVersion(color_ostream &stream, static command_result GetWorldInfo(color_ostream &stream, const EmptyMessage *, GetWorldInfoOut *out) { - using df::global::ui; - using df::global::ui_advmode; + using df::global::plotinfo; + using df::global::adventure; using df::global::world; - if (!ui || !world || !Core::getInstance().isWorldLoaded()) + if (!plotinfo || !world || !Core::getInstance().isWorldLoaded()) return CR_NOT_FOUND; df::game_type gt = game_type::DWARF_MAIN; @@ -397,10 +397,10 @@ static command_result GetWorldInfo(color_ostream &stream, case game_type::DWARF_RECLAIM: case game_type::DWARF_UNRETIRE: out->set_mode(GetWorldInfoOut::MODE_DWARF); - out->set_civ_id(ui->civ_id); - out->set_site_id(ui->site_id); - out->set_group_id(ui->group_id); - out->set_race_id(ui->race_id); + out->set_civ_id(plotinfo->civ_id); + out->set_site_id(plotinfo->site_id); + out->set_group_id(plotinfo->group_id); + out->set_race_id(plotinfo->race_id); break; case game_type::ADVENTURE_MAIN: @@ -410,10 +410,10 @@ static command_result GetWorldInfo(color_ostream &stream, if (auto unit = vector_get(world->units.active, 0)) out->set_player_unit_id(unit->id); - if (!ui_advmode) + if (!adventure) break; - if (auto nemesis = vector_get(world->nemesis.all, ui_advmode->player_id)) + if (auto nemesis = vector_get(world->nemesis.all, adventure->player_id)) { if (nemesis->figure) out->set_player_histfig_id(nemesis->figure->id); @@ -613,7 +613,7 @@ static command_result ListUnits(color_ostream &stream, static command_result ListSquads(color_ostream &stream, const ListSquadsIn *in, ListSquadsOut *out) { - auto entity = df::historical_entity::find(df::global::ui->group_id); + auto entity = df::historical_entity::find(df::global::plotinfo->group_id); if (!entity) return CR_NOT_FOUND; diff --git a/library/include/DebugManager.h b/library/include/DebugManager.h index 57de0f279..d910efd4a 100644 --- a/library/include/DebugManager.h +++ b/library/include/DebugManager.h @@ -42,13 +42,13 @@ class DebugCategory; /*! * \brief Container holding all registered runtime debug categories * Singleton DebugManager is a minor extension to std::vector that allows signal - * callbacks to be attached from ui code that manages. + * callbacks to be attached from plotinfo code that manages. * * To avoid parallel plugin unload causing issues access to DebugManager must be * protected by mutex. The access mutex will be taken when * DFHack::DebugCategory::~DebugCategory performs unregister calls to * DFHack::DebugManager. The mutex will protect from memory disappearing while - * ui code is accessing or changing the runtime state. + * plotinfo code is accessing or changing the runtime state. * * Signal emitting happens from a locked contexts. Taking the * DFHack::DebugManager::access_mutex_ in a signal callback will results to a diff --git a/library/include/RemoteClient.h b/library/include/RemoteClient.h index e71b985cd..1948ea754 100644 --- a/library/include/RemoteClient.h +++ b/library/include/RemoteClient.h @@ -46,7 +46,7 @@ namespace DFHack CR_NOT_IMPLEMENTED = -1, // Command not implemented, or plugin not loaded CR_OK = 0, // Success CR_FAILURE = 1, // Failure - CR_WRONG_USAGE = 2, // Wrong arguments or ui state + CR_WRONG_USAGE = 2, // Wrong arguments or plotinfo state CR_NOT_FOUND = 3 // Target object not found (for RPC mainly) }; diff --git a/library/include/modules/Gui.h b/library/include/modules/Gui.h index 3ce2df0eb..33ea32939 100644 --- a/library/include/modules/Gui.h +++ b/library/include/modules/Gui.h @@ -33,7 +33,7 @@ distribution. #include "DataDefs.h" #include "df/init.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/announcement_type.h" #include "df/announcement_flags.h" #include "df/report_init.h" diff --git a/library/include/modules/Kitchen.h b/library/include/modules/Kitchen.h index ec161178e..3fde8edf8 100644 --- a/library/include/modules/Kitchen.h +++ b/library/include/modules/Kitchen.h @@ -75,7 +75,7 @@ DFHACK_EXPORT void clearLimits(); DFHACK_EXPORT std::size_t size(); -// Finds the index of a kitchen exclusion in ui.kitchen.exc_types. Returns -1 if not found. +// Finds the index of a kitchen exclusion in plotinfo.kitchen.exc_types. Returns -1 if not found. DFHACK_EXPORT int findExclusion(df::kitchen_exc_type type, df::item_type item_type, int16_t item_subtype, int16_t mat_type, int32_t mat_index); diff --git a/library/modules/Buildings.cpp b/library/modules/Buildings.cpp index 4ec3f11d7..cd0924a36 100644 --- a/library/modules/Buildings.cpp +++ b/library/modules/Buildings.cpp @@ -81,14 +81,14 @@ using namespace DFHack; #include "df/job_item.h" #include "df/map_block.h" #include "df/tile_occupancy.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/ui_look_list.h" #include "df/unit.h" #include "df/unit_relationship_type.h" #include "df/world.h" using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; using df::global::world; using df::global::d_init; using df::global::building_next_id; @@ -425,7 +425,7 @@ df::building *Buildings::allocInstance(df::coord pos, df::building_type type, in bld->y1 = bld->y2 = bld->centery = pos.y; bld->z = pos.z; - bld->race = ui->race_id; + bld->race = plotinfo->race_id; if (subtype != -1) bld->setSubtype(subtype); @@ -989,7 +989,7 @@ static void linkRooms(df::building *bld) } if (changed) - df::global::ui->equipment.update.bits.buildings = true; + df::global::plotinfo->equipment.update.bits.buildings = true; */ } @@ -1219,7 +1219,7 @@ bool Buildings::constructWithFilters(df::building *bld, std::vectorjob_items, 0, items[i]); if (items[i]->item_type == item_type::BOULDER) @@ -1238,7 +1238,7 @@ bool Buildings::constructWithFilters(df::building *bld, std::vectortax_collection.rooms, linear_index(ui->tax_collection.rooms, bld->id)); + vector_erase_at(plotinfo->tax_collection.rooms, linear_index(plotinfo->tax_collection.rooms, bld->id)); // Assume: not used in punishment // Assume: not used in non-own jobs // Assume: does not affect pathfinding diff --git a/library/modules/Burrows.cpp b/library/modules/Burrows.cpp index 52e550960..c2fe45eae 100644 --- a/library/modules/Burrows.cpp +++ b/library/modules/Burrows.cpp @@ -42,14 +42,14 @@ using namespace std; #include "df/block_burrow_link.h" #include "df/burrow.h" #include "df/map_block.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; df::burrow *Burrows::findByName(std::string name) { @@ -77,11 +77,11 @@ void Burrows::clearUnits(df::burrow *burrow) burrow->units.clear(); /* TODO: understand how this changes for v50 - // Sync ui if active - if (ui && ui->main.mode == ui_sidebar_mode::Burrows && - ui->burrows.in_add_units_mode && ui->burrows.sel_id == burrow->id) + // Sync plotinfo if active + if (plotinfo && plotinfo->main.mode == ui_sidebar_mode::Burrows && + plotinfo->burrows.in_add_units_mode && plotinfo->burrows.sel_id == burrow->id) { - auto &sel = ui->burrows.sel_units; + auto &sel = plotinfo->burrows.sel_units; for (size_t i = 0; i < sel.size(); i++) sel[i] = false; @@ -99,7 +99,7 @@ bool Burrows::isAssignedUnit(df::burrow *burrow, df::unit *unit) void Burrows::setAssignedUnit(df::burrow *burrow, df::unit *unit, bool enable) { - using df::global::ui; + using df::global::plotinfo; CHECK_NULL_POINTER(unit); CHECK_NULL_POINTER(burrow); @@ -116,13 +116,13 @@ void Burrows::setAssignedUnit(df::burrow *burrow, df::unit *unit, bool enable) } /* TODO: understand how this changes for v50 - // Sync ui if active - if (ui && ui->main.mode == ui_sidebar_mode::Burrows && - ui->burrows.in_add_units_mode && ui->burrows.sel_id == burrow->id) + // Sync plotinfo if active + if (plotinfo && plotinfo->main.mode == ui_sidebar_mode::Burrows && + plotinfo->burrows.in_add_units_mode && plotinfo->burrows.sel_id == burrow->id) { - int idx = linear_index(ui->burrows.list_units, unit); + int idx = linear_index(plotinfo->burrows.list_units, unit); if (idx >= 0) - ui->burrows.sel_units[idx] = enable; + plotinfo->burrows.sel_units[idx] = enable; } */ } diff --git a/library/modules/EventManager.cpp b/library/modules/EventManager.cpp index e882febf8..02b1892e9 100644 --- a/library/modules/EventManager.cpp +++ b/library/modules/EventManager.cpp @@ -27,7 +27,7 @@ #include "df/job.h" #include "df/job_list_link.h" #include "df/report.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_flags1.h" #include "df/unit_inventory_item.h" @@ -297,14 +297,14 @@ void DFHack::EventManager::onStateChange(color_ostream& out, state_change_event return; if (!df::global::job_next_id) return; - if (!df::global::ui) + if (!df::global::plotinfo) return; if (!df::global::world) return; nextItem = *df::global::item_next_id; nextBuilding = *df::global::building_next_id; - nextInvasion = df::global::ui->invasions.next_id; + nextInvasion = df::global::plotinfo->invasions.next_id; lastJobId = -1 + *df::global::job_next_id; constructions.clear(); @@ -807,13 +807,13 @@ static void manageSyndromeEvent(color_ostream& out) { } static void manageInvasionEvent(color_ostream& out) { - if (!df::global::ui) + if (!df::global::plotinfo) return; multimap copy(handlers[EventType::INVASION].begin(), handlers[EventType::INVASION].end()); - if ( df::global::ui->invasions.next_id <= nextInvasion ) + if ( df::global::plotinfo->invasions.next_id <= nextInvasion ) return; - nextInvasion = df::global::ui->invasions.next_id; + nextInvasion = df::global::plotinfo->invasions.next_id; for (auto &key_value : copy) { EventHandler &handle = key_value.second; diff --git a/library/modules/Gui.cpp b/library/modules/Gui.cpp index f88331347..f59cdcb8b 100644 --- a/library/modules/Gui.cpp +++ b/library/modules/Gui.cpp @@ -74,10 +74,10 @@ using namespace DFHack; #include "df/report_zoom_type.h" #include "df/route_stockpile_link.h" #include "df/stop_depart_condition.h" -#include "df/ui_advmode.h" -#include "df/ui_build_selector.h" +#include "df/adventurest.h" +#include "df/buildreq.h" #include "df/ui_look_list.h" -#include "df/ui_sidebar_menus.h" +#include "df/gamest.h" #include "df/ui_unit_view_mode.h" #include "df/unit.h" #include "df/unit_inventory_item.h" @@ -101,9 +101,9 @@ using df::global::gps; using df::global::gview; using df::global::init; using df::global::selection_rect; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_menu_width; -using df::global::ui_sidebar_menus; +using df::global::game; using df::global::world; /* TODO: understand how this changes for v50 @@ -158,9 +158,9 @@ DEFINE_GET_FOCUS_STRING_HANDLER(dwarfmode) using df::global::ui_building_assign_items; using df::global::ui_building_in_assign; - focus += "/" + enum_item_key(ui->main.mode); + focus += "/" + enum_item_key(plotinfo->main.mode); - switch (ui->main.mode) + switch (plotinfo->main.mode) { case QueryBuilding: if (df::building *selected = world->selected_building) @@ -304,38 +304,38 @@ DEFINE_GET_FOCUS_STRING_HANDLER(dwarfmode) break; case Burrows: - if (ui->burrows.in_confirm_delete) + if (plotinfo->burrows.in_confirm_delete) focus += "/ConfirmDelete"; - else if (ui->burrows.in_add_units_mode) + else if (plotinfo->burrows.in_add_units_mode) focus += "/AddUnits"; - else if (ui->burrows.in_edit_name_mode) + else if (plotinfo->burrows.in_edit_name_mode) focus += "/EditName"; - else if (ui->burrows.in_define_mode) + else if (plotinfo->burrows.in_define_mode) focus += "/Define"; else focus += "/List"; break; case Hauling: - if (ui->hauling.in_assign_vehicle) + if (plotinfo->hauling.in_assign_vehicle) { - auto vehicle = vector_get(ui->hauling.vehicles, ui->hauling.cursor_vehicle); + auto vehicle = vector_get(plotinfo->hauling.vehicles, plotinfo->hauling.cursor_vehicle); focus += "/AssignVehicle/" + std::string(vehicle ? "Some" : "None"); } else { - int idx = ui->hauling.cursor_top; - auto route = vector_get(ui->hauling.view_routes, idx); - auto stop = vector_get(ui->hauling.view_stops, idx); + int idx = plotinfo->hauling.cursor_top; + auto route = vector_get(plotinfo->hauling.view_routes, idx); + auto stop = vector_get(plotinfo->hauling.view_stops, idx); std::string tag = stop ? "Stop" : (route ? "Route" : "None"); - if (ui->hauling.in_name) + if (plotinfo->hauling.in_name) focus += "/Rename/" + tag; - else if (ui->hauling.in_stop) + else if (plotinfo->hauling.in_stop) { - int sidx = ui->hauling.cursor_stop; - auto cond = vector_get(ui->hauling.stop_conditions, sidx); - auto link = vector_get(ui->hauling.stop_links, sidx); + int sidx = plotinfo->hauling.cursor_stop; + auto cond = vector_get(plotinfo->hauling.stop_conditions, sidx); + auto link = vector_get(plotinfo->hauling.stop_links, sidx); focus += "/DefineStop"; @@ -364,12 +364,12 @@ DEFINE_GET_FOCUS_STRING_HANDLER(dwarfmode) /* TODO: understand how this changes for v50 DEFINE_GET_FOCUS_STRING_HANDLER(dungeonmode) { - using df::global::ui_advmode; + using df::global::adventure; - if (!ui_advmode) + if (!adventure) return; - focus += "/" + enum_item_key(ui_advmode->menu); + focus += "/" + enum_item_key(adventure->menu); } DEFINE_GET_FOCUS_STRING_HANDLER(unitlist) @@ -675,7 +675,7 @@ bool Gui::workshop_job_hotkey(df::viewscreen *top) using df::global::ui_workshop_in_add; using df::global::ui_workshop_job_cursor; - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case QueryBuilding: { if (!ui_workshop_job_cursor) // allow missing @@ -712,7 +712,7 @@ bool Gui::build_selector_hotkey(df::viewscreen *top) using namespace ui_sidebar_mode; using df::global::ui_build_selector; - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case Build: { if (!ui_build_selector) // allow missing @@ -739,7 +739,7 @@ bool Gui::view_unit_hotkey(df::viewscreen *top) /* TODO: understand how this changes for v50 using df::global::ui_selected_unit; - if (ui->main.mode != ui_sidebar_mode::ViewUnits) + if (plotinfo->main.mode != ui_sidebar_mode::ViewUnits) return false; if (!ui_selected_unit) // allow missing return false; @@ -1017,19 +1017,19 @@ df::unit *Gui::getAnyUnit(df::viewscreen *top) if (!Gui::dwarfmode_hotkey(top)) return NULL; - if (!ui) + if (!plotinfo) return NULL; // general assigning units in building, i.e. (q)uery cage -> (a)ssign if (ui_building_in_assign && *ui_building_in_assign && ui_building_assign_units && ui_building_item_cursor - && ui->main.mode != Zones) // dont show for (i) zone + && plotinfo->main.mode != Zones) // dont show for (i) zone return vector_get(*ui_building_assign_units, *ui_building_item_cursor); - if (ui->follow_unit != -1) - return df::unit::find(ui->follow_unit); + if (plotinfo->follow_unit != -1) + return df::unit::find(plotinfo->follow_unit); - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case ViewUnits: { if (!ui_selected_unit || !world) @@ -1047,8 +1047,8 @@ df::unit *Gui::getAnyUnit(df::viewscreen *top) } case Burrows: { - if (ui->burrows.in_add_units_mode) - return vector_get(ui->burrows.list_units, ui->burrows.unit_cursor_pos); + if (plotinfo->burrows.in_add_units_mode) + return vector_get(plotinfo->burrows.list_units, plotinfo->burrows.unit_cursor_pos); return NULL; } @@ -1196,16 +1196,16 @@ df::item *Gui::getAnyItem(df::viewscreen *top) if (!Gui::dwarfmode_hotkey(top)) return NULL; - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case ViewUnits: { - if (!ui_unit_view_mode || !ui_look_cursor || !ui_sidebar_menus) + if (!ui_unit_view_mode || !ui_look_cursor || !game) return NULL; if (ui_unit_view_mode->value != df::ui_unit_view_mode::Inventory) return NULL; - auto inv_item = vector_get(ui_sidebar_menus->unit.inv_items, *ui_look_cursor); + auto inv_item = vector_get(game->unit.inv_items, *ui_look_cursor); return inv_item ? inv_item->item : NULL; } case LookAround: @@ -1271,7 +1271,7 @@ df::building *Gui::getAnyBuilding(df::viewscreen *top) if (!Gui::dwarfmode_hotkey(top)) return NULL; - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case LookAround: { if (!ui_look_list || !ui_look_cursor) @@ -1293,8 +1293,8 @@ df::building *Gui::getAnyBuilding(df::viewscreen *top) case ZonesPitInfo: case ZonesHospitalInfo: { - if (ui_sidebar_menus) - return ui_sidebar_menus->zone.selected; + if (game) + return game->zone.selected; return NULL; } default: @@ -1327,11 +1327,11 @@ df::plant *Gui::getAnyPlant(df::viewscreen *top) if (Gui::dwarfmode_hotkey(top)) { - if (!cursor || !ui || !world) + if (!cursor || !plotinfo || !world) return nullptr; /* TODO: understand how this changes for v50 - if (ui->main.mode == ui_sidebar_mode::LookAround) + if (plotinfo->main.mode == ui_sidebar_mode::LookAround) { return Maps::getPlantAtTile(cursor->x, cursor->y, cursor->z); } @@ -1949,12 +1949,12 @@ void Gui::resetDwarfmodeView(bool pause) { using df::global::cursor; - if (ui) + if (plotinfo) { - ui->follow_unit = -1; - ui->follow_item = -1; + plotinfo->follow_unit = -1; + plotinfo->follow_item = -1; /* TODO: understand how this changes for v50 - ui->main.mode = ui_sidebar_mode::Default; + plotinfo->main.mode = ui_sidebar_mode::Default; */ } @@ -2011,8 +2011,8 @@ bool Gui::revealInDwarfmodeMap(int32_t x, int32_t y, int32_t z, bool center) *window_x = clip_range(new_win_x, 0, (world->map.x_count - w)); *window_y = clip_range(new_win_y, 0, (world->map.y_count - h)); *window_z = clip_range(new_win_z, 0, (world->map.z_count - 1)); - ui_sidebar_menus->minimap.need_render = true; - ui_sidebar_menus->minimap.need_scan = true; + game->minimap.need_render = true; + game->minimap.need_scan = true; return true; } @@ -2058,10 +2058,10 @@ bool Gui::refreshSidebar() bool Gui::inRenameBuilding() { - if (!ui_sidebar_menus) + if (!game) return false; /* TODO: understand how this changes for v50 - return ui_sidebar_menus->barracks.in_rename; + return game->barracks.in_rename; */ return false; } diff --git a/library/modules/Items.cpp b/library/modules/Items.cpp index ceb0224e8..11d170725 100644 --- a/library/modules/Items.cpp +++ b/library/modules/Items.cpp @@ -87,7 +87,7 @@ using namespace std; #include "df/reaction_product_itemst.h" #include "df/tool_uses.h" #include "df/trapcomp_flags.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_inventory_item.h" #include "df/vehicle.h" @@ -100,7 +100,7 @@ using namespace std; using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_selected_unit; using df::global::proj_next_id; @@ -924,7 +924,7 @@ static bool detachItem(MapExtras::MapCache &mc, df::item *item) { /* TODO: understand how this changes for v50 // Unit view sidebar holds inventory item pointers - if (ui->main.mode == ui_sidebar_mode::ViewUnits && + if (plotinfo->main.mode == ui_sidebar_mode::ViewUnits && (!ui_selected_unit || vector_get(world->units.active, *ui_selected_unit) == unit)) return false; @@ -1534,7 +1534,7 @@ int32_t Items::createItem(df::item_type item_type, int16_t item_subtype, int16_t df::enums::game_type::game_type type = *df::global::gametype; prod->produce(unit, &out_products, &out_items, &in_reag, &in_items, 1, job_skill::NONE, 0, df::historical_entity::find(unit->civ_id), - ((type == df::enums::game_type::DWARF_MAIN) || (type == df::enums::game_type::DWARF_RECLAIM)) ? df::world_site::find(df::global::ui->site_id) : NULL, + ((type == df::enums::game_type::DWARF_MAIN) || (type == df::enums::game_type::DWARF_RECLAIM)) ? df::world_site::find(df::global::plotinfo->site_id) : NULL, NULL); if ( out_items.size() != 1 ) return -1; @@ -1643,9 +1643,9 @@ bool Items::isRouteVehicle(df::item *item) bool Items::isSquadEquipment(df::item *item) { CHECK_NULL_POINTER(item); - if (!ui) + if (!plotinfo) return false; - auto &vec = ui->equipment.items_assigned[item->getType()]; + auto &vec = plotinfo->equipment.items_assigned[item->getType()]; return binsearch_index(vec, &df::item::id, item->id) >= 0; } diff --git a/library/modules/Job.cpp b/library/modules/Job.cpp index ff158caa0..cd574684f 100644 --- a/library/modules/Job.cpp +++ b/library/modules/Job.cpp @@ -43,7 +43,7 @@ using namespace std; #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/building.h" #include "df/job.h" diff --git a/library/modules/Kitchen.cpp b/library/modules/Kitchen.cpp index ac560c687..65e47f528 100644 --- a/library/modules/Kitchen.cpp +++ b/library/modules/Kitchen.cpp @@ -20,13 +20,13 @@ using namespace DFHack; #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/item_type.h" #include "df/plant_raw.h" using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; // Special values used by "seedwatch" plugin to store seed limits const df::enums::item_type::item_type SEEDLIMIT_ITEMTYPE = df::enums::item_type::BAR; @@ -41,12 +41,12 @@ void Kitchen::debug_print(color_ostream &out) { out.print("%2zu: IT:%2i IS:%i MT:%3i MI:%2i ET:%i %s\n", i, - ui->kitchen.item_types[i], - ui->kitchen.item_subtypes[i], - ui->kitchen.mat_types[i], - ui->kitchen.mat_indices[i], - ui->kitchen.exc_types[i], - (ui->kitchen.mat_types[i] >= 419 && ui->kitchen.mat_types[i] <= 618) ? world->raws.plants.all[ui->kitchen.mat_indices[i]]->id.c_str() : "n/a" + plotinfo->kitchen.item_types[i], + plotinfo->kitchen.item_subtypes[i], + plotinfo->kitchen.mat_types[i], + plotinfo->kitchen.mat_indices[i], + plotinfo->kitchen.exc_types[i], + (plotinfo->kitchen.mat_types[i] >= 419 && plotinfo->kitchen.mat_types[i] <= 618) ? world->raws.plants.all[plotinfo->kitchen.mat_indices[i]]->id.c_str() : "n/a" ); } out.print("\n"); @@ -83,11 +83,11 @@ void Kitchen::fillWatchMap(std::map& watchMap) watchMap.clear(); for (std::size_t i = 0; i < size(); ++i) { - if (ui->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMTYPE && - ui->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && - ui->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) + if (plotinfo->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMTYPE && + plotinfo->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && + plotinfo->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) { - watchMap[ui->kitchen.mat_indices[i]] = ui->kitchen.mat_types[i]; + watchMap[plotinfo->kitchen.mat_indices[i]] = plotinfo->kitchen.mat_types[i]; } } } @@ -96,10 +96,10 @@ int Kitchen::findLimit(int32_t plant_id) { for (size_t i = 0; i < size(); ++i) { - if (ui->kitchen.item_types[i] == SEEDLIMIT_ITEMTYPE && - ui->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && - ui->kitchen.mat_indices[i] == plant_id && - ui->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) + if (plotinfo->kitchen.item_types[i] == SEEDLIMIT_ITEMTYPE && + plotinfo->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && + plotinfo->kitchen.mat_indices[i] == plant_id && + plotinfo->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) { return int(i); } @@ -113,11 +113,11 @@ bool Kitchen::removeLimit(int32_t plant_id) if (i < 0) return false; - ui->kitchen.item_types.erase(ui->kitchen.item_types.begin() + i); - ui->kitchen.item_subtypes.erase(ui->kitchen.item_subtypes.begin() + i); - ui->kitchen.mat_types.erase(ui->kitchen.mat_types.begin() + i); - ui->kitchen.mat_indices.erase(ui->kitchen.mat_indices.begin() + i); - ui->kitchen.exc_types.erase(ui->kitchen.exc_types.begin() + i); + plotinfo->kitchen.item_types.erase(plotinfo->kitchen.item_types.begin() + i); + plotinfo->kitchen.item_subtypes.erase(plotinfo->kitchen.item_subtypes.begin() + i); + plotinfo->kitchen.mat_types.erase(plotinfo->kitchen.mat_types.begin() + i); + plotinfo->kitchen.mat_indices.erase(plotinfo->kitchen.mat_indices.begin() + i); + plotinfo->kitchen.exc_types.erase(plotinfo->kitchen.exc_types.begin() + i); return true; } @@ -129,15 +129,15 @@ bool Kitchen::setLimit(int32_t plant_id, int16_t limit) int i = findLimit(plant_id); if (i < 0) { - ui->kitchen.item_types.push_back(SEEDLIMIT_ITEMTYPE); - ui->kitchen.item_subtypes.push_back(SEEDLIMIT_ITEMSUBTYPE); - ui->kitchen.mat_types.push_back(limit); - ui->kitchen.mat_indices.push_back(plant_id); - ui->kitchen.exc_types.push_back(SEEDLIMIT_EXCTYPE); + plotinfo->kitchen.item_types.push_back(SEEDLIMIT_ITEMTYPE); + plotinfo->kitchen.item_subtypes.push_back(SEEDLIMIT_ITEMSUBTYPE); + plotinfo->kitchen.mat_types.push_back(limit); + plotinfo->kitchen.mat_indices.push_back(plant_id); + plotinfo->kitchen.exc_types.push_back(SEEDLIMIT_EXCTYPE); } else { - ui->kitchen.mat_types[i] = limit; + plotinfo->kitchen.mat_types[i] = limit; } return true; } @@ -146,11 +146,11 @@ void Kitchen::clearLimits() { for (size_t i = 0; i < size(); ++i) { - if (ui->kitchen.item_types[i] == SEEDLIMIT_ITEMTYPE && - ui->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && - ui->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) + if (plotinfo->kitchen.item_types[i] == SEEDLIMIT_ITEMTYPE && + plotinfo->kitchen.item_subtypes[i] == SEEDLIMIT_ITEMSUBTYPE && + plotinfo->kitchen.exc_types[i] == SEEDLIMIT_EXCTYPE) { - removeLimit(ui->kitchen.mat_indices[i]); + removeLimit(plotinfo->kitchen.mat_indices[i]); --i; } } @@ -158,7 +158,7 @@ void Kitchen::clearLimits() size_t Kitchen::size() { - return ui->kitchen.item_types.size(); + return plotinfo->kitchen.item_types.size(); } int Kitchen::findExclusion(df::kitchen_exc_type type, @@ -167,11 +167,11 @@ int Kitchen::findExclusion(df::kitchen_exc_type type, { for (size_t i = 0; i < size(); i++) { - if (ui->kitchen.item_types[i] == item_type && - ui->kitchen.item_subtypes[i] == item_subtype && - ui->kitchen.mat_types[i] == mat_type && - ui->kitchen.mat_indices[i] == mat_index && - ui->kitchen.exc_types[i] == type) + if (plotinfo->kitchen.item_types[i] == item_type && + plotinfo->kitchen.item_subtypes[i] == item_subtype && + plotinfo->kitchen.mat_types[i] == mat_type && + plotinfo->kitchen.mat_indices[i] == mat_index && + plotinfo->kitchen.exc_types[i] == type) { return int(i); } @@ -186,11 +186,11 @@ bool Kitchen::addExclusion(df::kitchen_exc_type type, if (findExclusion(type, item_type, item_subtype, mat_type, mat_index) >= 0) return false; - ui->kitchen.item_types.push_back(item_type); - ui->kitchen.item_subtypes.push_back(item_subtype); - ui->kitchen.mat_types.push_back(mat_type); - ui->kitchen.mat_indices.push_back(mat_index); - ui->kitchen.exc_types.push_back(type); + plotinfo->kitchen.item_types.push_back(item_type); + plotinfo->kitchen.item_subtypes.push_back(item_subtype); + plotinfo->kitchen.mat_types.push_back(mat_type); + plotinfo->kitchen.mat_indices.push_back(mat_index); + plotinfo->kitchen.exc_types.push_back(type); return true; } @@ -202,10 +202,10 @@ bool Kitchen::removeExclusion(df::kitchen_exc_type type, if (i < 0) return false; - ui->kitchen.item_types.erase(ui->kitchen.item_types.begin() + i); - ui->kitchen.item_subtypes.erase(ui->kitchen.item_subtypes.begin() + i); - ui->kitchen.mat_types.erase(ui->kitchen.mat_types.begin() + i); - ui->kitchen.mat_indices.erase(ui->kitchen.mat_indices.begin() + i); - ui->kitchen.exc_types.erase(ui->kitchen.exc_types.begin() + i); + plotinfo->kitchen.item_types.erase(plotinfo->kitchen.item_types.begin() + i); + plotinfo->kitchen.item_subtypes.erase(plotinfo->kitchen.item_subtypes.begin() + i); + plotinfo->kitchen.mat_types.erase(plotinfo->kitchen.mat_types.begin() + i); + plotinfo->kitchen.mat_indices.erase(plotinfo->kitchen.mat_indices.begin() + i); + plotinfo->kitchen.exc_types.erase(plotinfo->kitchen.exc_types.begin() + i); return true; } diff --git a/library/modules/Materials.cpp b/library/modules/Materials.cpp index a52579059..0854a85ce 100644 --- a/library/modules/Materials.cpp +++ b/library/modules/Materials.cpp @@ -42,7 +42,7 @@ using namespace std; #include "MiscUtils.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/item.h" #include "df/creature_raw.h" #include "df/caste_raw.h" @@ -68,7 +68,7 @@ using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; bool MaterialInfo::decode(df::item *item) { @@ -516,7 +516,7 @@ void MaterialInfo::getMatchBits(df::job_item_flags2 &ok, df::job_item_flags2 &ma TEST(fire_safe, material->heat.melting_point > 11000); TEST(magma_safe, material->heat.melting_point > 12000); TEST(deep_material, FLAG(inorganic, inorganic_flags::SPECIAL)); - TEST(non_economic, !inorganic || !(ui && vector_get(ui->economic_stone, index))); + TEST(non_economic, !inorganic || !(plotinfo && vector_get(plotinfo->economic_stone, index))); TEST(plant, plant); TEST(silk, MAT_FLAG(SILK)); diff --git a/library/modules/Screen.cpp b/library/modules/Screen.cpp index e7f6cea93..ab7031308 100644 --- a/library/modules/Screen.cpp +++ b/library/modules/Screen.cpp @@ -83,7 +83,7 @@ namespace DFHack { * Screen painting API. */ -// returns ui grid coordinates, even if the game map is scaled differently +// returns plotinfo grid coordinates, even if the game map is scaled differently df::coord2d Screen::getMousePos() { if (!gps) diff --git a/library/modules/Units.cpp b/library/modules/Units.cpp index 20badb1b5..6d5ec7fde 100644 --- a/library/modules/Units.cpp +++ b/library/modules/Units.cpp @@ -73,7 +73,7 @@ using namespace std; #include "df/nemesis_record.h" #include "df/squad.h" #include "df/tile_occupancy.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit_inventory_item.h" #include "df/unit_misc_trait.h" #include "df/unit_relationship_type.h" @@ -87,7 +87,7 @@ using namespace std; using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; using df::global::gamemode; using df::global::gametype; @@ -178,7 +178,7 @@ bool Units::isFortControlled(df::unit *unit) unit->flags2.bits.resident) return false; - return unit->civ_id != -1 && unit->civ_id == ui->civ_id; + return unit->civ_id != -1 && unit->civ_id == plotinfo->civ_id; } // check if creature belongs to the player's civilization @@ -186,7 +186,7 @@ bool Units::isFortControlled(df::unit *unit) bool Units::isOwnCiv(df::unit* unit) { CHECK_NULL_POINTER(unit); - return unit->civ_id == ui->civ_id; + return unit->civ_id == plotinfo->civ_id; } // check if creature belongs to the player's group @@ -199,7 +199,7 @@ bool Units::isOwnGroup(df::unit* unit) for (size_t i = 0; i < histfig->entity_links.size(); i++) { auto link = histfig->entity_links[i]; - if (link->entity_id == ui->group_id && link->getType() == df::histfig_entity_link_type::MEMBER) + if (link->entity_id == plotinfo->group_id && link->getType() == df::histfig_entity_link_type::MEMBER) return true; } return false; @@ -210,7 +210,7 @@ bool Units::isOwnGroup(df::unit* unit) bool Units::isOwnRace(df::unit* unit) { CHECK_NULL_POINTER(unit); - return unit->race == ui->race_id; + return unit->race == plotinfo->race_id; } @@ -622,8 +622,8 @@ bool Units::isDwarf(df::unit *unit) { CHECK_NULL_POINTER(unit); - return unit->race == ui->race_id || - unit->enemy.normal_race == ui->race_id; + return unit->race == plotinfo->race_id || + unit->enemy.normal_race == plotinfo->race_id; } bool Units::isAnimal(df::unit* unit) { @@ -1301,7 +1301,7 @@ bool Units::setLaborValidity(df::unit_labor labor, bool isValid) return false; if (labor == df::unit_labor::NONE) return false; - df::historical_entity *entity = df::historical_entity::find(ui->civ_id); + df::historical_entity *entity = df::historical_entity::find(plotinfo->civ_id); if (!entity || !entity->entity_raw) return false; entity->entity_raw->jobs.permitted_labor[labor] = isValid; @@ -1704,7 +1704,7 @@ std::string Units::getCasteProfessionName(int race, int casteid, df::profession if (pid < (df::profession)0 || !is_valid_enum_item(pid)) return ""; - int16_t current_race = df::global::ui->race_id; + int16_t current_race = df::global::plotinfo->race_id; if (df::global::gamemode && *df::global::gamemode == df::game_mode::ADVENTURE) current_race = world->units.active[0]->race; bool use_race_prefix = (race >= 0 && race != current_race); diff --git a/plugins/.gitignore b/plugins/.gitignore new file mode 100644 index 000000000..5b0a52473 --- /dev/null +++ b/plugins/.gitignore @@ -0,0 +1 @@ +!buildingplan/ diff --git a/plugins/add-spatter.cpp b/plugins/add-spatter.cpp index 459e28f25..451fffabf 100644 --- a/plugins/add-spatter.cpp +++ b/plugins/add-spatter.cpp @@ -24,7 +24,7 @@ #include "df/job.h" #include "df/job_item.h" #include "df/job_item_ref.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/report.h" #include "df/reaction.h" #include "df/reaction_reagent_itemst.h" @@ -45,7 +45,7 @@ DFHACK_PLUGIN("add-spatter"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); typedef df::reaction_product_item_improvementst improvement_product; diff --git a/plugins/autochop.cpp b/plugins/autochop.cpp index acb8959b9..415a6d322 100644 --- a/plugins/autochop.cpp +++ b/plugins/autochop.cpp @@ -22,7 +22,7 @@ #include "df/plant_tree_tile.h" #include "df/plant_raw.h" #include "df/tile_dig_designation.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/viewscreen_dwarfmodest.h" #include "df/world.h" @@ -45,7 +45,7 @@ using namespace df::enums; #define PLUGIN_VERSION 0.3 DFHACK_PLUGIN("autochop"); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); static int get_log_count(); @@ -499,7 +499,7 @@ public: burrows_column.clear(); - for (df::burrow *burrow : ui->burrows.list) + for (df::burrow *burrow : plotinfo->burrows.list) { string name = burrow->name; if (name.empty()) @@ -820,7 +820,7 @@ struct autochop_hook : public df::viewscreen_dwarfmodest bool isInDesignationMenu() { using namespace df::enums::ui_sidebar_mode; - return (ui->main.mode == DesignateChopTrees); + return (plotinfo->main.mode == DesignateChopTrees); } void sendKey(const df::interface_key &key) diff --git a/plugins/autofarm.cpp b/plugins/autofarm.cpp index 2f8762425..6a4078b56 100644 --- a/plugins/autofarm.cpp +++ b/plugins/autofarm.cpp @@ -5,7 +5,7 @@ #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/building_type.h" #include "df/building_farmplotst.h" #include "df/buildings_other_id.h" @@ -30,7 +30,7 @@ using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; static command_result autofarm(color_ostream& out, std::vector& parameters); @@ -348,7 +348,7 @@ static std::unique_ptr autofarmInstance; DFhackCExport command_result plugin_init(color_ostream& out, std::vector & commands) { - if (world && ui) { + if (world && plotinfo) { commands.push_back( PluginCommand("autofarm", "Automatically manage farm crop selection.", diff --git a/plugins/autogems.cpp b/plugins/autogems.cpp index d296caf7f..8cf419aba 100644 --- a/plugins/autogems.cpp +++ b/plugins/autogems.cpp @@ -33,7 +33,7 @@ using namespace DFHack; DFHACK_PLUGIN("autogems"); DFHACK_PLUGIN_IS_ENABLED(enabled); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); typedef int32_t item_id; @@ -242,7 +242,7 @@ struct autogem_hook : public df::viewscreen_dwarfmodest { bool in_menu() { // Determines whether we're looking at the Workshop Orders screen. - return ui->main.mode == ui_sidebar_mode::OrdersWorkshop; + return plotinfo->main.mode == ui_sidebar_mode::OrdersWorkshop; } bool handleInput(std::set *input) { diff --git a/plugins/autolabor/autohauler.cpp b/plugins/autolabor/autohauler.cpp index e7c2530e1..3bb2534f8 100644 --- a/plugins/autolabor/autohauler.cpp +++ b/plugins/autolabor/autohauler.cpp @@ -12,7 +12,7 @@ // DF data structure definition headers #include "DataDefs.h" -#include +#include #include #include #include @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include @@ -47,7 +47,7 @@ using namespace DFHack; using namespace df::enums; DFHACK_PLUGIN("autohauler"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); #define ARRAY_COUNT(array) (sizeof(array)/sizeof((array)[0])) diff --git a/plugins/autolabor/autolabor.cpp b/plugins/autolabor/autolabor.cpp index 76108ddd0..0af4be5e2 100644 --- a/plugins/autolabor/autolabor.cpp +++ b/plugins/autolabor/autolabor.cpp @@ -12,7 +12,7 @@ // DF data structure definition headers #include "DataDefs.h" -#include +#include #include #include #include @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include @@ -47,7 +47,7 @@ using namespace DFHack; using namespace df::enums; DFHACK_PLUGIN("autolabor"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); #define ARRAY_COUNT(array) (sizeof(array)/sizeof((array)[0])) @@ -813,7 +813,7 @@ DFhackCExport command_result plugin_onupdate ( color_ostream &out ) // identify dwarfs who are needed for meetings and mark them for exclusion - for (auto& act : ui->activities) + for (auto& act : plotinfo->activities) { if (!act) continue; bool p1 = act->unit_actor == dwarfs[dwarf]; diff --git a/plugins/autolabor/joblabormapper.cpp b/plugins/autolabor/joblabormapper.cpp index 2917b8d3a..690e80881 100644 --- a/plugins/autolabor/joblabormapper.cpp +++ b/plugins/autolabor/joblabormapper.cpp @@ -56,7 +56,7 @@ using std::string; using std::endl; using namespace DFHack; using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; using df::global::world; #include "labormanager.h" diff --git a/plugins/autolabor/labormanager.cpp b/plugins/autolabor/labormanager.cpp index 44817e405..4b43b09c1 100644 --- a/plugins/autolabor/labormanager.cpp +++ b/plugins/autolabor/labormanager.cpp @@ -25,7 +25,7 @@ #include "DataDefs.h" #include -#include +#include #include #include #include @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include #include #include @@ -64,7 +64,7 @@ #include #include #include -#include +#include #include #include #include @@ -82,7 +82,7 @@ using std::string; using std::endl; using namespace DFHack; using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; using df::global::world; #define ARRAY_COUNT(array) (sizeof(array)/sizeof((array)[0])) @@ -948,9 +948,9 @@ private: // identify dwarfs who are needed for meetings and mark them for exclusion - for (size_t i = 0; i < ui->activities.size(); ++i) + for (size_t i = 0; i < plotinfo->activities.size(); ++i) { - df::activity_info *act = ui->activities[i]; + df::activity_info *act = plotinfo->activities[i]; if (!act) continue; bool p1 = act->unit_actor == dwarf->dwarf; @@ -996,11 +996,11 @@ private: for (size_t j = 0; j < dwarf->dwarf->inventory.size(); j++) { - df::unit_inventory_item* ui = dwarf->dwarf->inventory[j]; - if (ui->mode == df::unit_inventory_item::Weapon && ui->item->isWeapon()) + df::unit_inventory_item* plotinfo = dwarf->dwarf->inventory[j]; + if (plotinfo->mode == df::unit_inventory_item::Weapon && plotinfo->item->isWeapon()) { dwarf->armed = true; - df::itemdef_weaponst* weapondef = ((df::item_weaponst*)(ui->item))->subtype; + df::itemdef_weaponst* weapondef = ((df::item_weaponst*)(plotinfo->item))->subtype; df::job_skill weaponsk = (df::job_skill) weapondef->skill_melee; df::job_skill rangesk = (df::job_skill) weapondef->skill_ranged; if (weaponsk == df::job_skill::AXE) @@ -1408,8 +1408,8 @@ public: (isOptionEnabled(CF_ALLOW_HUNTING) && has_butchers) ? 1 : 0; /* add animal trainers */ - for (auto a = df::global::ui->equipment.training_assignments.begin(); - a != df::global::ui->equipment.training_assignments.end(); + for (auto a = df::global::plotinfo->equipment.training_assignments.begin(); + a != df::global::plotinfo->equipment.training_assignments.end(); a++) { labor_needed[df::unit_labor::ANIMALTRAIN]++; diff --git a/plugins/automaterial.cpp b/plugins/automaterial.cpp index 24f2d8e2a..9783d28dc 100644 --- a/plugins/automaterial.cpp +++ b/plugins/automaterial.cpp @@ -21,8 +21,8 @@ #include "df/build_req_choice_specst.h" #include "df/construction_type.h" #include "df/item.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" #include "df/viewscreen_dwarfmodest.h" #include "df/items_other_id.h" #include "df/job.h" @@ -50,7 +50,7 @@ using namespace df::enums; DFHACK_PLUGIN("automaterial"); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); namespace DFHack { @@ -115,14 +115,14 @@ static inline bool in_material_choice_stage() { return Gui::build_selector_hotkey(Core::getTopViewscreen()) && ui_build_selector->building_type == df::building_type::Construction && - ui->main.mode == ui_sidebar_mode::Build && + plotinfo->main.mode == ui_sidebar_mode::Build && ui_build_selector->stage == 2; } static inline bool in_placement_stage() { return Gui::dwarfmode_hotkey(Core::getTopViewscreen()) && - ui->main.mode == ui_sidebar_mode::Build && + plotinfo->main.mode == ui_sidebar_mode::Build && ui_build_selector && ui_build_selector->building_type == df::building_type::Construction && ui_build_selector->stage == 1; @@ -131,7 +131,7 @@ static inline bool in_placement_stage() static inline bool in_type_choice_stage() { return Gui::dwarfmode_hotkey(Core::getTopViewscreen()) && - ui->main.mode == ui_sidebar_mode::Build && + plotinfo->main.mode == ui_sidebar_mode::Build && ui_build_selector && ui_build_selector->building_type < 0; } @@ -713,7 +713,7 @@ struct jobutils_hook : public df::viewscreen_dwarfmodest if (!box_select_enabled) return; - if (ui->main.mode != df::ui_sidebar_mode::Build || + if (plotinfo->main.mode != df::ui_sidebar_mode::Build || ui_build_selector->building_type != df::building_type::Construction) return; diff --git a/plugins/automelt.cpp b/plugins/automelt.cpp index 4bbb727d7..9ca20e9ea 100644 --- a/plugins/automelt.cpp +++ b/plugins/automelt.cpp @@ -9,7 +9,7 @@ #include "df/building_stockpilest.h" #include "modules/Buildings.h" #include "modules/Items.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "modules/Maps.h" #include "modules/World.h" #include "df/item_quality.h" @@ -21,7 +21,7 @@ DFHACK_PLUGIN("automelt"); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(cursor); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); static const string PERSISTENCE_KEY = "automelt/stockpiles"; diff --git a/plugins/autotrade.cpp b/plugins/autotrade.cpp index 623fd5c1e..333e34e95 100644 --- a/plugins/autotrade.cpp +++ b/plugins/autotrade.cpp @@ -15,7 +15,7 @@ #include "df/job.h" #include "df/job_item_ref.h" #include "modules/Job.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/mandate.h" #include "modules/Maps.h" @@ -25,7 +25,7 @@ DFHACK_PLUGIN("autotrade"); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(cursor); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); static const string PERSISTENCE_KEY = "autotrade/stockpiles"; diff --git a/plugins/buildingplan/buildingplan-planner.cpp b/plugins/buildingplan/buildingplan-planner.cpp index 4ac11c4e1..07f23150a 100644 --- a/plugins/buildingplan/buildingplan-planner.cpp +++ b/plugins/buildingplan/buildingplan-planner.cpp @@ -6,7 +6,7 @@ #include "df/building_type.h" #include "df/general_ref_building_holderst.h" #include "df/job_item.h" -#include "df/ui_build_selector.h" +#include "df/buildreq.h" #include "modules/Buildings.h" #include "modules/Gui.h" diff --git a/plugins/buildingplan/buildingplan.cpp b/plugins/buildingplan/buildingplan.cpp index e0bc6dd69..cd4e84a6e 100644 --- a/plugins/buildingplan/buildingplan.cpp +++ b/plugins/buildingplan/buildingplan.cpp @@ -1,7 +1,7 @@ #include "df/construction_type.h" #include "df/entity_position.h" #include "df/interface_key.h" -#include "df/ui_build_selector.h" +#include "df/buildreq.h" #include "df/viewscreen_dwarfmodest.h" #include "modules/Gui.h" @@ -18,7 +18,7 @@ DFHACK_PLUGIN("buildingplan"); #define PLUGIN_VERSION "2.0" -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); REQUIRE_GLOBAL(world); // used in buildingplan library @@ -455,8 +455,8 @@ struct buildingplan_query_hook : public df::viewscreen_dwarfmodest bool isInPlannedBuildingQueryMode() { - return (ui->main.mode == df::ui_sidebar_mode::QueryBuilding || - ui->main.mode == df::ui_sidebar_mode::BuildingItems) && + return (plotinfo->main.mode == df::ui_sidebar_mode::QueryBuilding || + plotinfo->main.mode == df::ui_sidebar_mode::BuildingItems) && planner.getPlannedBuilding(world->selected_building); } @@ -595,7 +595,7 @@ struct buildingplan_place_hook : public df::viewscreen_dwarfmodest bool isInPlannedBuildingPlacementMode() { - return ui->main.mode == ui_sidebar_mode::Build && + return plotinfo->main.mode == ui_sidebar_mode::Build && df::global::ui_build_selector && df::global::ui_build_selector->stage < 2 && planner.isPlannableBuilding(toBuildingTypeKey(ui_build_selector)); @@ -861,7 +861,7 @@ struct buildingplan_room_hook : public df::viewscreen_dwarfmodest std::vector getNoblePositionOfSelectedBuildingOwner() { std::vector np; - if (ui->main.mode != df::ui_sidebar_mode::QueryBuilding || + if (plotinfo->main.mode != df::ui_sidebar_mode::QueryBuilding || !world->selected_building || !world->selected_building->owner) { @@ -1084,7 +1084,7 @@ DFhackCExport command_result plugin_onstatechange(color_ostream &out, state_chan static bool is_paused() { return World::ReadPauseState() || - ui->main.mode > df::ui_sidebar_mode::Squads || + plotinfo->main.mode > df::ui_sidebar_mode::Squads || !strict_virtual_cast(Gui::getCurViewscreen(true)); } diff --git a/plugins/burrows.cpp b/plugins/burrows.cpp index 029b3c715..c39253488 100644 --- a/plugins/burrows.cpp +++ b/plugins/burrows.cpp @@ -17,7 +17,7 @@ #include "TileTypes.h" #include "DataDefs.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" #include "df/unit.h" #include "df/burrow.h" @@ -38,7 +38,7 @@ using namespace df::enums; using namespace dfproto; DFHACK_PLUGIN("burrows"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(gamemode); @@ -102,11 +102,11 @@ DEFINE_LUA_EVENT_1(onBurrowRename, handle_burrow_rename, df::burrow*); static void detect_burrow_renames(color_ostream &out) { - if (ui->main.mode == ui_sidebar_mode::Burrows && - ui->burrows.in_edit_name_mode && - ui->burrows.sel_id >= 0) + if (plotinfo->main.mode == ui_sidebar_mode::Burrows && + plotinfo->burrows.in_edit_name_mode && + plotinfo->burrows.sel_id >= 0) { - name_burrow_id = ui->burrows.sel_id; + name_burrow_id = plotinfo->burrows.sel_id; } else if (name_burrow_id >= 0) { @@ -222,7 +222,7 @@ static std::map name_lookup; static void parse_names() { - auto &list = ui->burrows.list; + auto &list = plotinfo->burrows.list; grow_burrows.clear(); name_lookup.clear(); diff --git a/plugins/confirm.cpp b/plugins/confirm.cpp index 5cef6376f..499d3f08f 100644 --- a/plugins/confirm.cpp +++ b/plugins/confirm.cpp @@ -36,7 +36,7 @@ using std::vector; DFHACK_PLUGIN("confirm"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); typedef std::set ikey_set; command_result df_confirm (color_ostream &out, vector & parameters); diff --git a/plugins/createitem.cpp b/plugins/createitem.cpp index 57dbf7244..499814adc 100644 --- a/plugins/createitem.cpp +++ b/plugins/createitem.cpp @@ -16,7 +16,7 @@ #include "DataDefs.h" #include "df/game_type.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/historical_entity.h" #include "df/world_site.h" @@ -38,7 +38,7 @@ using namespace df::enums; DFHACK_PLUGIN("createitem"); REQUIRE_GLOBAL(cursor); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(gametype); REQUIRE_GLOBAL(cur_year_tick); @@ -78,7 +78,7 @@ bool makeItem (df::reaction_product_itemst *prod, df::unit *unit, bool second_it prod->produce(unit, &out_products, &out_items, &in_reag, &in_items, 1, job_skill::NONE, 0, df::historical_entity::find(unit->civ_id), - (World::isFortressMode()) ? df::world_site::find(ui->site_id) : NULL, NULL); + (World::isFortressMode()) ? df::world_site::find(plotinfo->site_id) : NULL, NULL); if (!out_items.size()) return false; // if we asked to make shoes and we got twice as many as we asked, then we're okay diff --git a/plugins/debug.cpp b/plugins/debug.cpp index f4a22b8d1..a48fd2a05 100644 --- a/plugins/debug.cpp +++ b/plugins/debug.cpp @@ -43,7 +43,7 @@ namespace DFHack { DBG_DECLARE(debug,filter); DBG_DECLARE(debug,init); DBG_DECLARE(debug,command); -DBG_DECLARE(debug,ui); +DBG_DECLARE(debug,plotinfo); DBG_DECLARE(debug,example,DebugCategory::LINFO); } diff --git a/plugins/devel/kittens.cpp b/plugins/devel/kittens.cpp index 89ece51b6..ec1114576 100644 --- a/plugins/devel/kittens.cpp +++ b/plugins/devel/kittens.cpp @@ -33,7 +33,7 @@ using namespace DFHack; DFHACK_PLUGIN("kittens"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); namespace DFHack { @@ -119,9 +119,9 @@ DFhackCExport command_result plugin_onupdate ( color_ostream &out ) } if(trackmenu_flg) { - if (last_menu != ui->main.mode) + if (last_menu != plotinfo->main.mode) { - last_menu = ui->main.mode; + last_menu = plotinfo->main.mode; out.print("Menu: %d\n",last_menu); } } @@ -157,7 +157,7 @@ command_result trackmenu (color_ostream &out, vector & parameters) else { is_enabled = true; - last_menu = ui->main.mode; + last_menu = plotinfo->main.mode; out.print("Menu: %d\n",last_menu); trackmenu_flg = true; return CR_OK; diff --git a/plugins/devel/stockcheck.cpp b/plugins/devel/stockcheck.cpp index 619fda9fd..796bc2fc9 100644 --- a/plugins/devel/stockcheck.cpp +++ b/plugins/devel/stockcheck.cpp @@ -5,7 +5,7 @@ #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/building_stockpilest.h" #include "df/global_objects.h" #include "df/item.h" @@ -24,7 +24,7 @@ using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; using df::global::selection_rect; using df::building_stockpilest; @@ -35,7 +35,7 @@ DFHACK_PLUGIN("stockcheck"); DFhackCExport command_result plugin_init (color_ostream &out, std::vector &commands) { - if (world && ui) { + if (world && plotinfo) { commands.push_back( PluginCommand("stockcheck", "Check for unprotected rottable items.", stockcheck, false, diff --git a/plugins/devel/stripcaged.cpp b/plugins/devel/stripcaged.cpp index 30d0b0d2b..e96e63fb1 100644 --- a/plugins/devel/stripcaged.cpp +++ b/plugins/devel/stripcaged.cpp @@ -20,7 +20,7 @@ using namespace std; #include "modules/World.h" #include "MiscUtils.h" -#include +#include #include "df/world.h" #include "df/world_raws.h" #include "df/building_def.h" @@ -34,7 +34,7 @@ using namespace DFHack; using namespace df::enums; using df::global::world; using df::global::cursor; -using df::global::ui; +using df::global::plotinfo; using namespace DFHack::Gui; diff --git a/plugins/dig-now.cpp b/plugins/dig-now.cpp index 1bca6784c..9945ee2b0 100644 --- a/plugins/dig-now.cpp +++ b/plugins/dig-now.cpp @@ -20,14 +20,14 @@ #include #include #include -#include +#include #include #include #include #include DFHACK_PLUGIN("dig-now"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); using namespace DFHack; @@ -678,7 +678,7 @@ static void create_boulders(color_ostream &out, df::unit *unit = world->units.active[0]; df::historical_entity *civ = df::historical_entity::find(unit->civ_id); df::world_site *site = World::isFortressMode() ? - df::world_site::find(ui->site_id) : NULL; + df::world_site::find(plotinfo->site_id) : NULL; std::vector in_reag; std::vector in_items; diff --git a/plugins/dig.cpp b/plugins/dig.cpp index 945bf3613..371dd588f 100644 --- a/plugins/dig.cpp +++ b/plugins/dig.cpp @@ -16,7 +16,7 @@ #include "modules/Maps.h" #include "modules/Materials.h" -#include "df/ui_sidebar_menus.h" +#include "df/gamest.h" using std::vector; using std::string; @@ -33,7 +33,7 @@ command_result digcircle (color_ostream &out, vector & parameters); command_result digtype (color_ostream &out, vector & parameters); DFHACK_PLUGIN("dig"); -REQUIRE_GLOBAL(ui_sidebar_menus); +REQUIRE_GLOBAL(game); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(window_z); @@ -213,7 +213,7 @@ bool lineY (MapExtras::MapCache & MCache, int32_t parse_priority(color_ostream &out, vector ¶meters) { - int32_t default_priority = ui_sidebar_menus->designation.priority; + int32_t default_priority = game->designation.priority; for (auto it = parameters.begin(); it != parameters.end(); ++it) { diff --git a/plugins/diggingInvaders/assignJob.cpp b/plugins/diggingInvaders/assignJob.cpp index 2eaad9eb5..eb74433b8 100644 --- a/plugins/diggingInvaders/assignJob.cpp +++ b/plugins/diggingInvaders/assignJob.cpp @@ -25,7 +25,7 @@ #include "df/job_type.h" #include "df/reaction_product_itemst.h" #include "df/reaction_reagent.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_inventory_item.h" #include "df/world.h" @@ -252,7 +252,7 @@ int32_t assignJob(color_ostream& out, Edge firstImportantEdge, unordered_map in_items; prod->produce(firstInvader, &out_products, &out_items, &in_reag, &in_items, 1, df::job_skill::NONE, 0, df::historical_entity::find(firstInvader->civ_id), - df::world_site::find(df::global::ui->site_id), NULL); + df::world_site::find(df::global::plotinfo->site_id), NULL); if ( out_items.size() != 1 ) { out.print("%s, %d: wrong size: %zu.\n", __FILE__, __LINE__, out_items.size()); diff --git a/plugins/diggingInvaders/diggingInvaders.cpp b/plugins/diggingInvaders/diggingInvaders.cpp index 457a00e50..cf0047cd8 100644 --- a/plugins/diggingInvaders/diggingInvaders.cpp +++ b/plugins/diggingInvaders/diggingInvaders.cpp @@ -47,7 +47,7 @@ #include "df/tiletype_material.h" #include "df/tiletype_shape.h" #include "df/tiletype_shape_basic.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_inventory_item.h" #include "df/world.h" diff --git a/plugins/dwarfmonitor.cpp b/plugins/dwarfmonitor.cpp index 4355104a7..2b546bfad 100644 --- a/plugins/dwarfmonitor.cpp +++ b/plugins/dwarfmonitor.cpp @@ -4,7 +4,7 @@ #include "DataDefs.h" #include "df/job.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/viewscreen_dwarfmodest.h" #include "df/world.h" @@ -53,7 +53,7 @@ using std::deque; DFHACK_PLUGIN("dwarfmonitor"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); typedef int16_t activity_type; diff --git a/plugins/dwarfvet.cpp b/plugins/dwarfvet.cpp index 356fda238..75f015975 100644 --- a/plugins/dwarfvet.cpp +++ b/plugins/dwarfvet.cpp @@ -39,7 +39,7 @@ #include "df/job.h" #include "df/general_ref_unit_workerst.h" #include "df/profession.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_health_info.h" #include "df/unit_health_flags.h" @@ -58,7 +58,7 @@ using namespace std; DFHACK_PLUGIN("dwarfvet"); DFHACK_PLUGIN_IS_ENABLED(dwarfvet_enabled); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); static unordered_set tracked_units; @@ -407,7 +407,7 @@ void tickHandler(color_ostream& out, void* data) { if ( !dwarfvet_enabled ) return; CoreSuspender suspend; - int32_t own_race_id = df::global::ui->race_id; + int32_t own_race_id = df::global::plotinfo->race_id; /** * Generate a list of animal hospitals on the map diff --git a/plugins/embark-assistant/finder_ui.cpp b/plugins/embark-assistant/finder_ui.cpp index 1fb845d15..6501f7f21 100644 --- a/plugins/embark-assistant/finder_ui.cpp +++ b/plugins/embark-assistant/finder_ui.cpp @@ -123,7 +123,7 @@ namespace embark_assist { struct states { embark_assist::defs::find_callbacks find_callback; - uis ui; + uis plotinfo; display_maps finder_list; // Don't need the element key, but it's easier to use the same type. uint16_t finder_list_focus; bool finder_list_active; @@ -171,13 +171,13 @@ namespace embark_assist { size_t civ = 0; while (true) { - for (size_t k = 0; k < state->ui[static_cast(i)]->list.size(); k++) { - if (state->ui[static_cast(i) + civ]->current_value == state->ui[static_cast(i) + civ]->list[k].key) { - fprintf(outfile, "[%s:%s]\n", state->finder_list[static_cast(i) + civ].text.c_str(), state->ui[static_cast(i) + civ]->list[k].text.c_str()); + for (size_t k = 0; k < state->plotinfo[static_cast(i)]->list.size(); k++) { + if (state->plotinfo[static_cast(i) + civ]->current_value == state->plotinfo[static_cast(i) + civ]->list[k].key) { + fprintf(outfile, "[%s:%s]\n", state->finder_list[static_cast(i) + civ].text.c_str(), state->plotinfo[static_cast(i) + civ]->list[k].text.c_str()); break; } } -// fprintf(outfile, "[%s:%i]\n", state->finder_list[static_cast(i)].text.c_str(), state->ui[static_cast(i)]->current_value); +// fprintf(outfile, "[%s:%i]\n", state->finder_list[static_cast(i)].text.c_str(), state->plotinfo[static_cast(i)]->current_value); if (i == last_fields) { civ++; @@ -229,10 +229,10 @@ namespace embark_assist { found = false; - for (size_t l = 0; l < state->ui[static_cast(i) + civ]->list.size(); l++) { + for (size_t l = 0; l < state->plotinfo[static_cast(i) + civ]->list.size(); l++) { for (int m = k + 1; m < count; m++) { - if (state->ui[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] != line[m]) { - if (state->ui[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] == '\0' && + if (state->plotinfo[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] != line[m]) { + if (state->plotinfo[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] == '\0' && line[m] == ']') { found = true; } @@ -291,13 +291,13 @@ namespace embark_assist { found = false; - for (size_t l = 0; l < state->ui[static_cast(i) + civ]->list.size(); l++) { + for (size_t l = 0; l < state->plotinfo[static_cast(i) + civ]->list.size(); l++) { for (int m = k + 1; m < count; m++) { - if (state->ui[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] != line[m]) { - if (state->ui[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] == '\0' && + if (state->plotinfo[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] != line[m]) { + if (state->plotinfo[static_cast(i) + civ]->list[l].text.c_str()[m - (k + 1)] == '\0' && line[m] == ']') { - state->ui[static_cast(i) + civ]->current_value = state->ui[static_cast(i) + civ]->list[l].key; - state->ui[static_cast(i) + civ]->current_display_value = l; + state->plotinfo[static_cast(i) + civ]->current_value = state->plotinfo[static_cast(i) + civ]->list[l].key; + state->plotinfo[static_cast(i) + civ]->current_display_value = l; found = true; } @@ -1095,7 +1095,7 @@ namespace embark_assist { if (l < state->civs.size() - 1) { element->current_value = element->list[0].key; - state->ui.push_back(element); + state->plotinfo.push_back(element); element = new ui_lists; element->current_display_value = 0; element->current_index = 0; @@ -1108,7 +1108,7 @@ namespace embark_assist { } element->current_value = element->list[0].key; - state->ui.push_back(element); + state->plotinfo.push_back(element); switch (i) { case fields::x_dim: @@ -1333,21 +1333,21 @@ namespace embark_assist { // off to compensate for the list starting with 1 at index 0. // auto screen = Gui::getViewscreenByType(0); - state->ui[static_cast(fields::x_dim)]->current_display_value = + state->plotinfo[static_cast(fields::x_dim)]->current_display_value = screen->location.embark_pos_max.x - screen->location.embark_pos_min.x; - state->ui[static_cast(fields::x_dim)]->current_index = - state->ui[static_cast(fields::x_dim)]->current_display_value; - state->ui[static_cast(fields::x_dim)]->current_value = - state->ui[static_cast(fields::x_dim)]->current_display_value + 1; + state->plotinfo[static_cast(fields::x_dim)]->current_index = + state->plotinfo[static_cast(fields::x_dim)]->current_display_value; + state->plotinfo[static_cast(fields::x_dim)]->current_value = + state->plotinfo[static_cast(fields::x_dim)]->current_display_value + 1; - state->ui[static_cast(fields::y_dim)]->current_display_value = + state->plotinfo[static_cast(fields::y_dim)]->current_display_value = screen->location.embark_pos_max.y - screen->location.embark_pos_min.y; - state->ui[static_cast(fields::y_dim)]->current_index = - state->ui[static_cast(fields::y_dim)]->current_display_value; - state->ui[static_cast(fields::y_dim)]->current_value = - state->ui[static_cast(fields::y_dim)]->current_display_value + 1; + state->plotinfo[static_cast(fields::y_dim)]->current_index = + state->plotinfo[static_cast(fields::y_dim)]->current_display_value; + state->plotinfo[static_cast(fields::y_dim)]->current_value = + state->plotinfo[static_cast(fields::y_dim)]->current_display_value + 1; } //========================================================================================================== @@ -1360,234 +1360,234 @@ namespace embark_assist { while (true) { switch (i) { case fields::x_dim: - finder.x_dim = state->ui[static_cast(i)]->current_value; + finder.x_dim = state->plotinfo[static_cast(i)]->current_value; break; case fields::y_dim: - finder.y_dim = state->ui[static_cast(i)]->current_value; + finder.y_dim = state->plotinfo[static_cast(i)]->current_value; break; case fields::savagery_calm: finder.savagery[0] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::savagery_medium: finder.savagery[1] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::savagery_savage: finder.savagery[2] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::good: finder.evilness[0] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::neutral: finder.evilness[1] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::evil: finder.evilness[2] = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::aquifer: finder.aquifer = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::min_river: finder.min_river = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::max_river: finder.max_river = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::min_waterfall: - finder.min_waterfall = state->ui[static_cast(i)]->current_value; + finder.min_waterfall = state->plotinfo[static_cast(i)]->current_value; break; case fields::flat: finder.flat = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::soil_min_everywhere: finder.soil_min_everywhere = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::freezing: finder.freezing = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::blood_rain: finder.blood_rain = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::syndrome_rain: finder.syndrome_rain = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::reanimation: finder.reanimation = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::clay: finder.clay = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::sand: finder.sand = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::flux: finder.flux = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::coal: finder.coal = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::soil_min: finder.soil_min = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::soil_max: finder.soil_max = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::spire_count_min: - finder.spire_count_min = state->ui[static_cast(i)]->current_value; + finder.spire_count_min = state->plotinfo[static_cast(i)]->current_value; break; case fields::spire_count_max: - finder.spire_count_max = state->ui[static_cast(i)]->current_value; + finder.spire_count_max = state->plotinfo[static_cast(i)]->current_value; break; case fields::magma_min: finder.magma_min = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::magma_max: finder.magma_max = - static_cast(state->ui[static_cast(i)]->current_value); + static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::biome_count_min: - finder.biome_count_min = state->ui[static_cast(i)]->current_value; + finder.biome_count_min = state->plotinfo[static_cast(i)]->current_value; break; case fields::biome_count_max: - finder.biome_count_max = state->ui[static_cast(i)]->current_value; + finder.biome_count_max = state->plotinfo[static_cast(i)]->current_value; break; case fields::region_type_1: - finder.region_type_1 = state->ui[static_cast(i)]->current_value; + finder.region_type_1 = state->plotinfo[static_cast(i)]->current_value; break; case fields::region_type_2: - finder.region_type_2 = state->ui[static_cast(i)]->current_value; + finder.region_type_2 = state->plotinfo[static_cast(i)]->current_value; break; case fields::region_type_3: - finder.region_type_3 = state->ui[static_cast(i)]->current_value; + finder.region_type_3 = state->plotinfo[static_cast(i)]->current_value; break; case fields::biome_1: - finder.biome_1 = state->ui[static_cast(i)]->current_value; + finder.biome_1 = state->plotinfo[static_cast(i)]->current_value; break; case fields::biome_2: - finder.biome_2 = state->ui[static_cast(i)]->current_value; + finder.biome_2 = state->plotinfo[static_cast(i)]->current_value; break; case fields::biome_3: - finder.biome_3 = state->ui[static_cast(i)]->current_value; + finder.biome_3 = state->plotinfo[static_cast(i)]->current_value; break; case fields::min_trees: - finder.min_trees = static_cast(state->ui[static_cast(i)]->current_value); + finder.min_trees = static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::max_trees: - finder.max_trees = static_cast(state->ui[static_cast(i)]->current_value); + finder.max_trees = static_cast(state->plotinfo[static_cast(i)]->current_value); break; case fields::metal_1: - finder.metal_1 = state->ui[static_cast(i)]->current_value; + finder.metal_1 = state->plotinfo[static_cast(i)]->current_value; break; case fields::metal_2: - finder.metal_2 = state->ui[static_cast(i)]->current_value; + finder.metal_2 = state->plotinfo[static_cast(i)]->current_value; break; case fields::metal_3: - finder.metal_3 = state->ui[static_cast(i)]->current_value; + finder.metal_3 = state->plotinfo[static_cast(i)]->current_value; break; case fields::economic_1: - finder.economic_1 = state->ui[static_cast(i)]->current_value; + finder.economic_1 = state->plotinfo[static_cast(i)]->current_value; break; case fields::economic_2: - finder.economic_2 = state->ui[static_cast(i)]->current_value; + finder.economic_2 = state->plotinfo[static_cast(i)]->current_value; break; case fields::economic_3: - finder.economic_3 = state->ui[static_cast(i)]->current_value; + finder.economic_3 = state->plotinfo[static_cast(i)]->current_value; break; case fields::mineral_1: - finder.mineral_1 = state->ui[static_cast(i)]->current_value; + finder.mineral_1 = state->plotinfo[static_cast(i)]->current_value; break; case fields::mineral_2: - finder.mineral_2 = state->ui[static_cast(i)]->current_value; + finder.mineral_2 = state->plotinfo[static_cast(i)]->current_value; break; case fields::mineral_3: - finder.mineral_3 = state->ui[static_cast(i)]->current_value; + finder.mineral_3 = state->plotinfo[static_cast(i)]->current_value; break; case fields::min_necro_neighbors: - finder.min_necro_neighbors = state->ui[static_cast(i)]->current_value; + finder.min_necro_neighbors = state->plotinfo[static_cast(i)]->current_value; break; case fields::max_necro_neighbors: - finder.max_necro_neighbors = state->ui[static_cast(i)]->current_value; + finder.max_necro_neighbors = state->plotinfo[static_cast(i)]->current_value; break; case fields::min_civ_neighbors: - finder.min_civ_neighbors = state->ui[static_cast(i)]->current_value; + finder.min_civ_neighbors = state->plotinfo[static_cast(i)]->current_value; break; case fields::max_civ_neighbors: - finder.max_civ_neighbors = state->ui[static_cast(i)]->current_value; + finder.max_civ_neighbors = state->plotinfo[static_cast(i)]->current_value; break; case fields::neighbors: for (size_t k = 0; k < state->civs.size(); k++) { - finder.neighbors.push_back({ state->civs[k].id, static_cast(state->ui[static_cast(i) + k]->current_value) }); + finder.neighbors.push_back({ state->civs[k].id, static_cast(state->plotinfo[static_cast(i) + k]->current_value) }); } break; } @@ -1641,10 +1641,10 @@ namespace embark_assist { } } else { - if (state->ui[state->finder_list_focus]->current_index > 0) { - state->ui[state->finder_list_focus]->current_index--; + if (state->plotinfo[state->finder_list_focus]->current_index > 0) { + state->plotinfo[state->finder_list_focus]->current_index--; } else { - state->ui[state->finder_list_focus]->current_index = static_cast(state->ui[state->finder_list_focus]->list.size()) - 1; + state->plotinfo[state->finder_list_focus]->current_index = static_cast(state->plotinfo[state->finder_list_focus]->list.size()) - 1; } } @@ -1657,17 +1657,17 @@ namespace embark_assist { } } else { - if (state->ui[state->finder_list_focus]->current_index < state->ui[state->finder_list_focus]->list.size() - 1) { - state->ui[state->finder_list_focus]->current_index++; + if (state->plotinfo[state->finder_list_focus]->current_index < state->plotinfo[state->finder_list_focus]->list.size() - 1) { + state->plotinfo[state->finder_list_focus]->current_index++; } else { - state->ui[state->finder_list_focus]->current_index = 0; + state->plotinfo[state->finder_list_focus]->current_index = 0; } } } else if (input->count(df::interface_key::SELECT)) { if (!state->finder_list_active) { - state->ui[state->finder_list_focus]->current_display_value = state->ui[state->finder_list_focus]->current_index; - state->ui[state->finder_list_focus]->current_value = state->ui[state->finder_list_focus]->list[state->ui[state->finder_list_focus]->current_index].key; + state->plotinfo[state->finder_list_focus]->current_display_value = state->plotinfo[state->finder_list_focus]->current_index; + state->plotinfo[state->finder_list_focus]->current_value = state->plotinfo[state->finder_list_focus]->list[state->plotinfo[state->finder_list_focus]->current_index].key; state->finder_list_active = true; } @@ -1743,7 +1743,7 @@ namespace embark_assist { embark_assist::screen::paintString(active_pen, 21, top_row + i - offset, - state->ui[i]->list[state->ui[i]->current_display_value].text); + state->plotinfo[i]->list[state->plotinfo[i]->current_display_value].text); } else { embark_assist::screen::paintString(normal_pen, 1, top_row + i - offset, state->finder_list[i].text); @@ -1751,38 +1751,38 @@ namespace embark_assist { embark_assist::screen::paintString(white_pen, 21, top_row + i - offset, - state->ui[i]->list[state->ui[i]->current_display_value].text); + state->plotinfo[i]->list[state->plotinfo[i]->current_display_value].text); } } // Implement scrolling lists if they don't fit on the screen. offset = 0; - if (int32_t(state->ui[state->finder_list_focus]->list.size()) > screen_size.y - top_row - 1) { + if (int32_t(state->plotinfo[state->finder_list_focus]->list.size()) > screen_size.y - top_row - 1) { offset = (screen_size.y - top_row - 1) / 2; - if (state->ui[state->finder_list_focus]->current_index < offset) { + if (state->plotinfo[state->finder_list_focus]->current_index < offset) { offset = 0; } else { - offset = state->ui[state->finder_list_focus]->current_index - offset; + offset = state->plotinfo[state->finder_list_focus]->current_index - offset; } - if (int32_t(state->ui[state->finder_list_focus]->list.size() - offset) < screen_size.y - top_row - 1) { - offset = static_cast(state->ui[state->finder_list_focus]->list.size()) - (screen_size.y - top_row - 1); + if (int32_t(state->plotinfo[state->finder_list_focus]->list.size() - offset) < screen_size.y - top_row - 1) { + offset = static_cast(state->plotinfo[state->finder_list_focus]->list.size()) - (screen_size.y - top_row - 1); } } - for (uint16_t i = offset; i < state->ui[state->finder_list_focus]->list.size(); i++) { - if (i == state->ui[state->finder_list_focus]->current_index) { + for (uint16_t i = offset; i < state->plotinfo[state->finder_list_focus]->list.size(); i++) { + if (i == state->plotinfo[state->finder_list_focus]->current_index) { if (!state->finder_list_active) { // Negated expression to get the display lines in the same order as above. - embark_assist::screen::paintString(active_pen, list_column, top_row + i - offset, state->ui[state->finder_list_focus]->list[i].text); + embark_assist::screen::paintString(active_pen, list_column, top_row + i - offset, state->plotinfo[state->finder_list_focus]->list[i].text); } else { - embark_assist::screen::paintString(passive_pen, list_column, top_row + i - offset, state->ui[state->finder_list_focus]->list[i].text); + embark_assist::screen::paintString(passive_pen, list_column, top_row + i - offset, state->plotinfo[state->finder_list_focus]->list[i].text); } } else { - embark_assist::screen::paintString(normal_pen, list_column, top_row + i - offset, state->ui[state->finder_list_focus]->list[i].text); + embark_assist::screen::paintString(normal_pen, list_column, top_row + i - offset, state->plotinfo[state->finder_list_focus]->list[i].text); } } @@ -1823,8 +1823,8 @@ void embark_assist::finder_ui::activate() { void embark_assist::finder_ui::shutdown() { if (embark_assist::finder_ui::state) { - for (uint16_t i = 0; i < embark_assist::finder_ui::state->ui.size(); i++) { - delete embark_assist::finder_ui::state->ui[i]; + for (uint16_t i = 0; i < embark_assist::finder_ui::state->plotinfo.size(); i++) { + delete embark_assist::finder_ui::state->plotinfo[i]; } delete embark_assist::finder_ui::state; diff --git a/plugins/eventful.cpp b/plugins/eventful.cpp index 980b2db9c..dfddab9e8 100644 --- a/plugins/eventful.cpp +++ b/plugins/eventful.cpp @@ -39,7 +39,7 @@ using namespace df::enums; DFHACK_PLUGIN("eventful"); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); typedef df::reaction_product_itemst item_product; diff --git a/plugins/getplants.cpp b/plugins/getplants.cpp index 6819b6191..4fc82cb97 100644 --- a/plugins/getplants.cpp +++ b/plugins/getplants.cpp @@ -14,7 +14,7 @@ #include "df/plant_growth.h" #include "df/plant_raw.h" #include "df/tile_dig_designation.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" #include "df/world_data.h" #include "df/world_object_data.h" @@ -32,7 +32,7 @@ using namespace DFHack; using namespace df::enums; DFHACK_PLUGIN("getplants"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(cur_year); REQUIRE_GLOBAL(cur_year_tick); @@ -242,7 +242,7 @@ bool ripe(int32_t x, int32_t y, int32_t start, int32_t end) { // Looks in the picked growths vector to see if a matching growth has been marked as picked. bool picked(const df::plant *plant, int32_t growth_subtype) { df::world_data *world_data = world->world_data; - df::world_site *site = df::world_site::find(ui->site_id); + df::world_site *site = df::world_site::find(plotinfo->site_id); int32_t pos_x = site->global_min_x + plant->pos.x / 48; int32_t pos_y = site->global_min_y + plant->pos.y / 48; size_t id = pos_x + pos_y * 16 * world_data->world_width; diff --git a/plugins/jobutils.cpp b/plugins/jobutils.cpp index 5f5994435..35b6f2cb5 100644 --- a/plugins/jobutils.cpp +++ b/plugins/jobutils.cpp @@ -11,8 +11,8 @@ #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" #include "df/ui_build_item_req.h" #include "df/build_req_choice_genst.h" #include "df/build_req_choice_specst.h" @@ -33,7 +33,7 @@ using namespace df::enums; DFHACK_PLUGIN("jobutils"); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); REQUIRE_GLOBAL(ui_workshop_job_cursor); REQUIRE_GLOBAL(job_next_id); @@ -48,7 +48,7 @@ static command_result job_cmd(color_ostream &out, vector & parameters); DFhackCExport command_result plugin_init (color_ostream &out, std::vector &commands) { - if (!world || !ui) + if (!world || !plotinfo) return CR_FAILURE; commands.push_back( @@ -232,9 +232,9 @@ static command_result job_material(color_ostream &out, vector & paramet else return CR_WRONG_USAGE; - if (ui->main.mode == ui_sidebar_mode::QueryBuilding) + if (plotinfo->main.mode == ui_sidebar_mode::QueryBuilding) return job_material_in_job(out, new_mat); - if (ui->main.mode == ui_sidebar_mode::Build) + if (plotinfo->main.mode == ui_sidebar_mode::Build) return job_material_in_build(out, new_mat); return CR_WRONG_USAGE; diff --git a/plugins/manipulator.cpp b/plugins/manipulator.cpp index 2d3f3bc0a..6731aa513 100644 --- a/plugins/manipulator.cpp +++ b/plugins/manipulator.cpp @@ -19,7 +19,7 @@ #include "df/activity_event.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/graphic.h" #include "df/enabler.h" #include "df/viewscreen_unitlistst.h" @@ -49,7 +49,7 @@ using namespace df::enums; DFHACK_PLUGIN("manipulator"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(enabler); @@ -1972,9 +1972,9 @@ void viewscreen_unitlaborsst::render() Screen::paintTile(Screen::Pen(columns[col_offset].label[0], fg, bg), col_offsets[DISP_COLUMN_LABORS] + col, 1); Screen::paintTile(Screen::Pen(columns[col_offset].label[1], fg, bg), col_offsets[DISP_COLUMN_LABORS] + col, 2); df::profession profession = columns[col_offset].profession; - if ((profession != profession::NONE) && (ui->race_id != -1)) + if ((profession != profession::NONE) && (plotinfo->race_id != -1)) { - auto graphics = world->raws.creatures.all[ui->race_id]->graphics; + auto graphics = world->raws.creatures.all[plotinfo->race_id]->graphics; Screen::paintTile( Screen::Pen(' ', fg, 0, graphics.profession_add_color[creature_graphics_role::DEFAULT][profession], diff --git a/plugins/misery.cpp b/plugins/misery.cpp index 224060c6b..870c4480c 100644 --- a/plugins/misery.cpp +++ b/plugins/misery.cpp @@ -10,7 +10,7 @@ #include "modules/Units.h" #include "df/emotion_type.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_personality.h" #include "df/unit_soul.h" @@ -24,7 +24,7 @@ DFHACK_PLUGIN("misery"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(cur_year); REQUIRE_GLOBAL(cur_year_tick); diff --git a/plugins/mousequery.cpp b/plugins/mousequery.cpp index 124664fa2..1a088141a 100644 --- a/plugins/mousequery.cpp +++ b/plugins/mousequery.cpp @@ -6,8 +6,8 @@ #include "df/viewscreen_dwarfmodest.h" #include "df/world.h" #include "df/items_other_id.h" -#include "df/ui_build_selector.h" -#include "df/ui_sidebar_menus.h" +#include "df/buildreq.h" +#include "df/gamest.h" #include "modules/Gui.h" #include "modules/World.h" @@ -26,7 +26,7 @@ DFHACK_PLUGIN("mousequery"); REQUIRE_GLOBAL(enabler); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); using namespace df::enums::ui_sidebar_mode; @@ -196,7 +196,7 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest bool isInDesignationMenu() { - switch (ui->main.mode) + switch (plotinfo->main.mode) { case DesignateMine: case DesignateRemoveRamps: @@ -230,7 +230,7 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest return true; case Burrows: - return ui->burrows.in_define_mode; + return plotinfo->burrows.in_define_mode; default: return false; @@ -242,7 +242,7 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest if (isInDesignationMenu()) return box_designation_enabled; - switch (ui->main.mode) + switch (plotinfo->main.mode) { case DesignateItemsClaim: case DesignateItemsForbid: @@ -281,8 +281,8 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest { bool selectableMode = isInDesignationMenu() || - ui->main.mode == Stockpiles || - ui->main.mode == Zones; + plotinfo->main.mode == Stockpiles || + plotinfo->main.mode == Zones; if (selectableMode) { @@ -314,7 +314,7 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest } else { - switch (ui->main.mode) + switch (plotinfo->main.mode) { case QueryBuilding: if (cursor_still_here) @@ -369,8 +369,8 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest if (mx < 1 || mx > dims.map_x2 || my < 1 || my > dims.map_y2) return false; - if (ui->main.mode == df::ui_sidebar_mode::Zones || - ui->main.mode == df::ui_sidebar_mode::Stockpiles) + if (plotinfo->main.mode == df::ui_sidebar_mode::Zones || + plotinfo->main.mode == df::ui_sidebar_mode::Stockpiles) { int32_t x, y, z; if (Gui::getDesignationCoords(x, y, z)) @@ -417,8 +417,8 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest enabler->mouse_rbut = 0; using namespace df::enums::ui_sidebar_mode; - if ((ui->main.mode == QueryBuilding || ui->main.mode == BuildingItems || - ui->main.mode == ViewUnits || ui->main.mode == LookAround) || + if ((plotinfo->main.mode == QueryBuilding || plotinfo->main.mode == BuildingItems || + plotinfo->main.mode == ViewUnits || plotinfo->main.mode == LookAround) || (isInTrackableMode() && tracking_enabled)) { sendKey(df::interface_key::LEAVESCREEN); @@ -707,8 +707,8 @@ struct mousequery_hook : public df::viewscreen_dwarfmodest if (Gui::getDesignationCoords(x, y, z)) { color = COLOR_WHITE; - if (ui->main.mode == df::ui_sidebar_mode::Zones || - ui->main.mode == df::ui_sidebar_mode::Stockpiles) + if (plotinfo->main.mode == df::ui_sidebar_mode::Zones || + plotinfo->main.mode == df::ui_sidebar_mode::Stockpiles) { auto dX = abs(x - mpos.x); if (dX > 30) diff --git a/plugins/nestboxes.cpp b/plugins/nestboxes.cpp index 403a8cb37..1908684d4 100644 --- a/plugins/nestboxes.cpp +++ b/plugins/nestboxes.cpp @@ -5,7 +5,7 @@ #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/building_nest_boxst.h" #include "df/building_type.h" #include "df/buildings_other_id.h" @@ -26,7 +26,7 @@ using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; static command_result nestboxes(color_ostream &out, vector & parameters); @@ -67,7 +67,7 @@ static void eggscan(color_ostream &out) DFhackCExport command_result plugin_init (color_ostream &out, std::vector &commands) { - if (world && ui) { + if (world && plotinfo) { commands.push_back( PluginCommand( "nestboxes", diff --git a/plugins/power-meter.cpp b/plugins/power-meter.cpp index c61c3c8ee..f5f4ac63f 100644 --- a/plugins/power-meter.cpp +++ b/plugins/power-meter.cpp @@ -29,8 +29,8 @@ #include "df/machine_info.h" #include "df/report.h" #include "df/tile_designation.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" #include "df/viewscreen_dwarfmodest.h" #include "df/world.h" @@ -43,7 +43,7 @@ using namespace df::enums; DFHACK_PLUGIN("power-meter"); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); static const uint32_t METER_BIT = 0x80000000U; diff --git a/plugins/remotefortressreader/adventure_control.cpp b/plugins/remotefortressreader/adventure_control.cpp index 6fb592d62..2dbf2abc1 100644 --- a/plugins/remotefortressreader/adventure_control.cpp +++ b/plugins/remotefortressreader/adventure_control.cpp @@ -7,7 +7,7 @@ #include "df/adventure_movement_hold_itemst.h" #include "df/adventure_movement_hold_tilest.h" #include "df/adventure_movement_optionst.h" -#include "df/ui_advmode.h" +#include "df/adventurest.h" #include "df/viewscreen.h" #include "modules/Gui.h" @@ -42,7 +42,7 @@ command_result MoveCommand(DFHack::color_ostream &stream, const MoveCommandParam auto viewScreen = getCurViewscreen(); if (!in->has_direction()) return CR_WRONG_USAGE; - if (!df::global::ui_advmode->menu == ui_advmode_menu::Default) + if (!df::global::adventure->menu == ui_advmode_menu::Default) return CR_OK; auto dir = in->direction(); switch (dir.x()) @@ -193,7 +193,7 @@ command_result JumpCommand(DFHack::color_ostream &stream, const MoveCommandParam { if (!in->has_direction()) return CR_WRONG_USAGE; - if (!df::global::ui_advmode->menu == ui_advmode_menu::Default) + if (!df::global::adventure->menu == ui_advmode_menu::Default) return CR_OK; auto dir = in->direction(); keyQueue.push(interface_key::A_JUMP); @@ -233,7 +233,7 @@ command_result JumpCommand(DFHack::color_ostream &stream, const MoveCommandParam command_result MenuQuery(DFHack::color_ostream &stream, const EmptyMessage *in, MenuContents *out) { - auto advUi = df::global::ui_advmode; + auto advUi = df::global::adventure; if (advUi == NULL) return CR_FAILURE; @@ -278,7 +278,7 @@ command_result MenuQuery(DFHack::color_ostream &stream, const EmptyMessage *in, command_result MovementSelectCommand(DFHack::color_ostream &stream, const dfproto::IntMessage *in) { - if (!(df::global::ui_advmode->menu == ui_advmode_menu::MoveCarefully)) + if (!(df::global::adventure->menu == ui_advmode_menu::MoveCarefully)) return CR_OK; int choice = in->value(); int page = choice / 5; @@ -293,7 +293,7 @@ command_result MovementSelectCommand(DFHack::color_ostream &stream, const dfprot command_result MiscMoveCommand(DFHack::color_ostream &stream, const MiscMoveParams *in) { - if (!df::global::ui_advmode->menu == ui_advmode_menu::Default) + if (!df::global::adventure->menu == ui_advmode_menu::Default) return CR_OK; auto type = in->type(); diff --git a/plugins/remotefortressreader/dwarf_control.cpp b/plugins/remotefortressreader/dwarf_control.cpp index 3a5933464..f0147670f 100644 --- a/plugins/remotefortressreader/dwarf_control.cpp +++ b/plugins/remotefortressreader/dwarf_control.cpp @@ -12,9 +12,9 @@ #include "df/job_list_link.h" #include "df/interface_button_construction_building_selectorst.h" #include "df/interface_button_construction_category_selectorst.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" -#include "df/ui_sidebar_menus.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" +#include "df/gamest.h" #include "df/viewscreen.h" #include "df/world.h" @@ -233,7 +233,7 @@ command_result SetPauseState(color_ostream &stream, const SingleBool *in) void CopyBuildMenu(DwarfControl::SidebarState * out) { - auto menus = df::global::ui_sidebar_menus; + auto menus = df::global::game; auto build_selector = df::global::ui_build_selector; if (build_selector->building_type == -1) for (size_t i = 0; i < menus->building.choices_visible.size(); i++) @@ -303,9 +303,9 @@ void CopyBuildMenu(DwarfControl::SidebarState * out) command_result GetSideMenu(DFHack::color_ostream &stream, const dfproto::EmptyMessage *in, DwarfControl::SidebarState *out) { - auto ui = df::global::ui; - out->set_mode((proto::enums::ui_sidebar_mode::ui_sidebar_mode)ui->main.mode); - auto mode = ui->main.mode; + auto plotinfo = df::global::plotinfo; + out->set_mode((proto::enums::ui_sidebar_mode::ui_sidebar_mode)plotinfo->main.mode); + auto mode = plotinfo->main.mode; switch (mode) { case ui_sidebar_mode::Default: @@ -427,25 +427,25 @@ command_result GetSideMenu(DFHack::color_ostream &stream, const dfproto::EmptyMe command_result SetSideMenu(DFHack::color_ostream &stream, const DwarfControl::SidebarCommand *in) { - auto ui = df::global::ui; + auto plotinfo = df::global::plotinfo; if (in->has_mode()) { ui_sidebar_mode::ui_sidebar_mode set_mode = (ui_sidebar_mode::ui_sidebar_mode)in->mode(); - if (ui->main.mode != set_mode) + if (plotinfo->main.mode != set_mode) { - ui->main.mode = ui_sidebar_mode::Default; + plotinfo->main.mode = ui_sidebar_mode::Default; switch (set_mode) { case ui_sidebar_mode::Build: keyQueue.push(interface_key::D_BUILDING); break; default: - ui->main.mode = set_mode; + plotinfo->main.mode = set_mode; break; } } } - switch (ui->main.mode) + switch (plotinfo->main.mode) { case ui_sidebar_mode::Build: if (in->has_action()) @@ -454,7 +454,7 @@ command_result SetSideMenu(DFHack::color_ostream &stream, const DwarfControl::Si if (in->has_menu_index()) index = in->menu_index(); if(ui_build_selector->building_type == -1) - df::global::ui_sidebar_menus->building.cursor = index; + df::global::game->building.cursor = index; if (ui_build_selector->stage == 2) { ui_build_selector->sel_index = index; diff --git a/plugins/remotefortressreader/remotefortressreader.cpp b/plugins/remotefortressreader/remotefortressreader.cpp index 643e92b21..536aa3b0d 100644 --- a/plugins/remotefortressreader/remotefortressreader.cpp +++ b/plugins/remotefortressreader/remotefortressreader.cpp @@ -89,7 +89,7 @@ #endif #include "df/tissue.h" #include "df/tissue_style_raw.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_inventory_item.h" #include "df/unit_wound.h" @@ -135,9 +135,9 @@ using namespace df::global; #else REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(gamemode); -REQUIRE_GLOBAL(ui_advmode); +REQUIRE_GLOBAL(adventure); #endif // Here go all the command declarations... @@ -1887,8 +1887,8 @@ static command_result GetViewInfo(color_ostream &stream, const EmptyMessage *in, if (gamemode && *gamemode == GameMode::ADVENTURE) out->set_follow_unit_id(world->units.active[0]->id); else - out->set_follow_unit_id(ui->follow_unit); - out->set_follow_item_id(ui->follow_item); + out->set_follow_unit_id(plotinfo->follow_unit); + out->set_follow_item_id(plotinfo->follow_item); return CR_OK; } diff --git a/plugins/rename.cpp b/plugins/rename.cpp index 7c46fc908..68186cb74 100644 --- a/plugins/rename.cpp +++ b/plugins/rename.cpp @@ -13,8 +13,8 @@ #include "modules/Screen.h" #include -#include "df/ui.h" -#include "df/ui_sidebar_menus.h" +#include "df/plotinfost.h" +#include "df/gamest.h" #include "df/world.h" #include "df/squad.h" #include "df/unit.h" @@ -49,8 +49,8 @@ using namespace dfproto; DFHACK_PLUGIN("rename"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); -REQUIRE_GLOBAL(ui); -REQUIRE_GLOBAL(ui_sidebar_menus); +REQUIRE_GLOBAL(plotinfo); +REQUIRE_GLOBAL(game); REQUIRE_GLOBAL(world); DFhackCExport command_result plugin_onstatechange(color_ostream &out, state_change_event event); @@ -59,7 +59,7 @@ static command_result rename(color_ostream &out, vector & parameters); DFhackCExport command_result plugin_init (color_ostream &out, std::vector &commands) { - if (world && ui) { + if (world && plotinfo) { commands.push_back(PluginCommand( "rename", "Easily rename things.", @@ -135,9 +135,9 @@ struct dwarf_render_zone_hook : df::viewscreen_dwarfmodest { { INTERPOSE_NEXT(render)(); - if (ui->main.mode == ui_sidebar_mode::Zones && - ui_sidebar_menus && ui_sidebar_menus->zone.selected && - !ui_sidebar_menus->zone.selected->name.empty()) + if (plotinfo->main.mode == ui_sidebar_mode::Zones && + game && game->zone.selected && + !game->zone.selected->name.empty()) { auto dims = Gui::getDwarfmodeViewDims(); int width = dims.menu_x2 - dims.menu_x1 - 1; @@ -146,7 +146,7 @@ struct dwarf_render_zone_hook : df::viewscreen_dwarfmodest { Screen::fillRect(pen, dims.menu_x1, dims.y1+1, dims.menu_x2, dims.y1+1); std::string name; - ui_sidebar_menus->zone.selected->getName(&name); + game->zone.selected->getName(&name); Screen::paintString(pen, dims.menu_x1+1, dims.y1+1, name.substr(0, width)); } } @@ -258,7 +258,7 @@ static bool renameBuilding(df::building *bld, std::string name) static df::squad *getSquadByIndex(unsigned idx) { - auto entity = df::historical_entity::find(ui->group_id); + auto entity = df::historical_entity::find(plotinfo->group_id); if (!entity) return NULL; @@ -361,7 +361,7 @@ static command_result rename(color_ostream &out, vector ¶meters) return CR_WRONG_USAGE; } - ui->main.hotkeys[id-1].name = parameters[2]; + plotinfo->main.hotkeys[id-1].name = parameters[2]; } else if (cmd == "unit") { diff --git a/plugins/rendermax/renderer_light.cpp b/plugins/rendermax/renderer_light.cpp index cc5d569c0..428de3a25 100644 --- a/plugins/rendermax/renderer_light.cpp +++ b/plugins/rendermax/renderer_light.cpp @@ -94,7 +94,7 @@ rect2d getMapViewport() { view_rb=area_x2; } - if (menu_posmain.mode!=0) + if (menu_posmain.mode!=0) { if (menu_pos >= area_pos) menu_pos = area_pos-1; diff --git a/plugins/rendermax/rendermax.cpp b/plugins/rendermax/rendermax.cpp index b7c703e09..6ed22fe77 100644 --- a/plugins/rendermax/rendermax.cpp +++ b/plugins/rendermax/rendermax.cpp @@ -31,7 +31,7 @@ REQUIRE_GLOBAL(cursor); REQUIRE_GLOBAL(enabler); REQUIRE_GLOBAL(gametype); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(window_x); REQUIRE_GLOBAL(window_y); REQUIRE_GLOBAL(window_z); diff --git a/plugins/search.cpp b/plugins/search.cpp index 9ecae6460..b69480778 100644 --- a/plugins/search.cpp +++ b/plugins/search.cpp @@ -52,7 +52,7 @@ DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(gview); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_building_assign_units); REQUIRE_GLOBAL(ui_building_in_assign); REQUIRE_GLOBAL(ui_building_item_cursor); @@ -1878,7 +1878,7 @@ class look_menu_search : public look_menu_search_base public: bool can_init(df::viewscreen_dwarfmodest *screen) { - if (ui->main.mode == df::ui_sidebar_mode::LookAround) + if (plotinfo->main.mode == df::ui_sidebar_mode::LookAround) { return look_menu_search_base::can_init(screen); } @@ -1986,7 +1986,7 @@ class burrow_search : public burrow_search_base public: bool can_init(df::viewscreen_dwarfmodest *screen) { - if (ui->main.mode == df::ui_sidebar_mode::Burrows && ui->burrows.in_add_units_mode) + if (plotinfo->main.mode == df::ui_sidebar_mode::Burrows && plotinfo->burrows.in_add_units_mode) { return burrow_search_base::can_init(screen); } @@ -2011,17 +2011,17 @@ public: vector *get_primary_list() { - return &ui->burrows.list_units; + return &plotinfo->burrows.list_units; } vector *get_secondary_list() { - return &ui->burrows.sel_units; + return &plotinfo->burrows.sel_units; } virtual int32_t * get_viewscreen_cursor() { - return &ui->burrows.unit_cursor_pos; + return &plotinfo->burrows.unit_cursor_pos; } @@ -2055,7 +2055,7 @@ class room_assign_search : public room_assign_search_base public: bool can_init(df::viewscreen_dwarfmodest *screen) { - if (ui->main.mode == df::ui_sidebar_mode::QueryBuilding && *ui_building_in_assign) + if (plotinfo->main.mode == df::ui_sidebar_mode::QueryBuilding && *ui_building_in_assign) { return room_assign_search_base::can_init(screen); } diff --git a/plugins/siege-engine.cpp b/plugins/siege-engine.cpp index 55ea4eeab..2fbb1e8c8 100644 --- a/plugins/siege-engine.cpp +++ b/plugins/siege-engine.cpp @@ -47,8 +47,8 @@ #include "df/report.h" #include "df/stockpile_links.h" #include "df/strain_type.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" #include "df/unit.h" #include "df/unit_misc_trait.h" #include "df/unit_relationship_type.h" @@ -72,7 +72,7 @@ DFHACK_PLUGIN("siege-engine"); REQUIRE_GLOBAL(gamemode); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); REQUIRE_GLOBAL(process_jobs); @@ -1477,7 +1477,7 @@ static bool isTired(df::unit *worker) static void releaseTiredWorker(EngineInfo *engine, df::job *job, df::unit *worker) { // If not in siege - auto &sieges = ui->invasions.list; + auto &sieges = plotinfo->invasions.list; for (size_t i = 0; i < sieges.size(); i++) if (sieges[i]->flags.bits.active) diff --git a/plugins/sort.cpp b/plugins/sort.cpp index 630ac9e53..62af2c416 100644 --- a/plugins/sort.cpp +++ b/plugins/sort.cpp @@ -11,7 +11,7 @@ #include "LuaTools.h" #include "DataDefs.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" #include "df/viewscreen_joblistst.h" #include "df/viewscreen_unitlistst.h" @@ -38,7 +38,7 @@ using namespace DFHack; using namespace df::enums; DFHACK_PLUGIN("sort"); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); REQUIRE_GLOBAL(ui_building_in_assign); REQUIRE_GLOBAL(ui_building_item_cursor); @@ -379,11 +379,11 @@ DEFINE_SORT_HANDLER(unit_sorters, dwarfmode, "/Burrows/AddUnits", screen) { PARSE_SPEC("units", parameters); - if (compute_order(*pout, L, top, &order, ui->burrows.list_units)) + if (compute_order(*pout, L, top, &order, plotinfo->burrows.list_units)) { - reorder_cursor(&ui->burrows.unit_cursor_pos, order); - reorder_vector(&ui->burrows.list_units, order); - reorder_vector(&ui->burrows.sel_units, order); + reorder_cursor(&plotinfo->burrows.unit_cursor_pos, order); + reorder_vector(&plotinfo->burrows.list_units, order); + reorder_vector(&plotinfo->burrows.sel_units, order); } } diff --git a/plugins/spectate/pause.cpp b/plugins/spectate/pause.cpp index 5c60e2194..0e4f1707d 100644 --- a/plugins/spectate/pause.cpp +++ b/plugins/spectate/pause.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include @@ -25,12 +25,12 @@ namespace pausing { bool locked_states[announcement_flag_arr_size]; // locked state (re-applied each frame) bool allow_player_pause = true; // toggles player pause ability - using df::global::ui; + using df::global::plotinfo; using namespace df::enums; struct player_pause_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; DEFINE_VMETHOD_INTERPOSE(void, feed, (std::set* input)) { - if ((ui->main.mode == ui_sidebar_mode::Default) && !allow_player_pause) { + if ((plotinfo->main.mode == ui_sidebar_mode::Default) && !allow_player_pause) { input->erase(interface_key::D_PAUSE); } INTERPOSE_NEXT(feed)(input); diff --git a/plugins/spectate/spectate.cpp b/plugins/spectate/spectate.cpp index 73574c136..7bf3e1ec2 100644 --- a/plugins/spectate/spectate.cpp +++ b/plugins/spectate/spectate.cpp @@ -37,7 +37,7 @@ namespace DFHack { DFHACK_PLUGIN("spectate"); DFHACK_PLUGIN_IS_ENABLED(enabled); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(pause_state); REQUIRE_GLOBAL(d_init); @@ -106,7 +106,7 @@ namespace SP { out.print(" SETTINGS:\n"); out.print(" %-20s\t%" PRIi32 "\n", "tick-threshold: ", config.tick_threshold); if (following_dwarf) - out.print(" %-21s\t%s[id: %d]\n","FOLLOWING:", our_dorf ? our_dorf->name.first_name.c_str() : "nullptr", df::global::ui->follow_unit); + out.print(" %-21s\t%s[id: %d]\n","FOLLOWING:", our_dorf ? our_dorf->name.first_name.c_str() : "nullptr", df::global::plotinfo->follow_unit); } void SetUnpauseState(bool state) { @@ -311,7 +311,7 @@ namespace SP { // if you're looking at a warning about a local address escaping, it means the unit* from units (which aren't local) size_t idx = follow_any(RNG); our_dorf = units[idx]; - df::global::ui->follow_unit = our_dorf->id; + df::global::plotinfo->follow_unit = our_dorf->id; timestamp = df::global::world->frame_counter; return true; } else { @@ -362,7 +362,7 @@ namespace SP { if (!World::ReadPauseState() && tick - last_tick >= 1) { last_tick = tick; // validate follow state - if (!following_dwarf || !our_dorf || df::global::ui->follow_unit < 0 || tick - timestamp >= config.tick_threshold) { + if (!following_dwarf || !our_dorf || df::global::plotinfo->follow_unit < 0 || tick - timestamp >= config.tick_threshold) { // we're not following anyone following_dwarf = false; if (!config.disengage) { diff --git a/plugins/steam-engine.cpp b/plugins/steam-engine.cpp index 6e3c317d3..ac7803b95 100644 --- a/plugins/steam-engine.cpp +++ b/plugins/steam-engine.cpp @@ -31,8 +31,8 @@ #include "df/power_info.h" #include "df/report.h" #include "df/tile_designation.h" -#include "df/ui.h" -#include "df/ui_build_selector.h" +#include "df/plotinfost.h" +#include "df/buildreq.h" #include "df/viewscreen_dwarfmodest.h" #include "df/workshop_type.h" #include "df/world.h" @@ -48,7 +48,7 @@ DFHACK_PLUGIN("steam-engine"); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); REQUIRE_GLOBAL(cursor); @@ -748,7 +748,7 @@ struct dwarfmode_hook : df::viewscreen_dwarfmodest steam_engine_workshop *get_steam_engine() { - if (ui->main.mode == ui_sidebar_mode::Build && + if (plotinfo->main.mode == ui_sidebar_mode::Build && ui_build_selector->stage == 1 && ui_build_selector->building_type == building_type::Workshop && ui_build_selector->building_subtype == workshop_type::Custom) diff --git a/plugins/stockflow.cpp b/plugins/stockflow.cpp index 65223f603..49d56816b 100644 --- a/plugins/stockflow.cpp +++ b/plugins/stockflow.cpp @@ -26,7 +26,7 @@ DFHACK_PLUGIN_IS_ENABLED(enabled); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); bool fast = false; @@ -56,15 +56,15 @@ public: if (found) { // Entice the bookkeeper to spend less time update records. - ui->nobles.bookkeeper_precision += ui->nobles.bookkeeper_precision >> 3; + plotinfo->nobles.bookkeeper_precision += plotinfo->nobles.bookkeeper_precision >> 3; if (!bookkeeping) { command_method("start_bookkeeping", out); bookkeeping = true; } } else { // Entice the bookkeeper to update records more often. - ui->nobles.bookkeeper_precision -= ui->nobles.bookkeeper_precision >> 5; - ui->nobles.bookkeeper_cooldown -= ui->nobles.bookkeeper_cooldown >> 2; + plotinfo->nobles.bookkeeper_precision -= plotinfo->nobles.bookkeeper_precision >> 5; + plotinfo->nobles.bookkeeper_cooldown -= plotinfo->nobles.bookkeeper_cooldown >> 2; if (bookkeeping) { command_method("finish_bookkeeping", out); bookkeeping = false; diff --git a/plugins/stockpiles/StockpileSerializer.h b/plugins/stockpiles/StockpileSerializer.h index ff0a38241..478b403f2 100644 --- a/plugins/stockpiles/StockpileSerializer.h +++ b/plugins/stockpiles/StockpileSerializer.h @@ -105,7 +105,7 @@ private: */ void write(); - // parse serialized data into ui indices + // parse serialized data into plotinfo indices void read (); /** diff --git a/plugins/stockpiles/stockpiles.cpp b/plugins/stockpiles/stockpiles.cpp index aa36e20bd..4b61ff175 100644 --- a/plugins/stockpiles/stockpiles.cpp +++ b/plugins/stockpiles/stockpiles.cpp @@ -21,7 +21,7 @@ #include "df/world_data.h" #include "DataDefs.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/building_stockpilest.h" #include "df/stockpile_settings.h" #include "df/global_objects.h" @@ -42,7 +42,7 @@ using namespace dfstockpiles; DFHACK_PLUGIN ( "stockpiles" ); REQUIRE_GLOBAL(gps); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(selection_rect); using df::building_stockpilest; @@ -59,7 +59,7 @@ static bool loadstock_guard ( df::viewscreen *top ); DFhackCExport command_result plugin_init ( color_ostream &out, std::vector &commands ) { - if ( world && ui ) + if ( world && plotinfo ) { commands.push_back(PluginCommand( "copystock", @@ -106,7 +106,7 @@ static bool copystock_guard ( df::viewscreen *top ) if ( !Gui::dwarfmode_hotkey ( top ) ) return false; - switch ( ui->main.mode ) + switch ( plotinfo->main.mode ) { case Stockpiles: return true; @@ -123,10 +123,10 @@ static command_result copystock ( color_ostream &out, vector & paramete // HOTKEY COMMAND: CORE ALREADY SUSPENDED // For convenience: when used in the stockpiles mode, switch to 'q' - if ( ui->main.mode == ui_sidebar_mode::Stockpiles ) + if ( plotinfo->main.mode == ui_sidebar_mode::Stockpiles ) { world->selected_building = NULL; // just in case it contains some kind of garbage - ui->main.mode = ui_sidebar_mode::QueryBuilding; + plotinfo->main.mode = ui_sidebar_mode::QueryBuilding; selection_rect->start_x = -30000; out << "Switched back to query building." << endl; @@ -140,8 +140,8 @@ static command_result copystock ( color_ostream &out, vector & paramete return CR_WRONG_USAGE; } - ui->stockpile.custom_settings = sp->settings; - ui->main.mode = ui_sidebar_mode::Stockpiles; + plotinfo->stockpile.custom_settings = sp->settings; + plotinfo->main.mode = ui_sidebar_mode::Stockpiles; world->selected_stockpile_type = stockpile_category::Custom; out << "Stockpile options copied." << endl; @@ -156,7 +156,7 @@ static bool savestock_guard ( df::viewscreen *top ) if ( !Gui::dwarfmode_hotkey ( top ) ) return false; - switch ( ui->main.mode ) + switch ( plotinfo->main.mode ) { case Stockpiles: return true; @@ -175,7 +175,7 @@ static bool loadstock_guard ( df::viewscreen *top ) if ( !Gui::dwarfmode_hotkey ( top ) ) return false; - switch ( ui->main.mode ) + switch ( plotinfo->main.mode ) { case Stockpiles: return true; diff --git a/plugins/stocks.cpp b/plugins/stocks.cpp index 62c13dcd5..8cc27067c 100644 --- a/plugins/stocks.cpp +++ b/plugins/stocks.cpp @@ -27,7 +27,7 @@ #include "modules/Maps.h" #include "modules/Units.h" #include "df/building_cagest.h" -#include "df/ui_advmode.h" +#include "df/adventurest.h" DFHACK_PLUGIN("stocks"); #define PLUGIN_VERSION 0.13 diff --git a/plugins/strangemood.cpp b/plugins/strangemood.cpp index a5b8e74a4..f6dd1f747 100644 --- a/plugins/strangemood.cpp +++ b/plugins/strangemood.cpp @@ -23,7 +23,7 @@ #include "df/job.h" #include "df/job_item.h" #include "df/map_block.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_preference.h" #include "df/unit_relationship_type.h" @@ -39,7 +39,7 @@ using namespace df::enums; DFHACK_PLUGIN("strangemood"); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(d_init); REQUIRE_GLOBAL(created_item_count); REQUIRE_GLOBAL(created_item_type); @@ -394,7 +394,7 @@ command_result df_strangemood (color_ostream &out, vector & parameters) out.printerr("Strange moods disabled via debug flag!\n"); return CR_FAILURE; } - if (ui->mood_cooldown && !force) + if (plotinfo->mood_cooldown && !force) { out.printerr("Last strange mood happened too recently!\n"); return CR_FAILURE; @@ -406,7 +406,7 @@ command_result df_strangemood (color_ostream &out, vector & parameters) df::unit *cur = world->units.active[i]; if (Units::isCitizen(cur) && cur->flags1.bits.has_mood) { - ui->mood_cooldown = 1000; + plotinfo->mood_cooldown = 1000; out.printerr("A strange mood is already in progress!\n"); return CR_FAILURE; } @@ -466,12 +466,12 @@ command_result df_strangemood (color_ostream &out, vector & parameters) if (blk->designation[x][y].bits.subterranean && !blk->designation[x][y].bits.hidden) num_revealed_tiles++; } - if (num_revealed_tiles / 2304 < ui->tasks.num_artifacts) + if (num_revealed_tiles / 2304 < plotinfo->tasks.num_artifacts) { out.printerr("Fortress is not eligible for a strange mood at this time - not enough subterranean tiles revealed.\n"); return CR_FAILURE; } - if (num_items / 200 < ui->tasks.num_artifacts) + if (num_items / 200 < plotinfo->tasks.num_artifacts) { out.printerr("Fortress is not eligible for a strange mood at this time - not enough items created\n"); return CR_FAILURE; @@ -544,7 +544,7 @@ command_result df_strangemood (color_ostream &out, vector & parameters) return CR_FAILURE; } - ui->mood_cooldown = 1000; + plotinfo->mood_cooldown = 1000; // If no mood type was specified, pick one randomly if (type == mood_type::None) { @@ -1034,7 +1034,7 @@ command_result df_strangemood (color_ostream &out, vector & parameters) (job->job_type == job_type::StrangeMoodFell) )) { - int extra_items = std::min(rng.df_trandom((ui->tasks.num_artifacts * 20 + moodable_units.size()) / 20 + 1), 7); + int extra_items = std::min(rng.df_trandom((plotinfo->tasks.num_artifacts * 20 + moodable_units.size()) / 20 + 1), 7); df::item_type avoid_type = item_type::NONE; int avoid_glass = 0; switch (skill) diff --git a/plugins/tailor.cpp b/plugins/tailor.cpp index bd11988d0..0a8a82f5b 100644 --- a/plugins/tailor.cpp +++ b/plugins/tailor.cpp @@ -20,7 +20,7 @@ #include "df/job.h" #include "df/job_type.h" #include "df/manager_order.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" #include "modules/Maps.h" @@ -32,14 +32,14 @@ using namespace DFHack; using namespace std; using df::global::world; -using df::global::ui; +using df::global::plotinfo; DFHACK_PLUGIN("tailor"); #define AUTOENABLE false DFHACK_PLUGIN_IS_ENABLED(enabled); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); class Tailor { // ARMOR, SHOES, HELM, GLOVES, PANTS @@ -261,7 +261,7 @@ private: void create_orders() { - auto entity = world->entities.all[ui->civ_id]; + auto entity = world->entities.all[plotinfo->civ_id]; for (auto& a : needed) { @@ -325,7 +325,7 @@ private: void place_orders() { - auto entity = world->entities.all[ui->civ_id]; + auto entity = world->entities.all[plotinfo->civ_id]; for (auto& o : orders) { diff --git a/plugins/trackstop.cpp b/plugins/trackstop.cpp index d21df0e36..43807ea8c 100644 --- a/plugins/trackstop.cpp +++ b/plugins/trackstop.cpp @@ -26,7 +26,7 @@ DFHACK_PLUGIN("trackstop"); DFHACK_PLUGIN_IS_ENABLED(enabled); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(world); /* @@ -44,7 +44,7 @@ struct trackstop_hook : public df::viewscreen_dwarfmodest { }; building_trapst *get_selected_trackstop() { - if (ui->main.mode != ui_sidebar_mode::QueryBuilding) { + if (plotinfo->main.mode != ui_sidebar_mode::QueryBuilding) { // Not in a building's 'q' menu. return nullptr; } @@ -200,7 +200,7 @@ struct roller_hook : public df::viewscreen_dwarfmodest { }; building_rollersst *get_selected_roller() { - if (ui->main.mode != ui_sidebar_mode::QueryBuilding) { + if (plotinfo->main.mode != ui_sidebar_mode::QueryBuilding) { // Not in a building's 'q' menu. return nullptr; } diff --git a/plugins/tweak/tweak.cpp b/plugins/tweak/tweak.cpp index 6d2a46fa8..323f5f932 100644 --- a/plugins/tweak/tweak.cpp +++ b/plugins/tweak/tweak.cpp @@ -21,7 +21,7 @@ #include "DataDefs.h" #include #include "../uicommon.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" #include "df/unit.h" #include "df/unit_soul.h" @@ -36,8 +36,8 @@ #include "df/viewscreen_dwarfmodest.h" #include "df/viewscreen_kitchenprefst.h" #include "df/viewscreen_layer_unit_actionst.h" -#include "df/ui_build_selector.h" -#include "df/ui_sidebar_menus.h" +#include "df/buildreq.h" +#include "df/gamest.h" #include "df/building_trapst.h" #include "df/building_workshopst.h" #include "df/item_actual.h" @@ -78,7 +78,7 @@ #include "tweaks/block-labors.h" #include "tweaks/burrow-name-cancel.h" #include "tweaks/cage-butcher.h" -#include "tweaks/civ-agreement-ui.h" +#include "tweaks/civ-agreement-plotinfo.h" #include "tweaks/condition-material.h" #include "tweaks/craft-age-wear.h" #include "tweaks/do-job-now.h" @@ -117,14 +117,14 @@ DFHACK_PLUGIN("tweak"); DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(enabler); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_build_selector); REQUIRE_GLOBAL(ui_building_in_assign); REQUIRE_GLOBAL(ui_building_in_resize); REQUIRE_GLOBAL(ui_building_item_cursor); REQUIRE_GLOBAL(ui_look_cursor); REQUIRE_GLOBAL(ui_menu_width); -REQUIRE_GLOBAL(ui_sidebar_menus); +REQUIRE_GLOBAL(game); REQUIRE_GLOBAL(ui_unit_view_mode); REQUIRE_GLOBAL(ui_workshop_in_add); REQUIRE_GLOBAL(world); @@ -449,7 +449,7 @@ static command_result tweak(color_ostream &out, vector ¶meters) // if it happens that the player has 'foreign' units of the same race // (vanilla df: dwarves not from mountainhome) on his map, just grab them if(!Units::isOwnCiv(unit)) - unit->civ_id = ui->civ_id; + unit->civ_id = plotinfo->civ_id; return fix_clothing_ownership(out, unit); } @@ -468,7 +468,7 @@ static command_result tweak(color_ostream &out, vector ¶meters) if(Units::isForest(unit)) unit->flags1.bits.forest = 0; if(!Units::isOwnCiv(unit)) - unit->civ_id = ui->civ_id; + unit->civ_id = plotinfo->civ_id; if(unit->profession == df::profession::MERCHANT) unit->profession = df::profession::TRADER; if(unit->profession2 == df::profession::MERCHANT) diff --git a/plugins/tweak/tweaks/block-labors.h b/plugins/tweak/tweaks/block-labors.h index bc407ed19..df2474400 100644 --- a/plugins/tweak/tweaks/block-labors.h +++ b/plugins/tweak/tweaks/block-labors.h @@ -6,7 +6,7 @@ #include "df/viewscreen_dwarfmodest.h" using namespace DFHack; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_look_cursor; using df::global::ui_unit_view_mode; @@ -15,7 +15,7 @@ struct block_labors_hook : df::viewscreen_dwarfmodest { inline bool valid_mode() { - return ui->main.mode == df::ui_sidebar_mode::ViewUnits && + return plotinfo->main.mode == df::ui_sidebar_mode::ViewUnits && ui_unit_view_mode->value == df::ui_unit_view_mode::T_value::PrefLabor && Gui::getAnyUnit(this); } diff --git a/plugins/tweak/tweaks/burrow-name-cancel.h b/plugins/tweak/tweaks/burrow-name-cancel.h index 2ee84508e..f49e7ae1b 100644 --- a/plugins/tweak/tweaks/burrow-name-cancel.h +++ b/plugins/tweak/tweaks/burrow-name-cancel.h @@ -1,6 +1,6 @@ #include "df/burrow.h" -using df::global::ui; +using df::global::plotinfo; struct burrow_name_cancel_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; @@ -9,15 +9,15 @@ struct burrow_name_cancel_hook : df::viewscreen_dwarfmodest { DEFINE_VMETHOD_INTERPOSE(void, feed, (std::set *input)) { - if (ui->main.mode == df::ui_sidebar_mode::Burrows) + if (plotinfo->main.mode == df::ui_sidebar_mode::Burrows) { - bool was_naming = ui->burrows.in_edit_name_mode; + bool was_naming = plotinfo->burrows.in_edit_name_mode; INTERPOSE_NEXT(feed)(input); - df::burrow *burrow = vector_get(ui->burrows.list, ui->burrows.sel_index); + df::burrow *burrow = vector_get(plotinfo->burrows.list, plotinfo->burrows.sel_index); if (!burrow) return; - if (ui->burrows.in_edit_name_mode) + if (plotinfo->burrows.in_edit_name_mode) { if (!was_naming) { @@ -27,7 +27,7 @@ struct burrow_name_cancel_hook : df::viewscreen_dwarfmodest { if (input->count(df::interface_key::LEAVESCREEN)) { // Cancel and restore the old name - ui->burrows.in_edit_name_mode = false; + plotinfo->burrows.in_edit_name_mode = false; burrow->name = old_name; } } diff --git a/plugins/tweak/tweaks/cage-butcher.h b/plugins/tweak/tweaks/cage-butcher.h index 61a989d50..7290746a9 100644 --- a/plugins/tweak/tweaks/cage-butcher.h +++ b/plugins/tweak/tweaks/cage-butcher.h @@ -6,7 +6,7 @@ #include "df/unit.h" using namespace DFHack; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_building_in_assign; using df::global::ui_building_in_resize; using df::global::ui_building_item_cursor; @@ -19,7 +19,7 @@ struct cage_butcher_hook : df::viewscreen_dwarfmodest { if (*ui_building_in_assign || *ui_building_in_resize) return nullptr; - if (ui->main.mode != df::ui_sidebar_mode::QueryBuilding) + if (plotinfo->main.mode != df::ui_sidebar_mode::QueryBuilding) return nullptr; auto cage = virtual_cast(Gui::getAnyBuilding(this)); diff --git a/plugins/tweak/tweaks/eggs-fertile.h b/plugins/tweak/tweaks/eggs-fertile.h index f4fe29569..b264b227f 100644 --- a/plugins/tweak/tweaks/eggs-fertile.h +++ b/plugins/tweak/tweaks/eggs-fertile.h @@ -6,15 +6,15 @@ using namespace DFHack; using namespace df::enums; using df::global::world; -using df::global::ui; +using df::global::plotinfo; struct egg_fertile_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; df::building_nest_boxst* getNestBox() { - if (ui->main.mode != ui_sidebar_mode::QueryBuilding && - ui->main.mode != ui_sidebar_mode::BuildingItems) + if (plotinfo->main.mode != ui_sidebar_mode::QueryBuilding && + plotinfo->main.mode != ui_sidebar_mode::BuildingItems) return NULL; return virtual_cast(world->selected_building); } @@ -38,7 +38,7 @@ struct egg_fertile_hook : df::viewscreen_dwarfmodest { has_eggs = true; if (egg->egg_flags.bits.fertile) fertile = true; - if (ui->main.mode == ui_sidebar_mode::BuildingItems) + if (plotinfo->main.mode == ui_sidebar_mode::BuildingItems) { Screen::paintString( Screen::Pen(' ', fertile ? COLOR_LIGHTGREEN : COLOR_LIGHTRED), @@ -50,7 +50,7 @@ struct egg_fertile_hook : df::viewscreen_dwarfmodest { } ++idx; } - if (has_eggs && ui->main.mode == ui_sidebar_mode::QueryBuilding) + if (has_eggs && plotinfo->main.mode == ui_sidebar_mode::QueryBuilding) { Screen::paintString( Screen::Pen(' ', fertile ? COLOR_LIGHTGREEN : COLOR_LIGHTRED), diff --git a/plugins/tweak/tweaks/farm-plot-select.h b/plugins/tweak/tweaks/farm-plot-select.h index 696c7ca2e..7b2e440e1 100644 --- a/plugins/tweak/tweaks/farm-plot-select.h +++ b/plugins/tweak/tweaks/farm-plot-select.h @@ -4,7 +4,7 @@ using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_building_item_cursor; using df::global::world; @@ -13,7 +13,7 @@ struct farm_select_hook : df::viewscreen_dwarfmodest { df::building_farmplotst* getFarmPlot() { - if (ui->main.mode != ui_sidebar_mode::QueryBuilding) + if (plotinfo->main.mode != ui_sidebar_mode::QueryBuilding) return NULL; VIRTUAL_CAST_VAR(farm_plot, df::building_farmplotst, world->selected_building); return farm_plot; @@ -44,12 +44,12 @@ struct farm_select_hook : df::viewscreen_dwarfmodest { return false; } - inline int32_t getSelectedCropId() { return ui->selected_farm_crops[*ui_building_item_cursor]; } + inline int32_t getSelectedCropId() { return plotinfo->selected_farm_crops[*ui_building_item_cursor]; } DEFINE_VMETHOD_INTERPOSE(void, feed, (set *input)) { df::building_farmplotst* farm_plot = getFarmPlot(); - if (farm_plot && ui->selected_farm_crops.size() > 0) + if (farm_plot && plotinfo->selected_farm_crops.size() > 0) { if (input->count(interface_key::SELECT_ALL)) { @@ -77,7 +77,7 @@ struct farm_select_hook : df::viewscreen_dwarfmodest { { INTERPOSE_NEXT(render)(); auto farm_plot = getFarmPlot(); - if (!farm_plot || !ui->selected_farm_crops.size()) + if (!farm_plot || !plotinfo->selected_farm_crops.size()) return; if (farm_plot->getBuildStage() != farm_plot->getMaxBuildStage()) return; diff --git a/plugins/tweak/tweaks/hide-priority.h b/plugins/tweak/tweaks/hide-priority.h index ef84a5831..6f096ee82 100644 --- a/plugins/tweak/tweaks/hide-priority.h +++ b/plugins/tweak/tweaks/hide-priority.h @@ -3,7 +3,7 @@ using namespace DFHack; using df::global::gps; -using df::global::ui_sidebar_menus; +using df::global::game; struct hide_priority_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; @@ -14,7 +14,7 @@ struct hide_priority_hook : df::viewscreen_dwarfmodest { inline bool valid_mode () { - switch (ui->main.mode) + switch (plotinfo->main.mode) { case df::ui_sidebar_mode::DesignateMine: case df::ui_sidebar_mode::DesignateRemoveRamps: @@ -41,7 +41,7 @@ struct hide_priority_hook : df::viewscreen_dwarfmodest { DEFINE_VMETHOD_INTERPOSE(void, render, ()) { if (!was_valid_mode && valid_mode() && toggled_manually) { - ui_sidebar_menus->designation.priority_set = last_show_priorities_setting; + game->designation.priority_set = last_show_priorities_setting; } INTERPOSE_NEXT(render)(); if (valid_mode()) @@ -51,7 +51,7 @@ struct hide_priority_hook : df::viewscreen_dwarfmodest { { int x = dims.menu_x1 + 1, y = gps->dimy - (gps->dimy > 26 ? 8 : 7); OutputToggleString(x, y, "Show priorities", df::interface_key::CUSTOM_ALT_P, - ui_sidebar_menus->designation.priority_set, true, 0, + game->designation.priority_set, true, 0, COLOR_WHITE, COLOR_LIGHTRED); } } @@ -61,9 +61,9 @@ struct hide_priority_hook : df::viewscreen_dwarfmodest { { if (valid_mode() && input->count(df::interface_key::CUSTOM_ALT_P)) { - ui_sidebar_menus->designation.priority_set = !ui_sidebar_menus->designation.priority_set; + game->designation.priority_set = !game->designation.priority_set; toggled_manually = true; - last_show_priorities_setting = ui_sidebar_menus->designation.priority_set; + last_show_priorities_setting = game->designation.priority_set; } else INTERPOSE_NEXT(feed)(input); diff --git a/plugins/tweak/tweaks/hotkey-clear.h b/plugins/tweak/tweaks/hotkey-clear.h index bc85c112e..8d683a1bd 100644 --- a/plugins/tweak/tweaks/hotkey-clear.h +++ b/plugins/tweak/tweaks/hotkey-clear.h @@ -1,6 +1,6 @@ #include "df/viewscreen_dwarfmodest.h" -using df::global::ui; +using df::global::plotinfo; struct hotkey_clear_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; @@ -8,7 +8,7 @@ struct hotkey_clear_hook : df::viewscreen_dwarfmodest { DEFINE_VMETHOD_INTERPOSE(void, render, ()) { INTERPOSE_NEXT(render)(); - if (ui->main.mode == df::ui_sidebar_mode::Hotkeys) + if (plotinfo->main.mode == df::ui_sidebar_mode::Hotkeys) { auto dims = Gui::getDwarfmodeViewDims(); int x = dims.menu_x1 + 1, y = 19; @@ -18,11 +18,11 @@ struct hotkey_clear_hook : df::viewscreen_dwarfmodest { DEFINE_VMETHOD_INTERPOSE(void, feed, (set *input)) { - if (ui->main.mode == df::ui_sidebar_mode::Hotkeys && + if (plotinfo->main.mode == df::ui_sidebar_mode::Hotkeys && input->count(df::interface_key::CUSTOM_C) && - !ui->main.in_rename_hotkey) + !plotinfo->main.in_rename_hotkey) { - auto &hotkey = ui->main.hotkeys[ui->main.selected_hotkey]; + auto &hotkey = plotinfo->main.hotkeys[plotinfo->main.selected_hotkey]; hotkey.name = ""; hotkey.cmd = df::ui_hotkey::T_cmd::None; hotkey.x = 0; diff --git a/plugins/tweak/tweaks/max-wheelbarrow.h b/plugins/tweak/tweaks/max-wheelbarrow.h index a7af186ef..38d704b24 100644 --- a/plugins/tweak/tweaks/max-wheelbarrow.h +++ b/plugins/tweak/tweaks/max-wheelbarrow.h @@ -22,7 +22,7 @@ struct max_wheelbarrow_hook : df::viewscreen_dwarfmodest { df::building_stockpilest* getStockpile() { - if (ui->main.mode != ui_sidebar_mode::QueryBuilding) + if (plotinfo->main.mode != ui_sidebar_mode::QueryBuilding) return NULL; return virtual_cast(world->selected_building); } diff --git a/plugins/tweak/tweaks/shift-8-scroll.h b/plugins/tweak/tweaks/shift-8-scroll.h index 86f7e9fc7..2c1eea23d 100644 --- a/plugins/tweak/tweaks/shift-8-scroll.h +++ b/plugins/tweak/tweaks/shift-8-scroll.h @@ -1,13 +1,13 @@ #include "df/viewscreen_dwarfmodest.h" using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; struct shift_8_scroll_hook : df::viewscreen_dwarfmodest { typedef df::viewscreen_dwarfmodest interpose_base; DEFINE_VMETHOD_INTERPOSE(void, feed, (std::set* input)) { - if (ui->main.mode != ui_sidebar_mode::Default && + if (plotinfo->main.mode != ui_sidebar_mode::Default && input->count(interface_key::CURSOR_UP_FAST) && input->count(interface_key::SECONDSCROLL_PAGEDOWN) ) diff --git a/plugins/tweak/tweaks/stable-cursor.h b/plugins/tweak/tweaks/stable-cursor.h index b08346410..3b628ef04 100644 --- a/plugins/tweak/tweaks/stable-cursor.h +++ b/plugins/tweak/tweaks/stable-cursor.h @@ -6,7 +6,7 @@ using namespace std; using namespace DFHack; using namespace df::enums; -using df::global::ui; +using df::global::plotinfo; using df::global::ui_build_selector; using df::global::ui_menu_width; @@ -18,7 +18,7 @@ struct stable_cursor_hook : df::viewscreen_dwarfmodest bool check_default() { - switch (ui->main.mode) { + switch (plotinfo->main.mode) { case ui_sidebar_mode::Default: return true; diff --git a/plugins/uicommon.h b/plugins/uicommon.h index e7a586585..03914b461 100644 --- a/plugins/uicommon.h +++ b/plugins/uicommon.h @@ -24,7 +24,7 @@ #include "df/dfhack_material_category.h" #include "df/enabler.h" #include "df/item_quality.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/world.h" using namespace std; @@ -217,7 +217,7 @@ static inline char get_string_input(const std::set *input) static inline df::building_stockpilest *get_selected_stockpile() { if (!Gui::dwarfmode_hotkey(Core::getTopViewscreen()) || - df::global::ui->main.mode != ui_sidebar_mode::QueryBuilding) + df::global::plotinfo->main.mode != ui_sidebar_mode::QueryBuilding) { return nullptr; } @@ -227,10 +227,10 @@ static inline df::building_stockpilest *get_selected_stockpile() static inline bool can_trade() { - if (df::global::ui->caravans.size() == 0) + if (df::global::plotinfo->caravans.size() == 0) return false; - for (auto it = df::global::ui->caravans.begin(); it != df::global::ui->caravans.end(); it++) + for (auto it = df::global::plotinfo->caravans.begin(); it != df::global::plotinfo->caravans.end(); it++) { typedef df::caravan_state::T_trade_state state; auto caravan = *it; diff --git a/plugins/workflow.cpp b/plugins/workflow.cpp index 3f132616b..a8f11dec0 100644 --- a/plugins/workflow.cpp +++ b/plugins/workflow.cpp @@ -15,7 +15,7 @@ #include "DataDefs.h" #include "df/world.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/building_workshopst.h" #include "df/building_furnacest.h" #include "df/job.h" @@ -51,7 +51,7 @@ using namespace df::enums; DFHACK_PLUGIN("workflow"); REQUIRE_GLOBAL(world); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_workshop_job_cursor); REQUIRE_GLOBAL(job_next_id); @@ -64,7 +64,7 @@ static void cleanup_state(color_ostream &out); DFhackCExport command_result plugin_init (color_ostream &out, std::vector &commands) { - if (!world || !ui) + if (!world || !plotinfo) return CR_FAILURE; if (ui_workshop_job_cursor && job_next_id) { @@ -1684,7 +1684,7 @@ static command_result workflow_cmd(color_ostream &out, vector & paramet //df::job *job = NULL; if (Gui::dwarfmode_hotkey(Core::getTopViewscreen()) && - ui->main.mode == ui_sidebar_mode::QueryBuilding) + plotinfo->main.mode == ui_sidebar_mode::QueryBuilding) { workshop = world->selected_building; //job = Gui::getSelectedWorkshopJob(out, true); diff --git a/plugins/zone.cpp b/plugins/zone.cpp index a3a0f2431..878014bb0 100644 --- a/plugins/zone.cpp +++ b/plugins/zone.cpp @@ -24,7 +24,7 @@ #include "df/building_chainst.h" #include "df/building_civzonest.h" #include "df/general_ref_building_civzone_assignedst.h" -#include "df/ui.h" +#include "df/plotinfost.h" #include "df/unit.h" #include "df/unit_relationship_type.h" #include "df/viewscreen_dwarfmodest.h" @@ -56,7 +56,7 @@ DFHACK_PLUGIN_IS_ENABLED(is_enabled); REQUIRE_GLOBAL(cursor); REQUIRE_GLOBAL(gps); -REQUIRE_GLOBAL(ui); +REQUIRE_GLOBAL(plotinfo); REQUIRE_GLOBAL(ui_building_item_cursor); REQUIRE_GLOBAL(ui_building_assign_type); REQUIRE_GLOBAL(ui_building_assign_is_marked); @@ -1565,7 +1565,7 @@ static command_result df_zone(color_ostream &out, vector & parameters) if(!race_filter_set && (building_assign || cagezone_assign || unit_slaughter)) { - string own_race_name = Units::getRaceNameById(ui->race_id); + string own_race_name = Units::getRaceNameById(plotinfo->race_id); out.color(COLOR_BROWN); out << "Default filter for " << parameters[0] << ": 'not (race " << own_race_name << " or own civilization)'; use 'race " @@ -2128,14 +2128,14 @@ struct zone_hook : public df::viewscreen_dwarfmodest DEFINE_VMETHOD_INTERPOSE(void, render, ()) { - if ( ( (ui->main.mode == ui_sidebar_mode::ZonesPenInfo || ui->main.mode == ui_sidebar_mode::ZonesPitInfo) && + if ( ( (plotinfo->main.mode == ui_sidebar_mode::ZonesPenInfo || plotinfo->main.mode == ui_sidebar_mode::ZonesPitInfo) && ui_building_assign_type && ui_building_assign_units && ui_building_assign_is_marked && ui_building_assign_items && ui_building_assign_type->size() == ui_building_assign_units->size() && ui_building_item_cursor) // allow mode QueryBuilding, but only for cages (bedrooms will crash DF with this code, chains don't work either etc) || - ( ui->main.mode == ui_sidebar_mode::QueryBuilding && + ( plotinfo->main.mode == ui_sidebar_mode::QueryBuilding && ui_building_in_assign && *ui_building_in_assign && ui_building_assign_type && ui_building_assign_units && ui_building_assign_type->size() == ui_building_assign_units->size() && @@ -2146,7 +2146,7 @@ struct zone_hook : public df::viewscreen_dwarfmodest ) { if (vector_get(*ui_building_assign_units, *ui_building_item_cursor)) - filter.initialize(ui->main.mode); + filter.initialize(plotinfo->main.mode); } else {