Implement parts of LegoCarBuild and dependents (#1092)

* Implement parts of `LegoCarBuild` and dependents

* Fix BETA10 offset

* Fix constants

* Code style: Rename parameters

* Linter fixes v2

* Linter errors v3

* Add BETA10 variable names for presenters

* Address review comments

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2024-09-03 22:50:30 +02:00
committed by GitHub
parent 73938ac2ab
commit 2b14d3d6a5
19 changed files with 744 additions and 97 deletions

View File

@@ -56,6 +56,7 @@
#include "scripts.h"
#include "sndanim_actions.h"
#include <assert.h>
#include <stdio.h>
DECOMP_SIZE_ASSERT(LegoGameState::Username, 0x0e)
@@ -613,6 +614,7 @@ MxS16 LegoGameState::FindPlayer(Username& p_player)
}
// FUNCTION: LEGO1 0x1003a720
// FUNCTION: BETA10 0x10085211
void LegoGameState::StopArea(Area p_area)
{
if (p_area == e_previousArea) {
@@ -1031,6 +1033,7 @@ MxBool ROIHandlerFunction(const char* p_input, char* p_output, MxU32 p_copyLen)
}
// FUNCTION: LEGO1 0x1003bbb0
// FUNCTION: BETA10 0x10086280
LegoState* LegoGameState::GetState(const char* p_stateName)
{
for (MxS32 i = 0; i < m_stateCount; ++i) {
@@ -1042,12 +1045,16 @@ LegoState* LegoGameState::GetState(const char* p_stateName)
}
// FUNCTION: LEGO1 0x1003bc00
// FUNCTION: BETA10 0x100862fc
LegoState* LegoGameState::CreateState(const char* p_stateName)
{
LegoState* newState = (LegoState*) ObjectFactory()->Create(p_stateName);
RegisterState(newState);
// variable name verified by BETA10 0x10086341
LegoState* state = (LegoState*) ObjectFactory()->Create(p_stateName);
assert(state);
return newState;
RegisterState(state);
return state;
}
// FUNCTION: LEGO1 0x1003bc30