#define CHEAT_STRING_LENGTH	8

#ifdef MULTI_LANGUAGE
typedef struct
{
	unsigned short name_id;
	char string[CHEAT_STRING_LENGTH];
	int type;
}CHEAT_TYPE;
#else
typedef struct
{
	char name[16];
	char string[CHEAT_STRING_LENGTH];
	int type;
}CHEAT_TYPE;
#endif
enum
{
	TOGGLE,
	REPEAT
};

enum
{
	CHEAT_SUMMON_BALL,				//0
	CHEAT_ACCESS_ALL_RESTARTS,		//1 
	CHEAT_LEVEL_SELECT,				//23

	CHEAT_INFINITE_ENERGY,			//6 
	CHEAT_INFINITE_LIVES,			//3 

	CHEAT_ALL_OFF,					//22

	CHEAT_WIN_LEVEL,				//2


	CHEAT_FROG_SPELL,				//15
	CHEAT_DEATH_SPELL,				//14
	CHEAT_HERCULES,					//16
	CHEAT_SPEEDUP,					//17
	CHEAT_ROTOR,					//17

	CHEAT_POWERBALL,				//4 
	CHEAT_BOOMERANGBALL,			//18
	CHEAT_BIGBALL,					//9 


	CHEAT_LO_GRAVITY,				//8 
	CHEAT_CINEMASCOPE,
	CHEAT_LOOKMODE,


/*
	CHEAT_LOCATE_GARIBS,			//0 
									    
	CHEAT_CONTROLBALL,				//5 
	CHEAT_BALL_TO_ENEMY,			//7 
									    
	CHEAT_FISHEYE,					//10
	CHEAT_ROTATE_CAM_LEFT,			//11
	CHEAT_ROTATE_CAM_RIGHT,			//12
	CHEAT_REAL_GARIB,				//13
									    
	CHEAT_VANISHBALL,				//19
									    
	CHEAT_HAND_TO_FROG,				//20
	CHEAT_CKBONUS,					//21
	CHEAT_OPEN_WORLDS,				//24
									    
	CHEAT_OPEN_LEVELS,				//25
*/
	NUM_CHEATS,						//26
};



#define	SUMMON_BALL_CHEAT			(1<<CHEAT_SUMMON_BALL)	
#define	WIN_LEVEL_CHEAT				(1<<CHEAT_WIN_LEVEL)	
#define	ACCESS_ALL_RESTARTS_CHEAT	(1<<CHEAT_ACCESS_ALL_RESTARTS)	
#define LEVEL_SELECT_CHEAT			(1<<CHEAT_LEVEL_SELECT)

#define FROG_SPELL_CHEAT			(1<<CHEAT_FROG_SPELL)	
#define DEATH_SPELL_CHEAT			(1<<CHEAT_DEATH_SPELL)	
#define HERCULES_CHEAT				(1<<CHEAT_HERCULES)	
#define SPEEDUP_CHEAT				(1<<CHEAT_SPEEDUP)	
#define ROTOR_CHEAT					(1<<CHEAT_ROTOR)	

#define POWERBALL_CHEAT				(1<<CHEAT_POWERBALL)	
#define BOOMERANGBALL_CHEAT			(1<<CHEAT_BOOMERANGBALL)	
#define BIGBALL_CHEAT				(1<<CHEAT_BIGBALL)	

#define INFINITE_ENERGY_CHEAT 		(1<<CHEAT_INFINITE_ENERGY)	
#define INFINITE_LIVES_CHEAT		(1<<CHEAT_INFINITE_LIVES)	

#define LO_GRAVITY_CHEAT			(1<<CHEAT_LO_GRAVITY)	
#define CINEMASCOPE_CHEAT			(1<<CHEAT_CINEMASCOPE)
#define LOOKMODE_CHEAT				(1<<CHEAT_LOOKMODE)

#define ALL_OFF_CHEAT				(1<<CHEAT_ALL_OFF)

/*
#define	LOCATE_GARIBS_CHEAT			(1<<CHEAT_LOCATE_GARIBS)	
#define CONTROLBALL_CHEAT  			(1<<CHEAT_CONTROLBALL)	
#define BALL_TO_ENEMY_CHEAT			(1<<CHEAT_BALL_TO_ENEMY)	
#define FISHEYE_CHEAT				(1<<CHEAT_FISHEYE)	
#define ROTATE_CAM_LEFT_CHEAT		(1<<CHEAT_ROTATE_CAM_LEFT) 
#define ROTATE_CAM_RIGHT_CHEAT		(1<<CHEAT_ROTATE_CAM_RIGHT) 
#define	REAL_GARIB_CHEAT			(1<<CHEAT_REAL_GARIB) 
#define VANISHBALL_CHEAT			(1<<CHEAT_VANISHBALL)	
#define HAND_TO_FROG_CHEAT			(1<<CHEAT_HAND_TO_FROG)	
#define CKBONUS_CHEAT				(1<<CHEAT_CKBONUS)
#define OPEN_WORLDS_CHEAT			(1<<CHEAT_OPEN_WORLDS)
#define OPEN_LEVELS_CHEAT			(1<<CHEAT_OPEN_LEVELS)
*/
enum
{
	CHT_DUMMY,
	CHT_LEFT,
	CHT_RIGHT,
	CHT_UP,
	CHT_DOWN
};

extern CHEAT_TYPE cheatInfo[NUM_CHEATS];


extern int cheatActivated;
extern char cheatSFX[4];
extern char isl_dongle_used;

extern char cheatCheck();	// call during pause menu display
void cheatActivate(char num,char disp);

extern char cheatNeedsDraw;
void cheatDisplay();


void cheatDoCallBall();
void cheatDoWinLevel();
void cheatSetText(char *string);


