Add various BETA10 references and fixes (#1398)

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
jonschz
2025-03-02 19:59:03 +01:00
committed by GitHub
parent 8b7182f9db
commit 87d13aa277
12 changed files with 47 additions and 0 deletions

View File

@@ -105,6 +105,9 @@ protected:
// TEMPLATE: LEGO1 0x1001c7e0
// vector<LegoAnimActorStruct *,allocator<LegoAnimActorStruct *> >::_Destroy
// TEMPLATE: BETA10 0x1000fbc0
// vector<LegoAnimActorStruct *,allocator<LegoAnimActorStruct *> >::begin
// TEMPLATE: LEGO1 0x1001c9e0
// uninitialized_fill_n

View File

@@ -6,6 +6,7 @@
class LegoCacheSoundManager;
// VTABLE: LEGO1 0x100d6b10
// VTABLE: BETA10 0x101bec30
// SIZE 0x44
class LegoSoundManager : public MxSoundManager {
public:
@@ -17,6 +18,7 @@ public:
MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; // vtable+0x30
// SYNTHETIC: LEGO1 0x10029920
// SYNTHETIC: BETA10 0x100d0660
// LegoSoundManager::`scalar deleting destructor'
void UpdateListener(const float* p_position, const float* p_direction, const float* p_up, const float* p_velocity);

View File

@@ -153,8 +153,15 @@ void Act2Actor::FUN_10018980()
assert(m_shootAnim);
m_unk0x38 = SoundManager()->GetCacheSoundManager()->FindSoundByKey("xarrow");
#ifdef BETA10
// actually 0x2c and 0x30
m_unk0x38 = SoundManager()->GetCacheSoundManager()->FindSoundByKey("bcrash");
m_unk0x38->SetDistance(35, 60);
m_unk0x38->SetDistance(35, 60);
#else
m_unk0x38->SetDistance(45, 55);
m_roi->SetVisibility(TRUE);
#endif
}
// FUNCTION: LEGO1 0x100189f0

View File

@@ -296,6 +296,7 @@ void Lego3DSound::Reset()
}
// FUNCTION: LEGO1 0x10011cf0
// FUNCTION: BETA10 0x10039fe0
MxS32 Lego3DSound::SetDistance(MxS32 p_min, MxS32 p_max)
{
if (MxOmni::IsSound3D()) {

View File

@@ -61,8 +61,11 @@ MxResult LegoCacheSoundManager::Tickle()
}
// FUNCTION: LEGO1 0x1003d170
// FUNCTION: BETA10 0x1006539d
LegoCacheSound* LegoCacheSoundManager::FindSoundByKey(const char* p_key)
{
// This function has changed completely since BETA10, but its calls suggest the match is correct
char* key = new char[strlen(p_key) + 1];
strcpy(key, p_key);

View File

@@ -4,6 +4,8 @@
#include "mxautolock.h"
#include "mxomni.h"
#include <assert.h>
DECOMP_SIZE_ASSERT(LegoSoundManager, 0x44)
// FUNCTION: LEGO1 0x100298a0
@@ -37,6 +39,7 @@ void LegoSoundManager::Destroy(MxBool p_fromDestructor)
}
// FUNCTION: LEGO1 0x100299f0
// FUNCTION: BETA10 0x100d0129
MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
{
MxBool locked = FALSE;
@@ -67,6 +70,7 @@ MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
}
m_cacheSoundManager = new LegoCacheSoundManager;
assert(m_cacheSoundManager);
result = SUCCESS;
}
@@ -83,12 +87,14 @@ done:
}
// FUNCTION: LEGO1 0x1002a390
// FUNCTION: BETA10 0x100d02ed
void LegoSoundManager::Destroy()
{
Destroy(FALSE);
}
// FUNCTION: LEGO1 0x1002a3a0
// FUNCTION: BETA10 0x100d030d
MxResult LegoSoundManager::Tickle()
{
MxSoundManager::Tickle();