about summary refs log tree commit diff stats
path: root/src/tracker_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker_state.cpp')
-rw-r--r--src/tracker_state.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tracker_state.cpp b/src/tracker_state.cpp index a4134f9..c475fb7 100644 --- a/src/tracker_state.cpp +++ b/src/tracker_state.cpp
@@ -486,6 +486,28 @@ class StateCalculator {
486 return IsDoorReachable(*painting.door); 486 return IsDoorReachable(*painting.door);
487 } 487 }
488 488
489 if (panel_obj.panel_door != -1 && AP_GetDoorShuffleMode() == kPANELS_MODE) {
490 const PanelDoor& panel_door_obj = GD_GetPanelDoor(panel_obj.panel_door);
491
492 if (AP_AreDoorsGrouped() && panel_door_obj.group_ap_item_id != -1) {
493 return AP_HasItem(panel_door_obj.group_ap_item_id) ? kYes : kNo;
494 } else {
495 bool has_item = AP_HasItem(panel_door_obj.ap_item_id);
496
497 if (!has_item) {
498 for (const ProgressiveRequirement& prog_req :
499 panel_door_obj.progressives) {
500 if (AP_HasItem(prog_req.ap_item_id, prog_req.quantity)) {
501 has_item = true;
502 break;
503 }
504 }
505 }
506
507 return has_item ? kYes : kNo;
508 }
509 }
510
489 return kYes; 511 return kYes;
490 } 512 }
491 513