about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-30 23:32:08 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-30 23:32:08 -0400
commitfa2c104a460bcb5b9b78a8fb7c3727231fd22ffd (patch)
treeba27f94a904fbfd21b05e36aeb978bf398934de2
parent7a70828e9d0a4bf92491da1a88fac776de42d3b5 (diff)
downloadlingo2-archipelago-fa2c104a460bcb5b9b78a8fb7c3727231fd22ffd.tar.gz
lingo2-archipelago-fa2c104a460bcb5b9b78a8fb7c3727231fd22ffd.tar.bz2
lingo2-archipelago-fa2c104a460bcb5b9b78a8fb7c3727231fd22ffd.zip
Fix vanilla-only oneway door in The Repetitive HEAD main
-rw-r--r--apworld/regions.py3
-rw-r--r--data/maps/the_entry/connections.txtpb2
-rw-r--r--data/maps/the_repetitive/connections.txtpb2
-rw-r--r--proto/data.proto1
-rw-r--r--proto/human.proto3
-rw-r--r--tools/datapacker/main.cpp5
6 files changed, 14 insertions, 2 deletions
diff --git a/apworld/regions.py b/apworld/regions.py index 64302f6..3735858 100644 --- a/apworld/regions.py +++ b/apworld/regions.py
@@ -75,6 +75,9 @@ def create_regions(world: "Lingo2World"):
75 if connection.roof_access and not world.options.daedalus_roof_access: 75 if connection.roof_access and not world.options.daedalus_roof_access:
76 continue 76 continue
77 77
78 if connection.vanilla_only and world.options.shuffle_doors:
79 continue
80
78 from_region = world.static_logic.get_room_region_name(connection.from_room) 81 from_region = world.static_logic.get_room_region_name(connection.from_room)
79 to_region = world.static_logic.get_room_region_name(connection.to_room) 82 to_region = world.static_logic.get_room_region_name(connection.to_room)
80 83
diff --git a/data/maps/the_entry/connections.txtpb b/data/maps/the_entry/connections.txtpb index 5fe279c..7ab15ff 100644 --- a/data/maps/the_entry/connections.txtpb +++ b/data/maps/the_entry/connections.txtpb
@@ -183,12 +183,12 @@ connections {
183 from_room: "Starting Room" 183 from_room: "Starting Room"
184 to_room: "Digital Entrance" 184 to_room: "Digital Entrance"
185 door { name: "Second Room Left Door" } 185 door { name: "Second Room Left Door" }
186 oneway: true
187} 186}
188connections { 187connections {
189 from_room: "Digital Entrance" 188 from_room: "Digital Entrance"
190 to_room: "Starting Room" 189 to_room: "Starting Room"
191 oneway: true 190 oneway: true
191 vanilla_only: true
192} 192}
193connections { 193connections {
194 from_room: "Starting Room" 194 from_room: "Starting Room"
diff --git a/data/maps/the_repetitive/connections.txtpb b/data/maps/the_repetitive/connections.txtpb index 0afe72d..f4c06f2 100644 --- a/data/maps/the_repetitive/connections.txtpb +++ b/data/maps/the_repetitive/connections.txtpb
@@ -7,12 +7,12 @@ connections {
7 from_room: "Main Room" 7 from_room: "Main Room"
8 to_room: "Plaza Connector" 8 to_room: "Plaza Connector"
9 door { name: "Black Hallway" } 9 door { name: "Black Hallway" }
10 oneway: true
11} 10}
12connections { 11connections {
13 from_room: "Plaza Connector" 12 from_room: "Plaza Connector"
14 to_room: "Main Room" 13 to_room: "Main Room"
15 oneway: true 14 oneway: true
15 vanilla_only: true
16} 16}
17connections { 17connections {
18 from_room: "Main Room" 18 from_room: "Main Room"
diff --git a/proto/data.proto b/proto/data.proto index 808198e..d79f47d 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -123,6 +123,7 @@ message Connection {
123 optional bool roof_access = 7; 123 optional bool roof_access = 7;
124 optional bool purple_ending = 8; 124 optional bool purple_ending = 8;
125 optional bool cyan_ending = 9; 125 optional bool cyan_ending = 9;
126 optional bool vanilla_only = 10;
126} 127}
127 128
128message Door { 129message Door {
diff --git a/proto/human.proto b/proto/human.proto index 99c1fd7..8e7767a 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -78,6 +78,9 @@ message HumanConnection {
78 // This means that the connection should additionally require all cyan letters 78 // This means that the connection should additionally require all cyan letters
79 // when the Strict Cyan Ending option is on. 79 // when the Strict Cyan Ending option is on.
80 optional bool cyan_ending = 10; 80 optional bool cyan_ending = 10;
81
82 // This means that the connection only exists when doors are not shuffled.
83 optional bool vanilla_only = 11;
81} 84}
82 85
83message HumanConnections { 86message HumanConnections {
diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 005361d..e807d74 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp
@@ -490,6 +490,11 @@ class DataPacker {
490 r_connection.set_cyan_ending(human_connection.cyan_ending()); 490 r_connection.set_cyan_ending(human_connection.cyan_ending());
491 } 491 }
492 492
493 if (human_connection.has_vanilla_only()) {
494 f_connection.set_vanilla_only(human_connection.vanilla_only());
495 r_connection.set_vanilla_only(human_connection.vanilla_only());
496 }
497
493 container_.AddConnection(f_connection); 498 container_.AddConnection(f_connection);
494 if (!human_connection.oneway()) { 499 if (!human_connection.oneway()) {
495 container_.AddConnection(r_connection); 500 container_.AddConnection(r_connection);