diff --git a/src/engine/Actor.cpp b/src/engine/Actor.cpp index b6b2520d0..8bd472b08 100644 --- a/src/engine/Actor.cpp +++ b/src/engine/Actor.cpp @@ -2,11 +2,9 @@ #include "Actor.h" - //GameActor() - AActor::AActor() {} - // Virtual functions to be overridden by derived classes +// Virtual functions to be overridden by derived classes void AActor::Tick() { } void AActor::Draw(Camera *camera) { } void AActor::Collision(Player* player, AActor* actor) {} diff --git a/src/engine/courses/TestCourse.cpp b/src/engine/courses/TestCourse.cpp index 74f7fee13..2750c727f 100644 --- a/src/engine/courses/TestCourse.cpp +++ b/src/engine/courses/TestCourse.cpp @@ -13,6 +13,7 @@ #include "engine/actors/ATree.h" #include "engine/actors/ACloud.h" #include "engine/vehicles/Train.h" +#include "engine/objects/Trophy.h" extern "C" { #include "main.h" @@ -190,10 +191,12 @@ void TestCourse::SpawnActors() { Vec3f pos = {0, 80, 0}; //gWorldInstance.AddActor(new ACloud(pos)); - gWorldInstance.AddActor(new OSeagull(0, pos)); - gWorldInstance.AddActor(new OSeagull(1, pos)); - gWorldInstance.AddActor(new OSeagull(2, pos)); - gWorldInstance.AddActor(new OSeagull(3, pos)); + // gWorldInstance.AddActor(new OSeagull(0, pos)); + // gWorldInstance.AddActor(new OSeagull(1, pos)); + // gWorldInstance.AddActor(new OSeagull(2, pos)); + // gWorldInstance.AddActor(new OSeagull(3, pos)); + + gWorldInstance.AddObject(new OTrophy(FVector(0,0,0), OTrophy::TrophyType::GOLD, OTrophy::Behaviour::GO_FISH)); } // Likely sets minimap boundaries diff --git a/src/engine/objects/GameObject.cpp b/src/engine/objects/GameObject.cpp deleted file mode 100644 index c7be32769..000000000 --- a/src/engine/objects/GameObject.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include "GameObject.h" - -#include "World.h" - -extern "C" { - #include "camera.h" -} - - - //GameActor() - -GameObject::GameObject() {} - - // Virtual functions to be overridden by derived classes -void GameObject::Tick() { } -void GameObject::Draw(Camera* camera) { } -void GameObject::Collision() {} -void GameObject::Expire() { } -void GameObject::Destroy() { } diff --git a/src/engine/objects/Object.cpp b/src/engine/objects/Object.cpp new file mode 100644 index 000000000..74143a923 --- /dev/null +++ b/src/engine/objects/Object.cpp @@ -0,0 +1,20 @@ +#include +#include "Object.h" + +#include "World.h" + +extern "C" { + #include "camera.h" +} + + + //GameActor() + +OObject::OObject() {} + + // Virtual functions to be overridden by derived classes +void OObject::Tick() { } +void OObject::Draw(s32 cameraId) { } +void OObject::Collision() {} +void OObject::Expire() { } +void OObject::Destroy() { } diff --git a/src/engine/objects/GameObject.h b/src/engine/objects/Object.h similarity index 68% rename from src/engine/objects/GameObject.h rename to src/engine/objects/Object.h index 19d5301cd..c41cfae6d 100644 --- a/src/engine/objects/GameObject.h +++ b/src/engine/objects/Object.h @@ -7,17 +7,17 @@ extern "C" { #include "objects.h" } -class GameObject { +class OObject { public: uint8_t uuid[16]; Object o; - virtual ~GameObject() = default; + virtual ~OObject() = default; - explicit GameObject(); + explicit OObject(); virtual void Tick(); - virtual void Draw(Camera* camera); + virtual void Draw(s32 cameraId); virtual void Collision(); virtual void Expire(); virtual void Destroy(); diff --git a/src/engine/objects/Thwomp.h b/src/engine/objects/Thwomp.h index 517d2972d..f64318e4d 100644 --- a/src/engine/objects/Thwomp.h +++ b/src/engine/objects/Thwomp.h @@ -18,7 +18,7 @@ extern "C" { //! @todo make adjustable properties for squishSize and boundingBoxSize /** - * Thwomp GameObject + * Thwomp OObject * * The game automatically places the actor on the ground so you do not need to provide a Y coordinate value. * diff --git a/src/engine/objects/Trophy.h b/src/engine/objects/Trophy.h index 76834d77e..d73e04929 100644 --- a/src/engine/objects/Trophy.h +++ b/src/engine/objects/Trophy.h @@ -15,6 +15,17 @@ extern "C" { #include "some_data.h" } +//! @todo move this like World.h or something +struct FVector { + float x, y, z; + + FVector& operator=(const FVector& other) { + x = other.x; + y = other.y; + z = other.z; + return *this; + } +}; class OTrophy : public OObject { public: diff --git a/src/port/Game.cpp b/src/port/Game.cpp index 300deed9f..d6cf9643c 100644 --- a/src/port/Game.cpp +++ b/src/port/Game.cpp @@ -384,9 +384,9 @@ extern "C" { } } - void CourseManager_DrawObjects(Camera* camera) { + void CourseManager_DrawObjects(s32 cameraId) { if (gWorldInstance.CurrentCourse) { - gWorldInstance.DrawObjects(camera); + gWorldInstance.DrawObjects(cameraId); } } diff --git a/src/port/Game.h b/src/port/Game.h index 0cf450c34..008d86ef7 100644 --- a/src/port/Game.h +++ b/src/port/Game.h @@ -50,7 +50,7 @@ void CourseManager_InitClouds(); void CourseManager_DrawActor(Camera* camera, struct Actor* actor); void CourseManager_TickObjects(); -void CourseManager_DrawObjects(Camera* camera); +void CourseManager_DrawObjects(s32 cameraId); void CourseManager_UpdateClouds(s32 arg0, Camera* camera);