#ifndef Z2PARAM_H
#define Z2PARAM_H

#include <types.h>

struct Z2Param {
    static DUSK_GAME_DATA f32 DISTANCE_MAX;
    static DUSK_GAME_DATA f32 MAX_VOLUME_DISTANCE;
    static DUSK_GAME_DATA f32 DOLBY_CENTER_VALUE;
    static DUSK_GAME_DATA f32 DOLBY_FLONT_DISTANCE_MAX;
    static DUSK_GAME_DATA f32 DOLBY_BEHIND_DISTANCE_MAX;
    static DUSK_GAME_DATA f32 DISTANCE_FX_PARAM;
    static DUSK_GAME_DATA f32 SONIC_SPEED;
    static DUSK_GAME_DATA f32 VOL_BGM_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_SYSTEM_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_VOICE_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_MOTION_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_FOOTNOTE_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_VOICE_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_MOVE_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_OBJECT_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_SE_ATMOSPHERE_DEFAULT;
    static DUSK_GAME_DATA f32 VOL_BGM_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_SYSTEM_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_VOICE_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_MOTION_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_FOOTNOTE_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_VOICE_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_MOVE_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_OBJECT_TALKING;
    static DUSK_GAME_DATA f32 VOL_SE_ATMOSPHERE_TALKING;
    static DUSK_GAME_DATA f32 VOL_BGM_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_SYSTEM_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_VOICE_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_MOTION_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_LINK_FOOTNOTE_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_VOICE_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_CHAR_MOVE_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_OBJECT_PAUSING;
    static DUSK_GAME_DATA f32 VOL_SE_ATMOSPHERE_PAUSING;
    static DUSK_GAME_DATA f32 MIN_DISTANCE_VOLUME;
    static DUSK_GAME_DATA f32 ENEMY_LASTHIT_MUTE_VOLUME;

    // made up names based on HIO labels
    static DUSK_GAME_DATA u8 SCENE_CHANGE_BGM_FADEOUT_TIME;
    static DUSK_GAME_DATA u8 BGM_CROSS_FADEIN_TIME;
    static DUSK_GAME_DATA u8 BGM_CROSS_FADEOUT_TIME;
    static DUSK_GAME_DATA u8 BATTLE_BGM_WAIT_TIME;

    static f32 ENEMY_NEARBY_DIST;
    static f32 BATTLE_FADEIN_DIST;
    static f32 BATTLE_FADEOUT_DIST;

    static DUSK_GAME_DATA u8 FOUND_TRACK_FI_TIME;
    static DUSK_GAME_DATA u8 FOUND_TRACK_FO_TIME;
    static DUSK_GAME_DATA u8 CLOSE_BATTLE_TRACK_FI_TIME;
    static DUSK_GAME_DATA u8 CLOSE_BATTLE_TRACK_FO_TIME;

    static DUSK_GAME_DATA u8 ENDING_BLOW_VOL_DOWN_TIME;
    static DUSK_GAME_DATA u8 ENDING_BLOW_VOL_LOWER_TIME;
    static DUSK_GAME_DATA u8 ENDING_BLOW_VOL_LOWER_RECOVER_TIME;
    static DUSK_GAME_DATA u8 ENDING_BLOW_MIN_FINISH_TIME;

    static DUSK_GAME_DATA u8 DARK_SE_FILTER_ON;
    static DUSK_GAME_DATA u8 DARK_SE_LOW_PASS_FILTER_SETTING;
    static DUSK_GAME_DATA u8 SYSTEM_SE_USE_DARK_SE_SETTING;

    static f32 AUDIBLE_DELTA_RANGE_VOLUME;
    static f32 AUDIBLE_DELTA_RANGE_PAN;
    static f32 AUDIBLE_DELTA_RANGE_DOLBY;
};

DUSK_GAME_EXTERN u8 data_8045086C;

#endif /* Z2PARAM_H */
