diff options
| author | Alexander Gavrilov | 2012-03-17 17:41:56 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-17 17:41:56 +0400 |
| commit | 368b92f81f5257eaf5bf4f11f41507a52f3d29c1 (patch) | |
| tree | c07c9a0688242697fb015281d2e04a25df7e22eb /library/proto | |
| parent | 15ccfbb08693a3c89c01a522cd3d2af59c13b051 (diff) | |
| download | dfhack-368b92f81f5257eaf5bf4f11f41507a52f3d29c1.tar.gz dfhack-368b92f81f5257eaf5bf4f11f41507a52f3d29c1.tar.bz2 dfhack-368b92f81f5257eaf5bf4f11f41507a52f3d29c1.tar.xz | |
Add a RPC call to retrieve unit info.
For performance reasons, material flag arrays are changed to use ints,
with enum item name mappings retrievable via a different RPC call.
Diffstat (limited to 'library/proto')
| -rw-r--r-- | library/proto/Basic.proto | 60 | ||||
| -rw-r--r-- | library/proto/BasicApi.proto | 23 |
2 files changed, 78 insertions, 5 deletions
diff --git a/library/proto/Basic.proto b/library/proto/Basic.proto index 92a993b7..1a9a8f1b 100644 --- a/library/proto/Basic.proto +++ b/library/proto/Basic.proto @@ -2,6 +2,12 @@ package dfproto; option optimize_for = LITE_RUNTIME; +message EnumItemName { + required int32 value = 1; + optional string name = 2; + optional int32 bit_size = 3 [default = 1]; +}; + message BasicMaterialId { required int32 type = 1; required sint32 index = 2; @@ -10,14 +16,14 @@ message BasicMaterialId { message BasicMaterialInfo { required int32 type = 1; required sint32 index = 2; - required string token = 3; - repeated string flags = 4; + + repeated int32 flags = 4; // of material_flags optional int32 subtype = 5 [default = -1]; optional int32 creature_id = 6 [default = -1]; optional int32 plant_id = 7 [default = -1]; - optional int32 hfig_id = 8 [default = -1]; + optional int32 histfig_id = 8 [default = -1]; optional string name_prefix = 9 [default = ""]; @@ -33,7 +39,7 @@ message BasicMaterialInfo { repeated string reaction_class = 13; repeated Product reaction_product = 14; - repeated string inorganic_flags = 15; + repeated int32 inorganic_flags = 15; }; message BasicMaterialInfoMask { @@ -49,6 +55,50 @@ message BasicMaterialInfoMask { optional bool flags = 2 [default = false]; optional bool reaction = 3 [default = false]; - optional int32 temperature = 4; + optional int32 temperature = 4 [default = 10015]; +}; + +message NameInfo { + optional string first_name = 1; + optional string nickname = 2; + + optional int32 language_id = 3 [default = -1]; + + optional string last_name = 4; + optional string english_name = 5; }; +message BasicUnitInfo { + required int32 unit_id = 1; + + optional NameInfo name = 2; + + required fixed32 flags1 = 3; + required fixed32 flags2 = 4; + required fixed32 flags3 = 5; + + required int32 race = 6; + required int32 caste = 7; + optional int32 gender = 8 [default = -1]; + + optional int32 civ_id = 9 [default = -1]; + optional int32 histfig_id = 10 [default = -1]; + + repeated int32 labors = 11; + + message Skill { + required int32 id = 1; + required int32 level = 2; + required int32 experience = 3; + }; + repeated Skill skills = 12; + + required int32 pos_x = 13; + required int32 pos_y = 14; + required int32 pos_z = 15; +}; + +message BasicUnitInfoMask { + optional bool labors = 1 [default = false]; + optional bool skills = 2 [default = false]; +}; diff --git a/library/proto/BasicApi.proto b/library/proto/BasicApi.proto index b5a56986..ed1276fe 100644 --- a/library/proto/BasicApi.proto +++ b/library/proto/BasicApi.proto @@ -4,6 +4,18 @@ option optimize_for = LITE_RUNTIME; import "Basic.proto"; +message ListEnumsRes { + repeated EnumItemName material_flags = 1; + repeated EnumItemName inorganic_flags = 2; + + repeated EnumItemName unit_flags1 = 3; + repeated EnumItemName unit_flags2 = 4; + repeated EnumItemName unit_flags3 = 5; + + repeated EnumItemName unit_labor = 6; + repeated EnumItemName job_skill = 7; +}; + message ListMaterialsRq { optional BasicMaterialInfoMask mask = 1; repeated BasicMaterialId id_list = 2; @@ -15,3 +27,14 @@ message ListMaterialsRq { message ListMaterialsRes { repeated BasicMaterialInfo value = 1; }; + +message ListUnitsRq { + optional BasicUnitInfoMask mask = 1; + repeated int32 id_list = 2; + + optional int32 race = 3; + optional int32 civ_id = 4; +}; +message ListUnitsRes { + repeated BasicUnitInfo value = 1; +};
\ No newline at end of file |
