#if !defined(__SAI_Enum_h__)
#define __SAI_Enum_h__
 
/***********************************************************
 *** The flags are coded on a short :                    ***
 ***                                                     ***
 ***  0000000000000000                                   ***
 ***  ^^^^^^^^^^^^^^^^                                   ***
 ***  ||||||||||||||||                                   ***
 ***  ||||||||||\------- Type of Initialisation          ***
 ***  ||||||||||                                         ***
 ***  ||||||\----------- Type of save                    ***
 ***  ||||||                                             ***
 ***  ||||||                                             ***
 ***  \----------------- Type of datas                   ***
 ***********************************************************/
 
#define  C_UserFlags                         (unsigned short) 0x03FF
#define  C_PrivateFlags                      (unsigned short) 0xFC00
#define  C_TypesFlags                        (unsigned short) 0xFC00
 
#if defined(__cplusplus)
    extern "C" {
#endif
 
/* To optimise memory, enum has been transformed into an unsigned short*/
#define  SAI_tdeFlags                        unsigned short
 
 /**** Initialisation's types ****/
#define  SAI_eInitWhenNewGameStart           (unsigned short) 0x0001
#define  SAI_eInitWhenMapLoaded              (unsigned short) 0x0002
#define  SAI_eInitWhenPlayerGameSavedLoaded  (unsigned short) 0x0004
#define  SAI_eInitWhenLevelGameSavedLoaded   (unsigned short) 0x0008
#define  SAI_eInitWhenReinitTheMap           (unsigned short) 0x0010
#define  SAI_eInitWhenPlayerDead             (unsigned short) 0x0020
 
 /**** Save's types ****/
#define  SAI_ePlayerSaveTableValue           (unsigned short) 0x0040
#define  SAI_ePlayerSaveCurrentValue         (unsigned short) 0x0080
#define  SAI_ePlayerSaveMask                 ( SAI_ePlayerSaveTableValue | SAI_ePlayerSaveCurrentValue )
#define  SAI_eLevelSaveTableValue            (unsigned short) 0x0100
#define  SAI_eLevelSaveCurrentValue          (unsigned short) 0x0200
#define  SAI_eLevelSaveMask                  ( SAI_eLevelSaveTableValue | SAI_eLevelSaveCurrentValue )
#define  SAI_eAllSaveMask                    ( SAI_eLevelSaveMask | SAI_ePlayerSaveMask )
 
 /**** Data's types ****/
#define  SAI_eType8                          (unsigned short) 0x1000
#define  SAI_eType16                         (unsigned short) 0x2000
#define  SAI_eType32                         (unsigned short) 0x3000
#define  SAI_eType64                         (unsigned short) 0x4000
#define  SAI_eTypeXX                         (unsigned short) 0x5000
#define  SAI_eTypePointer                    (unsigned short) 0x7000
#ifndef U64 /* Oliv' - 07/07/1999 */
#define  SAI_eType1                          (unsigned short) 0x8000
#endif /* U64 */
 
#if defined(__cplusplus)
    }
#endif
 
#endif /* __SAI_Enum_h__ */
