Add trap type to focus string

develop
Robob27 2023-11-06 22:48:21 -05:00
parent 4fb7694e6e
commit 89428bb343
2 changed files with 9 additions and 2 deletions

@ -83,6 +83,7 @@ Template for new versions:
- ``Units::getReadableName``: now returns the *untranslated* name
- ``Burrows::setAssignedUnit``: now properly handles inactive burrows
- ``Gui::getMousePos``: now takes an optional ``allow_out_of_bounds`` parameter so coordinates can be returned for mouse positions outside of the game map (i.e. in the blank space around the map)
- Gui focus strings will now include the trap type for traps (e.g. dwarfmode/ViewSheets/BUILDING/Trap/StoneFallTrap)
## Lua
- ``dfhack.gui.revealInDwarfmodeMap``: gained ``highlight`` parameter to control setting the tile highlight on the zoom target

@ -380,8 +380,14 @@ DEFINE_GET_FOCUS_STRING_HANDLER(dwarfmode)
case df::view_sheet_type::BUILDING:
if (game->main_interface.view_sheets.linking_lever)
newFocusString = baseFocus + "/LinkingLever";
else if (auto bld = df::building::find(game->main_interface.view_sheets.viewing_bldid))
newFocusString += '/' + enum_item_key(bld->getType());
else if (auto bld = df::building::find(game->main_interface.view_sheets.viewing_bldid)) {
std::string buildingType = enum_item_key(bld->getType());
newFocusString += '/' + buildingType;
if (buildingType == "Trap") {
df::building_trapst* trap = strict_virtual_cast<df::building_trapst>(bld);
newFocusString += '/' + enum_item_key(trap->trap_type);
}
}
break;
default:
break;