diff options
Diffstat (limited to 'tracker_panel.cpp')
| -rw-r--r-- | tracker_panel.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
| diff --git a/tracker_panel.cpp b/tracker_panel.cpp index 38d7c86..0cd65cc 100644 --- a/tracker_panel.cpp +++ b/tracker_panel.cpp | |||
| @@ -1,11 +1,17 @@ | |||
| 1 | #include "tracker_panel.h" | 1 | #include "tracker_panel.h" |
| 2 | 2 | ||
| 3 | #include "game_data.h" | ||
| 4 | |||
| 3 | TrackerPanel::TrackerPanel(wxWindow *parent) : wxPanel(parent, wxID_ANY) { | 5 | TrackerPanel::TrackerPanel(wxWindow *parent) : wxPanel(parent, wxID_ANY) { |
| 4 | map_image_ = wxImage("assets/lingo_map.png", wxBITMAP_TYPE_PNG); | 6 | map_image_ = wxImage("assets/lingo_map.png", wxBITMAP_TYPE_PNG); |
| 5 | if (!map_image_.IsOk()) { | 7 | if (!map_image_.IsOk()) { |
| 6 | return; | 8 | return; |
| 7 | } | 9 | } |
| 8 | 10 | ||
| 11 | for (const MapArea &map_area : GetGameData().GetMapAreas()) { | ||
| 12 | area_windows_.push_back(new AreaWindow(this, map_area.id)); | ||
| 13 | } | ||
| 14 | |||
| 9 | Redraw(); | 15 | Redraw(); |
| 10 | 16 | ||
| 11 | Bind(wxEVT_PAINT, &TrackerPanel::OnPaint, this); | 17 | Bind(wxEVT_PAINT, &TrackerPanel::OnPaint, this); |
| @@ -43,4 +49,18 @@ void TrackerPanel::Redraw() { | |||
| 43 | rendered_ = wxBitmap( | 49 | rendered_ = wxBitmap( |
| 44 | map_image_.Scale(final_width, final_height, wxIMAGE_QUALITY_NORMAL) | 50 | map_image_.Scale(final_width, final_height, wxIMAGE_QUALITY_NORMAL) |
| 45 | .Size(panel_size, {final_x, final_y}, 0, 0, 0)); | 51 | .Size(panel_size, {final_x, final_y}, 0, 0, 0)); |
| 52 | |||
| 53 | for (AreaWindow *area_window : area_windows_) { | ||
| 54 | const MapArea &map_area = | ||
| 55 | GetGameData().GetMapArea(area_window->GetAreaId()); | ||
| 56 | int real_area_size = | ||
| 57 | final_width * AreaWindow::EFFECTIVE_SIZE / image_size.GetWidth(); | ||
| 58 | area_window->SetSize({real_area_size, real_area_size}); | ||
| 59 | area_window->SetPosition({ | ||
| 60 | final_x + (map_area.map_x - (AreaWindow::EFFECTIVE_SIZE / 2)) * | ||
| 61 | final_width / image_size.GetWidth(), | ||
| 62 | final_y + (map_area.map_y - (AreaWindow::EFFECTIVE_SIZE / 2)) * | ||
| 63 | final_width / image_size.GetWidth(), | ||
| 64 | }); | ||
| 65 | } | ||
| 46 | } | 66 | } |
