diff options
Diffstat (limited to 'tracker_state.cpp')
-rw-r--r-- | tracker_state.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tracker_state.cpp b/tracker_state.cpp index 169d301..4921d3f 100644 --- a/tracker_state.cpp +++ b/tracker_state.cpp | |||
@@ -58,7 +58,18 @@ bool IsDoorReachable_Helper(int door_id, const std::set<int>& reachable_rooms) { | |||
58 | !door_obj.group_name.empty()) { | 58 | !door_obj.group_name.empty()) { |
59 | return GetAPState().HasItem(door_obj.group_name); | 59 | return GetAPState().HasItem(door_obj.group_name); |
60 | } else { | 60 | } else { |
61 | return GetAPState().HasItem(door_obj.item_name); | 61 | bool has_item = GetAPState().HasItem(door_obj.item_name); |
62 | |||
63 | if (!has_item) { | ||
64 | for (const ProgressiveRequirement& prog_req : door_obj.progressives) { | ||
65 | if (GetAPState().HasItem(prog_req.item_name, prog_req.quantity)) { | ||
66 | has_item = true; | ||
67 | break; | ||
68 | } | ||
69 | } | ||
70 | } | ||
71 | |||
72 | return has_item; | ||
62 | } | 73 | } |
63 | } | 74 | } |
64 | 75 | ||