Skip to content

Boss music only plays for the person who triggered the dialog to start the bossfight #1198

Description

@EmeraldLoc

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions