Add more BETA10 matches and stubs

This commit is contained in:
jonschz 2025-07-20 16:03:12 +02:00
parent 187f9308d4
commit c9c913f9de
6 changed files with 73 additions and 1 deletions

View File

@ -5,12 +5,15 @@
#include "mxpresenter.h"
// VTABLE: LEGO1 0x100d62f0
// VTABLE: BETA10 0x101bf070
// class MxPtrList<MxPresenter>
// VTABLE: LEGO1 0x100d6308
// VTABLE: BETA10 0x101bf050
// SIZE 0x18
class MxPresenterList : public MxPtrList<MxPresenter> {
public:
// FUNCTION: BETA10 0x100dc900
MxPresenterList(MxBool p_ownership = FALSE) : MxPtrList<MxPresenter>(p_ownership) {}
// FUNCTION: LEGO1 0x1001cd00
@ -65,7 +68,11 @@ class MxPresenterListCursor : public MxPtrListCursor<MxPresenter> {
// TEMPLATE: LEGO1 0x1001ce20
// MxList<MxPresenter *>::~MxList<MxPresenter *>
// TEMPLATE: BETA10 0x100dc9f0
// MxPtrList<MxPresenter>::MxPtrList<MxPresenter>
// TEMPLATE: LEGO1 0x1001cf20
// TEMPLATE: BETA10 0x100dce70
// MxPtrList<MxPresenter>::~MxPtrList<MxPresenter>
// SYNTHETIC: LEGO1 0x1001cf70

View File

@ -3,27 +3,32 @@
DECOMP_SIZE_ASSERT(MxAudioManager, 0x30);
// GLOBAL: LEGO1 0x10102108
// GLOBAL: BETA10 0x10203a60
MxS32 MxAudioManager::g_count = 0;
// FUNCTION: LEGO1 0x100b8d00
// FUNCTION: BETA10 0x10144e90
MxAudioManager::MxAudioManager()
{
Init();
}
// FUNCTION: LEGO1 0x100b8d90
// STUB: BETA10 0x10144f07
MxAudioManager::~MxAudioManager()
{
Destroy(TRUE);
}
// FUNCTION: LEGO1 0x100b8df0
// FUNCTION: BETA10 0x10144f79
void MxAudioManager::Init()
{
m_volume = 100;
}
// FUNCTION: LEGO1 0x100b8e00
// FUNCTION: BETA10 0x10144f9c
void MxAudioManager::Destroy(MxBool p_fromDestructor)
{
ENTER(m_criticalSection);
@ -36,6 +41,38 @@ void MxAudioManager::Destroy(MxBool p_fromDestructor)
}
}
#ifdef BETA10
// FUNCTION: BETA10 0x10144ffe
MxResult MxAudioManager::Create()
{
MxResult result = FAILURE;
MxBool success = FALSE;
if (MxMediaManager::Create() != SUCCESS) {
goto exit;
}
ENTER(m_criticalSection);
success = TRUE;
if (!g_count++) {
// This is correct. It was likely refactored later.
}
exit:
result = SUCCESS;
if (result) {
Destroy();
}
if (success) {
m_criticalSection.Leave();
}
return result;
}
#else
// FUNCTION: LEGO1 0x100b8e40
MxResult MxAudioManager::Create()
{
@ -59,14 +96,17 @@ MxResult MxAudioManager::Create()
return result;
}
#endif
// FUNCTION: LEGO1 0x100b8e90
// FUNCTION: BETA10 0x101450a7
void MxAudioManager::Destroy()
{
Destroy(FALSE);
}
// FUNCTION: LEGO1 0x100b8ea0
// FUNCTION: BETA10 0x101450c7
void MxAudioManager::SetVolume(MxS32 p_volume)
{
ENTER(m_criticalSection);

View File

@ -23,18 +23,21 @@ MxS32 g_volumeAttenuation[100] = {-6643, -5643, -5058, -4643, -4321, -4058, -383
-43, -29, -14, 0};
// FUNCTION: LEGO1 0x100ae740
// FUNCTION: BETA10 0x10132c70
MxSoundManager::MxSoundManager()
{
Init();
}
// FUNCTION: LEGO1 0x100ae7d0
// FUNCTION: BETA10 0x10132ce7
MxSoundManager::~MxSoundManager()
{
Destroy(TRUE);
}
// FUNCTION: LEGO1 0x100ae830
// FUNCTION: BETA10 0x10132d59
void MxSoundManager::Init()
{
m_directSound = NULL;
@ -42,6 +45,7 @@ void MxSoundManager::Init()
}
// FUNCTION: LEGO1 0x100ae840
// FUNCTION: BETA10 0x10132d89
void MxSoundManager::Destroy(MxBool p_fromDestructor)
{
if (m_thread) {
@ -156,12 +160,14 @@ MxResult MxSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread)
}
// FUNCTION: LEGO1 0x100aeab0
// FUNCTION: BETA10 0x101331e3
void MxSoundManager::Destroy()
{
Destroy(FALSE);
}
// FUNCTION: LEGO1 0x100aeac0
// FUNCTION: BETA10 0x10133203
void MxSoundManager::SetVolume(MxS32 p_volume)
{
MxAudioManager::SetVolume(p_volume);
@ -179,6 +185,7 @@ void MxSoundManager::SetVolume(MxS32 p_volume)
}
// FUNCTION: LEGO1 0x100aebd0
// FUNCTION: BETA10 0x101332cf
MxPresenter* MxSoundManager::FindPresenter(const MxAtomId& p_atomId, MxU32 p_objectId)
{
AUTOLOCK(m_criticalSection);
@ -187,7 +194,7 @@ MxPresenter* MxSoundManager::FindPresenter(const MxAtomId& p_atomId, MxU32 p_obj
MxPresenterListCursor cursor(m_presenters);
while (cursor.Next(presenter)) {
if (presenter->GetAction()->GetAtomId().GetInternal() == p_atomId.GetInternal() &&
if (presenter->GetAction()->GetAtomId() == p_atomId &&
presenter->GetAction()->GetObjectId() == p_objectId) {
return presenter;
}

View File

@ -11,18 +11,21 @@ DECOMP_SIZE_ASSERT(MxPresenterList, 0x18);
DECOMP_SIZE_ASSERT(MxPresenterListCursor, 0x10);
// FUNCTION: LEGO1 0x100b84c0
// FUNCTION: BETA10 0x10144680
MxMediaManager::MxMediaManager()
{
Init();
}
// FUNCTION: LEGO1 0x100b8560
// FUNCTION: BETA10 0x10144712
MxMediaManager::~MxMediaManager()
{
Destroy();
}
// FUNCTION: LEGO1 0x100b85d0
// FUNCTION: BETA10 0x1014479b
MxResult MxMediaManager::Init()
{
this->m_presenters = NULL;
@ -31,6 +34,7 @@ MxResult MxMediaManager::Init()
}
// FUNCTION: LEGO1 0x100b85e0
// FUNCTION: BETA10 0x101447c5
MxResult MxMediaManager::Create()
{
AUTOLOCK(m_criticalSection);
@ -46,6 +50,7 @@ MxResult MxMediaManager::Create()
}
// FUNCTION: LEGO1 0x100b8710
// FUNCTION: BETA10 0x101448e4
void MxMediaManager::Destroy()
{
AUTOLOCK(m_criticalSection);
@ -58,6 +63,7 @@ void MxMediaManager::Destroy()
}
// FUNCTION: LEGO1 0x100b8790
// FUNCTION: BETA10 0x10144993
MxResult MxMediaManager::Tickle()
{
AUTOLOCK(m_criticalSection);
@ -78,6 +84,7 @@ MxResult MxMediaManager::Tickle()
}
// FUNCTION: LEGO1 0x100b88c0
// FUNCTION: BETA10 0x10144a8b
void MxMediaManager::RegisterPresenter(MxPresenter& p_presenter)
{
AUTOLOCK(m_criticalSection);
@ -86,6 +93,7 @@ void MxMediaManager::RegisterPresenter(MxPresenter& p_presenter)
}
// FUNCTION: LEGO1 0x100b8980
// FUNCTION: BETA10 0x10144b0c
void MxMediaManager::UnregisterPresenter(MxPresenter& p_presenter)
{
AUTOLOCK(m_criticalSection);
@ -97,6 +105,7 @@ void MxMediaManager::UnregisterPresenter(MxPresenter& p_presenter)
}
// FUNCTION: LEGO1 0x100b8ac0
// FUNCTION: BETA10 0x10144bc3
void MxMediaManager::StopPresenters()
{
AUTOLOCK(m_criticalSection);

View File

@ -131,6 +131,7 @@ MxResult MxMediaPresenter::StartAction(MxStreamController* p_controller, MxDSAct
}
// FUNCTION: LEGO1 0x100b5bc0
// STUB: BETA10 0x1013623c
void MxMediaPresenter::EndAction()
{
AUTOLOCK(m_criticalSection);

View File

@ -19,17 +19,20 @@ MxVideoManager::MxVideoManager()
}
// FUNCTION: LEGO1 0x100be270
// FUNCTION: BETA10 0x1012dde0
void MxVideoManager::UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height)
{
}
// FUNCTION: LEGO1 0x100be2a0
// FUNCTION: BETA10 0x1012cad8
MxVideoManager::~MxVideoManager()
{
Destroy(TRUE);
}
// FUNCTION: LEGO1 0x100be320
// FUNCTION: BETA10 0x1012cb66
MxResult MxVideoManager::Init()
{
m_pDirectDraw = NULL;
@ -42,6 +45,7 @@ MxResult MxVideoManager::Init()
}
// FUNCTION: LEGO1 0x100be340
// FUNCTION: BETA10 0x1012cbca
void MxVideoManager::Destroy(MxBool p_fromDestructor)
{
if (m_thread) {
@ -132,6 +136,7 @@ void MxVideoManager::SortPresenterList()
}
// FUNCTION: LEGO1 0x100be600
// STUB: BETA10 0x1012cfbc
MxResult MxVideoManager::VTable0x28(
MxVideoParam& p_videoParam,
LPDIRECTDRAW p_pDirectDraw,
@ -214,6 +219,7 @@ MxResult MxVideoManager::VTable0x28(
}
// FUNCTION: LEGO1 0x100be820
// STUB: BETA10 0x1012d3f1
MxResult MxVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyMS, MxBool p_createThread)
{
MxBool locked = FALSE;
@ -292,6 +298,7 @@ MxResult MxVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyMS,
}
// FUNCTION: LEGO1 0x100bea50
// FUNCTION: BETA10 0x1012d85f
void MxVideoManager::Destroy()
{
Destroy(FALSE);
@ -310,6 +317,7 @@ void MxVideoManager::InvalidateRect(MxRect32& p_rect)
}
// FUNCTION: LEGO1 0x100bea90
// FUNCTION: BETA10 0x1012d8e3
MxResult MxVideoManager::Tickle()
{
AUTOLOCK(m_criticalSection);