// BLANKART
//-----------------------------------------------------------------------------
// Copyright (C) 1998-2000 by DooM Legacy Team.
// Copyright (C) 1999-2020 by Sonic Team Junior.
//
// This program is free software distributed under the
// terms of the GNU General Public License, version 2.
// See the 'LICENSE' file for more details.
//-----------------------------------------------------------------------------
/// \file  g_state.h
/// \brief SRB2 game states

#ifndef __G_STATE__
#define __G_STATE__

#include "doomtype.h"

#ifdef __cplusplus
extern "C" {
#endif

// the current state of the game
typedef enum
{
	FORCEWIPE = -2,     // HACK for menu fading while titlemapinaction; skips the level check
	GS_NULL = 0,        // At beginning.

	// Fadable gamestates
	GS_LEVEL,           // Playing, in a level.
	GS_INTERMISSION,    // Gazing at the intermission screen.
	GS_VOTING,          // SRB2Kart: MP voting screen

	GS_TITLESCREEN,     // title screen
	GS_TIMEATTACK,      // time attack menu

	GS_CREDITS,         // credit sequence
	GS_BLANCREDITS,		// BlanKart: Credits for BlanKart
	GS_SECRETCREDITS,   // BlanKart: Secret/full credits
	GS_EVALUATION,      // Evaluation at the end of a game.

	// Hardcoded fades or other fading methods
	GS_INTRO,           // introduction
	GS_CUTSCENE,        // custom cutscene

	// Not fadable
	GS_DEDICATEDSERVER, // new state for dedicated server
	GS_WAITINGPLAYERS,   // waiting for players in a net game
} gamestate_t;

typedef enum
{
	ga_nothing,
	ga_completed,
	ga_worlddone,
	ga_startcont,
	ga_continued,
	ga_startvote,
} gameaction_t;

extern gamestate_t gamestate;
extern UINT8 titlemapinaction;
extern UINT8 ultimatemode; // was sk_insane
extern gameaction_t gameaction;

#ifdef __cplusplus
} // extern "C"
#endif

#endif //__G_STATE__
