Merge branch 'helicopter' of https://github.com/tahg/isletahg into helicopter

This commit is contained in:
Christian Semmler 2023-12-14 11:47:39 -05:00
commit 4e9408e57e
12 changed files with 29 additions and 23 deletions

View File

@ -23,7 +23,7 @@ class Act2Brick : public LegoPathActor {
// FUNCTION: LEGO1 0x1007a370 // FUNCTION: LEGO1 0x1007a370
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10 inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{ {
return !strcmp(Act2Brick::ClassName(), p_name) || LegoEntity::IsA(p_name); return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
} }
}; };

View File

@ -281,7 +281,7 @@ void Helicopter::VTable0x74(Matrix4Impl& p_transform)
// FUNCTION: LEGO1 0x10003ee0 // FUNCTION: LEGO1 0x10003ee0
void Helicopter::VTable0x70(float p_float) void Helicopter::VTable0x70(float p_float)
{ {
int state = m_state->GetUnkown8(); MxU32 state = m_state->GetUnkown8();
switch (state) { switch (state) {
default: default:
LegoPathActor::VTable0x70(p_float); LegoPathActor::VTable0x70(p_float);

View File

@ -18,7 +18,7 @@ class HelicopterState : public LegoState {
// FUNCTION: LEGO1 0x1000e0e0 // FUNCTION: LEGO1 0x1000e0e0
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10 inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{ {
return !strcmp(p_name, ClassName()) || LegoState::IsA(p_name); return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
} }
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; } inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }

View File

@ -23,7 +23,7 @@ class LegoAnimationManager : public MxCore {
// FUNCTION: LEGO1 0x1005ec90 // FUNCTION: LEGO1 0x1005ec90
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10 inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{ {
return !strcmp(p_name, LegoAnimationManager::ClassName()) || MxCore::IsA(p_name); return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
} }
void FUN_1005f6d0(MxBool); void FUN_1005f6d0(MxBool);

View File

@ -22,11 +22,11 @@ class LegoCameraController : public MxCore {
// FUNCTION: LEGO1 0x10011ed0 // FUNCTION: LEGO1 0x10011ed0
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10 inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
{ {
return !strcmp(p_name, LegoCameraController::ClassName()) || MxCore::IsA(p_name); return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
} }
void LegoCameraController::LookAt(Vector3Impl& p_at, Vector3Impl& p_dir, Vector3Impl& p_up); void LookAt(Vector3Impl& p_at, Vector3Impl& p_dir, Vector3Impl& p_up);
void LegoCameraController::FUN_100123e0(Matrix4Data& p_transform, MxU32); void FUN_100123e0(Matrix4Data& p_transform, MxU32);
Vector3Data& FUN_10012740(); Vector3Data& FUN_10012740();
Vector3Data& FUN_100127f0(); Vector3Data& FUN_100127f0();
Vector3Data& FUN_100128a0(); Vector3Data& FUN_100128a0();

View File

@ -47,7 +47,7 @@ class LegoEntity : public MxEntity {
virtual void VTable0x44(); // vtable+0x44 virtual void VTable0x44(); // vtable+0x44
virtual void VTable0x48(); // vtable+0x48 virtual void VTable0x48(); // vtable+0x48
virtual void VTable0x4c(); // vtable+0x4c virtual void VTable0x4c(); // vtable+0x4c
void LegoEntity::FUN_10010c30(); void FUN_10010c30();
protected: protected:
void Init(); void Init();

View File

@ -40,6 +40,7 @@ void LegoROI::FUN_100a46b0(Matrix4Impl& p_transform)
{ {
} }
// STUB: LEGO1 0x100a58f0
void LegoROI::FUN_100a58f0(Matrix4Impl& p_transform) void LegoROI::FUN_100a58f0(Matrix4Impl& p_transform)
{ {
} }

View File

@ -121,5 +121,5 @@ void SetAppCursor(WPARAM p_wparam)
// STUB: LEGO1 0x1003ef60 // STUB: LEGO1 0x1003ef60
MxBool FUN_1003ef60() MxBool FUN_1003ef60()
{ {
return true; return TRUE;
} }

View File

@ -86,7 +86,7 @@ void LegoWorld::VTable0x54()
// TODO // TODO
} }
// FUNCTION: LEGO1 0x1001fc80 // STUB: LEGO1 0x1001fc80
void LegoWorld::FUN_1001fc80(IslePathActor* p_actor) void LegoWorld::FUN_1001fc80(IslePathActor* p_actor)
{ {
} }

View File

@ -17,7 +17,7 @@ class LegoWorld : public LegoEntity {
__declspec(dllexport) virtual ~LegoWorld(); // vtable+0x0 __declspec(dllexport) virtual ~LegoWorld(); // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4 virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
virtual MxResult Tickle(); // vtable+0x8 virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x1001d690 // FUNCTION: LEGO1 0x1001d690
inline virtual const char* ClassName() const override // vtable+0x0c inline virtual const char* ClassName() const override // vtable+0x0c

View File

@ -4,6 +4,8 @@
#include "matrix.h" #include "matrix.h"
#include "roi.h" #include "roi.h"
// VTABLE: LEGO1 0x100dbc08
// SIZE 0xdc
class OrientableROI : public ROI { class OrientableROI : public ROI {
public: public:
// FUNCTION: LEGO1 0x100a4420 // FUNCTION: LEGO1 0x100a4420
@ -17,9 +19,10 @@ class OrientableROI : public ROI {
IDENTMAT4(m_local2world.GetMatrix()); IDENTMAT4(m_local2world.GetMatrix());
} }
virtual const Vector3& GetWorldVelocity() const; // vtable+0x8 virtual const Vector3& GetWorldVelocity() const override; // vtable+0x8
virtual const BoundingBox& GetWorldBoundingBox() const; // vtable+0xc virtual const BoundingBox& GetWorldBoundingBox() const override; // vtable+0xc
virtual const BoundingSphere& GetWorldBoundingSphere() const; // vtable+0x10 virtual const BoundingSphere& GetWorldBoundingSphere() const override; // vtable+0x10
// FUNCTION: LEGO1 0x100a5db0
virtual void VTable0x14() { VTable0x1c(); } // vtable+0x14 virtual void VTable0x14() { VTable0x1c(); } // vtable+0x14
virtual void UpdateWorldBoundingVolumes() = 0; // vtable+0x18 virtual void UpdateWorldBoundingVolumes() = 0; // vtable+0x18
virtual void VTable0x1c(); // vtable+0x1c virtual void VTable0x1c(); // vtable+0x1c

View File

@ -49,9 +49,9 @@ class LODObject {
public: public:
// LODObject(); // LODObject();
virtual ~LODObject() {} virtual ~LODObject() {}
virtual float Cost(float pixels_covered) const = 0; virtual float Cost(float pixels_covered) const = 0; // vtable+0x4
virtual float AveragePolyArea() const = 0; virtual float AveragePolyArea() const = 0; // vtable+0x8
virtual int NVerts() const = 0; virtual int NVerts() const = 0; // vtable+0xc
}; };
/* /*
@ -73,6 +73,8 @@ typedef vector<const ROI*> ROIList;
*/ */
typedef vector<int> IntList; typedef vector<int> IntList;
// VTABLE: LEGO1 0x100dbc38
// SIZE 0xc
class ROI { class ROI {
public: public:
ROI() ROI()
@ -86,10 +88,10 @@ class ROI {
assert(!m_comp); assert(!m_comp);
assert(!m_lods); assert(!m_lods);
} }
virtual float IntrinsicImportance() const = 0; virtual float IntrinsicImportance() const = 0; // vtable+0x4
virtual const Vector3& GetWorldVelocity() const = 0; virtual const Vector3& GetWorldVelocity() const = 0; // vtable+0x8
virtual const BoundingBox& GetWorldBoundingBox() const = 0; virtual const BoundingBox& GetWorldBoundingBox() const = 0; // vtable+0xc
virtual const BoundingSphere& GetWorldBoundingSphere() const = 0; virtual const BoundingSphere& GetWorldBoundingSphere() const = 0; // vtable+0x10
const LODListBase* GetLODs() const { return m_lods; } const LODListBase* GetLODs() const { return m_lods; }
const LODObject* GetLOD(int i) const const LODObject* GetLOD(int i) const
@ -101,7 +103,7 @@ class ROI {
const CompoundObject* GetComp() const { return m_comp; } const CompoundObject* GetComp() const { return m_comp; }
protected: protected:
CompoundObject* m_comp; CompoundObject* m_comp; // 0x4
LODListBase* m_lods; LODListBase* m_lods; // 0x8
}; };
#endif // ROI_H #endif // ROI_H