diff options
Diffstat (limited to 'tracker_state.cpp')
-rw-r--r-- | tracker_state.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tracker_state.cpp b/tracker_state.cpp index a84dd6e..169d301 100644 --- a/tracker_state.cpp +++ b/tracker_state.cpp | |||
@@ -99,7 +99,22 @@ void TrackerState::CalculateState() { | |||
99 | const Room& room_obj = | 99 | const Room& room_obj = |
100 | GetGameData().GetRoom(room_exit.destination_room); | 100 | GetGameData().GetRoom(room_exit.destination_room); |
101 | for (const Exit& out_edge : room_obj.exits) { | 101 | for (const Exit& out_edge : room_obj.exits) { |
102 | new_boundary.push_back(out_edge); | 102 | if (!out_edge.painting || !GetAPState().IsPaintingShuffle()) { |
103 | new_boundary.push_back(out_edge); | ||
104 | } | ||
105 | } | ||
106 | |||
107 | if (GetAPState().IsPaintingShuffle()) { | ||
108 | for (const PaintingExit& out_edge : room_obj.paintings) { | ||
109 | if (GetAPState().GetPaintingMapping().count(out_edge.id)) { | ||
110 | Exit painting_exit; | ||
111 | painting_exit.destination_room = GetGameData().GetRoomForPainting( | ||
112 | GetAPState().GetPaintingMapping().at(out_edge.id)); | ||
113 | painting_exit.door = out_edge.door; | ||
114 | |||
115 | new_boundary.push_back(painting_exit); | ||
116 | } | ||
117 | } | ||
103 | } | 118 | } |
104 | } | 119 | } |
105 | } | 120 | } |