begin implementation of InfoCenter class (#444)

* Push changes

* fixes

* Implement Infocenter::HandleEndAction

* match Infocenter::StopCutScene

* implement Infocenter::HandleKeyPress

* fixes

* Update infocenter.cpp

* Update legoworld.cpp

* use enums

* WIP Fixes

* Fix

* Fix

* Fix

* Rename function

* Change enum

* Update enums

* Refactor another enum

* Refactor MxDSType

* Refactor HashTableOpt

* Fixes

* Refactor tickle enum

* Update other enums

* Add EnumConstantName to ncc

* Move enum to global namespace

* Rename enum

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2024-01-17 11:53:53 -05:00
committed by GitHub
parent aaa18bc9e2
commit f50b771fff
100 changed files with 1160 additions and 555 deletions

View File

@@ -21,7 +21,7 @@ void MxLoopingMIDIPresenter::StreamingTickle()
}
if (m_chunk->GetTime() + m_action->GetDuration() <= m_action->GetElapsedTime())
ProgressTickleState(TickleState_Done);
ProgressTickleState(e_done);
}
// FUNCTION: LEGO1 0x100c2ae0
@@ -38,7 +38,7 @@ MxResult MxLoopingMIDIPresenter::PutData()
{
m_criticalSection.Enter();
if (m_currentTickleState == TickleState_Streaming && m_chunk && !MusicManager()->GetMIDIInitialized()) {
if (m_currentTickleState == e_streaming && m_chunk && !MusicManager()->GetMIDIInitialized()) {
SetVolume(((MxDSSound*) m_action)->GetVolume());
MusicManager()->FUN_100c09c0(m_chunk->GetData(), !m_action->GetLoopCount() ? -1 : m_action->GetLoopCount());
}

View File

@@ -52,7 +52,7 @@ void MxMIDIPresenter::ReadyTickle()
if (chunk) {
m_subscriber->DestroyChunk(chunk);
ParseExtra();
ProgressTickleState(TickleState_Starting);
ProgressTickleState(e_starting);
}
}
@@ -62,14 +62,14 @@ void MxMIDIPresenter::StartingTickle()
MxStreamChunk* chunk = CurrentChunk();
if (chunk && m_action->GetElapsedTime() >= chunk->GetTime())
ProgressTickleState(TickleState_Streaming);
ProgressTickleState(e_streaming);
}
// FUNCTION: LEGO1 0x100c2910
void MxMIDIPresenter::StreamingTickle()
{
if (m_chunk)
ProgressTickleState(TickleState_Done);
ProgressTickleState(e_done);
else
m_chunk = NextChunk();
}
@@ -92,7 +92,7 @@ MxResult MxMIDIPresenter::PutData()
{
m_criticalSection.Enter();
if (m_currentTickleState == TickleState_Streaming && m_chunk && !MusicManager()->GetMIDIInitialized()) {
if (m_currentTickleState == e_streaming && m_chunk && !MusicManager()->GetMIDIInitialized()) {
SetVolume(((MxDSSound*) m_action)->GetVolume());
if (MusicManager()->FUN_100c09c0(m_chunk->GetData(), 1))

View File

@@ -86,7 +86,7 @@ void MxWavePresenter::WriteToSoundBuffer(void* p_audioPtr, MxU32 p_length)
}
if (dwStatus != DSBSTATUS_BUFFERLOST) {
if (m_action->GetFlags() & MxDSAction::Flag_Looping) {
if (m_action->GetFlags() & MxDSAction::c_looping) {
m_writtenChunks++;
m_lockSize = p_length;
}
@@ -99,7 +99,7 @@ void MxWavePresenter::WriteToSoundBuffer(void* p_audioPtr, MxU32 p_length)
DS_OK) {
memcpy(pvAudioPtr1, p_audioPtr, p_length);
if (m_lockSize > p_length && !(m_action->GetFlags() & MxDSAction::Flag_Looping)) {
if (m_lockSize > p_length && !(m_action->GetFlags() & MxDSAction::c_looping)) {
memset((MxU8*) pvAudioPtr1 + p_length, m_silenceData, m_lockSize - p_length);
}
@@ -118,7 +118,7 @@ void MxWavePresenter::ReadyTickle()
memcpy(m_waveFormat, chunk->GetData(), chunk->GetLength());
m_subscriber->DestroyChunk(chunk);
ParseExtra();
ProgressTickleState(TickleState_Starting);
ProgressTickleState(e_starting);
}
}
@@ -156,7 +156,7 @@ void MxWavePresenter::StartingTickle()
else
desc.dwFlags = DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME;
if (m_action->GetFlags() & MxDSAction::Flag_Looping)
if (m_action->GetFlags() & MxDSAction::c_looping)
desc.dwBufferBytes = m_waveFormat->m_waveFormatEx.nAvgBytesPerSec *
(m_action->GetDuration() / m_action->GetLoopCount()) / 1000;
else
@@ -169,7 +169,7 @@ void MxWavePresenter::StartingTickle()
}
else {
SetVolume(((MxDSSound*) m_action)->GetVolume());
ProgressTickleState(TickleState_Streaming);
ProgressTickleState(e_streaming);
}
}
}
@@ -178,11 +178,11 @@ void MxWavePresenter::StartingTickle()
void MxWavePresenter::StreamingTickle()
{
if (!m_currentChunk) {
if (!(m_action->GetFlags() & MxDSAction::Flag_Looping)) {
if (!(m_action->GetFlags() & MxDSAction::c_looping)) {
MxStreamChunk* chunk = CurrentChunk();
if (chunk && chunk->GetFlags() & MxDSChunk::Flag_End && !(chunk->GetFlags() & MxDSChunk::Flag_Bit16)) {
chunk->SetFlags(chunk->GetFlags() | MxDSChunk::Flag_Bit16);
if (chunk && chunk->GetFlags() & MxDSChunk::c_end && !(chunk->GetFlags() & MxDSChunk::c_bit16)) {
chunk->SetFlags(chunk->GetFlags() | MxDSChunk::c_bit16);
m_currentChunk = new MxStreamChunk;
MxU8* data = new MxU8[m_chunkLength];
@@ -192,7 +192,7 @@ void MxWavePresenter::StreamingTickle()
m_currentChunk->SetLength(m_chunkLength);
m_currentChunk->SetData(data);
m_currentChunk->SetTime(chunk->GetTime() + 1000);
m_currentChunk->SetFlags(MxDSChunk::Flag_Bit1);
m_currentChunk->SetFlags(MxDSChunk::c_bit1);
}
}
@@ -208,7 +208,7 @@ void MxWavePresenter::DoneTickle()
m_dsBuffer->GetCurrentPosition(&dwCurrentPlayCursor, &dwCurrentWriteCursor);
MxS8 playedChunks = dwCurrentPlayCursor / m_chunkLength;
if (m_action->GetFlags() & MxDSAction::Flag_Bit7 || m_action->GetFlags() & MxDSAction::Flag_Looping ||
if (m_action->GetFlags() & MxDSAction::c_bit7 || m_action->GetFlags() & MxDSAction::c_looping ||
m_writtenChunks != playedChunks || m_lockSize + (m_chunkLength * playedChunks) <= dwCurrentPlayCursor)
MxMediaPresenter::DoneTickle();
}
@@ -231,7 +231,7 @@ MxResult MxWavePresenter::PutData()
if (IsEnabled()) {
switch (m_currentTickleState) {
case TickleState_Streaming:
case e_streaming:
if (m_currentChunk && FUN_100b1ba0()) {
WriteToSoundBuffer(m_currentChunk->GetData(), m_currentChunk->GetLength());
m_subscriber->DestroyChunk(m_currentChunk);
@@ -245,7 +245,7 @@ MxResult MxWavePresenter::PutData()
m_started = TRUE;
}
break;
case TickleState_Repeating:
case e_repeating:
if (m_started)
break;
@@ -339,13 +339,13 @@ void MxWavePresenter::Resume()
if (m_paused) {
if (m_dsBuffer && m_started) {
switch (m_currentTickleState) {
case TickleState_Streaming:
case e_streaming:
m_dsBuffer->Play(0, 0, DSBPLAY_LOOPING);
break;
case TickleState_Repeating:
case e_repeating:
m_dsBuffer->Play(0, 0, m_action->GetLoopCount() > 1);
break;
case TickleState_Done:
case e_done:
m_dsBuffer->Play(0, 0, 0);
}
}