Merge branch 'master' into fix-autolock-filenames

This commit is contained in:
jonschz 2025-07-20 18:02:50 +02:00 committed by GitHub
commit b6440a24a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 54 additions and 17 deletions

View File

@ -100,6 +100,43 @@ jobs:
build/LEGO1.DLL
build/LEGO1.PDB
build-beta:
name: 'MSVC 4.20 (BETA10)'
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: itsmattkc/msvc420
path: msvc420
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
with:
# Use minimum supported version
cmake-version: '3.15.x'
- name: Patch MSVC 4.2
run: |
tools/patch_c2.py msvc420/bin/C2.EXE
- name: Build
shell: cmd
run: |
call .\msvc420\bin\VCVARS32.BAT x86
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DISLE_INCLUDE_ENTROPY=OFF -DISLE_BUILD_BETA10=ON -DISLE_BUILD_LEGO1=OFF -DISLE_BUILD_APP=OFF -DISLE_BUILD_CONFIG=OFF -G "NMake Makefiles"
cmake --build build
- name: Upload Artifact
uses: actions/upload-artifact@main
with:
name: Win32-beta
path: |
build/BETA10.DLL
build/BETA10.PDB
verify:
name: Verify decomp
needs: [build, fetch-deps]

View File

@ -180,8 +180,8 @@ class LegoOmni : public MxOmni {
// FUNCTION: BETA10 0x100d55c0
void SetExit(MxBool p_exit) { m_exit = p_exit; }
MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction) { return m_unk0x13c ? Start(&p_dsAction) : SUCCESS; }
void SetUnknown13c(MxBool p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
MxResult StartActionIfInitialized(MxDSAction& p_dsAction) { return m_initialized ? Start(&p_dsAction) : SUCCESS; }
void SetInitialized(MxBool p_unk0x13c) { m_initialized = p_unk0x13c; }
void CloseMainWindow() { PostMessage(m_windowHandle, WM_CLOSE, 0, 0); }
@ -208,7 +208,7 @@ class LegoOmni : public MxOmni {
MxTransitionManager* m_transitionManager; // 0x138
public:
MxBool m_unk0x13c; // 0x13c
MxBool m_initialized; // 0x13c
};
#endif // LEGOMAIN_H

View File

@ -52,7 +52,7 @@ void Disable(MxBool p_disable, MxU16 p_flags);
LegoROI* FindROI(const char* p_name);
void SetROIVisible(const char* p_name, MxBool p_visible);
void SetUserActor(LegoPathActor* p_userActor);
MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction);
MxResult StartActionIfInitialized(MxDSAction& p_dsAction);
void DeleteAction();
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
MxDSAction& GetCurrentAction();

View File

@ -1230,7 +1230,7 @@ undefined4 LegoCarBuild::FUN_10024c20(MxNotificationParam* p_param)
jukeboxScript = JukeboxScript::c_RaceCarBuild_Music;
}
m_unk0x338 = SoundManager()->FUN_100aebd0(*g_jukeboxScript, jukeboxScript);
m_unk0x338 = SoundManager()->FindPresenter(*g_jukeboxScript, jukeboxScript);
if (m_unk0x338) {
BackgroundAudioManager()->SetPendingPresenter(m_unk0x338, 5, MxPresenter::e_repeating);

View File

@ -1015,7 +1015,7 @@ MxResult LegoAnimationManager::FUN_100605e0(
action.SetUnknown24(-1);
action.AppendExtra(strlen(buf) + 1, buf);
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
if (StartActionIfInitialized(action) == SUCCESS) {
BackgroundAudioManager()->LowerVolume();
tranInfo->m_flags |= LegoTranInfo::c_bit2;
animInfo.m_unk0x22++;
@ -1082,7 +1082,7 @@ MxResult LegoAnimationManager::FUN_100609f0(MxU32 p_objectId, MxMatrix* p_matrix
action.SetUnknown24(-1);
action.AppendExtra(strlen(buf) + 1, buf);
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
if (StartActionIfInitialized(action) == SUCCESS) {
BackgroundAudioManager()->LowerVolume();
info->m_flags |= LegoTranInfo::c_bit2;
m_animRunning = TRUE;
@ -1125,7 +1125,7 @@ MxResult LegoAnimationManager::StartEntityAction(MxDSAction& p_dsAction, LegoEnt
}
}
if (LegoOmni::GetInstance()->StartActionIfUnknown0x13c(p_dsAction) == SUCCESS) {
if (LegoOmni::GetInstance()->StartActionIfInitialized(p_dsAction) == SUCCESS) {
result = SUCCESS;
}
@ -1149,7 +1149,7 @@ MxResult LegoAnimationManager::FUN_10060dc0(
MxResult result = FAILURE;
MxBool found = FALSE;
if (!Lego()->m_unk0x13c) {
if (!Lego()->m_initialized) {
return SUCCESS;
}
@ -1186,7 +1186,7 @@ MxResult LegoAnimationManager::FUN_10060dc0(
// FUNCTION: BETA10 0x1004206c
void LegoAnimationManager::CameraTriggerFire(LegoPathActor* p_actor, MxBool, MxU32 p_location, MxBool p_bool)
{
if (Lego()->m_unk0x13c && m_enableCamAnims && !m_animRunning) {
if (Lego()->m_initialized && m_enableCamAnims && !m_animRunning) {
LegoLocation* location = LegoNavController::GetLocation(p_location);
if (location != NULL) {

View File

@ -172,9 +172,9 @@ void SetUserActor(LegoPathActor* p_userActor)
// FUNCTION: LEGO1 0x10015890
// FUNCTION: BETA10 0x100e4d80
MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction)
MxResult StartActionIfInitialized(MxDSAction& p_dsAction)
{
return LegoOmni::GetInstance()->StartActionIfUnknown0x13c(p_dsAction);
return LegoOmni::GetInstance()->StartActionIfInitialized(p_dsAction);
}
// FUNCTION: LEGO1 0x100158b0

View File

@ -896,7 +896,7 @@ MxLong LegoNavController::Notify(MxParam& p_param)
break;
case 'A':
if (g_animationCalcStep == 1) {
Lego()->m_unk0x13c = TRUE;
Lego()->m_initialized = TRUE;
AnimationManager()->FUN_10060570(TRUE);
g_animationCalcStep = 0;
}

View File

@ -71,7 +71,7 @@ void LegoOmni::Init()
m_animationManager = NULL;
m_buildingManager = NULL;
m_bkgAudioManager = NULL;
m_unk0x13c = TRUE;
m_initialized = TRUE;
m_transitionManager = NULL;
}

View File

@ -1116,7 +1116,7 @@ MxResult LegoAct2::FUN_10052560(
action.SetDirection(*p_direction);
}
StartActionIfUnknown0x13c(action);
StartActionIfInitialized(action);
}
else {
MxMatrix matrix;

View File

@ -25,7 +25,7 @@ class MxSoundManager : public MxAudioManager {
MxS32 GetAttenuation(MxU32 p_volume);
MxPresenter* FUN_100aebd0(const MxAtomId& p_atomId, MxU32 p_objectId);
MxPresenter* FindPresenter(const MxAtomId& p_atomId, MxU32 p_objectId);
protected:
void Init();

View File

@ -179,7 +179,7 @@ void MxSoundManager::SetVolume(MxS32 p_volume)
}
// FUNCTION: LEGO1 0x100aebd0
MxPresenter* MxSoundManager::FUN_100aebd0(const MxAtomId& p_atomId, MxU32 p_objectId)
MxPresenter* MxSoundManager::FindPresenter(const MxAtomId& p_atomId, MxU32 p_objectId)
{
AUTOLOCK(m_criticalSection);