about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--data/maps/daedalus/metadata.txtpb1
-rw-r--r--data/maps/the_gallery/metadata.txtpb1
-rw-r--r--data/maps/the_gallery/rooms/Daedalus Extension.txtpb1
-rw-r--r--data/maps/the_gold/metadata.txtpb1
-rw-r--r--data/maps/the_tenacious/metadata.txtpb1
-rw-r--r--proto/data.proto9
-rw-r--r--proto/human.proto6
-rw-r--r--tools/datapacker/main.cpp9
8 files changed, 29 insertions, 0 deletions
diff --git a/data/maps/daedalus/metadata.txtpb b/data/maps/daedalus/metadata.txtpb index e0f5148..6ad90e1 100644 --- a/data/maps/daedalus/metadata.txtpb +++ b/data/maps/daedalus/metadata.txtpb
@@ -1,4 +1,5 @@
1display_name: "Daedalus" 1display_name: "Daedalus"
2daedalus_only_mode: DAED_ONLY_ALLOW
2# These paintings can't be shuffled because they are behind panels. 3# These paintings can't be shuffled because they are behind panels.
3excluded_nodes: "Components/Paintings/Group3/mouse" 4excluded_nodes: "Components/Paintings/Group3/mouse"
4excluded_nodes: "Components/Paintings/Group3/bee" 5excluded_nodes: "Components/Paintings/Group3/bee"
diff --git a/data/maps/the_gallery/metadata.txtpb b/data/maps/the_gallery/metadata.txtpb index 41ec36e..9d02a11 100644 --- a/data/maps/the_gallery/metadata.txtpb +++ b/data/maps/the_gallery/metadata.txtpb
@@ -1,4 +1,5 @@
1display_name: "The Gallery" 1display_name: "The Gallery"
2daedalus_only_mode: DAED_ONLY_PARTIAL
2# These are the eyes in the foyer, and aren't normal paintings. 3# These are the eyes in the foyer, and aren't normal paintings.
3excluded_nodes: "Components/Paintings/Starting/eye" 4excluded_nodes: "Components/Paintings/Starting/eye"
4excluded_nodes: "Components/Paintings/Starting/eye2" 5excluded_nodes: "Components/Paintings/Starting/eye2"
diff --git a/data/maps/the_gallery/rooms/Daedalus Extension.txtpb b/data/maps/the_gallery/rooms/Daedalus Extension.txtpb index 51d2be5..c3a72c2 100644 --- a/data/maps/the_gallery/rooms/Daedalus Extension.txtpb +++ b/data/maps/the_gallery/rooms/Daedalus Extension.txtpb
@@ -1,4 +1,5 @@
1name: "Daedalus Extension" 1name: "Daedalus Extension"
2daedalus_only_allow: true
2panels { 3panels {
3 name: "WHERE" 4 name: "WHERE"
4 path: "Panels/entry_1" 5 path: "Panels/entry_1"
diff --git a/data/maps/the_gold/metadata.txtpb b/data/maps/the_gold/metadata.txtpb index fef3e34..c4a8b3b 100644 --- a/data/maps/the_gold/metadata.txtpb +++ b/data/maps/the_gold/metadata.txtpb
@@ -1 +1,2 @@
1display_name: "The Gold" 1display_name: "The Gold"
2daedalus_only_mode: DAED_ONLY_ALLOW
diff --git a/data/maps/the_tenacious/metadata.txtpb b/data/maps/the_tenacious/metadata.txtpb index d98e8f2..58b3919 100644 --- a/data/maps/the_tenacious/metadata.txtpb +++ b/data/maps/the_tenacious/metadata.txtpb
@@ -1 +1,2 @@
1display_name: "The Tenacious" 1display_name: "The Tenacious"
2daedalus_only_mode: DAED_ONLY_ALLOW
diff --git a/proto/data.proto b/proto/data.proto index e9cc7d7..01f8d9e 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -94,6 +94,12 @@ enum PuzzleSymbol {
94 QUESTION = 19; 94 QUESTION = 19;
95} 95}
96 96
97enum DaedalusOnlyMode {
98 DAED_ONLY_DISALLOW = 0;
99 DAED_ONLY_PARTIAL = 1;
100 DAED_ONLY_ALLOW = 2;
101}
102
97message Vec3d { 103message Vec3d {
98 optional double x = 1; 104 optional double x = 1;
99 optional double y = 2; 105 optional double y = 2;
@@ -159,6 +165,7 @@ message Door {
159 optional bool legacy_location = 21; 165 optional bool legacy_location = 21;
160 166
161 optional string location_name = 17; 167 optional string location_name = 17;
168 optional bool daedalus_only_allow = 22;
162} 169}
163 170
164message PanelData { 171message PanelData {
@@ -259,6 +266,7 @@ message Room {
259 optional string name = 2; 266 optional string name = 2;
260 optional string display_name = 3; 267 optional string display_name = 3;
261 optional string panel_display_name = 13; 268 optional string panel_display_name = 13;
269 optional bool daedalus_only_allow = 14;
262 270
263 repeated uint64 panels = 4; 271 repeated uint64 panels = 4;
264 repeated uint64 paintings = 5; 272 repeated uint64 paintings = 5;
@@ -274,6 +282,7 @@ message Map {
274 optional uint64 id = 1; 282 optional uint64 id = 1;
275 optional string name = 2; 283 optional string name = 2;
276 optional string display_name = 3; 284 optional string display_name = 3;
285 optional DaedalusOnlyMode daedalus_only_mode = 6;
277 optional uint64 worldport_entrance = 4; 286 optional uint64 worldport_entrance = 4;
278 optional MapType type = 5; 287 optional MapType type = 5;
279} 288}
diff --git a/proto/human.proto b/proto/human.proto index c586599..c599341 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -124,6 +124,8 @@ message HumanDoor {
124 // location is created for it in the generator. This helps provide backwards 124 // location is created for it in the generator. This helps provide backwards
125 // compatability with older worlds. 125 // compatability with older worlds.
126 optional bool legacy_location = 18; 126 optional bool legacy_location = 18;
127
128 optional bool daedalus_only_allow = 19;
127} 129}
128 130
129message HumanDoors { 131message HumanDoors {
@@ -215,6 +217,8 @@ message HumanRoom {
215 // doors generated from panels in the same area. 217 // doors generated from panels in the same area.
216 optional string panel_display_name = 10; 218 optional string panel_display_name = 10;
217 219
220 optional bool daedalus_only_allow = 11;
221
218 repeated HumanPanel panels = 3; 222 repeated HumanPanel panels = 3;
219 repeated HumanPainting paintings = 4; 223 repeated HumanPainting paintings = 4;
220 repeated HumanLetter letters = 5; 224 repeated HumanLetter letters = 5;
@@ -228,6 +232,8 @@ message HumanMap {
228 optional string display_name = 1; 232 optional string display_name = 1;
229 optional MapType type = 4; 233 optional MapType type = 4;
230 234
235 optional DaedalusOnlyMode daedalus_only_mode = 6;
236
231 optional PortIdentifier worldport_entrance = 3; 237 optional PortIdentifier worldport_entrance = 3;
232 238
233 // These two fields are used by the validator and nothing else. excluded_nodes 239 // These two fields are used by the validator and nothing else. excluded_nodes
diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 8109bf5..9acc33c 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp
@@ -89,6 +89,7 @@ class DataPacker {
89 Map& map = *container_.all_objects().mutable_maps(map_id); 89 Map& map = *container_.all_objects().mutable_maps(map_id);
90 90
91 map.set_type(metadata.type()); 91 map.set_type(metadata.type());
92 map.set_daedalus_only_mode(metadata.daedalus_only_mode());
92 93
93 if (metadata.has_display_name()) { 94 if (metadata.has_display_name()) {
94 map.set_display_name(metadata.display_name()); 95 map.set_display_name(metadata.display_name());
@@ -121,6 +122,10 @@ class DataPacker {
121 room.set_panel_display_name(h_room.panel_display_name()); 122 room.set_panel_display_name(h_room.panel_display_name());
122 } 123 }
123 124
125 if (h_room.has_daedalus_only_allow()) {
126 room.set_daedalus_only_allow(h_room.daedalus_only_allow());
127 }
128
124 for (const HumanPanel& h_panel : h_room.panels()) { 129 for (const HumanPanel& h_panel : h_room.panels()) {
125 room.add_panels(ProcessPanel(h_panel, current_map_name, room.name())); 130 room.add_panels(ProcessPanel(h_panel, current_map_name, room.name()));
126 } 131 }
@@ -440,6 +445,10 @@ class DataPacker {
440 if (h_door.has_legacy_location()) { 445 if (h_door.has_legacy_location()) {
441 door.set_legacy_location(h_door.legacy_location()); 446 door.set_legacy_location(h_door.legacy_location());
442 } 447 }
448
449 if (h_door.has_daedalus_only_allow()) {
450 door.set_daedalus_only_allow(h_door.daedalus_only_allow());
451 }
443 } 452 }
444 453
445 void ProcessConnectionsFile(std::filesystem::path path, 454 void ProcessConnectionsFile(std::filesystem::path path,