/***************************************************************************
 *
 * menu.h
 *
 ***************************************************************************
 *
 * pause-menu processing
 *
 ***************************************************************************/

#ifndef MENU_H_INCLUDED
#define MENU_H_INCLUDED

/*
 * includes
 */

#include "ult_64.h"
#include "main.h"
#include "define.h"
#include "ml.h"

/*
 * defines
 */

#define MENU_PAUSE		0
#define MENU_SPEECH		1
#define MENU_CAMERA		2
#define MENU_TEAM		3
#define MENU_QUARTER	4
#define MENU_REPLAY		5
#define MENU_QUIT		6
#define MENU_HALFTIME	7
#define MENU_FULLTIME	8
#define MENU_SETS		9
#define MENU_AUTOSUB	10
#define MENU_FTHELP		11
#define MENU_FORCESUB	12
#define MENU_CHEAT		13
#define MENU_CONTEST	14
#define MENU_PRACTICE	15
#define MENU_HINT		16	


/*
 * typedefs
 */

/*
 * structures
 */

enum pausechoices {

	PAUSE_MENU_CALL_TIME_OUT,
	PAUSE_MENU_SUBSTITUTIONS,		
	PAUSE_MENU_REPLAY,
	PAUSE_MENU_CAMERA_OPTIONS,
	PAUSE_MENU_GOTO_SCOREBOARD,
	PAUSE_MENU_SHELL_MENU,
	PAUSE_MENU_QUIT_GAME,

	PAUSE_MENU_SPECIAL,	

	PAUSE_MENU_GAME_HINT,

// below here only for "grayed out" stuff in shell	
	PAUSE_MENU_TEAM_SETTINGS,
	PAUSE_MENU_OFF_SETS,

	MAX_PAUSE_MENU_CHOICES
};

#define NORMAL_PAUSE_MENU_CHOICES 	(PAUSE_MENU_SPECIAL)

/*
 * globals
 */

extern int menuFlag,manualReplayFlag;
extern int menuChoice,menuChoices;
extern int menuScoreboardFlag;
extern char *pauseMenuStrings[];
extern char	pauseSelectable[MAX_PAUSE_MENU_CHOICES];

#define NUM_PRACTICE_MENU_OPTIONS (4+1+1)
extern char *PracticeMenuStrings[];

extern u8
	MenuWhich,
	ReallyQuit;


/*
 * function prototypes
 */

extern void ProcessMenu(SI *ctrl);
extern void StartMenu(int which,int whichMenu);
extern void EndMenu(int which);
extern void InitMenu(void);
extern Gfx	*RenderMenu(Gfx *gp,int draw_buffer,dyn *d);
extern Gfx  *MsgRender(Gfx *gp,char *s,int y,dyn *d);
extern void SubAnnounce(int team);


void DeinitPlayer( s32 pnum );
void InitPlayer( s32 pnum );


#endif
