Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
daid committed Nov 4, 2022
1 parent 5606a96 commit 9712fd1
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 1 deletion.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ set(source_files #All SeriousProton's objects to compile
src/ecs/component.cpp
src/ecs/query.h
src/ecs/multiplayer.h
src/ecs/system.h

src/components/collision.h
src/systems/collision.h
Expand Down
10 changes: 10 additions & 0 deletions src/ecs/system.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#pragma once

namespace sp::ecs {

class System {
public:
virtual void update(float delta) = 0;
};

}
6 changes: 5 additions & 1 deletion src/engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,10 @@ void Engine::runMainLoop()

foreach(Updatable, u, updatableList)
u->update(delta);
elapsedTime += delta;
for(auto system : systems)
system->update(delta);
sp::CollisionSystem::update(delta);
elapsedTime += delta;
ScriptObject::clearDestroyedObjects();
soundManager->updateTick();
#ifdef STEAMSDK
Expand Down Expand Up @@ -162,6 +164,8 @@ void Engine::runMainLoop()
foreach(Updatable, u, updatableList) {
u->update(delta);
}
for(auto system : systems)
system->update(delta);
elapsedTime += delta;
engine_timing.update = engine_timing_stopwatch.restart();
sp::CollisionSystem::update(delta);
Expand Down
6 changes: 6 additions & 0 deletions src/engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <unordered_map>
#include "stringImproved.h"
#include "ecs/system.h"
#include "P.h"

#ifdef WIN32
Expand Down Expand Up @@ -36,6 +37,7 @@ class Engine
#ifdef WIN32
std::unique_ptr<DynamicLibrary> exchndl;
#endif
std::vector<sp::ecs::System*> systems;
public:
Engine();
~Engine();
Expand All @@ -48,6 +50,10 @@ class Engine
void registerObject(string name, P<PObject> obj);
P<PObject> getObject(string name);

template<class T> void registerSystem() {
systems.push_back(new T());
}

void runMainLoop();
void shutdown();
private:
Expand Down

1 comment on commit 9712fd1

@daid-tinyci
Copy link

@daid-tinyci daid-tinyci bot commented on 9712fd1 Dec 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TinyCI build failure:

[/home/tinyci/builds/daid/SeriousProton/_build_native:make -j 2] returned [2]:


[ 15%] Built target spfreetype2

[ 16%] Built target glad

[ 29%] Built target box2d

[ 37%] Built target lua

[ 43%] Built target basisu-encoder

[ 83%] Built target opus

[ 84%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/engine.cpp.o

[ 84%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/graphics/renderTarget.cpp.o

[ 84%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/multiplayer.cpp.o

[ 84%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/multiplayer_client.cpp.o

[ 85%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/multiplayer_proxy.cpp.o

[ 85%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/multiplayer_server.cpp.o

[ 86%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/timer.cpp.o

[ 86%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/io/keybinding.cpp.o

[ 86%] Building CXX object CMakeFiles/seriousproton_objects.dir/src/ecs/entity.cpp.o

In file included from /data/tinyci_builds/daid/SeriousProton/src/ecs/component.h:3,

                 from /data/tinyci_builds/daid/SeriousProton/src/ecs/entity.h:6,

                 from /data/tinyci_builds/daid/SeriousProton/src/ecs/entity.cpp:1:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:60:35: error: ‘size_t’ has not been declared

   60 |         Iterator(SparseSet& _set, size_t _dense_index) : set(_set), dense_index(_dense_index) {}

      |                                   ^~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:70:9: error: ‘size_t’ does not name a type

   70 |         size_t dense_index;

      |         ^~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:5:1: note: ‘size_t’ is defined in header ‘<cstddef>’; did you forget to ‘#include <cstddef>’?

    4 | #include <vector>

  +++ |+#include <cstddef>

    5 | #include <limits>

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:76:5: error: ‘size_t’ does not name a type

   76 |     size_t size() { return data.size(); }

      |     ^~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:76:5: note: ‘size_t’ is defined in header ‘<cstddef>’; did you forget to ‘#include <cstddef>’?

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In constructor ‘sp::SparseSet<T>::Iterator::Iterator(sp::SparseSet<T>&, int)’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:60:69: error: class ‘sp::SparseSet<T>::Iterator’ does not have any field named ‘dense_index’

   60 |         Iterator(SparseSet& _set, size_t _dense_index) : set(_set), dense_index(_dense_index) {}

      |                                                                     ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘bool sp::SparseSet<T>::Iterator::operator!=(const sp::SparseSet<T>::Iterator&) const’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:62:63: error: ‘dense_index’ was not declared in this scope

   62 |         bool operator!=(const Iterator& other) const { return dense_index != other.dense_index; }

      |                                                               ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘void sp::SparseSet<T>::Iterator::operator++()’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:63:29: error: ‘dense_index’ was not declared in this scope

   63 |         void operator++() { dense_index--; }

      |                             ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘std::pair<unsigned int, T&> sp::SparseSet<T>::Iterator::operator*()’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:64:65: error: ‘dense_index’ was not declared in this scope

   64 |         std::pair<uint32_t, T&> operator*() { return {set.dense[dense_index], set.data[dense_index]}; }

      |                                                                 ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘std::pair<unsigned int, const T&> sp::SparseSet<T>::Iterator::operator*() const’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:65:77: error: ‘dense_index’ was not declared in this scope

   65 |         std::pair<uint32_t, const T&> operator*() const { return {set.dense[dense_index], set.data[dense_index]}; }

      |                                                                             ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘bool sp::SparseSet<T>::Iterator::atEnd()’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:67:31: error: ‘dense_index’ was not declared in this scope

   67 |         bool atEnd() { return dense_index == std::numeric_limits<size_t>::max(); }

      |                               ^~~~~~~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:67:66: error: ‘size_t’ was not declared in this scope; did you mean ‘std::size_t’?

   67 |         bool atEnd() { return dense_index == std::numeric_limits<size_t>::max(); }

      |                                                                  ^~~~~~

      |                                                                  std::size_t

In file included from /usr/include/c++/12/limits:42,

                 from /data/tinyci_builds/daid/SeriousProton/src/ecs/entity.h:4:

/usr/include/x86_64-linux-gnu/c++/12/bits/c++config.h:298:33: note: ‘std::size_t’ declared here

  298 |   typedef __SIZE_TYPE__         size_t;

      |                                 ^~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:67:72: error: template argument 1 is invalid

   67 |         bool atEnd() { return dense_index == std::numeric_limits<size_t>::max(); }

      |                                                                        ^

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h: In member function ‘sp::SparseSet<T>::Iterator sp::SparseSet<T>::end()’:

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:74:65: error: ‘size_t’ was not declared in this scope; did you mean ‘std::size_t’?

   74 |     Iterator end() { return Iterator(*this, std::numeric_limits<size_t>::max()); }

      |                                                                 ^~~~~~

      |                                                                 std::size_t

/usr/include/x86_64-linux-gnu/c++/12/bits/c++config.h:298:33: note: ‘std::size_t’ declared here

  298 |   typedef __SIZE_TYPE__         size_t;

      |                                 ^~~~~~

/data/tinyci_builds/daid/SeriousProton/src/container/sparseset.h:74:71: error: template argument 1 is invalid

   74 |     Iterator end() { return Iterator(*this, std::numeric_limits<size_t>::max()); }

      |                                                                       ^

make[2]: *** [CMakeFiles/seriousproton_objects.dir/build.make:852: CMakeFiles/seriousproton_objects.dir/src/ecs/entity.cpp.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[1]: *** [CMakeFiles/Makefile2:238: CMakeFiles/seriousproton_objects.dir/all] Error 2

make: *** [Makefile:136: all] Error 2

Please sign in to comment.