/*ANNECY BBB 03/11/97 {*/
/*identique à celui de GAM\TTrouble\P5\, mais recopié ici pour être accessible*/
/*ENDANNECY BBB 03/11/97 }*/
/*=========================================================================
* GamOpt.c : Game Options
* This is a part of the Ed project.
*
* Version              1.0
* Creation date        30/06/97
* Revision date
* 
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__GamOpt_h__)
#define __GamOpt_h__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
 
#include "GAM/Header.h"
 
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
 
M_BeginDeclareEnumerate(tdeScreenResolution)
 e_SR_Default = 0,
 e_SR_320x240,
 e_SR_400x300,
 e_SR_480x360,
 e_SR_512x384,
 e_SR_640x480,
 e_SR_800x600,
 e_SR_960x720,
 e_SR_1024x768,
 e_SR_1152x864,
 e_SR_1600x1200,
M_EndDeclareEnumerate(tdeScreenResolution,unsigned char)
 
#define C_ucNbSaveGameSlots 3
#define C_ucSaveGameSlotNameLength 8
 
#ifndef U64
/*********** FabPerez ***********************/
typedef  struct  _StructRecupPosSlot{
								unsigned long pos;
								struct _StructRecupPosSlot * pt_NextStructRecupPosSlot ;
								char  a_szSlotNames[C_ucSaveGameSlotNameLength + 1];
								char  a_szOldSlotNames[C_ucSaveGameSlotNameLength + 1];
} StructRecupPosSlot;
/******************************************/
#endif

typedef struct tdstGameOptions_
{
 /**** FileNames of options ****/
 char szDefaultFileName[_MAX_PATH];
 char szCurrentFileName[_MAX_PATH];
 
 /**** Player name ****/
 /*char szPlayerName[_MAX_PATH];*/
 

 /* slot names*/
 char a_szSlotNames[C_ucNbSaveGameSlots][C_ucSaveGameSlotNameLength + 1];
 unsigned long ulCurrentSlot;
#ifdef U64
 char a_cSlotIdOnControllerPak[C_ucNbSaveGameSlots];
 char cNbAvailableSlots;
#endif /* U64*/
 /**** Video's options ****/
 unsigned long ulDetails;
 unsigned long ulScreenSize;
 /**** Sound's options ****/
 unsigned long ulFxVolume;
 unsigned long ulMusicVolume;
 unsigned long ulVoiceVolume;
} tdstGameOptions;
 
 
extern CPA_EXPORT void fn_vSetGameOptionsSlotName(short _wSlotdId, char *_szSlotName);
extern CPA_EXPORT char *fn_szGetGameOptionsSlotName(short _wSlotId);
 
extern CPA_EXPORT void fn_vSetDefaultGameOptionsFileName(char *_szFileName);
extern CPA_EXPORT void fn_vSetCurrentGameOptionsFileName(char *_szFileName);
 
extern CPA_EXPORT unsigned char fn_bSaveCurrentGameOptions(void);
 
extern CPA_EXPORT unsigned char fn_bLoadCurrentGameOptions(void);
extern CPA_EXPORT unsigned char fn_bLoadDefaultGameOptions(void);
extern CPA_EXPORT unsigned char fn_bLoadGameOptions(char *_szFileName);
 
/*extern CPA_EXPORT void fn_vMenuOptionInitDetails(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeDetailsValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitScreenSize(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeScreenSizeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
 
/*extern CPA_EXPORT void fn_vMenuOptionInitMusicVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitFxVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionInitVoiceVolume(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeMusicVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeFxVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
/*extern CPA_EXPORT void fn_vMenuOptionChangeVoiceVolumeValue(struct MNU_stMenuItem_ *hMenuItem,char *szText[]);*/
 
extern CPA_EXPORT void fn_vValidateAllOption(void);
/*extern CPA_EXPORT void fn_vChangePlayerName(char *_szName);*/
extern CPA_EXPORT void fn_vChangeDetailsValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeScreenSizeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeMusicVolumeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeFxVolumeValue(unsigned long _ulValue);
extern CPA_EXPORT void fn_vChangeVoiceVolumeValue(unsigned long _ulValue);
 
/*ANNECY BBB 03/11/97 {*/
extern CPA_EXPORT tdstGameOptions g_stGameOptions;
/*ENDANNECY BBB 03/11/97 }*/
#if defined(WIN32) && defined(_DEBUG) /* on PC, and in debug versions */
extern CPA_EXPORT ACP_tdxBool g_bIsLoadingAnAlways ;
#endif /* WIN32 && _DEBUG */
 
#if defined(__cplusplus)
}
#endif /* __cplusplus */
 
#endif /* __GamOpt_h__ */
