From bb0dad00c815c9d577214db2788990f560cb10f5 Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 6 Nov 2024 14:20:31 +0100 Subject: Include order --- src/crepe/ComponentManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/crepe/ComponentManager.cpp') diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp index 8bde33a..55bd82f 100644 --- a/src/crepe/ComponentManager.cpp +++ b/src/crepe/ComponentManager.cpp @@ -1,6 +1,7 @@ -#include "ComponentManager.h" #include "util/log.h" +#include "ComponentManager.h" + using namespace crepe; ComponentManager & ComponentManager::get_instance() { -- cgit v1.2.3 From e0db2fa06232e9f081df6dac2e360195becae17c Mon Sep 17 00:00:00 2001 From: max-001 Date: Thu, 7 Nov 2024 09:43:17 +0100 Subject: Added this-> --- src/crepe/ComponentManager.cpp | 2 +- src/crepe/ComponentManager.hpp | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) (limited to 'src/crepe/ComponentManager.cpp') diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp index 55bd82f..01bc8d7 100644 --- a/src/crepe/ComponentManager.cpp +++ b/src/crepe/ComponentManager.cpp @@ -11,7 +11,7 @@ ComponentManager & ComponentManager::get_instance() { void ComponentManager::delete_all_components_of_id(uint32_t id) { // Loop through all the types (in the unordered_map<>) - for (auto & [type, componentArray] : components) { + for (auto & [type, componentArray] : this->components) { // Make sure that the id (that we are looking for) is within the boundaries of the vector<> if (id < componentArray.size()) { // Clear the components at this specific id diff --git a/src/crepe/ComponentManager.hpp b/src/crepe/ComponentManager.hpp index 11c4d15..eac38fc 100644 --- a/src/crepe/ComponentManager.hpp +++ b/src/crepe/ComponentManager.hpp @@ -17,15 +17,15 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) { type_index type = typeid(T); // Check if this component type is already in the unordered_map<> - if (components.find(type) == components.end()) { + if (this->components.find(type) == this->components.end()) { //If not, create a new (empty) vector<> of vector> - components[type] = vector>>(); + this->components[type] = vector>>(); } // Resize the vector<> if the id is greater than the current size - if (id >= components[type].size()) { + if (id >= this->components[type].size()) { // Initialize new slots to nullptr (resize does automatically init to nullptr) - components[type].resize(id + 1); + this->components[type].resize(id + 1); } // Create a new component of type T (arguments directly forwarded). The @@ -35,14 +35,14 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) { // Check if the vector size is not greater than get_instances_max if (instance->get_instances_max() != -1 - && components[type][id].size() >= instance->get_instances_max()) { + && this->components[type][id].size() >= instance->get_instances_max()) { // TODO: Exception throw std::runtime_error( "Exceeded maximum number of instances for this component type"); } // store its unique_ptr in the vector<> - components[type][id].push_back(std::move(instance)); + this->components[type][id].push_back(std::move(instance)); return *instance; } @@ -55,10 +55,10 @@ void ComponentManager::delete_components_by_id(uint32_t id) { type_index type = typeid(T); // Find the type (in the unordered_map<>) - if (components.find(type) != components.end()) { + if (this->components.find(type) != this->components.end()) { // Get the correct vector<> vector>> & component_array - = components[type]; + = this->components[type]; // Make sure that the id (that we are looking for) is within the boundaries of the vector<> if (id < component_array.size()) { @@ -73,9 +73,9 @@ void ComponentManager::delete_components() { // Determine the type of T (this is used as the key of the unordered_map<>) std::type_index type = typeid(T); - if (components.find(type) == components.end()) return; + if (this->components.find(type) == this->components.end()) return; - components[type].clear(); + this->components[type].clear(); } template @@ -89,11 +89,11 @@ ComponentManager::get_components_by_id(uint32_t id) const { // Create an empty vector<> vector> component_vector; - if (components.find(type) == components.end()) return component_vector; + if (this->components.find(type) == this->components.end()) return component_vector; // Get the correct vector<> const vector>> & component_array - = components.at(type); + = this->components.at(type); // Make sure that the id (that we are looking for) is within the boundaries of the vector<> if (id >= component_array.size()) return component_vector; @@ -124,11 +124,11 @@ ComponentManager::get_components_by_type() const { vector> component_vector; // Find the type (in the unordered_map<>) - if (components.find(type) == components.end()) return component_vector; + if (this->components.find(type) == this->components.end()) return component_vector; // Get the correct vector<> const vector>> & component_array - = components.at(type); + = this->components.at(type); // Loop through the whole vector<> for (const vector> & component : component_array) { -- cgit v1.2.3 From be58cc9342a775c21ec2ee28923414a5c612fe6e Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 7 Nov 2024 15:27:28 +0100 Subject: add game_object_id_t type --- src/crepe/Collider.cpp | 2 +- src/crepe/Collider.h | 2 +- src/crepe/Component.cpp | 3 ++- src/crepe/Component.h | 6 ++++-- src/crepe/ComponentManager.cpp | 2 +- src/crepe/ComponentManager.h | 8 ++++---- src/crepe/ComponentManager.hpp | 7 ++++--- src/crepe/api/CircleCollider.h | 2 +- src/crepe/api/Force.cpp | 3 +-- src/crepe/api/Force.h | 2 +- src/crepe/api/GameObject.cpp | 2 +- src/crepe/api/GameObject.h | 6 ++++-- src/crepe/api/Metadata.cpp | 5 ++--- src/crepe/api/Metadata.h | 6 +++--- src/crepe/api/ParticleEmitter.cpp | 4 ++-- src/crepe/api/ParticleEmitter.h | 2 +- src/crepe/api/Rigidbody.cpp | 4 ++-- src/crepe/api/Rigidbody.h | 3 +-- src/crepe/api/Sprite.cpp | 2 +- src/crepe/api/Sprite.h | 3 +-- src/crepe/api/Transform.cpp | 4 ++-- src/crepe/api/Transform.h | 4 +--- src/crepe/types.h | 10 ++++++++++ 23 files changed, 51 insertions(+), 41 deletions(-) create mode 100644 src/crepe/types.h (limited to 'src/crepe/ComponentManager.cpp') diff --git a/src/crepe/Collider.cpp b/src/crepe/Collider.cpp index 13a3f33..bbec488 100644 --- a/src/crepe/Collider.cpp +++ b/src/crepe/Collider.cpp @@ -2,4 +2,4 @@ using namespace crepe; -Collider::Collider(uint32_t gameObjectId) : Component(gameObjectId) {} +Collider::Collider(game_object_id_t id) : Component(id) {} diff --git a/src/crepe/Collider.h b/src/crepe/Collider.h index 68a7d1d..827f83d 100644 --- a/src/crepe/Collider.h +++ b/src/crepe/Collider.h @@ -6,7 +6,7 @@ namespace crepe { class Collider : public Component { public: - Collider(uint32_t game_object_id); + Collider(game_object_id_t id); int size; }; diff --git a/src/crepe/Component.cpp b/src/crepe/Component.cpp index cdbda67..af439ed 100644 --- a/src/crepe/Component.cpp +++ b/src/crepe/Component.cpp @@ -1,5 +1,6 @@ #include "Component.h" +#include "types.h" using namespace crepe; -Component::Component(uint32_t id) : GAME_OBJECT_ID(id) {} +Component::Component(game_object_id_t id) : GAME_OBJECT_ID(id) {} diff --git a/src/crepe/Component.h b/src/crepe/Component.h index 41badc3..ee795f4 100644 --- a/src/crepe/Component.h +++ b/src/crepe/Component.h @@ -1,5 +1,7 @@ #pragma once +#include "types.h" + #include namespace crepe { @@ -19,7 +21,7 @@ protected: /** * \param id The id of the GameObject this component belongs to */ - Component(uint32_t id); + Component(game_object_id_t id); public: virtual ~Component() = default; @@ -36,7 +38,7 @@ public: public: //! The id of the GameObject this component belongs to - const uint32_t GAME_OBJECT_ID; + const game_object_id_t GAME_OBJECT_ID; //! Whether the component is active bool active = true; }; diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp index 01bc8d7..85149c8 100644 --- a/src/crepe/ComponentManager.cpp +++ b/src/crepe/ComponentManager.cpp @@ -9,7 +9,7 @@ ComponentManager & ComponentManager::get_instance() { return instance; } -void ComponentManager::delete_all_components_of_id(uint32_t id) { +void ComponentManager::delete_all_components_of_id(game_object_id_t id) { // Loop through all the types (in the unordered_map<>) for (auto & [type, componentArray] : this->components) { // Make sure that the id (that we are looking for) is within the boundaries of the vector<> diff --git a/src/crepe/ComponentManager.h b/src/crepe/ComponentManager.h index f3b0ace..c8c196c 100644 --- a/src/crepe/ComponentManager.h +++ b/src/crepe/ComponentManager.h @@ -43,7 +43,7 @@ public: * \return The created component */ template - T & add_component(uint32_t id, Args &&... args); + T & add_component(game_object_id_t id, Args &&... args); /** * \brief Delete all components of a specific type and id * @@ -53,7 +53,7 @@ public: * \param id The id of the GameObject this component belongs to */ template - void delete_components_by_id(uint32_t id); + void delete_components_by_id(game_object_id_t id); /** * \brief Delete all components of a specific type * @@ -70,7 +70,7 @@ public: * * \param id The id of the GameObject this component belongs to */ - void delete_all_components_of_id(uint32_t id); + void delete_all_components_of_id(game_object_id_t id); /** * \brief Delete all components * @@ -88,7 +88,7 @@ public: */ template std::vector> - get_components_by_id(uint32_t id) const; + get_components_by_id(game_object_id_t id) const; /** * \brief Get all components of a specific type * diff --git a/src/crepe/ComponentManager.hpp b/src/crepe/ComponentManager.hpp index cf9f65a..98efb49 100644 --- a/src/crepe/ComponentManager.hpp +++ b/src/crepe/ComponentManager.hpp @@ -3,11 +3,12 @@ #include #include "ComponentManager.h" +#include "types.h" namespace crepe { template -T & ComponentManager::add_component(uint32_t id, Args &&... args) { +T & ComponentManager::add_component(game_object_id_t id, Args &&... args) { using namespace std; static_assert(is_base_of::value, @@ -51,7 +52,7 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) { } template -void ComponentManager::delete_components_by_id(uint32_t id) { +void ComponentManager::delete_components_by_id(game_object_id_t id) { using namespace std; // Determine the type of T (this is used as the key of the unordered_map<>) @@ -83,7 +84,7 @@ void ComponentManager::delete_components() { template std::vector> -ComponentManager::get_components_by_id(uint32_t id) const { +ComponentManager::get_components_by_id(game_object_id_t id) const { using namespace std; // Determine the type of T (this is used as the key of the unordered_map<>) diff --git a/src/crepe/api/CircleCollider.h b/src/crepe/api/CircleCollider.h index 931b012..caa7e43 100644 --- a/src/crepe/api/CircleCollider.h +++ b/src/crepe/api/CircleCollider.h @@ -5,7 +5,7 @@ namespace crepe { class CircleCollider : public Collider { public: - CircleCollider(uint32_t game_object_id, int radius) + CircleCollider(game_object_id_t game_object_id, int radius) : Collider(game_object_id), radius(radius) {} int radius; }; diff --git a/src/crepe/api/Force.cpp b/src/crepe/api/Force.cpp index 3c33ad3..63131ac 100644 --- a/src/crepe/api/Force.cpp +++ b/src/crepe/api/Force.cpp @@ -4,8 +4,7 @@ namespace crepe { -Force::Force(uint32_t game_object_id, uint32_t magnitude, uint32_t direction) - : Component(game_object_id) { +Force::Force(game_object_id_t id, uint32_t magnitude, uint32_t direction) : Component(id) { // TODO: A standard angle unit should be established for the entire engine // and assumed to be the default everywhere. Only conversion functions should // explicitly contain the unit (i.e. `deg_to_rad()` & `rad_to_deg()`) diff --git a/src/crepe/api/Force.h b/src/crepe/api/Force.h index c08a8b9..4a4b5de 100644 --- a/src/crepe/api/Force.h +++ b/src/crepe/api/Force.h @@ -8,7 +8,7 @@ namespace crepe { class Force : public Component { public: - Force(uint32_t game_object_id, uint32_t magnitude, uint32_t direction); + Force(game_object_id_t id, uint32_t magnitude, uint32_t direction); int32_t force_x; int32_t force_y; diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp index b1b8f85..e009288 100644 --- a/src/crepe/api/GameObject.cpp +++ b/src/crepe/api/GameObject.cpp @@ -6,7 +6,7 @@ using namespace crepe; using namespace std; -GameObject::GameObject(uint32_t id, const std::string & name, +GameObject::GameObject(game_object_id_t id, const std::string & name, const std::string & tag, const Point & position, double rotation, double scale) : ID(id) { diff --git a/src/crepe/api/GameObject.h b/src/crepe/api/GameObject.h index 2992787..223d72e 100644 --- a/src/crepe/api/GameObject.h +++ b/src/crepe/api/GameObject.h @@ -3,6 +3,8 @@ #include #include +#include "types.h" + namespace crepe { class Point; @@ -27,7 +29,7 @@ public: * \param rotation The rotation of the GameObject * \param scale The scale of the GameObject */ - GameObject(uint32_t id, const std::string & name, const std::string & tag, + GameObject(game_object_id_t id, const std::string & name, const std::string & tag, const Point & position, double rotation, double scale); /** * \brief Set the parent of this GameObject @@ -55,7 +57,7 @@ public: public: //! The id of the GameObject - const uint32_t ID; + const game_object_id_t ID; }; } // namespace crepe diff --git a/src/crepe/api/Metadata.cpp b/src/crepe/api/Metadata.cpp index 55d9ae2..ab9612b 100644 --- a/src/crepe/api/Metadata.cpp +++ b/src/crepe/api/Metadata.cpp @@ -3,6 +3,5 @@ using namespace crepe; using namespace std; -Metadata::Metadata(uint32_t game_object_id, const string & name, - const string & tag) - : Component(game_object_id), NAME(name), TAG(tag) {} +Metadata::Metadata(game_object_id_t id, const string & name, const string & tag) + : Component(id), NAME(name), TAG(tag) {} diff --git a/src/crepe/api/Metadata.h b/src/crepe/api/Metadata.h index fdbed41..f5e5c55 100644 --- a/src/crepe/api/Metadata.h +++ b/src/crepe/api/Metadata.h @@ -20,7 +20,7 @@ public: * \param name The name of the GameObject * \param tag The tag of the GameObject */ - Metadata(uint32_t game_object_id, const std::string & name, + Metadata(game_object_id_t id, const std::string & name, const std::string & tag); /** * \brief Get the maximum number of instances for this component @@ -35,9 +35,9 @@ public: //! The tag of the GameObject const std::string TAG; //! The id of the parent GameObject (-1 if no parent) - uint32_t parent = -1; + game_object_id_t parent = -1; //! The ids of the children GameObjects - std::vector children; + std::vector children; }; } // namespace crepe diff --git a/src/crepe/api/ParticleEmitter.cpp b/src/crepe/api/ParticleEmitter.cpp index 0b3a9ee..6094732 100644 --- a/src/crepe/api/ParticleEmitter.cpp +++ b/src/crepe/api/ParticleEmitter.cpp @@ -6,12 +6,12 @@ using namespace crepe; -ParticleEmitter::ParticleEmitter(uint32_t game_object_id, +ParticleEmitter::ParticleEmitter(game_object_id_t id, uint32_t max_particles, uint32_t emission_rate, uint32_t speed, uint32_t speed_offset, uint32_t angle, uint32_t angleOffset, float begin_lifespan, float end_lifespan) - : Component(game_object_id), max_particles(max_particles), + : Component(id), max_particles(max_particles), emission_rate(emission_rate), speed(speed), speed_offset(speed_offset), position{0, 0}, begin_lifespan(begin_lifespan), end_lifespan(end_lifespan) { diff --git a/src/crepe/api/ParticleEmitter.h b/src/crepe/api/ParticleEmitter.h index 2e2e95b..5939723 100644 --- a/src/crepe/api/ParticleEmitter.h +++ b/src/crepe/api/ParticleEmitter.h @@ -10,7 +10,7 @@ namespace crepe { class ParticleEmitter : public Component { public: - ParticleEmitter(uint32_t game_object_id, uint32_t max_particles, + ParticleEmitter(game_object_id_t id, uint32_t max_particles, uint32_t emission_rate, uint32_t speed, uint32_t speed_offset, uint32_t angle, uint32_t angleOffset, float begin_lifespan, float end_lifespan); diff --git a/src/crepe/api/Rigidbody.cpp b/src/crepe/api/Rigidbody.cpp index 0a6262a..1e76346 100644 --- a/src/crepe/api/Rigidbody.cpp +++ b/src/crepe/api/Rigidbody.cpp @@ -2,7 +2,7 @@ using namespace crepe; -Rigidbody::Rigidbody(uint32_t game_object_id, int mass, int gravity_scale, +Rigidbody::Rigidbody(game_object_id_t id, int mass, int gravity_scale, BodyType bodyType) - : Component(game_object_id), mass(mass), gravity_scale(gravity_scale), + : Component(id), mass(mass), gravity_scale(gravity_scale), body_type(bodyType) {} diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h index 518ed94..02ced2e 100644 --- a/src/crepe/api/Rigidbody.h +++ b/src/crepe/api/Rigidbody.h @@ -18,8 +18,7 @@ enum class BodyType { class Rigidbody : public Component { public: - Rigidbody(uint32_t game_object_id, int mass, int gravity_scale, - BodyType body_type); + Rigidbody(game_object_id_t id, int mass, int gravity_scale, BodyType body_type); int32_t velocity_x; int32_t velocity_y; int mass; diff --git a/src/crepe/api/Sprite.cpp b/src/crepe/api/Sprite.cpp index 3dd44f2..7e810b5 100644 --- a/src/crepe/api/Sprite.cpp +++ b/src/crepe/api/Sprite.cpp @@ -10,7 +10,7 @@ using namespace std; using namespace crepe; -Sprite::Sprite(uint32_t id, shared_ptr image, const Color & color, +Sprite::Sprite(game_object_id_t id, shared_ptr image, const Color & color, const FlipSettings & flip) : Component(id), color(color), flip(flip), sprite_image(image) { dbg_trace(); diff --git a/src/crepe/api/Sprite.h b/src/crepe/api/Sprite.h index bdb4da9..28078cd 100644 --- a/src/crepe/api/Sprite.h +++ b/src/crepe/api/Sprite.h @@ -19,8 +19,7 @@ struct FlipSettings { class Sprite : public Component { public: - Sprite(uint32_t game_id, std::shared_ptr image, - const Color & color, const FlipSettings & flip); + Sprite(game_object_id_t id, std::shared_ptr image, const Color & color, const FlipSettings & flip); ~Sprite(); std::shared_ptr sprite_image; Color color; diff --git a/src/crepe/api/Transform.cpp b/src/crepe/api/Transform.cpp index be1769e..5fb66b3 100644 --- a/src/crepe/api/Transform.cpp +++ b/src/crepe/api/Transform.cpp @@ -6,8 +6,8 @@ using namespace crepe; -Transform::Transform(uint32_t game_id, const Point & point, double rot, +Transform::Transform(game_object_id_t id, const Point & point, double rot, double scale) - : Component(game_id), position(point), rotation(rot), scale(scale) { + : Component(id), position(point), rotation(rot), scale(scale) { dbg_trace(); } diff --git a/src/crepe/api/Transform.h b/src/crepe/api/Transform.h index 69ea48f..1104e99 100644 --- a/src/crepe/api/Transform.h +++ b/src/crepe/api/Transform.h @@ -1,7 +1,5 @@ #pragma once -#include - #include "api/Point.h" #include "Component.h" @@ -22,7 +20,7 @@ public: * \param rot The rotation of the GameObject * \param scale The scale of the GameObject */ - Transform(uint32_t id, const Point & point, double rot, double scale); + Transform(game_object_id_t id, const Point & point, double rot, double scale); /** * \brief Get the maximum number of instances for this component * diff --git a/src/crepe/types.h b/src/crepe/types.h new file mode 100644 index 0000000..5ae2c81 --- /dev/null +++ b/src/crepe/types.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace crepe { + +typedef uint32_t game_object_id_t; + +} + -- cgit v1.2.3