diff options
author | Aki <please@ignore.pl> | 2022-05-15 15:37:59 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-05-15 15:37:59 +0200 |
commit | 345bb237a7f682670a6107ae75afd948cc1f6ab6 (patch) | |
tree | fd4d2982d33c837bd7c4079e41434bbbf3ec8f8a /View.cpp | |
parent | 1b61e9b2b8c3b2218ec5a908a547180a642719e6 (diff) | |
download | derelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.zip derelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.tar.gz derelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.tar.bz2 |
Separated Wreck from Killmail
Diffstat (limited to 'View.cpp')
-rw-r--r-- | View.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
@@ -2,18 +2,16 @@ #include <algorithm> #include <cmath> -#include <memory> -#include <utility> #include <raylib.h> +#include "Grid.h" #include "Label.h" -#include "Source.h" -View::View(std::unique_ptr<Source> source) : +View::View(std::vector<Grid> grids) : m_camera {}, - m_source {std::move(source)}, + m_grids {grids}, m_labels {}, m_grid {0} { @@ -29,28 +27,27 @@ View::View(std::unique_ptr<Source> source) : void View::update(const float dt) { - const auto grids = m_source->grids(); if (IsKeyPressed(KEY_SPACE)) { m_grid++; - if (m_grid >= grids.size()) + if (m_grid >= m_grids.size()) m_grid = 0; } UpdateCamera(&m_camera); const int height = GetScreenHeight(); const int width = GetScreenWidth(); - const auto killmails = grids.at(m_grid).killmails; + const auto wrecks = m_grids.at(m_grid).wrecks; m_labels.clear(); - m_labels.reserve(killmails.size()); - for (const auto& km : killmails) { - const auto pos = GetWorldToScreen(km.position, m_camera); + m_labels.reserve(wrecks.size()); + for (const auto& wreck : wrecks) { + const auto pos = GetWorldToScreen(wreck.position, m_camera); const float depth = std::sqrt( - std::pow(m_camera.position.x - km.position.x, 2) + - std::pow(m_camera.position.y - km.position.y, 2) + - std::pow(m_camera.position.z - km.position.z, 2)); + std::pow(m_camera.position.x - wreck.position.x, 2) + + std::pow(m_camera.position.y - wreck.position.y, 2) + + std::pow(m_camera.position.z - wreck.position.z, 2)); if (0 > pos.x || width < pos.x || 0 > pos.y || height < pos.y) continue; - const auto base = GetWorldToScreen({km.position.x, 0.0f, km.position.z}, m_camera); + const auto base = GetWorldToScreen({wreck.position.x, 0.0f, wreck.position.z}, m_camera); m_labels.push_back(Label{pos, base, depth}); } std::sort(m_labels.begin(), m_labels.end(), [](auto& a, auto& b){ return a.depth > b.depth; }); |