Implement most of LegoCameraController (#419)

* Implement LegoCameraController subclasses

* Update legopovcontroller.cpp

* fixes

* Update legocameracontroller.cpp

* fix naming conventions

* Update legopointofviewcontroller.h

* Update legopointofviewcontroller.h

* Fixes

* Match LegoPointOfViewController::Create

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2024-01-09 04:43:21 -05:00
committed by GitHub
parent 58ea45f4cc
commit 58085df6b0
12 changed files with 373 additions and 54 deletions

View File

@@ -1,17 +1,21 @@
#ifndef LEGOCAMERACONTROLLER_H
#define LEGOCAMERACONTROLLER_H
#include "legopointofviewcontroller.h"
#include "mxcore.h"
#include "mxpoint32.h"
#include "realtime/matrix.h"
#include "realtime/vector.h"
// VTABLE: LEGO1 0x100d57b0
// SIZE 0xc8
class LegoCameraController : public MxCore {
class LegoCameraController : public LegoPointOfViewController {
public:
LegoCameraController();
virtual ~LegoCameraController() override; // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+04
// FUNCTION: LEGO1 0x10011ec0
inline virtual const char* ClassName() const override // vtable+0x0c
{
@@ -25,11 +29,22 @@ public:
return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
}
void LookAt(Vector3Impl& p_at, Vector3Impl& p_dir, Vector3Impl& p_up);
virtual void OnLButtonDown(MxPoint32 p_point) override; // vtable+0x30
virtual void OnLButtonUp(MxPoint32 p_point) override; // vtable+0x34
virtual void OnRButtonDown(MxPoint32 p_point) override; // vtable+0x38
virtual void OnRButtonUp(MxPoint32 p_point) override; // vtable+0x3c
virtual void OnMouseMove(MxU8 p_modifier, MxPoint32 p_point) override; // vtable+0x40
virtual MxResult Create(); // vtable+0x44
void SetWorldTransform(Vector3Impl& p_at, Vector3Impl& p_dir, Vector3Impl& p_up);
void FUN_100123e0(Matrix4Data& p_transform, MxU32);
Vector3Data& FUN_10012740();
Vector3Data& FUN_100127f0();
Vector3Data& FUN_100128a0();
private:
Matrix4Data m_matrix1; // 0x38
Matrix4Data m_matrix2; // 0x80
};
#endif // LEGOCAMERACONTROLLER_H