diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2023-08-25 19:44:02 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2023-08-25 19:44:02 -0400 |
commit | baf43ede759f9ff0ca8c71de764e0389469f9ae1 (patch) | |
tree | a8526a339cff418da8674af8c8bdbc44c1ab3183 /src/game_data.cpp | |
parent | 58ea40015ddfdbce984f109fe32f291afd0408bd (diff) | |
download | lingo-ap-tracker-baf43ede759f9ff0ca8c71de764e0389469f9ae1.tar.gz lingo-ap-tracker-baf43ede759f9ff0ca8c71de764e0389469f9ae1.tar.bz2 lingo-ap-tracker-baf43ede759f9ff0ca8c71de764e0389469f9ae1.zip |
Rewrote how panel solvability is determined
This fixes an edge case with LEVEL 2, and likely fixes an undiscovered issue with no-doors Pilgrimage.
Diffstat (limited to 'src/game_data.cpp')
-rw-r--r-- | src/game_data.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
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 { | |||
255 | if (door_it.second["event"]) { | 255 | if (door_it.second["event"]) { |
256 | door_obj.skip_location = door_it.second["event"].as<bool>(); | 256 | door_obj.skip_location = door_it.second["event"].as<bool>(); |
257 | door_obj.skip_item = door_it.second["event"].as<bool>(); | 257 | door_obj.skip_item = door_it.second["event"].as<bool>(); |
258 | door_obj.is_event = door_it.second["event"].as<bool>(); | ||
258 | } | 259 | } |
259 | 260 | ||
260 | if (door_it.second["item_name"]) { | 261 | if (door_it.second["item_name"]) { |
@@ -427,6 +428,7 @@ struct GameData { | |||
427 | int fake_pilgrim_panel_id = | 428 | int fake_pilgrim_panel_id = |
428 | AddOrGetPanel("Starting Room", "!! Fake Pilgrimage Panel"); | 429 | AddOrGetPanel("Starting Room", "!! Fake Pilgrimage Panel"); |
429 | Panel &fake_pilgrim_panel_obj = panels_[fake_pilgrim_panel_id]; | 430 | Panel &fake_pilgrim_panel_obj = panels_[fake_pilgrim_panel_id]; |
431 | fake_pilgrim_panel_obj.non_counting = true; | ||
430 | 432 | ||
431 | for (const auto &config_node : pilgrimage_config) { | 433 | for (const auto &config_node : pilgrimage_config) { |
432 | fake_pilgrim_panel_obj.required_doors.push_back( | 434 | fake_pilgrim_panel_obj.required_doors.push_back( |
@@ -438,10 +440,13 @@ struct GameData { | |||
438 | AddOrGetDoor("Starting Room", "!! Fake Pilgrimage Door"); | 440 | AddOrGetDoor("Starting Room", "!! Fake Pilgrimage Door"); |
439 | Door &fake_pilgrim_door_obj = doors_[fake_pilgrim_door_id]; | 441 | Door &fake_pilgrim_door_obj = doors_[fake_pilgrim_door_id]; |
440 | fake_pilgrim_door_obj.panels.push_back(fake_pilgrim_panel_id); | 442 | fake_pilgrim_door_obj.panels.push_back(fake_pilgrim_panel_id); |
443 | fake_pilgrim_door_obj.skip_location = true; | ||
441 | fake_pilgrim_door_obj.skip_item = true; | 444 | fake_pilgrim_door_obj.skip_item = true; |
445 | fake_pilgrim_door_obj.is_event = true; | ||
442 | 446 | ||
443 | int starting_room_id = AddOrGetRoom("Starting Room"); | 447 | int starting_room_id = AddOrGetRoom("Starting Room"); |
444 | Room &starting_room_obj = rooms_[starting_room_id]; | 448 | Room &starting_room_obj = rooms_[starting_room_id]; |
449 | starting_room_obj.panels.push_back(fake_pilgrim_panel_id); | ||
445 | starting_room_obj.exits.push_back( | 450 | starting_room_obj.exits.push_back( |
446 | Exit{.destination_room = AddOrGetRoom("Pilgrim Antechamber"), | 451 | Exit{.destination_room = AddOrGetRoom("Pilgrim Antechamber"), |
447 | .door = fake_pilgrim_door_id}); | 452 | .door = fake_pilgrim_door_id}); |