about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-05-17 12:10:41 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-05-17 12:10:41 -0400
commit92b91d6703c96f1724168e5e4845cfba6c802de4 (patch)
tree3292c35e2e153828bb1ef90ab6208757aaa84bf5
parentf6c029a2e5cef66b24ec1f4b989bae03ed841f44 (diff)
downloadlingo-ap-tracker-future.tar.gz
lingo-ap-tracker-future.tar.bz2
lingo-ap-tracker-future.zip
Add static painting logic future
This goes alongside https://github.com/ArchipelagoMW/Archipelago/pull/5005, but it can't be merged into main until an AP release containing that PR happens.
-rwxr-xr-xassets/areas.yaml2
-rw-r--r--src/game_data.cpp4
-rw-r--r--src/game_data.h1
-rw-r--r--src/tracker_state.cpp7
4 files changed, 11 insertions, 3 deletions
diff --git a/assets/areas.yaml b/assets/areas.yaml index cbcf23a..a615e2c 100755 --- a/assets/areas.yaml +++ b/assets/areas.yaml
@@ -279,6 +279,8 @@
279 map: [1368, 2103] 279 map: [1368, 2103]
280 Art Gallery: 280 Art Gallery:
281 map: [2474, 1366] 281 map: [2474, 1366]
282 Art Gallery (First Floor):
283 fold_into: Art Gallery
282 Art Gallery (Second Floor): 284 Art Gallery (Second Floor):
283 fold_into: Art Gallery 285 fold_into: Art Gallery
284 Art Gallery (Third Floor): 286 Art Gallery (Third Floor):
diff --git a/src/game_data.cpp b/src/game_data.cpp index 94b9888..588ffc8 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp
@@ -127,6 +127,10 @@ struct GameData {
127 exit_obj.type = EntranceType::kCrossroadsRoofAccess; 127 exit_obj.type = EntranceType::kCrossroadsRoofAccess;
128 } 128 }
129 129
130 if (option["static_painting"] && option["static_painting"].as<bool>()) {
131 exit_obj.type = EntranceType::kStaticPainting;
132 }
133
130 rooms_[from_room_id].exits.push_back(exit_obj); 134 rooms_[from_room_id].exits.push_back(exit_obj);
131 }; 135 };
132 136
diff --git a/src/game_data.h b/src/game_data.h index ac911e5..8d3db4b 100644 --- a/src/game_data.h +++ b/src/game_data.h
@@ -31,6 +31,7 @@ enum class EntranceType {
31 kWarp, 31 kWarp,
32 kPilgrimage, 32 kPilgrimage,
33 kCrossroadsRoofAccess, 33 kCrossroadsRoofAccess,
34 kStaticPainting,
34}; 35};
35 36
36enum class DoorType { 37enum class DoorType {
diff --git a/src/tracker_state.cpp b/src/tracker_state.cpp index bf2725a..674f68a 100644 --- a/src/tracker_state.cpp +++ b/src/tracker_state.cpp
@@ -342,7 +342,7 @@ class StateCalculator {
342 new_boundary.push_back( 342 new_boundary.push_back(
343 {.source_room = room_exit.destination_room, 343 {.source_room = room_exit.destination_room,
344 .destination_room = GD_GetRoomByName("Color Hallways"), 344 .destination_room = GD_GetRoomByName("Color Hallways"),
345 .type = EntranceType::kPainting}); 345 .type = EntranceType::kStaticPainting});
346 } 346 }
347 347
348 if (AP_IsPilgrimageEnabled()) { 348 if (AP_IsPilgrimageEnabled()) {
@@ -368,7 +368,7 @@ class StateCalculator {
368 .destination_room = GD_GetRoomByName("Pilgrim Antechamber"), 368 .destination_room = GD_GetRoomByName("Pilgrim Antechamber"),
369 .door = 369 .door =
370 GD_GetDoorByName("Pilgrim Antechamber - Sun Painting"), 370 GD_GetDoorByName("Pilgrim Antechamber - Sun Painting"),
371 .type = EntranceType::kPainting}); 371 .type = EntranceType::kStaticPainting});
372 } 372 }
373 } 373 }
374 374
@@ -650,7 +650,8 @@ class StateCalculator {
650 !AP_DoesPilgrimageAllowRoofAccess()) { 650 !AP_DoesPilgrimageAllowRoofAccess()) {
651 return kNo; 651 return kNo;
652 } 652 }
653 if (room_exit.type == EntranceType::kPainting && 653 if ((room_exit.type == EntranceType::kPainting ||
654 room_exit.type == EntranceType::kStaticPainting) &&
654 !AP_DoesPilgrimageAllowPaintings()) { 655 !AP_DoesPilgrimageAllowPaintings()) {
655 return kNo; 656 return kNo;
656 } 657 }