diff --git a/library/include/modules/Units.h b/library/include/modules/Units.h index b51183d6b..5380d82aa 100644 --- a/library/include/modules/Units.h +++ b/library/include/modules/Units.h @@ -256,6 +256,8 @@ DFHACK_EXPORT std::string getCasteProfessionName(int race, int caste, df::profes DFHACK_EXPORT int8_t getProfessionColor(df::unit *unit, bool ignore_noble = false); DFHACK_EXPORT int8_t getCasteProfessionColor(int race, int caste, df::profession pid); + +DFHACK_EXPORT std::string getSquadName(df::unit *unit); } } #endif diff --git a/library/modules/Units.cpp b/library/modules/Units.cpp index 20c536cd1..588292301 100644 --- a/library/modules/Units.cpp +++ b/library/modules/Units.cpp @@ -69,6 +69,7 @@ using namespace std; #include "df/unit_misc_trait.h" #include "df/unit_skill.h" #include "df/curse_attr_change.h" +#include "df/squad.h" using namespace DFHack; using namespace df::enums; @@ -1552,3 +1553,13 @@ int8_t DFHack::Units::getCasteProfessionColor(int race, int casteid, df::profess // default to dwarven peasant color return 3; } + +std::string DFHack::Units::getSquadName(df::unit *unit) +{ + if (unit->military.squad_id == -1) + return ""; + df::squad *squad = world->squads.all[unit->military.squad_id]; + if (squad->alias.size() > 0) + return squad->alias; + return Translation::TranslateName(&squad->name, true); +}