summaryrefslogtreecommitdiff
path: root/src/include/netlem_state_machine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/netlem_state_machine.h')
-rw-r--r--src/include/netlem_state_machine.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/include/netlem_state_machine.h b/src/include/netlem_state_machine.h
new file mode 100644
index 0000000..0bc9779
--- /dev/null
+++ b/src/include/netlem_state_machine.h
@@ -0,0 +1,32 @@
+#ifndef NETLEM_STATE_MACHINE_H
+#define NETLEM_STATE_MACHINE_H
+
+#include "SDL/SDL_net.h"
+
+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 s);
+state_t changeStateAndNotify(state_t s, TCPsocket sockClient);
+
+#endif /*NETLEM_STATE_MACHINE_H*/