about summary refs log tree commit diff stats
path: root/proto/data.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/data.proto')
-rw-r--r--proto/data.proto103
1 files changed, 100 insertions, 3 deletions
diff --git a/proto/data.proto b/proto/data.proto index 032cf3a..619b3d3 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -27,6 +27,36 @@ enum DoorType {
27 27
28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on. 28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on.
29 GRAVESTONE = 6; 29 GRAVESTONE = 6;
30
31 // This door is never a location, and is an item as long as gallery painting shuffle is on.
32 GALLERY_PAINTING = 7;
33}
34
35enum DoorGroupType {
36 DOOR_GROUP_TYPE_UNKNOWN = 0;
37
38 // These doors border a worldport. They should be grouped when connections are
39 // not shuffled.
40 CONNECTOR = 1;
41
42 // Similar to CONNECTOR, but these doors are also ordinarily opened by solving
43 // the COLOR panel in the Control Center. These should be grouped when
44 // connections are not shuffled, but are not items at all when control center
45 // colors are not shuffled.
46 COLOR_CONNECTOR = 2;
47
48 // Groups with this type become an item if cyan door behavior is set to item.
49 CYAN_DOORS = 3;
50
51 // Groups with this type always become an item if door shuffle is on.
52 SHUFFLE_GROUP = 4;
53}
54
55enum MapType {
56 NORMAL_MAP = 0;
57 ICARUS = 1;
58 GIFT_MAP = 2;
59 DEMO = 3;
30} 60}
31 61
32enum AxisDirection { 62enum AxisDirection {
@@ -64,6 +94,24 @@ enum PuzzleSymbol {
64 QUESTION = 19; 94 QUESTION = 19;
65} 95}
66 96
97enum DaedalusOnlyMode {
98 DAED_ONLY_DISALLOW = 0;
99 DAED_ONLY_PARTIAL = 1;
100 DAED_ONLY_ALLOW = 2;
101}
102
103message Vec3d {
104 optional double x = 1;
105 optional double y = 2;
106 optional double z = 3;
107}
108
109message VersionNumber {
110 optional uint64 major = 1;
111 optional uint64 minor = 2;
112 optional uint64 patch = 3;
113}
114
67message ProxyIdentifier { 115message ProxyIdentifier {
68 optional uint64 panel = 1; 116 optional uint64 panel = 1;
69 optional string answer = 2; 117 optional string answer = 2;
@@ -84,6 +132,12 @@ message Connection {
84 uint64 painting = 5; 132 uint64 painting = 5;
85 ProxyIdentifier panel = 6; 133 ProxyIdentifier panel = 6;
86 } 134 }
135
136 optional bool roof_access = 7;
137 optional bool purple_ending = 8;
138 optional bool cyan_ending = 9;
139 optional bool mint_ending = 11;
140 optional bool vanilla_only = 10;
87} 141}
88 142
89message Door { 143message Door {
@@ -100,15 +154,20 @@ message Door {
100 optional uint64 complete_at = 12; 154 optional uint64 complete_at = 12;
101 155
102 optional string control_center_color = 6; 156 optional string control_center_color = 6;
103 repeated string switches = 7;
104 repeated KeyholderAnswer keyholders = 13; 157 repeated KeyholderAnswer keyholders = 13;
105 repeated uint64 rooms = 14; 158 repeated uint64 rooms = 14;
106 repeated uint64 doors = 15; 159 repeated uint64 doors = 15;
107 repeated uint64 endings = 16; 160 optional bool white_ending = 16;
161 optional bool double_letters = 18;
162 repeated string senders = 19;
108 163
109 optional DoorType type = 8; 164 optional DoorType type = 8;
165 optional bool latch = 20;
166 optional bool legacy_location = 21;
110 167
111 optional string location_name = 17; 168 optional string location_name = 17;
169 optional bool daedalus_only_allow = 22;
170 optional bool daedalus_only_always_item = 23;
112} 171}
113 172
114message PanelData { 173message PanelData {
@@ -127,6 +186,8 @@ message PanelData {
127 optional uint64 required_door = 9; 186 optional uint64 required_door = 9;
128 optional uint64 required_room = 11; 187 optional uint64 required_room = 11;
129 188
189 optional bool exclude_from_panelsanity = 13;
190
130 optional string display_name = 12; 191 optional string display_name = 12;
131} 192}
132 193
@@ -149,22 +210,28 @@ message PaintingData {
149 210
150message Port { 211message Port {
151 optional uint64 id = 1; 212 optional uint64 id = 1;
213 optional uint64 ap_id = 11;
152 optional uint64 room_id = 2; 214 optional uint64 room_id = 2;
153 optional string name = 3; 215 optional string name = 3;
154 216
217 optional string display_name = 10;
155 optional string path = 4; 218 optional string path = 4;
156 optional string orientation = 5; 219 optional Vec3d destination = 5;
220 optional double rotation = 8;
157 optional AxisDirection gravity = 7; 221 optional AxisDirection gravity = 7;
222 optional bool no_shuffle = 9;
158 223
159 optional uint64 required_door = 6; 224 optional uint64 required_door = 6;
160} 225}
161 226
162message KeyholderData { 227message KeyholderData {
163 optional uint64 id = 1; 228 optional uint64 id = 1;
229 optional uint64 ap_id = 6;
164 optional uint64 room_id = 2; 230 optional uint64 room_id = 2;
165 231
166 optional string name = 3; 232 optional string name = 3;
167 optional string path = 4; 233 optional string path = 4;
234 optional string key = 5;
168} 235}
169 236
170message Letter { 237message Letter {
@@ -203,6 +270,7 @@ message Room {
203 optional string name = 2; 270 optional string name = 2;
204 optional string display_name = 3; 271 optional string display_name = 3;
205 optional string panel_display_name = 13; 272 optional string panel_display_name = 13;
273 optional bool daedalus_only_allow = 14;
206 274
207 repeated uint64 panels = 4; 275 repeated uint64 panels = 4;
208 repeated uint64 paintings = 5; 276 repeated uint64 paintings = 5;
@@ -218,9 +286,36 @@ message Map {
218 optional uint64 id = 1; 286 optional uint64 id = 1;
219 optional string name = 2; 287 optional string name = 2;
220 optional string display_name = 3; 288 optional string display_name = 3;
289 optional DaedalusOnlyMode daedalus_only_mode = 6;
290 optional uint64 worldport_entrance = 4;
291 optional MapType type = 5;
292
293 optional uint64 rte_room = 7;
294 optional uint64 rte_ap_id = 8;
295 optional Vec3d rte_trigger_pos = 9;
296 optional Vec3d rte_trigger_scale = 10;
297}
298
299message Progressive {
300 optional uint64 id = 1;
301 optional string name = 2;
302 optional uint64 ap_id = 3;
303 repeated uint64 doors = 4;
304}
305
306message DoorGroup {
307 optional uint64 id = 1;
308 optional string name = 2;
309 optional uint64 ap_id = 3;
310 optional DoorGroupType type = 4;
311 repeated uint64 doors = 5;
312
313 optional bool daedalus_only_always_item = 6;
221} 314}
222 315
223message AllObjects { 316message AllObjects {
317 optional VersionNumber version = 15;
318
224 repeated Map maps = 7; 319 repeated Map maps = 7;
225 repeated Room rooms = 1; 320 repeated Room rooms = 1;
226 repeated Door doors = 2; 321 repeated Door doors = 2;
@@ -232,5 +327,7 @@ message AllObjects {
232 repeated Mastery masteries = 10; 327 repeated Mastery masteries = 10;
233 repeated Ending endings = 12; 328 repeated Ending endings = 12;
234 repeated Connection connections = 6; 329 repeated Connection connections = 6;
330 repeated Progressive progressives = 13;
331 repeated DoorGroup door_groups = 14;
235 map<string, uint64> special_ids = 8; 332 map<string, uint64> special_ids = 8;
236} 333}