Refactor JukeBox, add enum for music (#988)

* Refactor JukeBox, add enum for music

* add BETA annotation

* Fix BETA annotation

* Fix BETA annotation

* Fix
This commit is contained in:
Christian Semmler
2024-06-03 07:00:38 -04:00
committed by GitHub
parent 828b35e9d2
commit 73bb37596e
12 changed files with 102 additions and 105 deletions

View File

@@ -55,37 +55,37 @@ void JukeBoxEntity::StartAction()
MxDSAction action;
BackgroundAudioManager()->Stop();
JukeBoxState* state = (JukeBoxState*) GameState()->GetState("JukeBoxState");
state->SetActive(TRUE);
state->m_active = TRUE;
switch (state->GetState()) {
case 0:
switch (state->m_music) {
case JukeBoxState::e_pasquell:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz001bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic1);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic1;
break;
case 1:
case JukeBoxState::e_right:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz006bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic2);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic2;
break;
case 2:
case JukeBoxState::e_decal:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz003bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic3);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic3;
break;
case 3:
case JukeBoxState::e_wallis:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz002bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic4);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic4;
break;
case 4:
case JukeBoxState::e_nelson:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz007bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic5);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic5;
break;
case 5:
case JukeBoxState::e_torpedos:
InvokeAction(Extra::e_start, *g_isleScript, IsleScript::c_npz004bd_RunAnim, NULL);
GameState()->SetUnknown0x41c(JukeboxScript::c_JBMusic6);
GameState()->m_jukeboxMusic = JukeboxScript::c_JBMusic6;
break;
}
action.SetAtomId(*g_jukeboxScript);
action.SetObjectId(GameState()->GetUnknown0x41c());
action.SetObjectId(GameState()->m_jukeboxMusic);
m_audioEnabled = BackgroundAudioManager()->GetEnabled();
if (!m_audioEnabled) {
@@ -100,30 +100,30 @@ void JukeBoxEntity::StopAction(JukeboxScript::Script p_script)
{
JukeBoxState* state = (JukeBoxState*) GameState()->GetState("JukeBoxState");
if (state && state->IsActive()) {
if (state && state->m_active) {
switch (p_script) {
case JukeboxScript::c_JBMusic1:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz001bd_RunAnim, NULL);
break;
case JukeboxScript::c_JBMusic2:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz006bd_RunAnim, NULL);
break;
case JukeboxScript::c_JBMusic3:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz003bd_RunAnim, NULL);
break;
case JukeboxScript::c_JBMusic4:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz002bd_RunAnim, NULL);
break;
case JukeboxScript::c_JBMusic5:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz007bd_RunAnim, NULL);
break;
case JukeboxScript::c_JBMusic6:
state->SetActive(FALSE);
state->m_active = FALSE;
InvokeAction(Extra::e_stop, *g_isleScript, IsleScript::c_npz004bd_RunAnim, NULL);
break;
}