diff options
Diffstat (limited to 'src')
-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: |