From baf43ede759f9ff0ca8c71de764e0389469f9ae1 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 25 Aug 2023 19:44:02 -0400 Subject: Rewrote how panel solvability is determined This fixes an edge case with LEVEL 2, and likely fixes an undiscovered issue with no-doors Pilgrimage. --- src/game_data.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/game_data.cpp') diff --git a/src/game_data.cpp b/src/game_data.cpp index fafc88c..4393373 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp @@ -255,6 +255,7 @@ struct GameData { if (door_it.second["event"]) { door_obj.skip_location = door_it.second["event"].as(); door_obj.skip_item = door_it.second["event"].as(); + door_obj.is_event = door_it.second["event"].as(); } if (door_it.second["item_name"]) { @@ -427,6 +428,7 @@ struct GameData { int fake_pilgrim_panel_id = AddOrGetPanel("Starting Room", "!! Fake Pilgrimage Panel"); Panel &fake_pilgrim_panel_obj = panels_[fake_pilgrim_panel_id]; + fake_pilgrim_panel_obj.non_counting = true; for (const auto &config_node : pilgrimage_config) { fake_pilgrim_panel_obj.required_doors.push_back( @@ -438,10 +440,13 @@ struct GameData { AddOrGetDoor("Starting Room", "!! Fake Pilgrimage Door"); Door &fake_pilgrim_door_obj = doors_[fake_pilgrim_door_id]; fake_pilgrim_door_obj.panels.push_back(fake_pilgrim_panel_id); + fake_pilgrim_door_obj.skip_location = true; fake_pilgrim_door_obj.skip_item = true; + fake_pilgrim_door_obj.is_event = true; int starting_room_id = AddOrGetRoom("Starting Room"); Room &starting_room_obj = rooms_[starting_room_id]; + starting_room_obj.panels.push_back(fake_pilgrim_panel_id); starting_room_obj.exits.push_back( Exit{.destination_room = AddOrGetRoom("Pilgrim Antechamber"), .door = fake_pilgrim_door_id}); -- cgit 1.4.1