//SNDGAME - [2020-06-22 11:41:46]
#ifndef _SNDGAME_H_
#define _SNDGAME_H_

#include "common.h"

/*
001D189C SNDGEN_Init()
001D1914 SNDGEN_SetOptionsVolumes()
001D1998 SNDGEN_Process()
001D199C SNDGEN_Shutdown()
001D19FC SNDGEN_SetVolume(eAUDIO_TYPES,float)
001D1A8C SNDGEN_PlaySFXVol(int,float)


001D1AC8 SNDGAME_Init()
001D1BA8 SNDGAME_Commentary_Init()
001D1BD8 SNDGAME_Crowd_Init()
001D1C54 SNDGAME_ResetSoundBeingPlayed()
001D1C80 SNDGAME_Process()
001D1CA0 SNDGAME_Commentary_Process()
001D1D68 SNDGAME_Crowd_Process()
001D1EF8 SNDGAME_Shutdown()
001D1F2C SNDGAME_Crowd_Shutdown()
001D1F68 SNDGAME_Commentary_Shutdown()
001D1F80 SNDGAME_Crowd_Play(int,float)
001D2020 SNDGAME_Crowd_StopReactions()
001D2058 SNDGAME_Crowd_PlayReaction(int)
001D20A8 SNDGAME_SetCrowdBeingPlayed(int)
001D20B8 SNDGAME_Crowd_Pause(bool)
001D2174 SNDGAME_Commentary_Queue_Get()
001D21B0 SNDGAME_SetCommentaryBeingPlayed(int)
001D21C0 SNDGAME_Commentary_Stop()
001D21E8 SNDGAME_Commentary_QueueTypeXPriority(int,int,int)
001D2248 SNDGAME_Commentary_QueueXPriority(int,int)
001D2298 SNDGAME_Commentary_SetEnabled(bool)
001D22A8 SNDGAME_PlaySFX(int)
001D23D4 SNDGAME_SetSfxBeingPlayed(int)
001D23FC SNDGAME_GetSfxBeingPlayed()
001D240C SNDGAME_GetCommentaryBeingPlayed()
001D241C SNDGAME_GetCrowdBeingPlayed()
*/

extern bool SNDGAME_bInitialised;
extern bool SNDGAME_bCommentaryEnabled;
extern int SNDGAME_iSfxBeingPlayed;
extern int SNDGAME_iCommentaryBeingPlayed;
extern int SNDGAME_iCrowdBeingPlayed;

enum EAUDIO_TYPES {
  EAUDIO_TYPES_0,
  EAUDIO_TYPES_1,
  EAUDIO_TYPES_2,
  EAUDIO_TYPES_3,
  EAUDIO_TYPES_4,
  EAUDIO_TYPES_5,
};

struct SNDGEN_Volume {
	float field_0;
	float field_4;
	float field_8;
};
struct GSND_SubStruct {
	int field_0;
	int field_4;
};

struct GSND_Info {
	int field_0;
	GSND_SubStruct field_4[3];  //text:001D2186                 LDR.W           R0, [R12,#4]
	int field_1C;	//ext:001D1CB2                 LDR             R0, [R5,#0x1C
	int field_20;  //.text:001D1CCA                 LDR             R2, [R5,#0x20]
};

extern GSND_Info GSND_tInfo;

//001D189C
void SNDGEN_Init();

//001D1914
void SNDGEN_SetOptionsVolumes();

//001D1998
void SNDGEN_Process();

//001D199C
void SNDGEN_Shutdown();

//001D19FC
void SNDGEN_SetVolume(EAUDIO_TYPES, float);

//001D1A8C
void SNDGEN_PlaySFXVol(int, float);

//001D1AC8
void SNDGAME_Init();

//001D1BA8
void SNDGAME_Commentary_Init();

//001D1BD8
void SNDGAME_Crowd_Init();

//001D1C54
void SNDGAME_ResetSoundBeingPlayed();

//001D1C80
void SNDGAME_Process();

//001D1CA0
void SNDGAME_Commentary_Process();

//001D1D68
void SNDGAME_Crowd_Process();

//001D1EF8
void SNDGAME_Shutdown();

//001D1F2C
void SNDGAME_Crowd_Shutdown();

//001D1F68
void SNDGAME_Commentary_Shutdown();

//001D1F80
void SNDGAME_Crowd_Play(int, float);

//001D2020
void SNDGAME_Crowd_StopReactions();

//001D2058
void SNDGAME_Crowd_PlayReaction(int);

//001D20A8
void SNDGAME_SetCrowdBeingPlayed(int);

//001D20B8
void SNDGAME_Crowd_Pause(bool);

//001D2174
int SNDGAME_Commentary_Queue_Get();

//001D21B0
void SNDGAME_SetCommentaryBeingPlayed(int);

//001D21C0
void SNDGAME_Commentary_Stop();

//001D21E8
void SNDGAME_Commentary_QueueTypeXPriority(int, int, int);

//001D2248
void SNDGAME_Commentary_QueueXPriority(int, int);

//001D2298
void SNDGAME_Commentary_SetEnabled(bool);

//001D22A8
void SNDGAME_PlaySFX(int);

//001D23D4
void SNDGAME_SetSfxBeingPlayed(int);

//001D23FC
int SNDGAME_GetSfxBeingPlayed();

//001D240C
int SNDGAME_GetCommentaryBeingPlayed();

//001D241C
int SNDGAME_GetCrowdBeingPlayed();


extern   float SNDGEN_fVolume[3];
extern bool SNDGEN_bInitialised;
extern class CFTTAudio_Bank *SNDGEN_pPatchBank;
#endif  //_SNDGAME_H_