From b934e98fc34964970ab5efacb2fb7c3372ae0b1a Mon Sep 17 00:00:00 2001 From: MegaMech Date: Sat, 13 Dec 2025 11:50:28 -0700 Subject: Refactor Track Class To Instantiate On Track Load (#587) * Initial Commit * First compilation of Registry template * Further changes * wip changes * Impl TrackBrowser and Registry Info * Remove const from TInfo * Prep GetWorld * Name refactor * Refactor gWorldInstance to GetWorld() * wip * Should work now * Data menu work again * Fix editor staying open after program close * Rename LoadLevel to LoadTrackDataFromJson * More changes * Add statue * Add search to content browser using tags * Fix statue pos and register tags * Fix actor loading * Fix delete all bug which deleted cameras * reduce some boiler plate in actor and object * Remove unused rulesets * Search bar for all tabs * fix data screen * fix actor spawning * temp editor fix * Clean up * improve extra mode transformation * fix podium crash * Fix editor clicking * Fix editor clicking 2 * fix extra in custom track * Fix FI for three actors * Fix divide by zero error * Ids managed by Registry * Add scary comment --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> Co-authored-by: coco875 --- src/engine/editor/ObjectPicker.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/engine/editor/ObjectPicker.cpp') diff --git a/src/engine/editor/ObjectPicker.cpp b/src/engine/editor/ObjectPicker.cpp index 0d88db35c..cbce7dd09 100644 --- a/src/engine/editor/ObjectPicker.cpp +++ b/src/engine/editor/ObjectPicker.cpp @@ -35,7 +35,7 @@ void ObjectPicker::Tick() { } void ObjectPicker::SelectObject(std::vector objects) { - Camera* camera = gEditor.eCamera; + Camera* camera = gScreenOneCtx->camera; Ray ray; ray.Origin = FVector(camera->pos[0], camera->pos[1], camera->pos[2]); @@ -59,7 +59,7 @@ void ObjectPicker::SelectObject(std::vector objects) { } void ObjectPicker::DragHandle() { - Camera* camera = gEditor.eCamera; + Camera* camera = gScreenOneCtx->camera; Ray ray; ray.Origin = FVector(camera->pos[0], camera->pos[1], camera->pos[2]); ray.Direction = ScreenRayTrace(); @@ -136,7 +136,7 @@ void ObjectPicker::Draw() { }, _selected); if (Debug) { - Camera* camera = gEditor.eCamera; + Camera* camera = gScreenOneCtx->camera; Mat4 CursorMtx; IRotator rot = IRotator(0,0,0); FVector scale = FVector(1, 1, 1); @@ -249,7 +249,7 @@ std::pair ObjectPicker::CheckAActorRay(Ray ray) { AActor* hitActor = nullptr; float hitDistance = FLT_MAX; - for (auto actor : gWorldInstance.Actors) { + for (const auto& actor : GetWorld()->Actors) { if ((actor->bPendingDestroy) && (!actor->IsMod())) { continue; } @@ -265,7 +265,7 @@ std::pair ObjectPicker::CheckAActorRay(Ray ray) { if (IntersectRayTriangleAndTransform(ray, FVector(actor->Pos[0], actor->Pos[1], actor->Pos[2]), tri, t)) { if (t < hitDistance) { hitDistance = t; - hitActor = static_cast(actor); + hitActor = actor.get(); } } } @@ -283,7 +283,7 @@ std::pair ObjectPicker::CheckAActorRay(Ray ray) { if (QueryCollisionRayActor(&ray.Origin.x, &ray.Direction.x, boxMin, boxMax, &t)) { if (t < hitDistance) { hitDistance = t; - hitActor = static_cast(actor); + hitActor = actor.get(); } } } -- cgit v1.2.3