about summary refs log tree commit diff stats
path: root/src/game_data.cpp
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-08-25 19:44:02 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-08-25 19:44:02 -0400
commitbaf43ede759f9ff0ca8c71de764e0389469f9ae1 (patch)
treea8526a339cff418da8674af8c8bdbc44c1ab3183 /src/game_data.cpp
parent58ea40015ddfdbce984f109fe32f291afd0408bd (diff)
downloadlingo-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.cpp5
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});