summaryrefslogtreecommitdiff
path: root/library/proto
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-17 17:41:56 +0400
committerAlexander Gavrilov2012-03-17 17:41:56 +0400
commit368b92f81f5257eaf5bf4f11f41507a52f3d29c1 (patch)
treec07c9a0688242697fb015281d2e04a25df7e22eb /library/proto
parent15ccfbb08693a3c89c01a522cd3d2af59c13b051 (diff)
downloaddfhack-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.proto60
-rw-r--r--library/proto/BasicApi.proto23
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