summaryrefslogtreecommitdiff
path: root/src/engine/editor/Editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/editor/Editor.cpp')
-rw-r--r--src/engine/editor/Editor.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/engine/editor/Editor.cpp b/src/engine/editor/Editor.cpp
index 87bca2a82..d8eeecda9 100644
--- a/src/engine/editor/Editor.cpp
+++ b/src/engine/editor/Editor.cpp
@@ -40,7 +40,7 @@ namespace TrackEditor {
printf("Editor: Loading Editor...\n");
eObjectPicker.Load();
for (auto& object : eGameObjects) {
- GenerateCollisionMesh(object, (Gfx*)object->Model, 1.0f);
+ GenerateCollisionMesh(object.get(), (Gfx*)object->Model, 1.0f);
object->Load();
}
@@ -150,7 +150,11 @@ namespace TrackEditor {
eObjectPicker.eGizmo.SelectedHandle = Gizmo::GizmoHandle::None;
eObjectPicker.eGizmo.ManipulationStart = true;
if (!isDragging) {
- eObjectPicker.SelectObject(eGameObjects);
+ std::vector<GameObject*> objects;
+ for (auto& object : eGameObjects) {
+ objects.push_back(object.get());
+ }
+ eObjectPicker.SelectObject(objects);
}
}
@@ -178,25 +182,22 @@ namespace TrackEditor {
// pos->x, pos->y, pos->z, name, model);
if (nullptr != model && model[0] != '\0') {
- eGameObjects.push_back(new GameObject(pos, rot, scale, model, {}, collision, boundingBoxSize));
- GenerateCollisionMesh(eGameObjects.back(), (Gfx*)LOAD_ASSET_RAW(model), collScale);
+ eGameObjects.push_back(std::make_unique<GameObject>(pos, rot, scale, model, std::vector<Triangle>(), collision, boundingBoxSize));
+ GenerateCollisionMesh(eGameObjects.back().get(), (Gfx*)LOAD_ASSET_RAW(model), collScale);
} else { // to bounding box or sphere collision
- eGameObjects.push_back(new GameObject(pos, rot, scale, model, {}, GameObject::CollisionType::BOUNDING_BOX,
+ eGameObjects.push_back(std::make_unique<GameObject>(pos, rot, scale, model, std::vector<Triangle>(), GameObject::CollisionType::BOUNDING_BOX,
10.0f));
}
- return eGameObjects.back();
+ return eGameObjects.back().get();
}
void Editor::AddLight(const char* name, FVector* pos, s8* rot) {
- eGameObjects.push_back(new LightObject(name, pos, rot));
+ eGameObjects.push_back(std::make_unique<LightObject>(name, pos, rot));
}
void Editor::ClearObjects() {
ResetGizmo();
- for (auto& obj : eGameObjects) {
- delete obj;
- }
eGameObjects.clear();
}