mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Checkorder tool to keep functions in original binary order (#228)
* First commit of order tool * More flexible match on module name. Bugfix on blank_or_comment * Report inexact offset comments in verbose mode. Bugfix for exact regex * Refactor checkorder into reusable isledecomp module * Find bad comments in one pass, add awareness of TEMPLATE * Refactor of state machine to prepare for reccmp integration * Use isledecomp lib in reccmp * Build isledecomp in GH actions, fix mypy complaint * Ensure unit test cpp files will be ignored by reccmp * Allow multiple offset markers, pep8 cleanup * Remove unused variable * Code style, remove unneeded module and TODO * Final renaming and type hints * Fix checkorder issues, add GH action and enforce (#2) * Fix checkorder issues * Add GH action * Test error case * Works * Fixes --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
@@ -22,6 +22,12 @@ Score::Score()
|
||||
NotificationManager()->Register(this);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100010b0
|
||||
MxBool Score::VTable0x5c()
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10001200
|
||||
Score::~Score()
|
||||
{
|
||||
@@ -32,6 +38,39 @@ Score::~Score()
|
||||
NotificationManager()->Unregister(this);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100012a0
|
||||
MxResult Score::Create(MxDSObject& p_dsObject)
|
||||
{
|
||||
MxResult result = SetAsCurrentWorld(p_dsObject);
|
||||
|
||||
if (result == SUCCESS) {
|
||||
InputManager()->SetWorld(this);
|
||||
ControlManager()->Register(this);
|
||||
InputManager()->Register(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
LegoGameState* gs = GameState();
|
||||
ScoreState* state = (ScoreState*) gs->GetState("ScoreState");
|
||||
m_state = state ? state : (ScoreState*) gs->CreateState("ScoreState");
|
||||
GameState()->SetUnknown424(0xd);
|
||||
GameState()->FUN_1003a720(0);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10001340
|
||||
void Score::DeleteScript()
|
||||
{
|
||||
if (m_state->GetTutorialFlag()) {
|
||||
MxDSAction action;
|
||||
action.SetObjectId(0x1f5);
|
||||
action.SetAtomId(*g_infoscorScript);
|
||||
action.SetUnknown24(-2);
|
||||
DeleteObject(action);
|
||||
m_state->SetTutorialFlag(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10001410
|
||||
MxLong Score::Notify(MxParam& p)
|
||||
{
|
||||
@@ -67,45 +106,6 @@ MxLong Score::Notify(MxParam& p)
|
||||
return ret;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100010b0
|
||||
MxBool Score::VTable0x5c()
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100012a0
|
||||
MxResult Score::Create(MxDSObject& p_dsObject)
|
||||
{
|
||||
MxResult result = SetAsCurrentWorld(p_dsObject);
|
||||
|
||||
if (result == SUCCESS) {
|
||||
InputManager()->SetWorld(this);
|
||||
ControlManager()->Register(this);
|
||||
InputManager()->Register(this);
|
||||
SetIsWorldActive(FALSE);
|
||||
LegoGameState* gs = GameState();
|
||||
ScoreState* state = (ScoreState*) gs->GetState("ScoreState");
|
||||
m_state = state ? state : (ScoreState*) gs->CreateState("ScoreState");
|
||||
GameState()->SetUnknown424(0xd);
|
||||
GameState()->FUN_1003a720(0);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10001340
|
||||
void Score::DeleteScript()
|
||||
{
|
||||
if (m_state->GetTutorialFlag()) {
|
||||
MxDSAction action;
|
||||
action.SetObjectId(0x1f5);
|
||||
action.SetAtomId(*g_infoscorScript);
|
||||
action.SetUnknown24(-2);
|
||||
DeleteObject(action);
|
||||
m_state->SetTutorialFlag(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10001510
|
||||
MxLong Score::FUN_10001510(MxEndActionNotificationParam& p)
|
||||
{
|
||||
|
Reference in New Issue
Block a user