]> git.localhorst.tv Git - space.git/blobdiff - src/world/Universe.cpp
force based movement
[space.git] / src / world / Universe.cpp
index ec71fd1acc665a83e42ff80023b3195e0b78f8af..6f2e5c18091ff5b4d4cc1c24d1d4e489e6e97ef5 100644 (file)
@@ -1,55 +1,47 @@
 #include "Universe.h"
 
-#include "Sector.h"
-
 #include <cstring>
 #include <memory>
 
 
 namespace space {
 
-Universe::Universe(Vector<int> size, Vector<int> secSize, Vector<int> areaSize, int numres)
+Universe::Universe(Vector<int> size, Vector<int> secSize, Vector<int> areaSize)
 : size(size)
 , secSize(secSize)
-, areaSize(areaSize)
-, numres(numres)
-, total(size.x * size.y)
-, sec_begin(reinterpret_cast<Sector *>(new char[total * sizeof(Sector)]))
-, sec_end(sec_begin + total) {
-       for (Sector *i = sec_begin; i < sec_end; ++i) {
-               new (i) Sector(secSize, numres);
-       }
+, areaSize(areaSize) {
+
 }
 
 Universe::~Universe() {
-       delete[] reinterpret_cast<char *>(sec_begin);
+
 }
 
 
-Entity *Universe::AddEntity(const Entity &e) {
-       entities.emplace_back(e);
-       return &entities.back();
+Ship *Universe::AddShip(const Ship &s) {
+       ships.emplace_back(s);
+       return &ships.back();
 }
 
 
 void Universe::Update(float delta) {
-       for (Entity &e : entities) {
-               e.Update(delta);
-               while (e.pos.x > areaSize.x) {
-                       e.pos.x -= areaSize.x;
-                       ++e.area.x;
+       for (Ship &s : ships) {
+               s.Update(delta);
+               while (s.pos.x > areaSize.x) {
+                       s.pos.x -= areaSize.x;
+                       ++s.area.x;
                }
-               while (e.pos.x < 0) {
-                       e.pos.x += areaSize.x;
-                       --e.area.x;
+               while (s.pos.x < 0) {
+                       s.pos.x += areaSize.x;
+                       --s.area.x;
                }
-               while (e.pos.y > areaSize.y) {
-                       e.pos.y -= areaSize.y;
-                       ++e.area.y;
+               while (s.pos.y > areaSize.y) {
+                       s.pos.y -= areaSize.y;
+                       ++s.area.y;
                }
-               while (e.pos.y < 0) {
-                       e.pos.y += areaSize.y;
-                       --e.area.y;
+               while (s.pos.y < 0) {
+                       s.pos.y += areaSize.y;
+                       --s.area.y;
                }
        }
 }