diff options
| -rw-r--r-- | src/subway_map.cpp | 34 | ||||
| -rw-r--r-- | src/tracker_state.cpp | 9 |
2 files changed, 39 insertions, 4 deletions
| diff --git a/src/subway_map.cpp b/src/subway_map.cpp index b32c362..8364714 100644 --- a/src/subway_map.cpp +++ b/src/subway_map.cpp | |||
| @@ -69,6 +69,12 @@ void SubwayMap::OnConnect() { | |||
| 69 | 69 | ||
| 70 | std::map<std::string, std::vector<int>> tagged; | 70 | std::map<std::string, std::vector<int>> tagged; |
| 71 | for (const SubwayItem &subway_item : GD_GetSubwayItems()) { | 71 | for (const SubwayItem &subway_item : GD_GetSubwayItems()) { |
| 72 | if (AP_HasEarlyColorHallways() && | ||
| 73 | (subway_item.special == "starting_room_paintings" || | ||
| 74 | subway_item.special == "early_color_hallways")) { | ||
| 75 | tagged["early_color_hallways"].push_back(subway_item.id); | ||
| 76 | } | ||
| 77 | |||
| 72 | if (AP_IsPaintingShuffle() && !subway_item.paintings.empty()) { | 78 | if (AP_IsPaintingShuffle() && !subway_item.paintings.empty()) { |
| 73 | continue; | 79 | continue; |
| 74 | } | 80 | } |
| @@ -84,6 +90,12 @@ void SubwayMap::OnConnect() { | |||
| 84 | 90 | ||
| 85 | tagged[tag.str()].push_back(subway_item.id); | 91 | tagged[tag.str()].push_back(subway_item.id); |
| 86 | } | 92 | } |
| 93 | |||
| 94 | if (!AP_IsPilgrimageEnabled() && | ||
| 95 | (subway_item.special == "sun_painting" || | ||
| 96 | subway_item.special == "sun_painting_exit")) { | ||
| 97 | tagged["sun_painting"].push_back(subway_item.id); | ||
| 98 | } | ||
| 87 | } | 99 | } |
| 88 | 100 | ||
| 89 | for (const auto &[tag, items] : tagged) { | 101 | for (const auto &[tag, items] : tagged) { |
| @@ -489,7 +501,27 @@ void SubwayMap::Redraw() { | |||
| 489 | const wxBrush *brush_color = wxGREY_BRUSH; | 501 | const wxBrush *brush_color = wxGREY_BRUSH; |
| 490 | std::optional<wxColour> shade_color; | 502 | std::optional<wxColour> shade_color; |
| 491 | 503 | ||
| 492 | if (!subway_item.paintings.empty()) { | 504 | if (AP_HasEarlyColorHallways() && |
| 505 | (subway_item.special == "starting_room_paintings" || | ||
| 506 | subway_item.special == "early_color_hallways")) { | ||
| 507 | draw_type = ItemDrawType::kOwl; | ||
| 508 | |||
| 509 | if (subway_item.special == "starting_room_paintings") { | ||
| 510 | shade_color = wxColour(0, 255, 0, 128); | ||
| 511 | } else { | ||
| 512 | shade_color = wxColour(255, 0, 0, 128); | ||
| 513 | } | ||
| 514 | } else if (subway_item.special == "sun_painting") { | ||
| 515 | if (!AP_IsPilgrimageEnabled()) { | ||
| 516 | if (IsDoorOpen(*subway_item.door)) { | ||
| 517 | draw_type = ItemDrawType::kOwl; | ||
| 518 | shade_color = wxColour(0, 255, 0, 128); | ||
| 519 | } else { | ||
| 520 | draw_type = ItemDrawType::kBox; | ||
| 521 | brush_color = wxRED_BRUSH; | ||
| 522 | } | ||
| 523 | } | ||
| 524 | } else if (!subway_item.paintings.empty()) { | ||
| 493 | if (AP_IsPaintingShuffle()) { | 525 | if (AP_IsPaintingShuffle()) { |
| 494 | bool has_checked_painting = false; | 526 | bool has_checked_painting = false; |
| 495 | bool has_unchecked_painting = false; | 527 | bool has_unchecked_painting = false; |
| diff --git a/src/tracker_state.cpp b/src/tracker_state.cpp index 46bdbec..66e7751 100644 --- a/src/tracker_state.cpp +++ b/src/tracker_state.cpp | |||
| @@ -52,9 +52,12 @@ class RequirementCalculator { | |||
| 52 | Requirements requirements; | 52 | Requirements requirements; |
| 53 | const Door& door_obj = GD_GetDoor(door_id); | 53 | const Door& door_obj = GD_GetDoor(door_id); |
| 54 | 54 | ||
| 55 | if (!AP_IsPilgrimageEnabled() && | 55 | if (door_obj.type == DoorType::kSunPainting) { |
| 56 | door_obj.type == DoorType::kSunPainting) { | 56 | if (!AP_IsPilgrimageEnabled()) { |
| 57 | requirements.items.insert(door_obj.ap_item_id); | 57 | requirements.items.insert(door_obj.ap_item_id); |
| 58 | } else { | ||
| 59 | requirements.disabled = true; | ||
| 60 | } | ||
| 58 | } else if (door_obj.type == DoorType::kSunwarp) { | 61 | } else if (door_obj.type == DoorType::kSunwarp) { |
| 59 | switch (AP_GetSunwarpAccess()) { | 62 | switch (AP_GetSunwarpAccess()) { |
| 60 | case kSUNWARP_ACCESS_NORMAL: | 63 | case kSUNWARP_ACCESS_NORMAL: |
