Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 5 additions & 15 deletions include/common_structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ typedef ApiStatus(*ApiFunc)(struct Evt*, s32);
typedef Bytecode EvtScript[];

typedef void NoArgCallback(void*);
typedef void (*AuCallback)(void);

#define MSG_PTR u8*
#define IMG_PTR u8*
Expand Down Expand Up @@ -626,22 +627,22 @@ typedef struct Worker {

typedef Worker* WorkerList[MAX_WORKERS];

typedef struct MusicSettings {
typedef struct MusicControlData {
/* 0x00 */ u16 flags;
/* 0x02 */ s16 state;
/* 0x04 */ s32 fadeOutTime;
/* 0x08 */ s32 fadeInTime;
/* 0x0C */ s16 fadeStartVolume;
/* 0x0E */ s16 fadeEndVolume;
/* 0x10 */ s32 songID;
/* 0x10 */ s32 requestedSongID;
/* 0x14 */ s32 variation;
/* 0x18 */ s32 songName;
/* 0x18 */ s32 songName; /// name or handle of currently playing song
/* 0x1C */ s32 battleSongID;
/* 0x20 */ s32 battleVariation;
/* 0x24 */ s32 savedSongID;
/* 0x28 */ s32 savedVariation;
/* 0x2C */ s32 savedSongName;
} MusicSettings; // size = 0x30
} MusicControlData; // size = 0x30

typedef struct MusicProximityTrigger {
/* 0x00 */ VecXZf pos;
Expand Down Expand Up @@ -2437,17 +2438,6 @@ typedef struct ImgFXWorkingTexture {
/* 0x24 */ u8 alphaMultiplier;
} ImgFXWorkingTexture; // size = 0x25

typedef struct SongUpdateEvent {
/* 0x00 */ s32 songName;
/* 0x04 */ s32 duration;
/* 0x08 */ s32 startVolume;
/* 0x0C */ s32 finalVolume;
/* 0x10 */ s32 variation;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s32 unk1C; // may be fake
} SongUpdateEvent; // size = 0x1C or 0x20

// unfortunately, cant use bitfield for this
// format: ABCC00DD
// A = playerID
Expand Down
2 changes: 1 addition & 1 deletion include/dead.h
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@
#define SetTexPanner dead_SetTexPanner
#define DismissEffect dead_DismissEffect
#define Entity_Chest dead_Entity_Chest
#define snd_ambient_mute dead_snd_ambient_mute
#define snd_ambient_fade_out dead_snd_ambient_fade_out
#define GetPlayerAnimation dead_GetPlayerAnimation
#define SetPlayerSpeed dead_SetPlayerSpeed
#define SetItemPos dead_SetItemPos
Expand Down
71 changes: 48 additions & 23 deletions include/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -533,14 +533,17 @@ enum SoundIDBits {
SOUND_ID_SECTION_MASK = 0x00000300, // corresponds to sections 0-3 for indices < 0xC0 and 4-7 for those above
SOUND_ID_INDEX_MASK = 0x000000FF,
SOUND_ID_UNK_INDEX_MASK = 0x000001FF, // indices for the special large section

SOUND_ID_UPPER_MASK = 0x03FF0000,
SOUND_ID_TYPE_MASK = 0x70000000,
SOUND_ID_TYPE_FLAG = 0x80000000,
};

enum SoundType {
SOUND_TYPE_SPECIAL = 0x80000000,
SOUND_TYPE_LOOPING = 0, // 0x80000000 (with SOUND_TYPE_SPECIAL)
SOUND_TYPE_EXIT_DOOR = 1, // 0x90000000 (with SOUND_TYPE_SPECIAL)
SOUND_TYPE_ROOM_DOOR = 2, // 0xA0000000 (with SOUND_TYPE_SPECIAL)
SOUND_TYPE_ALTERNATING = 3, // 0xB0000000 (with SOUND_TYPE_SPECIAL)
SOUND_TYPE_LOOPING = 0, // 0x80000000 (with SOUND_ID_TYPE_FLAG)
SOUND_TYPE_EXIT_DOOR = 1, // 0x90000000 (with SOUND_ID_TYPE_FLAG)
SOUND_TYPE_ROOM_DOOR = 2, // 0xA0000000 (with SOUND_ID_TYPE_FLAG)
SOUND_TYPE_ALTERNATING = 3, // 0xB0000000 (with SOUND_ID_TYPE_FLAG)
};

enum SoundIDs {
Expand Down Expand Up @@ -1755,9 +1758,11 @@ enum SoundTriggers {
typedef enum AuResult {
AU_RESULT_OK = 0,
AU_ERROR_1 = 1,
AU_AMBIENCE_ERROR_1 = 1,
AU_AMBIENCE_STOP_ERROR_1 = 1,
AU_AMBIENCE_STOP_ERROR_2 = 2,
AU_AMBIENCE_ERROR_PLAYER_BUSY = 1, // player already has an mseq playing
AU_ERROR_SONG_NOT_PLAYING = 2, // player not found for songName
AU_AMBIENCE_ERROR_2 = 2,
AU_AMBIENCE_ERROR_MSEQ_NOT_FOUND = 2, // mseq not found
AU_ERROR_NULL_SONG_NAME = 3, // songName is NULL
AU_AMBIENCE_ERROR_3 = 3,
AU_ERROR_INVALID_SONG_DURATION = 4, // duration out of bounds: (250,10000)
Expand Down Expand Up @@ -1786,16 +1791,37 @@ enum {
};

typedef enum MusicTrackVols {
TRACK_VOLS_0 = 0,
TRACK_VOLS_1 = 1,
TRACK_VOLS_2 = 2,
TRACK_VOLS_3 = 3,
TRACK_VOLS_JAN_FULL = 0,
TRACK_VOLS_UNUSED_1 = 1,
TRACK_VOLS_TIK_SHIVER = 2,
TRACK_VOLS_UNUSED_3 = 3,
TRACK_VOLS_KPA_OUTSIDE = 4,
TRACK_VOLS_KPA_1 = 5,
TRACK_VOLS_KPA_2 = 6,
TRACK_VOLS_KPA_3 = 7
} MusicTrackVols;

typedef enum BGMVariation {
BGM_VARIATION_0 = 0,
BGM_VARIATION_1 = 1,
BGM_VARIATION_2 = 2,
BGM_VARIATION_3 = 3,
} BGMVariation;
Comment thread
z64a marked this conversation as resolved.

/// Perceptual volume levels, 0 (mute) to 8 (max).
/// Only attenuates, never amplifies.
typedef enum VolumeLevels {
VOL_LEVEL_MUTE = 0,
VOL_LEVEL_1 = 1,
VOL_LEVEL_2 = 2,
VOL_LEVEL_3 = 3,
VOL_LEVEL_4 = 4,
VOL_LEVEL_5 = 5,
VOL_LEVEL_6 = 6,
VOL_LEVEL_7 = 7,
VOL_LEVEL_FULL = 8,
} VolumeLevels;

enum Cams {
CAM_DEFAULT = 0,
CAM_BATTLE = 1,
Expand Down Expand Up @@ -1881,18 +1907,20 @@ enum ActorPartTargetFlags {
enum AmbientSounds {
AMBIENT_SPOOKY = 0,
AMBIENT_WIND = 1,
AMBIENT_BEACH = 2,
AMBIENT_SEA = 2,
AMBIENT_JUNGLE = 3,
AMBIENT_LAVA_1 = 4,
AMBIENT_LAVA_2 = 5,
AMBIENT_SILENCE = 6,
AMBIENT_LAVA_FADE_IN = 6,
AMBIENT_LAVA_3 = 7,
AMBIENT_LAVA_4 = 8,
AMBIENT_LAVA_5 = 9,
AMBIENT_LAVA_6 = 10,
AMBIENT_LAVA_7 = 11,
AMBIENT_BIRDS = 12,
AMBIENT_SEA = 13,
AMBIENT_UNUSED_13 = 13, // copy of AMBIENT_SEA, available for replacement
AMBIENT_UNUSED_14 = 14, // copy of AMBIENT_SEA, available for replacement
AMBIENT_UNUSED_15 = 15, // copy of AMBIENT_SEA, available for replacement
AMBIENT_RADIO = 16, // radio songs for nok
// the following 4 IDs are reserved for additional radio songs,
// and no more are expected to follow after that
Expand Down Expand Up @@ -4656,15 +4684,6 @@ enum ProjectileHitboxAttackStates {
PROJECTILE_HITBOX_STATE_DONE = 100
};

enum MusicSettingsFlags {
MUSIC_SETTINGS_FLAG_1 = 0x00000001,
MUSIC_SETTINGS_FLAG_ENABLE_PROXIMITY_MIX = 0x00000002,
MUSIC_SETTINGS_FLAG_4 = 0x00000004,
MUSIC_SETTINGS_FLAG_8 = 0x00000008,
MUSIC_SETTINGS_FLAG_10 = 0x00000010,
MUSIC_SETTINGS_FLAG_20 = 0x00000020,
};

// the lower byte of ColliderFlags
enum SurfaceType {
SURFACE_TYPE_DEFAULT = 0,
Expand Down Expand Up @@ -6405,6 +6424,12 @@ enum WindowStyles {
WINDOW_STYLE_MAX = 22,
};

enum ThreadIDs {
THREAD_ID_PI = 0,
THREAD_ID_CRASH = 2,
THREAD_ID_AUDIO = 3, // also = NU_MAIN_THREAD_ID
};

// LANGUAGE_DEFAULT as 0 will be the first index into several arrays containing data based on the current language.
// For non-PAL versions, this will be the first and only index.
#define LANGUAGE_DEFAULT 0
Expand Down
22 changes: 0 additions & 22 deletions include/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -540,22 +540,6 @@ f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by);
f32 dist3D(f32 ax, f32 ay, f32 az, f32 bx, f32 by, f32 bz);
void add_vec2D_polar(f32* x, f32* y, f32 r, f32 theta);

//TODO -- remove these and use audio/public.h instead

enum AuResult bgm_set_track_volumes(s32 playerIndex, s16 trackVolSet);
enum AuResult bgm_clear_track_volumes(s32 playerIndex, s16 trackVolSet);
enum AuResult bgm_set_variation(s32 playerIndex, s16 arg1);
void bgm_quiet_max_volume(void);
void bgm_reset_max_volume(void);
void bgm_reset_volume(void);
s32 bgm_init_music_players(void);
s32 bgm_set_song(s32 playerIndex, s32 songID, s32 variation, s32 fadeOutTime, s16 volume);
void bgm_set_battle_song(s32, s32);
void bgm_push_battle_song(void);
s32 bgm_adjust_proximity(s32 playerIndex, s32 arg1, s16 arg2);
void func_801491E4(Matrix4f mtx, s32, s32, s32, s32, s32 alpha);
s32 func_8014A964(s32 playerIndex, s32 songID, s32 variation, s32 fadeInTime, s16 arg4, s16 arg5);

#include "audio/public.h"

void basic_window_update(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
Expand Down Expand Up @@ -606,8 +590,6 @@ void update_scripts(void);
void update_messages(void);
void update_entities(void);
void func_80138198(void);
void bgm_update_music_settings(void);
s32 func_8014AD40(void);
void update_ambient_sounds(void);
void update_windows(void);
void player_render_interact_prompts(void);
Expand All @@ -623,12 +605,8 @@ void render_curtains(void);
void fio_init_flash(void);
void func_80028838(void);
void clear_screen_overlays(void);
void bgm_reset_sequence_players(void);
void reset_ambient_sounds(void);
void poll_rumble(void);
void bgm_pop_song(void);
void bgm_push_song(s32 songID, s32 variation);
void bgm_pop_battle_song(void);
s32 play_ambient_sounds(s32 fadeInTime, s32 fadeOutTime);
s32 get_fortress_key_count(void);
s32 subtract_fortress_keys(s32 amt);
Expand Down
2 changes: 1 addition & 1 deletion include/variables.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ extern EvtScript EVS_NpcDefeat;
extern EvtScript ShakeCam1;
extern EvtScript ShakeCamX;

extern MusicSettings gMusicSettings[2];
extern MusicControlData gMusicControlData[2];

// gfx
extern DisplayContext* gDisplayContext;
Expand Down
Loading