|
|
|
@ -338,6 +338,21 @@ void DFHack::describeUnit(BasicUnitInfo *info, df::unit *unit,
|
|
|
|
|
info->add_burrows(unit->burrows[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DFHack::describeJobSkills(RepeatedPtrField<JobSkillInfo> *pf)
|
|
|
|
|
{
|
|
|
|
|
FOR_ENUM_ITEMS(job_skill, skill)
|
|
|
|
|
{
|
|
|
|
|
auto item = pf->Add();
|
|
|
|
|
|
|
|
|
|
item->set_id(skill);
|
|
|
|
|
item->set_caption(ENUM_ATTR_STR(job_skill, caption, skill));
|
|
|
|
|
item->set_caption_noun(ENUM_ATTR_STR(job_skill, caption_noun, skill));
|
|
|
|
|
item->set_profession(ENUM_ATTR(job_skill, profession, skill));
|
|
|
|
|
item->set_labor(ENUM_ATTR(job_skill, labor, skill));
|
|
|
|
|
item->set_type(ENUM_ATTR(job_skill, type, skill));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static command_result GetVersion(color_ostream &stream,
|
|
|
|
|
const EmptyMessage *, StringMessage *out)
|
|
|
|
|
{
|
|
|
|
@ -445,6 +460,12 @@ static command_result ListEnums(color_ostream &stream,
|
|
|
|
|
#undef BITFIELD
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static command_result ListJobSkills(color_ostream &stream, const EmptyMessage *, ListJobSkillsOut *out)
|
|
|
|
|
{
|
|
|
|
|
describeJobSkills(out->mutable_value());
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void listMaterial(ListMaterialsOut *out, int type, int index, const BasicMaterialInfoMask *mask)
|
|
|
|
|
{
|
|
|
|
|
MaterialInfo info(type, index);
|
|
|
|
@ -590,6 +611,7 @@ CoreService::CoreService() {
|
|
|
|
|
addFunction("GetWorldInfo", GetWorldInfo);
|
|
|
|
|
|
|
|
|
|
addFunction("ListEnums", ListEnums, SF_CALLED_ONCE | SF_DONT_SUSPEND);
|
|
|
|
|
addFunction("ListJobSkills", ListJobSkills, SF_CALLED_ONCE | SF_DONT_SUSPEND);
|
|
|
|
|
|
|
|
|
|
addFunction("ListMaterials", ListMaterials, SF_CALLED_ONCE);
|
|
|
|
|
addFunction("ListUnits", ListUnits);
|
|
|
|
|