summaryrefslogtreecommitdiffhomepage
path: root/View.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-05-15 15:37:59 +0200
committerAki <please@ignore.pl>2022-05-15 15:37:59 +0200
commit345bb237a7f682670a6107ae75afd948cc1f6ab6 (patch)
treefd4d2982d33c837bd7c4079e41434bbbf3ec8f8a /View.cpp
parent1b61e9b2b8c3b2218ec5a908a547180a642719e6 (diff)
downloadderelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.zip
derelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.tar.gz
derelict-345bb237a7f682670a6107ae75afd948cc1f6ab6.tar.bz2
Separated Wreck from Killmail
Diffstat (limited to 'View.cpp')
-rw-r--r--View.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/View.cpp b/View.cpp
index c4b0e5a..77ab271 100644
--- a/View.cpp
+++ b/View.cpp
@@ -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; });