Beta functions for MxVariable (#1645)

* Beta match MxVariable classes

* CustomizeAnimFileVariable
This commit is contained in:
MS
2025-07-20 23:08:26 -04:00
committed by GitHub
parent 4edd8d1214
commit b1dcc26d79
7 changed files with 56 additions and 5 deletions

View File

@@ -46,6 +46,7 @@ struct LegoActorInfo;
typedef map<char*, LegoCharacter*, LegoCharacterComparator> LegoCharacterMap;
// VTABLE: LEGO1 0x100da878
// VTABLE: BETA10 0x101bc028
// SIZE 0x24
class CustomizeAnimFileVariable : public MxVariable {
public:

View File

@@ -23,6 +23,7 @@ struct ColorStringStruct {
};
// VTABLE: LEGO1 0x100d74a8
// VTABLE: BETA10 0x101bc4f0
// SIZE 0x30
class LegoBackgroundColor : public MxVariable {
public:
@@ -43,9 +44,11 @@ private:
};
// VTABLE: LEGO1 0x100d74b8
// VTABLE: BETA10 0x101bc500
// SIZE 0x24
class LegoFullScreenMovie : public MxVariable {
public:
LegoFullScreenMovie();
LegoFullScreenMovie(const char* p_key, const char* p_value);
void SetValue(const char* p_option) override; // vtable+0x04

View File

@@ -17,41 +17,60 @@ extern const char* g_varVISIBILITY;
extern const char* g_varCAMERALOCATION;
extern const char* g_varCURSOR;
extern const char* g_varWHOAMI;
extern const char* g_varDEBUG;
// VTABLE: LEGO1 0x100d86c8
// VTABLE: BETA10 0x101bc980
// SIZE 0x24
class VisibilityVariable : public MxVariable {
public:
// FUNCTION: BETA10 0x10093470
VisibilityVariable() { m_key = g_varVISIBILITY; }
void SetValue(const char* p_value) override; // vtable+0x04
};
// VTABLE: LEGO1 0x100d86b8
// VTABLE: BETA10 0x101bc990
// SIZE 0x24
class CameraLocationVariable : public MxVariable {
public:
// FUNCTION: BETA10 0x10093510
CameraLocationVariable() { m_key = g_varCAMERALOCATION; }
void SetValue(const char* p_value) override; // vtable+0x04
};
// VTABLE: LEGO1 0x100d86a8
// VTABLE: BETA10 0x101bc9a0
// SIZE 0x24
class CursorVariable : public MxVariable {
public:
// FUNCTION: BETA10 0x100935b0
CursorVariable() { m_key = g_varCURSOR; }
void SetValue(const char* p_value) override; // vtable+0x04
};
// VTABLE: LEGO1 0x100d8698
// VTABLE: BETA10 0x101bc9b0
// SIZE 0x24
class WhoAmIVariable : public MxVariable {
public:
// FUNCTION: BETA10 0x10093650
WhoAmIVariable() { m_key = g_varWHOAMI; }
void SetValue(const char* p_value) override; // vtable+0x04
};
// VTABLE: BETA10 0x101bc9c0
// SIZE 0x24
class DebugVariable : public MxVariable {
public:
// FUNCTION: BETA10 0x100936f0
DebugVariable() { m_key = g_varDEBUG; }
void SetValue(const char* p_value) override; // vtable+0x04
};
#endif // LEGOVARIABLES_H

View File

@@ -1090,6 +1090,7 @@ LegoROI* LegoCharacterManager::FUN_10085a80(const char* p_name, const char* p_lo
}
// FUNCTION: LEGO1 0x10085aa0
// FUNCTION: BETA10 0x1007703d
CustomizeAnimFileVariable::CustomizeAnimFileVariable(const char* p_key)
{
m_key = p_key;
@@ -1097,6 +1098,7 @@ CustomizeAnimFileVariable::CustomizeAnimFileVariable(const char* p_key)
}
// FUNCTION: LEGO1 0x10085b50
// FUNCTION: BETA10 0x100770c8
void CustomizeAnimFileVariable::SetValue(const char* p_value)
{
// STRING: LEGO1 0x100fc4f4

View File

@@ -1334,6 +1334,11 @@ void LegoBackgroundColor::SetLightColor()
SetLightColor(convertedR, convertedG, convertedB);
}
// FUNCTION: BETA10 0x10086a87
LegoFullScreenMovie::LegoFullScreenMovie()
{
}
// FUNCTION: LEGO1 0x1003c500
// FUNCTION: BETA10 0x10086af6
LegoFullScreenMovie::LegoFullScreenMovie(const char* p_key, const char* p_value)

View File

@@ -6,6 +6,7 @@
#include "legonavcontroller.h"
#include "legovideomanager.h"
#include "misc.h"
#include "mxdebug.h"
#include "roi/legoroi.h"
DECOMP_SIZE_ASSERT(VisibilityVariable, 0x24)
@@ -101,6 +102,10 @@ const char* g_nick = "Nick";
// STRING: LEGO1 0x100f39e0
const char* g_laura = "Laura";
// GLOBAL: BETA10 0x101f6ce4
// STRING: BETA10 0x101f6d54
const char* g_varDEBUG = "DEBUG";
// FUNCTION: LEGO1 0x10037d00
// FUNCTION: BETA10 0x100d5620
void VisibilityVariable::SetValue(const char* p_value)
@@ -130,6 +135,7 @@ void VisibilityVariable::SetValue(const char* p_value)
}
// FUNCTION: LEGO1 0x10037d80
// FUNCTION: BETA10 0x100d56ee
void CameraLocationVariable::SetValue(const char* p_value)
{
char buffer[256];
@@ -137,22 +143,25 @@ void CameraLocationVariable::SetValue(const char* p_value)
strcpy(buffer, p_value);
char* location = strtok(buffer, ",");
NavController()->UpdateLocation(location);
char* token = strtok(buffer, ",");
assert(token);
NavController()->UpdateLocation(token);
location = strtok(NULL, ",");
if (location) {
MxFloat pov = (MxFloat) atof(location);
token = strtok(NULL, ",");
if (token) {
MxFloat pov = (MxFloat) atof(token);
VideoManager()->Get3DManager()->SetFrustrum(pov, 0.1f, 250.0f);
}
}
// FUNCTION: LEGO1 0x10037e30
// FUNCTION: BETA10 0x100d57e2
void CursorVariable::SetValue(const char* p_value)
{
}
// FUNCTION: LEGO1 0x10037e40
// FUNCTION: BETA10 0x100d57fa
void WhoAmIVariable::SetValue(const char* p_value)
{
MxVariable::SetValue(p_value);
@@ -173,3 +182,10 @@ void WhoAmIVariable::SetValue(const char* p_value)
GameState()->SetActorId(LegoActor::c_laura);
}
}
// FUNCTION: BETA10 0x100d58fa
void DebugVariable::SetValue(const char* p_value)
{
MxVariable::SetValue(p_value);
MxTrace("%s\n", p_value);
}

View File

@@ -9,6 +9,7 @@
// SIZE 0x24
class MxVariable {
public:
// FUNCTION: BETA10 0x1007b750
MxVariable() {}
// FUNCTION: BETA10 0x1012a840
@@ -41,12 +42,16 @@ public:
// FUNCTION: BETA10 0x1012a7f0
const MxString* GetKey() const { return &m_key; }
// SYNTHETIC: BETA10 0x1007b8c0
// MxVariable::`scalar deleting destructor'
protected:
MxString m_key; // 0x04
MxString m_value; // 0x14
};
// SYNTHETIC: LEGO1 0x1003bf40
// SYNTHETIC: BETA10 0x1007b910
// MxVariable::~MxVariable
#endif // MXVARIABLE_H