Skip to content

Commit

Permalink
Order symbols until end of LegoOmni (#1371)
Browse files Browse the repository at this point in the history
* Order

* Improve

* Move function

* Order until end of LegoOmni

* Remove header
  • Loading branch information
foxtacles authored Jan 22, 2025
1 parent 4db8b44 commit 49cb120
Show file tree
Hide file tree
Showing 9 changed files with 346 additions and 364 deletions.
5 changes: 2 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -387,20 +387,19 @@ function(add_lego_libraries NAME)
LEGO1/lego/legoomni/src/entity/legoactorpresenter.cpp
LEGO1/lego/legoomni/src/worlds/registrationbook.cpp
LEGO1/lego/legoomni/src/build/legocarbuildpresenter.cpp
LEGO1/lego/legoomni/src/entity/legojetskiraceactor.cpp
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
LEGO1/lego/legoomni/src/video/legopalettepresenter.cpp
LEGO1/lego/legoomni/src/entity/act2brick.cpp
LEGO1/lego/legoomni/src/video/legovideomanager.cpp
LEGO1/lego/legoomni/src/video/legopartpresenter.cpp
LEGO1/lego/legoomni/src/actors/jetski.cpp
LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp
LEGO1/lego/legoomni/src/video/legomodelpresenter.cpp
LEGO1/lego/legoomni/src/race/legoracespecial.cpp
LEGO1/lego/legoomni/src/worlds/historybook.cpp
LEGO1/lego/legoomni/src/common/legocharactermanager.cpp
LEGO1/lego/legoomni/src/actors/jukeboxentity.cpp
LEGO1/main.cpp
# We need to get rid of / refactor the below units into existing/other ones
LEGO1/main.cpp
LEGO1/lego/legoomni/src/entity/legolocations.cpp
LEGO1/lego/legoomni/src/notify/legoeventnotificationparam.cpp
LEGO1/lego/legoomni/src/common/legoactors.cpp
Expand Down
103 changes: 0 additions & 103 deletions LEGO1/lego/legoomni/include/legoextraactor.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#define LEGOEXTRAACTOR_H

#include "legoanimactor.h"
#include "legopathboundary.h"

// VTABLE: LEGO1 0x100d6c00 LegoAnimActor
// VTABLE: LEGO1 0x100d6c10 LegoPathActor
Expand Down Expand Up @@ -78,108 +77,6 @@ class LegoExtraActor : public virtual LegoAnimActor {
LegoAnimActorStruct* m_disAnim; // 0x64
};

// FUNCTION: LEGO1 0x1002b980
inline MxU32 LegoExtraActor::VTable0x6c(
LegoPathBoundary* p_boundary,
Vector3& p_v1,
Vector3& p_v2,
float p_f1,
float p_f2,
Vector3& p_v3
)
{
LegoAnimPresenterSet& presenters = p_boundary->GetPresenters();

for (LegoAnimPresenterSet::iterator itap = presenters.begin(); itap != presenters.end(); itap++) {
if ((*itap)->VTable0x94(p_v1, p_v2, p_f1, p_f2, p_v3)) {
return 1;
}
}

LegoPathActorSet& plpas = p_boundary->GetActors();
LegoPathActorSet lpas(plpas);

for (LegoPathActorSet::iterator itpa = lpas.begin(); itpa != lpas.end(); itpa++) {
if (plpas.find(*itpa) != plpas.end()) {
LegoPathActor* actor = *itpa;

if (this != actor && !(actor->GetActorState() & LegoPathActor::c_noCollide)) {
LegoROI* roi = actor->GetROI();

if ((roi != NULL && roi->GetVisibility()) || actor->GetCameraFlag()) {
if (actor->GetUserNavFlag()) {
MxMatrix local2world = roi->GetLocal2World();
Vector3 local60(local2world[3]);
Mx3DPointFloat local54(p_v1);

local54 -= local60;
float local1c = p_v2.Dot(p_v2, p_v2);
float local24 = p_v2.Dot(p_v2, local54) * 2.0f;
float local20 = local54.Dot(local54, local54);

if (m_unk0x15 != 0 && local20 < 10.0f) {
return 0;
}

local20 -= 1.0f;

if (local1c >= 0.001 || local1c <= -0.001) {
float local40 = (local24 * local24) + (local20 * local1c * -4.0f);

if (local40 >= -0.001) {
local1c *= 2.0f;
local24 = -local24;

if (local40 < 0.0f) {
local40 = 0.0f;
}

local40 = sqrt(local40);
float local20X = (local24 + local40) / local1c;
float local1cX = (local24 - local40) / local1c;

if (local1cX < local20X) {
local40 = local20X;
local20X = local1cX;
local1cX = local40;
}

if ((local20X >= 0.0f && local20X <= p_f1) || (local1cX >= 0.0f && local1cX <= p_f1) ||
(local20X <= -0.01 && p_f1 + 0.01 <= local1cX)) {
p_v3 = p_v1;

if (HitActor(actor, TRUE) < 0) {
return 0;
}

actor->HitActor(this, FALSE);
return 2;
}
}
}
}
else {
if (roi->FUN_100a9410(p_v1, p_v2, p_f1, p_f2, p_v3, m_collideBox && actor->GetCollideBox())) {
if (HitActor(actor, TRUE) < 0) {
return 0;
}

actor->HitActor(this, FALSE);
return 2;
}
}
}
}
}
}

if (m_unk0x15 != 0) {
m_unk0x15--;
}

return 0;
}

// GLOBAL: LEGO1 0x100d6be8
// LegoExtraActor::`vbtable'{for `LegoAnimActor'}

Expand Down
67 changes: 0 additions & 67 deletions LEGO1/lego/legoomni/include/legojetskiraceactor.h

This file was deleted.

5 changes: 3 additions & 2 deletions LEGO1/lego/legoomni/include/legoracers.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#ifndef LEGORACERS_H
#define LEGORACERS_H

#include "legojetskiraceactor.h"
#include "legoracemap.h"
// clang-format off
#include "legoracespecial.h"
// clang-format on
#include "legoracemap.h"

#define LEGORACECAR_UNKNOWN_0 0
#define LEGORACECAR_UNKNOWN_1 1
Expand Down
63 changes: 62 additions & 1 deletion LEGO1/lego/legoomni/include/legoracespecial.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class LegoCarRaceActor : public virtual LegoRaceActor {
return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoRaceActor::IsA(p_name);
}

MxU32 VTable0x6c(
inline MxU32 VTable0x6c(
LegoPathBoundary* p_boundary,
Vector3& p_v1,
Vector3& p_v2,
Expand Down Expand Up @@ -99,6 +99,55 @@ class LegoCarRaceActor : public virtual LegoRaceActor {
static MxFloat g_unk0x100f7aec;
};

// VTABLE: LEGO1 0x100da208 LegoCarRaceActor
// VTABLE: LEGO1 0x100da228 LegoRaceActor
// VTABLE: LEGO1 0x100da230 LegoAnimActor
// VTABLE: LEGO1 0x100da240 LegoPathActor
// VTABLE: BETA10 0x101bd348 LegoCarRaceActor
// VTABLE: BETA10 0x101bd370 LegoRaceActor
// VTABLE: BETA10 0x101bd378 LegoAnimActor
// VTABLE: BETA10 0x101bd390 LegoPathActor
// SIZE 0x1a8
class LegoJetskiRaceActor : public virtual LegoCarRaceActor {
public:
LegoJetskiRaceActor();

// FUNCTION: LEGO1 0x10081d90
// FUNCTION: BETA10 0x100aa920
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f0554
return "LegoJetskiRaceActor";
}

// FUNCTION: LEGO1 0x10081db0
// FUNCTION: BETA10 0x100aa960
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, LegoJetskiRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
}

inline MxU32 VTable0x6c(
LegoPathBoundary* p_boundary,
Vector3& p_v1,
Vector3& p_v2,
float p_f1,
float p_f2,
Vector3& p_v3
) override; // vtable+0x6c
void Animate(float p_time) override; // vtable+0x70
MxS32 VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_edge) override; // vtable+0x1c

// SYNTHETIC: LEGO1 0x10013a80
// LegoJetskiRaceActor::`vbase destructor'

// SYNTHETIC: LEGO1 0x10081d50
// LegoJetskiRaceActor::`scalar deleting destructor'

// SYNTHETIC: LEGO1 0x10013ba0
// LegoJetskiRaceActor::~LegoJetskiRaceActor
};

// GLOBAL: LEGO1 0x100da0b0
// LegoCarRaceActor::`vbtable'

Expand All @@ -108,4 +157,16 @@ class LegoCarRaceActor : public virtual LegoRaceActor {
// GLOBAL: LEGO1 0x100da098
// LegoCarRaceActor::`vbtable'{for `LegoRaceActor'}

// GLOBAL: LEGO1 0x100da1f0
// LegoJetskiRaceActor::`vbtable'{for `LegoJetskiRaceActor'}

// GLOBAL: LEGO1 0x100da1e8
// LegoJetskiRaceActor::`vbtable'{for `LegoAnimActor'}

// GLOBAL: LEGO1 0x100da1d8
// LegoJetskiRaceActor::`vbtable'{for `LegoRaceActor'}

// GLOBAL: LEGO1 0x100da1c8
// LegoJetskiRaceActor::`vbtable'{for `LegoCarRaceActor'}

#endif // LEGOCARRACEACTOR_H
1 change: 0 additions & 1 deletion LEGO1/lego/legoomni/src/common/legoobjectfactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@
#include "legoentitypresenter.h"
#include "legoflctexturepresenter.h"
#include "legohideanimpresenter.h"
#include "legojetskiraceactor.h"
#include "legoloadcachesoundpresenter.h"
#include "legolocomotionanimpresenter.h"
#include "legoloopinganimpresenter.h"
Expand Down
Loading

0 comments on commit 49cb120

Please sign in to comment.