Add various BETA10 references and fixes ()

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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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();

View file

@ -783,4 +783,11 @@
// GLOBAL: BETA10 0x101faf78
// __app_type
// GLOBAL: LEGO1 0x100db6e0
// GUID_SysKeyboard
// Cannot be handled right now due to anonymous pointer in struct
// // GLOBAL: LEGO1 0x10098f80
// c_dfDIKeyboard
#endif

View file

@ -8,6 +8,7 @@
#include <dsound.h>
// VTABLE: LEGO1 0x100dc128
// VTABLE: BETA10 0x101c1ce8
// SIZE 0x3c
class MxSoundManager : public MxAudioManager {
public:

View file

@ -34,10 +34,13 @@ private:
typedef list<MxTickleClient*> MxTickleClientPtrList;
// VTABLE: LEGO1 0x100d86d8
// VTABLE: BETA10 0x101bc9d0
// SIZE 0x14
class MxTickleManager : public MxCore {
public:
// FUNCTION: BETA10 0x100937c0
MxTickleManager() {}
~MxTickleManager() override;
MxResult Tickle() override; // vtable+0x08
@ -47,6 +50,7 @@ public:
virtual MxTime GetClientTickleInterval(MxCore* p_client); // vtable+0x20
// SYNTHETIC: LEGO1 0x1005a510
// SYNTHETIC: BETA10 0x100962f0
// MxTickleManager::`scalar deleting destructor'
private:
@ -58,7 +62,11 @@ private:
// TEMPLATE: LEGO1 0x1005a4a0
// list<MxTickleClient *,allocator<MxTickleClient *> >::~list<MxTickleClient *,allocator<MxTickleClient *> >
// TEMPLATE: BETA10 0x10093870
// List<MxTickleClient *>::List<MxTickleClient *>
// TEMPLATE: LEGO1 0x1005a530
// TEMPLATE: BETA10 0x10096340
// List<MxTickleClient *>::~List<MxTickleClient *>
#endif // MXTICKLEMANAGER_H

View file

@ -67,6 +67,7 @@ void MxSoundManager::Destroy(MxBool p_fromDestructor)
}
// FUNCTION: LEGO1 0x100ae8b0
// FUNCTION: BETA10 0x10132e94
MxResult MxSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
{
MxResult status = FAILURE;

View file

@ -5,6 +5,8 @@
#include "mxtimer.h"
#include "mxtypes.h"
#include <assert.h>
#define TICKLE_MANAGER_FLAG_DESTROY 0x01
DECOMP_SIZE_ASSERT(MxTickleClient, 0x10);
@ -30,6 +32,7 @@ MxTickleManager::~MxTickleManager()
}
// FUNCTION: LEGO1 0x100bdde0
// FUNCTION: BETA10 0x1013eb1f
MxResult MxTickleManager::Tickle()
{
MxTime time = Timer()->GetTime();
@ -60,6 +63,7 @@ MxResult MxTickleManager::Tickle()
}
// FUNCTION: LEGO1 0x100bde80
// FUNCTION: BETA10 0x1013ec5f
void MxTickleManager::RegisterClient(MxCore* p_client, MxTime p_interval)
{
MxTime interval = GetClientTickleInterval(p_client);
@ -72,6 +76,7 @@ void MxTickleManager::RegisterClient(MxCore* p_client, MxTime p_interval)
}
// FUNCTION: LEGO1 0x100bdf60
// FUNCTION: BETA10 0x1013edd0
void MxTickleManager::UnregisterClient(MxCore* p_client)
{
MxTickleClientPtrList::iterator it = m_clients.begin();
@ -87,6 +92,7 @@ void MxTickleManager::UnregisterClient(MxCore* p_client)
}
// FUNCTION: LEGO1 0x100bdfa0
// FUNCTION: BETA10 0x1013ee6d
void MxTickleManager::SetClientTickleInterval(MxCore* p_client, MxTime p_interval)
{
for (MxTickleClientPtrList::iterator it = m_clients.begin(); it != m_clients.end(); it++) {
@ -99,6 +105,7 @@ void MxTickleManager::SetClientTickleInterval(MxCore* p_client, MxTime p_interva
}
// FUNCTION: LEGO1 0x100be000
// FUNCTION: BETA10 0x1013ef2d
MxTime MxTickleManager::GetClientTickleInterval(MxCore* p_client)
{
MxTickleClientPtrList::iterator it = m_clients.begin();

View file

@ -35,5 +35,6 @@ targets:
- 0x100f8ad0
- 0x100fa200
- 0x100f9780
- 0x100fb080
# memset etc.
- 0x100f9570