mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-10 15:14:33 -04:00
actor init
This commit is contained in:
+9
-11
@@ -121,25 +121,23 @@ AActor* World::AddActor(AActor* actor) {
|
||||
return Actors.back();
|
||||
}
|
||||
|
||||
struct Actor* World::AddBaseActor(s16 actorType) {
|
||||
struct Actor* World::AddBaseActor() {
|
||||
Actors.push_back(new AActor());
|
||||
|
||||
AActor* actor = Actors.back();
|
||||
|
||||
switch(actorType) {
|
||||
case ACTOR_ITEM_BOX:
|
||||
actor->Model = (Gfx*)LOAD_ASSET_RAW(D_0D003090);
|
||||
break;
|
||||
case ACTOR_PIRANHA_PLANT:
|
||||
actor->Model = (Gfx*)LOAD_ASSET_RAW(d_course_mario_raceway_dl_piranha_plant);
|
||||
break;
|
||||
}
|
||||
|
||||
gEditor.AddObject((FVector*) &actor->Pos, actor->Model, 1.0f, CollisionType::VTX_INTERSECT, 0.0f);
|
||||
// Skip C++ vtable to access variables in C
|
||||
return reinterpret_cast<struct Actor*>(reinterpret_cast<char*>(Actors.back()) + sizeof(void*));
|
||||
}
|
||||
|
||||
void World::AddEditorObject(Actor* actor) {
|
||||
if (actor->model != NULL) {
|
||||
gEditor.AddObject((FVector*) &actor->pos, (Gfx*)LOAD_ASSET_RAW(actor->model), 1.0f, CollisionType::VTX_INTERSECT, 0.0f);
|
||||
} else {
|
||||
gEditor.AddObject((FVector*) &actor->pos, NULL, 1.0f, CollisionType::VTX_INTERSECT, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a C struct Actor* to its C++ AActor class
|
||||
*/
|
||||
|
||||
+2
-1
@@ -48,7 +48,8 @@ public:
|
||||
void AddCourse(Course* course);
|
||||
|
||||
AActor* AddActor(AActor* actor);
|
||||
struct Actor* AddBaseActor(s16 actorType);
|
||||
struct Actor* AddBaseActor();
|
||||
void AddEditorObject(Actor* actor);
|
||||
AActor* GetActor(size_t index);
|
||||
|
||||
void TickActors();
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
#include <libultraship.h>
|
||||
#include "framebuffer_effects.h"
|
||||
#include "mk64.h"
|
||||
#include <assets/common_data.h>
|
||||
#include "port/Engine.h"
|
||||
#include "math_util.h"
|
||||
#include <stdio.h>
|
||||
|
||||
int gfx_create_framebuffer(uint32_t width, uint32_t height, uint32_t native_width, uint32_t native_height,
|
||||
uint8_t resize);
|
||||
|
||||
|
||||
s32 gColourIdFramebuffer = -1;
|
||||
|
||||
void CreateColourIdFramebuffer(void) {
|
||||
if (gColourIdFramebuffer == -1) {
|
||||
gColourIdFramebuffer = gfx_create_framebuffer(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT, true);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawAsColour() {
|
||||
|
||||
|
||||
}
|
||||
@@ -90,6 +90,6 @@ void Editor::AddObject(FVector* pos, Gfx* model, float scale, CollisionType coll
|
||||
eGameObjects.push_back({pos, model, {}, collision, boundingBoxSize});
|
||||
GenerateCollisionMesh(eGameObjects.back(), model, scale);
|
||||
} else { // to bounding box or sphere collision
|
||||
eGameObjects.push_back({pos, model, {}, CollisionType::BOUNDING_BOX, 2.0f});
|
||||
eGameObjects.push_back({pos, model, {}, CollisionType::BOUNDING_BOX, 22.0f});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,10 @@ void Gizmo::Load() {
|
||||
}
|
||||
|
||||
void Gizmo::Tick() {
|
||||
if (!Enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch(SelectedHandle) {
|
||||
case GizmoHandle::X_Axis:
|
||||
Gizmo::Translate();
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
{-5, 0, 0} // Z-Axis (Blue)
|
||||
};
|
||||
FVector _ray;
|
||||
GameObject* _selected;
|
||||
GameObject* _selected = nullptr;
|
||||
private:
|
||||
bool _draw = false;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ void ObjectPicker::SelectObject(std::vector<GameObject>& objects) {
|
||||
} else {
|
||||
//eGizmo.Disable();
|
||||
eGizmo.Enabled = false;
|
||||
eGizmo._selected = NULL;
|
||||
eGizmo._selected = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ void ObjectPicker::DragHandle() {
|
||||
}
|
||||
|
||||
void ObjectPicker::Draw() {
|
||||
if (_selected != nullptr) {
|
||||
if (_selected != NULL) {
|
||||
eGizmo.Draw();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user