diff options
| -rwxr-xr-x | assets/areas.yaml | 2 | ||||
| -rw-r--r-- | src/game_data.cpp | 4 | ||||
| -rw-r--r-- | src/game_data.h | 1 | ||||
| -rw-r--r-- | src/tracker_state.cpp | 7 |
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 | ||
| 36 | enum class DoorType { | 37 | enum 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 | } |
