Currently most boss music is started when Mario exits the boss dialog. This causes the music to only be played for the player who interacted with the dialog. This applies to king bobomb, king whomp, eyerok whenever that dialog gets fixed, and probably others I'm forgetting.
The exact place this is caused is in the handle_special_dialog_text. This function is called when the dialog state is being handled and the dialog box is being closed.
Here a list of dialogs is defined
// King Bob-omb (Start), Whomp (Start), King Bob-omb (throw him out), Eyerock (Start), Wiggler (Start)
enum DialogId dialogBossStart[] = { DIALOG_017, DIALOG_114, DIALOG_128, DIALOG_117, DIALOG_150 };
And is checked to play boss music:
for (i = 0; i < (s16) ARRAY_COUNT(dialogBossStart); i++) {
if (dialogBossStart[i] == dialogID) {
seq_player_unlower_volume(SEQ_PLAYER_LEVEL, 60);
play_music(SEQ_PLAYER_LEVEL, SEQUENCE_ARGS(4, SEQ_EVENT_BOSS), 0);
return;
}
}
No syncing is ever done.
The only 2 solutions that exist really are:
- Create a packet to go to all active Marios that tells them to play the music no matter where they are in the level
- Have the object handle playing boss music instead of the dialog system
Currently most boss music is started when Mario exits the boss dialog. This causes the music to only be played for the player who interacted with the dialog. This applies to king bobomb, king whomp, eyerok whenever that dialog gets fixed, and probably others I'm forgetting.
The exact place this is caused is in the
handle_special_dialog_text. This function is called when the dialog state is being handled and the dialog box is being closed.Here a list of dialogs is defined
And is checked to play boss music:
No syncing is ever done.
The only 2 solutions that exist really are: