about summary refs log tree commit diff stats
path: root/src/area_popup.cpp
blob: 3b5d8d4e5dc1c50fe218b6a700014a7d4e95aead (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include "area_popup.h"

#include "ap_state.h"
#include "game_data.h"
#include "global.h"
#include "tracker_config.h"
#include "tracker_state.h"

AreaPopup::AreaPopup(wxWindow* parent, int area_id)
    : wxScrolledCanvas(parent, wxID_ANY), area_id_(area_id) {
  unchecked_eye_ =
      wxBitmap(wxImage(GetAbsolutePath("assets/unchecked.png").c_str(),
                       wxBITMAP_TYPE_PNG)
                   .Scale(32, 32));
  checked_eye_ = wxBitmap(
      wxImage(GetAbsolutePath("assets/checked.png").c_str(), wxBITMAP_TYPE_PNG)
          .Scale(32, 32));

  SetScrollRate(5, 5);

  SetBackgroundColour(*wxBLACK);
  Hide();

  Bind(wxEVT_PAINT, &AreaPopup::OnPaint, this);

  UpdateIndicators();
}

void AreaPopup::UpdateIndicators() {
  const MapArea& map_area = GD_GetMapArea(area_id_);

  // Start calculating extents.
  wxMemoryDC mem_dc;
  mem_dc.SetFont(GetFont().Bold());
  wxSize header_extent = mem_dc.GetTextExtent(map_area.name);

  int acc_height = header_extent.GetHeight() + 20;
  int col_width = 0;

  mem_dc.SetFont(GetFont());

  std::vector<int> real_locations;

  for (int section_id = 0; section_id < map_area.locations.size();
       section_id++) {
    const Location& location = map_area.locations.at(section_id);

    if (!AP_IsLocationVisible(location.classification) &&
        !(location.hunt && GetTrackerConfig().show_hunt_panels)) {
      continue;
    }

    real_locations.push_back(section_id);

    wxSize item_extent = mem_dc.GetTextExtent(location.name);
    int item_height = std::max(32, item_extent.GetHeight()) + 10;
    acc_height += item_height;

    if (item_extent.GetWidth() > col_width) {
      col_width = item_extent.GetWidth();
    }
  }

  int item_width = col_width + 10 + 32;
  int full_width = std::max(header_extent.GetWidth(), item_width) + 20;

  Fit();
  SetVirtualSize(full_width, acc_height);

  rendered_ = wxBitmap(full_width, acc_height);
  mem_dc.SelectObject(rendered_);
  mem_dc.SetPen(*wxTRANSPARENT_PEN);
  mem_dc.SetBrush(*wxBLACK_BRUSH);
  mem_dc.DrawRectangle({0, 0}, {full_width, acc_height});

  mem_dc.SetFont(GetFont().Bold());
  mem_dc.SetTextForeground(*wxWHITE);
  mem_dc.DrawText(map_area.name,
                  {(full_width - header_extent.GetWidth()) / 2, 10});

  int cur_height = header_extent.GetHeight() + 20;

  mem_dc.SetFont(GetFont());

  for (int section_id : real_locations) {
    const Location& location = map_area.locations.at(section_id);

    bool checked =
        AP_HasCheckedGameLocation(location.ap_location_id) ||
        (location.hunt && AP_HasCheckedHuntPanel(location.ap_location_id)) ||
        (IsLocationWinCondition(location) && AP_HasReachedGoal());

    wxBitmap* eye_ptr = checked ? &checked_eye_ : &unchecked_eye_;

    mem_dc.DrawBitmap(*eye_ptr, {10, cur_height});

    bool reachable = IsLocationReachable(location.ap_location_id);
    const wxColour* text_color = reachable ? wxWHITE : wxRED;
    mem_dc.SetTextForeground(*text_color);

    wxSize item_extent = mem_dc.GetTextExtent(location.name);
    mem_dc.DrawText(
        location.name,
        {10 + 32 + 10, cur_height + (32 - mem_dc.GetFontMetrics().height) / 2});

    cur_height += 10 + 32;
  }
}

void AreaPopup::OnPaint(wxPaintEvent& event) {
  wxPaintDC dc(this);
  PrepareDC(dc);
  dc.DrawBitmap(rendered_, 0, 0);

  event.Skip();
}
'#n1004'>1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037
---
- pos: [1050, 954]
  room: Starting Room
  door: Back Right Door
- pos: [986, 1034]
  room: Starting Room
  door: Rhyme Room Entrance
- pos: [990, 956]
  special: starting_room_paintings # Early Color Hallways painting is a hardcoded special case
  paintings:
    - arrows_painting
- pos: [905, 841]
  room: Hedge Maze
  door: Painting Shortcut
  paintings:
    - garden_painting_tower2
  tags:
    - garden_starting
- pos: [1066, 841]
  room: Courtyard
  door: Painting Shortcut
  paintings:
    - flower_painting_8
  tags:
    - flower_starting
- pos: [905, 895]
  room: The Wondrous (Doorknob)
  door: Painting Shortcut
  paintings:
    - symmetry_painting_a_starter
  tags:
    - symmetry_starting
- pos: [1066, 868]
  room: Outside The Bold
  door: Painting Shortcut
  paintings:
    - pencil_painting6
  tags:
    - pencil_starting
- pos: [1066, 895]
  room: Outside The Undeterred
  door: Painting Shortcut
  paintings:
    - blueman_painting_3
  tags:
    - blueman_starting
- pos: [905, 868]
  room: Outside The Agreeable
  door: Painting Shortcut
  paintings:
    - eyes_yellow_painting2
  tags:
    - street_starting
- pos: [1211, 879]
  room: Hidden Room
  door: Dead End Door
- pos: [1291, 906]
  room: Hidden Room
  door: Knight Night Entrance
- pos: [1103, 980]
  room: Hidden Room
  door: Seeker Entrance
- pos: [1173, 980]
  room: Hidden Room
  door: Rhyme Room Entrance
- pos: [1116, 939]
  paintings:
    - owl_painting
  tags:
    - owl_hidden
- pos: [986, 793]
  room: Second Room
  door: Exit Door
- pos: [798, 584]
  room: Hub Room
  door: Crossroads Entrance
- pos: [932, 665]
  room: Hub Room
  door: Tenacious Entrance
- pos: [1361, 578]
  room: Hub Room
  door: Shortcut to Hedge Maze
- pos: [1312, 841]
  room: Hub Room
  door: Near RAT Door
- pos: [1371, 729]
  room: Hub Room
  door: Traveled Entrance
- pos: [1313, 686]
  paintings:
    - maze_painting
  tags:
    - green_owl
    - green_numbers
- pos: [1172, 760]
  sunwarp:
    dots: 1
    type: enter
- pos: [1302, 638]
  room: Outside The Undeterred
  door: Fours
- pos: [1243, 819]
  room: Outside The Undeterred
  door: Fours
- pos: [1276, 819]
  room: Number Hunt
  door: Eights
- pos: [1263, 867]
  paintings:
    - smile_painting_6
  tags:
    - smiley_deadend
- pos: [1012, 1086]
  sunwarp:
    dots: 6
    type: final
- pos: [938, 1002]
  room: Pilgrim Antechamber
  door: Sun Painting
  special: sun_painting
- pos: [1053, 1090]
  invisible: true
  special: sun_painting_exit
- pos: [1077, 1061]
  room: Pilgrim Room
  door: Shortcut to The Seeker
- pos: [713, 359]
  room: Number Hunt
  door: Eights
- pos: [932, 348]
  room: Crossroads
  door: Hollow Hallway
- pos: [798, 290]
  room: Crossroads
  door: Tower Entrance
- pos: [932, 477]
  room: Crossroads
  door: Tenacious Entrance
- pos: [638, 477]
  room: Crossroads
  door: Discerning Entrance
- pos: [905, 290]
  room: Crossroads
  door: Tower Back Entrance
- pos: [894, 423]
  room: Crossroads
  door: Words Sword Door
- pos: [632, 643]
  room: Crossroads
  door: Eye Wall
- pos: [638, 520]
  room: Crossroads
  door: Roof Access
- pos: [756, 400]
  paintings:
    - smile_painting_4
  tags:
    - smiley_crossroads
- pos: [878, 509]
  sunwarp:
    dots: 1
    type: exit
- pos: [1056, 344]
  room: Lost Area
  door: Exit
- pos: [954, 290]
  room: Lost Area
  door: Exit
- pos: [986, 290]
  room: Number Hunt
  door: Eights
- pos: [954, 247]
  room: Amen Name Area
  door: Exit
- pos: [954, 222]
  paintings:
    - west_afar
- pos: [986, 697]
  room: The Tenacious
  door: Shortcut to Hub Room
- pos: [1173, 665]
  room: Near Far Area
  door: Door
- pos: [1173, 622]
  room: Warts Straw Area
  door: Door
- pos: [1173, 579]
  room: Leaf Feel Area
  door: Door
- pos: [1173, 333]
  room: Outside The Agreeable
  door: Purple Barrier
- pos: [1088, 289]
  room: Outside The Undeterred
  door: Fives
- pos: [1088, 418]
  room: Outside The Undeterred
  door: Fives
- pos: [1039, 477]
  room: Outside The Agreeable
  door: Tenacious Entrance
- pos: [1147, 525]
  room: Outside The Agreeable
  door: Black Door
- pos: [1216, 525]
  room: Outside The Agreeable
  door: Agreeable Entrance
- pos: [1138, 287]
  paintings:
    - eyes_yellow_painting
  tags:
    - street_starting
- pos: [1088, 385]
  sunwarp:
    dots: 6
    type: enter
- pos: [1195, 450]
  room: Compass Room
  door: Lookout Entrance
- pos: [1214, 457]
  paintings:
    - pencil_painting7
  tags:
    - pencil_compass
- pos: [1196, 417]
  invisible: true
  tags:
    - agreeable_to_lookout
- pos: [1657, 1392]
  room: Room Room
  door: Excavation
- pos: [1725, 1441]
  invisible: true
  tags:
    - agreeable_to_lookout
- pos: [1040, 665]
  room: Dread Hallway
  door: Tenacious Entrance
- pos: [1324, 525]
  room: The Agreeable
  door: Shortcut to Hedge Maze
- pos: [1484, 392]
  room: Hedge Maze
  door: Perceptive Entrance
- pos: [1441, 241]
  room: Hedge Maze
  door: Observant Entrance
- pos: [1714, 434]
  room: Hedge Maze
  door: Observant Entrance
- pos: [1477, 343]
  paintings:
    - garden_painting_tower
  tags:
    - garden_starting
- pos: [1565, 311]
  room: The Fearless (First Floor)
  door: Second Floor
- pos: [1597, 279]
  room: The Fearless (Second Floor)
  door: Third Floor
- pos: [1414, 209]
  room: The Observant
  door: Backside Door
- pos: [1624, 188]
  room: The Observant
  door: Stairs
- pos: [1667, 686]
  room: The Incomparable
  door: Eight Door
- pos: [1784, 569]
  paintings:
    - crown_painting
  tags:
    - crown_tower6
- pos: [1653, 717]
  paintings:
    - eight_painting2
  tags:
    - eight_alcove
- pos: [1653, 662]
  paintings:
    - eight_painting
  tags:
    - eight_alcove
- pos: [697, 1471]
  room: Orange Tower
  door: Second Floor
- pos: [633, 1406]
  room: Orange Tower
  door: Third Floor
- pos: [570, 1343]
  room: Orange Tower
  door: Fourth Floor
- pos: [504, 1279]
  room: Orange Tower
  door: Fifth Floor
- pos: [440, 1215]
  room: Orange Tower
  door: Sixth Floor
- pos: [379, 1153]
  room: Orange Tower
  door: Seventh Floor
- pos: [905, 793]
  room: Orange Tower First Floor
  door: Shortcut to Hub Room
- pos: [686, 820]
  room: Orange Tower First Floor
  door: Salt Pepper Door
- pos: [755, 787]
  sunwarp:
    dots: 4
    type: enter
- pos: [719, 846]
  tags:
    - tower1_tower1
- pos: [681, 1506]
  tags:
    - tower1_tower1
- pos: [722, 1439]
  tags:
    - tower2_undeterred
- pos: [533, 1375]
  tags:
    - tower3_tower3
- pos: [662, 1375]
  tags:
    - tower3_gallery
- pos: [483, 1307]
  tags:
    - tower4_room
- pos: [598, 1307]
  tags:
    - tower4_tower4
- pos: [598, 1287]
  tags:
    - tower4_courtyard
- pos: [533, 1245]
  tags:
    - tower5_welcome
- pos: [419, 1245]
  tags:
    - tower5_cellar
- pos: [419, 1267]
  tags:
    - tower5_quadruple
- pos: [203, 1014]
  tags:
    - tower2_undeterred
- pos: [1325, 1191]
  tags:
    - tower3_tower3
- pos: [1700, 1021]
  tags:
    - tower3_gallery
- pos: [1653, 1318]
  tags:
    - tower4_room
- pos: [918, 222]
  tags:
    - tower4_tower4
- pos: [806, 222]
  tags:
    - tower4_courtyard
- pos: [652, 951]
  tags:
    - tower5_welcome
- pos: [1553, 1440]
  tags:
    - tower5_cellar
- pos: [1459, 1119]
  tags:
    - tower5_quadruple
- pos: [1216, 1280]
  room: Orange Tower Third Floor
  door: Red Barrier
- pos: [1173, 1248]
  room: Orange Tower Third Floor
  door: Rhyme Room Entrance
- pos: [1270, 1231]
  paintings:
    - arrows_painting_6
    - flower_painting_5
- pos: [1216, 1216]
  sunwarp:
    dots: 2
    type: exit
- pos: [1253, 1172]
  sunwarp:
    dots: 3
    type: enter
- pos: [852, 198]
  room: Orange Tower Fourth Floor
  door: Hot Crusts Door
- pos: [830, 289]
  sunwarp:
    dots: 5
    type: enter
- pos: [877, 155]
  room: Number Hunt
  door: Eights
- pos: [844, 134]
  paintings:
    - smile_painting_8
  tags:
    - smiley_hotcrusts
- pos: [797, 155]
  sunwarp:
    dots: 2
    type: enter
- pos: [679, 985]
  room: Number Hunt
  door: Nines
- pos: [723, 953]
  room: Orange Tower Fifth Floor
  door: Welcome Back
- pos: [683, 944]
  paintings:
    - east_afar
- pos: [548, 1221]
  paintings:
    - hi_solved_painting3
- pos: [1574, 1425]
  paintings:
    - hi_solved_painting2
- pos: [411, 1186]
  paintings:
    - arrows_painting_10
    - owl_painting_3
    - clock_painting
    - scenery_painting_5d_2
    - symmetry_painting_b_7
    - panda_painting_2
    - crown_painting2
    - colors_painting2
    - cherry_painting2
    - hi_solved_painting
  tags:
    - owl_tower6
    - clock_tower6
    - panda_tower6
    - crown_tower6
    - apple_tower6
    - hi_scientific
- pos: [349, 1124]
  paintings:
    - map_painting2
- pos: [436, 1159]
  room: Orange Tower Seventh Floor
  door: Mastery
- pos: [544, 1159]
  paintings:
    - arrows_painting_11
- pos: [498, 284]
  room: Courtyard
  door: Green Barrier
- pos: [556, 233]
  paintings:
    - flower_painting_7
  tags:
    - flower_starting
    - flower_arrow
- pos: [600, 332]
  room: Number Hunt
  door: Nines
- pos: [579, 350]
  paintings:
    - blueman_painting
  tags:
    - blueman_courtyard
- pos: [530, 310]
  room: First Second Third Fourth
  door: Backside Door
- pos: [584, 107]
  room: The Colorful (White)
  door: Progress Door
- pos: [622, 107]
  room: The Colorful (Black)
  door: Progress Door
- pos: [659, 107]
  room: The Colorful (Red)
  door: Progress Door
- pos: [697, 107]
  room: The Colorful (Yellow)
  door: Progress Door
- pos: [734, 107]
  room: The Colorful (Blue)
  door: Progress Door
- pos: [772, 107]
  room: The Colorful (Purple)
  door: Progress Door
- pos: [809, 107]
  room: The Colorful (Orange)
  door: Progress Door
- pos: [847, 107]
  room: The Colorful (Green)
  door: Progress Door
- pos: [884, 107]
  room: The Colorful (Brown)
  door: Progress Door
- pos: [922, 107]
  room: The Colorful (Gray)
  door: Progress Door
- pos: [967, 107]
  paintings:
    - arrows_painting_12
- pos: [878, 954]
  room: Welcome Back Area
  door: Shortcut to Starting Room
- pos: [773, 954]
  tags:
    - hub_wb
    - wondrous_wb
    - undeterred_wb
    - agreeable_wb
    - wanderer_wb
    - observant_wb
    - gallery_wb
    - scientific_wb
    - cellar_wb
- pos: [1107, 749]
  tags:
    - hub_wb
- pos: [408, 817]
  tags:
    - wondrous_wb
- pos: [281, 1017]
  tags:
    - undeterred_wb
- pos: [1017, 289]
  tags:
    - agreeable_wb
- pos: [907, 1385]
  tags:
    - wanderer_wb
- pos: [1737, 1053]
  tags:
    - gallery_wb
- pos: [1690, 268]
  tags:
    - observant_wb
- pos: [250, 604]
  tags:
    - scientific_wb
- pos: [1553, 1467]
  tags:
    - cellar_wb
- pos: [1478, 498]
  room: Owl Hallway
  door: Shortcut to Hedge Maze
- pos: [1480, 551]
  paintings:
    - arrows_painting_8
    - maze_painting_2
    - owl_painting_2
    - clock_painting_4
  tags:
    - green_owl
    - owl_hidden
    - owl_tower6
- pos: [1478, 938]
  room: Number Hunt
  door: Sevens
- pos: [1580, 853]
  room: Number Hunt
  door: Sevens
- pos: [1478, 905]
  room: Number Hunt
  door: Eights
- pos: [1452, 841]
  room: Number Hunt
  door: Nines
- pos: [1420, 841]
  room: Outside The Initiated
  door: Blue Barrier
- pos: [1479, 1018]
  room: Outside The Initiated
  door: Orange Barrier
- pos: [1360, 847]
  room: Outside The Initiated
  door: Shortcut to Hub Room
- pos: [1511, 841]
  room: Outside The Initiated
  door: Initiated Entrance
- pos: [1141, 1441]
  room: Orange Tower Third Floor
  door: Orange Barrier
- pos: [1173, 1441]
  room: Outside The Initiated
  door: Green Barrier
- pos: [1206, 1441]
  room: Outside The Initiated
  door: Purple Barrier
- pos: [1189, 1355]
  room: Outside The Initiated
  door: Entrance
- pos: [1580, 729]
  room: Outside The Initiated
  door: Eight Door
- pos: [1530, 938]
  paintings:
    - clock_painting_5
  tags:
    - clock_initiated
- pos: [1546, 938]
  paintings:
    - clock_painting_2
    - arrows_painting_2
  tags:
    - clock_tower6
    - clock_initiated
- pos: [1579, 813]
  sunwarp:
    dots: 3
    type: exit
- pos: [1444, 896]
  paintings:
    - smile_painting_1
  tags:
    - smiley_initiated
- pos: [1430, 691]
  room: Outside The Undeterred
  door: Fours
- pos: [1468, 728]
  room: The Traveled
  door: Color Hallways Entrance
- pos: [1533, 707]
  tags:
    - red_ch
    - blue_ch
    - yellow_ch
    - green_ch
    - early_ch
- pos: [1567, 1264]
  tags:
    - red_ch
- pos: [150, 808]
  tags:
    - blue_ch
- pos: [626, 371]
  tags:
    - yellow_ch
- pos: [1368, 241]
  tags:
    - green_ch
- pos: [1543, 1307]
  room: Number Hunt
  door: Sixes
- pos: [1543, 1388]
  room: Number Hunt
  door: Nines
- pos: [1468, 1377]
  room: Outside The Bold
  door: Bold Entrance
- pos: [1425, 1358]
  paintings:
    - pencil_painting2
    - north_missing2
  tags:
    - pencil_compass
    - pencil_starting
    - pencil_directional
- pos: [1334, 1419]
  room: Outside The Bold
  door: Steady Entrance
- pos: [445, 1048]
  tags:
    - undeterred_artistic
- pos: [279, 1071]
  room: Number Hunt
  door: Zero Door
- pos: [338, 1071]
  room: Outside The Undeterred
  door: Twos
- pos: [370, 1071]
  room: Outside The Undeterred
  door: Threes
- pos: [402, 1071]
  room: Outside The Undeterred
  door: Fours
- pos: [242, 1071]
  room: Outside The Undeterred
  door: Undeterred Entrance
- pos: [60, 1017]
  paintings:
    - blueman_painting_2
  tags:
    - blueman_courtyard
    - blueman_starting
- pos: [402, 1012]
  room: Outside The Undeterred
  door: Green Painting
  paintings:
    - maze_painting_3
  tags:
    - green_numbers
- pos: [134, 1007]
  sunwarp:
    dots: 4
    type: exit
- pos: [719, 1039]
  room: Outside The Undeterred
  door: Challenge Entrance
- pos: [438, 1039]
  room: Outside The Undeterred
  door: Number Hunt
- pos: [563, 1071]
  room: Outside The Undeterred
  door: Fives
- pos: [596, 1071]
  room: Number Hunt
  door: Sixes
- pos: [627, 1071]
  room: Number Hunt
  door: Sevens
- pos: [659, 1071]
  room: Number Hunt
  door: Eights
- pos: [692, 1071]
  room: Number Hunt
  door: Nines
- pos: [525, 1002]
  room: Number Hunt
  door: Door to Directional Gallery
- pos: [659, 1014]
  room: Number Hunt
  door: Eights
  paintings:
    - smile_painting_5
  tags:
    - smiley_numbers
- pos: [557, 953]
  room: Number Hunt
  door: Sevens
- pos: [391, 932]
  room: Number Hunt
  door: Sixes
- pos: [311, 932]
  room: Number Hunt
  door: Nines
- pos: [268, 868]
  room: Number Hunt
  door: Eights
- pos: [268, 825]
  room: Directional Gallery
  door: Yellow Barrier
- pos: [231, 681]
  room: Number Hunt
  door: Sixes
- pos: [242, 980]
  room: Directional Gallery
  door: Shortcut to The Undeterred
- pos: [351, 927]
  paintings:
    - boxes_painting
  tags:
    - lattice_directional
- pos: [272, 927]
  paintings:
    - smile_painting_7
  tags:
    - smiley_directional
- pos: [214, 822]
  paintings:
    - cherry_painting
  tags:
    - apple_directional
- pos: [266, 735]
  room: Number Hunt
  door: Sixes
  paintings:
    - pencil_painting3
  tags:
    - pencil_directional
- pos: [215, 735]
  paintings:
    - flower_painting_4
- pos: [626, 851]
  sunwarp:
    dots: 6
    type: exit
- pos: [1141, 1441]
  room: Orange Tower Third Floor
  door: Orange Barrier
- pos: [1174, 1441]
  room: Outside The Initiated
  door: Green Barrier
- pos: [1205, 1441]
  room: Outside The Initiated
  door: Purple Barrier
- pos: [1334, 1377]
  room: Color Hunt
  door: Shortcut to The Steady
- pos: [1280, 1375]
  paintings:
    - arrows_painting_7
- pos: [1233, 1321]
  room: Outside The Initiated
  door: Entrance
  paintings:
    - fruitbowl_painting3
- pos: [1290, 1323]
  sunwarp:
    dots: 5
    type: exit
- pos: [1189, 1356]
  room: Outside The Initiated
  door: Entrance
- pos: [1154, 1332]
  paintings:
    - colors_painting
- pos: [1640, 1260]
  room: The Bearer
  door: Backside Door
- pos: [1468, 1287]
  room: The Bearer
  door: Entrance
- pos: [1430, 1232]
  room: Number Hunt
  door: Sixes
- pos: [1388, 1152]
  room: Bearer Side Area
  door: Shortcut to Tower
- pos: [1273, 1142]
  paintings:
    - pencil_painting5
    - pencil_painting4
- pos: [1355, 1092]
  room: Knight Night (Final)
  door: Exit
- pos: [1382, 900]
  room: Knight Night (Final)
  door: Exit
- pos: [1388, 1002]
  # Complex case, because this is also blocked by Knight Night (Final) - Exit
  room: Number Hunt
  door: Sevens
- pos: [1653, 101]
  paintings:
    - smile_painting_9
  tags:
    - smiley_crossroads
    - smiley_deadend
    - smiley_hotcrusts
    - smiley_numbers
    - smiley_directional
    - smiley_initiated
    - smiley_gallery
    - smiley_theysee
- pos: [1656, 139]
  room: The Artistic (Smiley)
  door: Door to Panda
- pos: [1711, 140]
  tags:
    - undeterred_artistic
- pos: [1653, 169]
  paintings:
    - panda_painting_3
  tags:
    - panda_tower6
    - panda_hallway
- pos: [1708, 171]
  room: The Artistic (Panda)
  door: Door to Lattice
- pos: [1761, 169]
  paintings:
    - boxes_painting2
  tags:
    - lattice_directional
- pos: [1762, 139]
  room: The Artistic (Lattice)
  door: Door to Apple
- pos: [1761, 101]
  paintings:
    - cherry_painting3
  tags:
    - apple_tower6
    - apple_directional
- pos: [1708, 107]
  room: The Artistic (Apple)
  door: Door to Smiley
- pos: [370, 681]
  room: Number Hunt
  door: Eights
- pos: [411, 685]
  paintings:
    - eye_painting_2
    - smile_painting_2
  tags:
    - smiley_theysee
- pos: [310, 750]
  room: The Eyes They See
  door: Exit
- pos: [334, 798]
  paintings:
    - arrows_painting_5
- pos: [370, 792]
  room: Outside The Wondrous
  door: Wondrous Entrance
- pos: [367, 752]
  paintings:
    - symmetry_painting_a_1
    - symmetry_painting_b_1
    - symmetry_painting_a_3
    - symmetry_painting_a_5
    - symmetry_painting_b_4
    - symmetry_painting_a_2
    - symmetry_painting_b_2
    - symmetry_painting_a_6
    - symmetry_painting_b_6
  tags:
    - symmetry_starting
- pos: [407, 755]
  room: The Wondrous
  door: Exit
  paintings:
    - arrows_painting_9
- pos: [449, 755]
  paintings:
    - flower_painting_6
  tags:
    - flower_arrow
- pos: [1101, 222]
  paintings:
    - panda_painting
  tags:
    - panda_hallway
- pos: [1152, 209]
  room: Hallway Room (1)
  door: Exit
- pos: [1189, 170]
  room: Hallway Room (2)
  door: Exit
- pos: [1238, 124]
  room: Hallway Room (3)
  door: Exit
- pos: [1313, 108]
  room: Hallway Room (4)
  door: Exit
- pos: [1528, 108]
  room: Hallway Room (4)
  door: Exit
- pos: [1415, 140]
  room: Number Hunt
  door: Nines
- pos: [1458, 133]
  paintings:
    - south_afar
- pos: [826, 1452]
  room: Outside The Wanderer
  door: Wanderer Entrance
- pos: [763, 1465]
  room: Outside The Wanderer
  door: Tower Entrance
- pos: [1655, 1151]
  room: Number Hunt
  door: Eights
- pos: [1623, 1044]
  room: Art Gallery
  door: Second Floor
- pos: [1623, 1019]
  room: Art Gallery
  door: Third Floor
- pos: [1623, 991]
  room: Art Gallery
  door: Fourth Floor
- pos: [1623, 964]
  room: Art Gallery
  door: Fifth Floor
- pos: [1511, 1119]
  room: Art Gallery
  door: Exit
- pos: [1654, 1116]
  paintings:
    - smile_painting_3
    - flower_painting_2
    - scenery_painting_0a
    - map_painting
    - fruitbowl_painting4
  tags:
    - smiley_gallery
- pos: [1120, 1286]
  room: Rhyme Room (Smiley)
  door: Door to Target
- pos: [1120, 1315]
  tags:
    - rhyme_smiley_target
- pos: [792, 1137]
  tags:
    - rhyme_smiley_target
- pos: [895, 1217]
  room: Number Hunt
  door: Nines
- pos: [938, 1296]
  room: Rhyme Room (Cross)
  door: Exit
- pos: [1120, 1195]
  room: Rhyme Room (Circle)
  door: Door to Smiley
- pos: [1118, 1137]
  paintings:
    - arrows_painting_3
- pos: [1050, 1142]
  room: Rhyme Room (Looped Square)
  door: Door to Circle
- pos: [987, 1194]
  room: Rhyme Room (Looped Square)
  door: Door to Cross
- pos: [922, 1142]
  room: Rhyme Room (Looped Square)
  door: Door to Target
- pos: [852, 1200]
  room: Rhyme Room (Target)
  door: Door to Cross
- pos: [850, 1138]
  paintings:
    - arrows_painting_4
- pos: [1592, 1442]
  room: Room Room
  door: Cellar Exit
- pos: [1570, 938]
  room: Outside The Wise
  door: Wise Entrance
- pos: [1653, 935]
  paintings:
    - clock_painting_3
- pos: [369, 605]
  room: Outside The Scientific
  door: Scientific Entrance
- pos: [294, 602]
  paintings:
    - hi_solved_painting4
  tags:
    - hi_scientific
- pos: [814, 1001]
  room: Challenge Room
  door: Welcome Door