mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 23:01:16 +00:00
Merge branch 'master' into fix-autolock-filenames
This commit is contained in:
commit
b6440a24a3
37
.github/workflows/build.yml
vendored
37
.github/workflows/build.yml
vendored
@ -100,6 +100,43 @@ jobs:
|
|||||||
build/LEGO1.DLL
|
build/LEGO1.DLL
|
||||||
build/LEGO1.PDB
|
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:
|
verify:
|
||||||
name: Verify decomp
|
name: Verify decomp
|
||||||
needs: [build, fetch-deps]
|
needs: [build, fetch-deps]
|
||||||
|
|||||||
@ -180,8 +180,8 @@ class LegoOmni : public MxOmni {
|
|||||||
// FUNCTION: BETA10 0x100d55c0
|
// FUNCTION: BETA10 0x100d55c0
|
||||||
void SetExit(MxBool p_exit) { m_exit = p_exit; }
|
void SetExit(MxBool p_exit) { m_exit = p_exit; }
|
||||||
|
|
||||||
MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction) { return m_unk0x13c ? Start(&p_dsAction) : SUCCESS; }
|
MxResult StartActionIfInitialized(MxDSAction& p_dsAction) { return m_initialized ? Start(&p_dsAction) : SUCCESS; }
|
||||||
void SetUnknown13c(MxBool p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
|
void SetInitialized(MxBool p_unk0x13c) { m_initialized = p_unk0x13c; }
|
||||||
|
|
||||||
void CloseMainWindow() { PostMessage(m_windowHandle, WM_CLOSE, 0, 0); }
|
void CloseMainWindow() { PostMessage(m_windowHandle, WM_CLOSE, 0, 0); }
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ class LegoOmni : public MxOmni {
|
|||||||
MxTransitionManager* m_transitionManager; // 0x138
|
MxTransitionManager* m_transitionManager; // 0x138
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MxBool m_unk0x13c; // 0x13c
|
MxBool m_initialized; // 0x13c
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOMAIN_H
|
#endif // LEGOMAIN_H
|
||||||
|
|||||||
@ -52,7 +52,7 @@ void Disable(MxBool p_disable, MxU16 p_flags);
|
|||||||
LegoROI* FindROI(const char* p_name);
|
LegoROI* FindROI(const char* p_name);
|
||||||
void SetROIVisible(const char* p_name, MxBool p_visible);
|
void SetROIVisible(const char* p_name, MxBool p_visible);
|
||||||
void SetUserActor(LegoPathActor* p_userActor);
|
void SetUserActor(LegoPathActor* p_userActor);
|
||||||
MxResult StartActionIfUnknown0x13c(MxDSAction& p_dsAction);
|
MxResult StartActionIfInitialized(MxDSAction& p_dsAction);
|
||||||
void DeleteAction();
|
void DeleteAction();
|
||||||
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
|
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||||
MxDSAction& GetCurrentAction();
|
MxDSAction& GetCurrentAction();
|
||||||
|
|||||||
@ -1230,7 +1230,7 @@ undefined4 LegoCarBuild::FUN_10024c20(MxNotificationParam* p_param)
|
|||||||
jukeboxScript = JukeboxScript::c_RaceCarBuild_Music;
|
jukeboxScript = JukeboxScript::c_RaceCarBuild_Music;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unk0x338 = SoundManager()->FUN_100aebd0(*g_jukeboxScript, jukeboxScript);
|
m_unk0x338 = SoundManager()->FindPresenter(*g_jukeboxScript, jukeboxScript);
|
||||||
|
|
||||||
if (m_unk0x338) {
|
if (m_unk0x338) {
|
||||||
BackgroundAudioManager()->SetPendingPresenter(m_unk0x338, 5, MxPresenter::e_repeating);
|
BackgroundAudioManager()->SetPendingPresenter(m_unk0x338, 5, MxPresenter::e_repeating);
|
||||||
|
|||||||
@ -1015,7 +1015,7 @@ MxResult LegoAnimationManager::FUN_100605e0(
|
|||||||
action.SetUnknown24(-1);
|
action.SetUnknown24(-1);
|
||||||
action.AppendExtra(strlen(buf) + 1, buf);
|
action.AppendExtra(strlen(buf) + 1, buf);
|
||||||
|
|
||||||
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
|
if (StartActionIfInitialized(action) == SUCCESS) {
|
||||||
BackgroundAudioManager()->LowerVolume();
|
BackgroundAudioManager()->LowerVolume();
|
||||||
tranInfo->m_flags |= LegoTranInfo::c_bit2;
|
tranInfo->m_flags |= LegoTranInfo::c_bit2;
|
||||||
animInfo.m_unk0x22++;
|
animInfo.m_unk0x22++;
|
||||||
@ -1082,7 +1082,7 @@ MxResult LegoAnimationManager::FUN_100609f0(MxU32 p_objectId, MxMatrix* p_matrix
|
|||||||
action.SetUnknown24(-1);
|
action.SetUnknown24(-1);
|
||||||
action.AppendExtra(strlen(buf) + 1, buf);
|
action.AppendExtra(strlen(buf) + 1, buf);
|
||||||
|
|
||||||
if (StartActionIfUnknown0x13c(action) == SUCCESS) {
|
if (StartActionIfInitialized(action) == SUCCESS) {
|
||||||
BackgroundAudioManager()->LowerVolume();
|
BackgroundAudioManager()->LowerVolume();
|
||||||
info->m_flags |= LegoTranInfo::c_bit2;
|
info->m_flags |= LegoTranInfo::c_bit2;
|
||||||
m_animRunning = TRUE;
|
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;
|
result = SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1149,7 +1149,7 @@ MxResult LegoAnimationManager::FUN_10060dc0(
|
|||||||
MxResult result = FAILURE;
|
MxResult result = FAILURE;
|
||||||
MxBool found = FALSE;
|
MxBool found = FALSE;
|
||||||
|
|
||||||
if (!Lego()->m_unk0x13c) {
|
if (!Lego()->m_initialized) {
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1186,7 +1186,7 @@ MxResult LegoAnimationManager::FUN_10060dc0(
|
|||||||
// FUNCTION: BETA10 0x1004206c
|
// FUNCTION: BETA10 0x1004206c
|
||||||
void LegoAnimationManager::CameraTriggerFire(LegoPathActor* p_actor, MxBool, MxU32 p_location, MxBool p_bool)
|
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);
|
LegoLocation* location = LegoNavController::GetLocation(p_location);
|
||||||
|
|
||||||
if (location != NULL) {
|
if (location != NULL) {
|
||||||
|
|||||||
@ -172,9 +172,9 @@ void SetUserActor(LegoPathActor* p_userActor)
|
|||||||
|
|
||||||
// FUNCTION: LEGO1 0x10015890
|
// FUNCTION: LEGO1 0x10015890
|
||||||
// FUNCTION: BETA10 0x100e4d80
|
// 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
|
// FUNCTION: LEGO1 0x100158b0
|
||||||
|
|||||||
@ -896,7 +896,7 @@ MxLong LegoNavController::Notify(MxParam& p_param)
|
|||||||
break;
|
break;
|
||||||
case 'A':
|
case 'A':
|
||||||
if (g_animationCalcStep == 1) {
|
if (g_animationCalcStep == 1) {
|
||||||
Lego()->m_unk0x13c = TRUE;
|
Lego()->m_initialized = TRUE;
|
||||||
AnimationManager()->FUN_10060570(TRUE);
|
AnimationManager()->FUN_10060570(TRUE);
|
||||||
g_animationCalcStep = 0;
|
g_animationCalcStep = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,7 +71,7 @@ void LegoOmni::Init()
|
|||||||
m_animationManager = NULL;
|
m_animationManager = NULL;
|
||||||
m_buildingManager = NULL;
|
m_buildingManager = NULL;
|
||||||
m_bkgAudioManager = NULL;
|
m_bkgAudioManager = NULL;
|
||||||
m_unk0x13c = TRUE;
|
m_initialized = TRUE;
|
||||||
m_transitionManager = NULL;
|
m_transitionManager = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1116,7 +1116,7 @@ MxResult LegoAct2::FUN_10052560(
|
|||||||
action.SetDirection(*p_direction);
|
action.SetDirection(*p_direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
StartActionIfUnknown0x13c(action);
|
StartActionIfInitialized(action);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
MxMatrix matrix;
|
MxMatrix matrix;
|
||||||
|
|||||||
@ -25,7 +25,7 @@ class MxSoundManager : public MxAudioManager {
|
|||||||
|
|
||||||
MxS32 GetAttenuation(MxU32 p_volume);
|
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:
|
protected:
|
||||||
void Init();
|
void Init();
|
||||||
|
|||||||
@ -179,7 +179,7 @@ void MxSoundManager::SetVolume(MxS32 p_volume)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100aebd0
|
// 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);
|
AUTOLOCK(m_criticalSection);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user