From fa2c104a460bcb5b9b78a8fb7c3727231fd22ffd Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 30 Sep 2025 23:32:08 -0400 Subject: Fix vanilla-only oneway door in The Repetitive --- apworld/regions.py | 3 +++ data/maps/the_entry/connections.txtpb | 2 +- data/maps/the_repetitive/connections.txtpb | 2 +- proto/data.proto | 1 + proto/human.proto | 3 +++ tools/datapacker/main.cpp | 5 +++++ 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"): if connection.roof_access and not world.options.daedalus_roof_access: continue + if connection.vanilla_only and world.options.shuffle_doors: + continue + from_region = world.static_logic.get_room_region_name(connection.from_room) to_region = world.static_logic.get_room_region_name(connection.to_room) 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 { from_room: "Starting Room" to_room: "Digital Entrance" door { name: "Second Room Left Door" } - oneway: true } connections { from_room: "Digital Entrance" to_room: "Starting Room" oneway: true + vanilla_only: true } connections { 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 { from_room: "Main Room" to_room: "Plaza Connector" door { name: "Black Hallway" } - oneway: true } connections { from_room: "Plaza Connector" to_room: "Main Room" oneway: true + vanilla_only: true } connections { 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 { optional bool roof_access = 7; optional bool purple_ending = 8; optional bool cyan_ending = 9; + optional bool vanilla_only = 10; } message 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 { // This means that the connection should additionally require all cyan letters // when the Strict Cyan Ending option is on. optional bool cyan_ending = 10; + + // This means that the connection only exists when doors are not shuffled. + optional bool vanilla_only = 11; } message 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 { r_connection.set_cyan_ending(human_connection.cyan_ending()); } + if (human_connection.has_vanilla_only()) { + f_connection.set_vanilla_only(human_connection.vanilla_only()); + r_connection.set_vanilla_only(human_connection.vanilla_only()); + } + container_.AddConnection(f_connection); if (!human_connection.oneway()) { container_.AddConnection(r_connection); -- cgit 1.4.1