diff --git a/plugins/proto/RemoteFortressReader.proto b/plugins/proto/RemoteFortressReader.proto index b7ca674fb..96007da7a 100644 --- a/plugins/proto/RemoteFortressReader.proto +++ b/plugins/proto/RemoteFortressReader.proto @@ -492,6 +492,14 @@ message BpAppearanceModifier optional int32 mod_max = 3; } +message TissueRaw +{ + optional string id = 1; + optional string name = 2; + optional MatPair material = 3; + optional string subordinate_to_tissue = 4; +} + message CasteRaw { optional int32 index = 1; @@ -524,6 +532,7 @@ message CreatureRaw optional ColorDefinition color = 8; optional int32 adultsize = 9; repeated CasteRaw caste = 10; + repeated TissueRaw tissues = 11; } message CreatureRawList diff --git a/plugins/remotefortressreader.cpp b/plugins/remotefortressreader.cpp index fe8aae53e..9a751102f 100644 --- a/plugins/remotefortressreader.cpp +++ b/plugins/remotefortressreader.cpp @@ -62,6 +62,7 @@ #include "df/unit.h" #include "df/creature_raw.h" #include "df/caste_raw.h" +#include "df/tissue.h" #include "df/enabler.h" #include "df/graphic.h" @@ -2409,7 +2410,22 @@ static command_result GetCreatureRaws(color_ostream &stream, const EmptyMessage send_caste->set_description(orig_caste->description); send_caste->set_adult_size(orig_caste->misc.adult_size); } - } + + for (int j = 0; j < orig_creature->tissue.size(); j++) + { + auto orig_tissue = orig_creature->tissue[j]; + auto send_tissue = send_creature->add_tissues(); + + send_tissue->set_id(orig_tissue->id); + send_tissue->set_name(orig_tissue->tissue_name_singular); + send_tissue->set_subordinate_to_tissue(orig_tissue->subordinate_to_tissue); + + auto send_mat = send_tissue->mutable_material(); + + send_mat->set_mat_index(orig_tissue->mat_index); + send_mat->set_mat_type(orig_tissue->mat_type); + } +} return CR_OK; }