Add missing annotations, STUB LegoPathBoundary

This commit is contained in:
Christian Semmler 2024-03-26 13:37:08 -04:00
parent b781d1b6b8
commit 528d647b79
5 changed files with 20 additions and 7 deletions

View File

@ -9,11 +9,15 @@ struct LegoPathBoundaryComparator {
MxBool operator()(const undefined*, const undefined*) const { return 0; }
};
// VTABLE: LEGO1 0x100d8618
// SIZE 0x74
class LegoPathBoundary : public LegoWEGEdge {
public:
LegoPathBoundary();
// STUB: LEGO1 0x10047a80
// LegoPathBoundary::`scalar deleting destructor'
private:
map<undefined*, undefined*, LegoPathBoundaryComparator> m_unk0x54; // 0x54
map<undefined*, undefined*, LegoPathBoundaryComparator> m_unk0x64; // 0x64

View File

@ -136,6 +136,7 @@ MxResult LegoAnimActor::FUN_1001c360(float p_und, Matrix4& p_transform)
MxResult LegoAnimActor::FUN_1001c450(LegoAnim* p_animTreePtr, float p_unk0x00, LegoROI** p_roiMap, MxU32 p_numROIs)
{
LegoAnimActorStruct* laas = new LegoAnimActorStruct(p_unk0x00, p_animTreePtr, p_roiMap, p_numROIs);
for (vector<LegoAnimActorStruct*>::iterator it = m_animMaps.begin(); it != m_animMaps.end(); it++) {
if (p_unk0x00 < (*it)->m_unk0x00) {
m_animMaps.insert(it, laas);
@ -143,6 +144,7 @@ MxResult LegoAnimActor::FUN_1001c450(LegoAnim* p_animTreePtr, float p_unk0x00, L
return SUCCESS;
}
}
m_animMaps.push_back(laas);
SetWorldSpeed(m_worldSpeed);
return SUCCESS;
@ -154,6 +156,7 @@ void LegoAnimActor::ClearMaps()
for (MxU32 i = 0; i < m_animMaps.size(); i++) {
delete m_animMaps[i];
}
m_animMaps.clear();
m_curAnim = -1;
}
@ -189,19 +192,25 @@ void LegoAnimActor::SetWorldSpeed(MxFloat p_worldSpeed)
void LegoAnimActor::ParseAction(char* p_extra)
{
LegoPathActor::ParseAction(p_extra);
LegoWorld* world = CurrentWorld();
char value[0x100];
char value[256];
if (world) {
if (KeyValueStringParse(value, g_strANIMATION, p_extra)) {
char* token = strtok(value, g_parseExtraTokens);
while (token) {
LegoAnimPresenter* p = (LegoAnimPresenter*) world->Find("LegoAnimPresenter", token);
if (p) {
LegoAnimPresenter* presenter = (LegoAnimPresenter*) world->Find("LegoAnimPresenter", token);
if (presenter != NULL) {
token = strtok(NULL, g_parseExtraTokens);
if (token) {
p->FUN_1006d680(this, atof(token));
presenter->FUN_1006d680(this, atof(token));
}
}
token = strtok(NULL, g_parseExtraTokens);
}
}

View File

@ -4,7 +4,7 @@
DECOMP_SIZE_ASSERT(LegoPathBoundary, 0x74)
// FUNCTION: LEGO1 0x10056a70
// STUB: LEGO1 0x10056a70
LegoPathBoundary::LegoPathBoundary()
{
}

View File

@ -408,7 +408,7 @@ LegoResult LegoROI::FUN_100a8da0(LegoTreeNode* p_node, const Matrix4& p_matrix,
}
// STUB: LEGO1 0x100a8e80
void LegoROI::FUN_100a8e80(LegoTreeNode*, Matrix4&, LegoS32, LegoROI**)
void LegoROI::FUN_100a8e80(LegoTreeNode*, Matrix4&, LegoTime, LegoROI**)
{
// TODO
}

View File

@ -32,7 +32,7 @@ class LegoROI : public ViewROI {
);
LegoROI* FUN_100a8ce0(const LegoChar* p_name, LegoROI* p_roi);
LegoResult FUN_100a8da0(LegoTreeNode* p_node, const Matrix4& p_matrix, LegoTime p_time, LegoROI* p_roi);
static void FUN_100a8e80(LegoTreeNode*, Matrix4&, LegoS32, LegoROI**);
static void FUN_100a8e80(LegoTreeNode*, Matrix4&, LegoTime, LegoROI**);
LegoResult SetFrame(LegoAnim* p_anim, LegoTime p_time);
LegoResult FUN_100a9170(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
LegoResult FUN_100a9210(LegoTextureInfo* p_textureInfo);