summaryrefslogtreecommitdiff
path: root/src/include/netlem_state_machine.h
blob: 7a3a5a602c34dc82b6fa119fcf292b1879d1db49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef NETLEM_STATE_MACHINE_H 
#define NETLEM_STATE_MACHINE_H 

#include "SDL/SDL_net.h"

// Big  state machine for the diffrent states of the game (from splashscreen to game.
typedef enum {
	eNull,				// Pseudo_state for _getOrChangeState : do not change state, just return current state
	eLaunching,			// Initial state, during system objects initialization
	eSplash,			// State for displaying Game Logo
	eMenuMain,			// State for main menu (next lines are sub-menus)
	eMenuOptions,			// State for general options (screen resolution, music...)
	eMenuSingle,			// State for single player options (level selection...)
	eMenuMultiChooseServer,		// State for network game server selection
	eMenuMultiChooseOptions,	// State for network game options selection (level, players, speed...)
	eMultiWaitPlayers,		// State for 
	eMultiLoading,			// 
	eMultiWaitLoading,		// 
	eMultiGame,			// 
	eMultiReport,			//
	eSingleBrief,			// State for single player level briefing (number of Lemmings to save...)
	eSingleGame,			// State for single player game (user is actually playing)
	eSingleReport,			// State for single player game report (number of saved Lemmings, access code...)
	eCredits,			// 
	eEnd				// State reached when this program is exiting
} state_t;


state_t getState();
state_t changeState(state_t newState);
state_t changeStateAndNotify(state_t newState, TCPsocket sockClient);

#endif /*NETLEM_STATE_MACHINE_H*/