mantis_2977_1.diff (17,629 bytes)
2013-12-13 10:09
diff --git a/code/gamesequence/gamesequence.cpp b/code/gamesequence/gamesequence.cpp
index c10bfd8..e0e7944 100644
--- a/code/gamesequence/gamesequence.cpp
+++ b/code/gamesequence/gamesequence.cpp
@@ -42,7 +42,7 @@ static int state_in_event_processer = 0;
script_hook GS_state_hooks[GS_NUM_STATES];
-// Text of state, corresponding to #define values for GS_STATE_*
+// Text of state, corresponding to enum values for GS_STATE_*
//XSTR:OFF
char *GS_event_text[] =
{
@@ -106,19 +106,19 @@ char *GS_event_text[] =
"GS_EVENT_RED_ALERT",
"GS_EVENT_SIMULATOR_ROOM",
"GS_EVENT_END_CAMPAIGN",
- "GS_EVENT_LOOP_BRIEF",
+ "GS_EVENT_LOOP_BRIEF", // 60
"GS_EVENT_CAMPAIGN_CHEAT",
"GS_EVENT_PXO",
"GS_EVENT_LAB",
- "GS_EVENT_PXO_HELP", // 65
- "GS_EVENT_FICTION_VIEWER",
+ "GS_EVENT_PXO_HELP",
+ "GS_EVENT_FICTION_VIEWER", // 65
"GS_EVENT_SCRIPTING"
};
//XSTR:ON
int Num_gs_event_text = sizeof(GS_event_text)/sizeof(char*);
-// Text of state, corresponding to #define values for GS_STATE_*
+// Text of state, corresponding to enum values for GS_STATE_*
//XSTR:OFF
char *GS_state_text[] =
{
@@ -171,8 +171,8 @@ char *GS_state_text[] =
"GS_STATE_GAMEPLAY_HELP",
"GS_STATE_LOOP_BRIEF",
"GS_STATE_PXO",
- "GS_STATE_LAB", // 50
- "GS_STATE_PXO_HELP",
+ "GS_STATE_LAB",
+ "GS_STATE_PXO_HELP", // 50
"GS_STATE_START_GAME",
"GS_STATE_FICTION_VIEWER",
"GS_STATE_SCRIPTING"
diff --git a/code/gamesequence/gamesequence.h b/code/gamesequence/gamesequence.h
index e1788ff..33b9e57 100644
--- a/code/gamesequence/gamesequence.h
+++ b/code/gamesequence/gamesequence.h
@@ -15,143 +15,153 @@
#ifndef __GAMESEQUENCE_H__
#define __GAMESEQUENCE_H__
-// defines for game sequencing events
-//
-
-#define GS_EVENT_MAIN_MENU 0 // first event to move to first state
-#define GS_EVENT_START_GAME 1 // start a new game (Loads a mission then goes to briefing state)
-#define GS_EVENT_ENTER_GAME 2 // switches into game state, probably after mission briefing or ship selection.
-#define GS_EVENT_START_GAME_QUICK 3 // start a new game (Loads a mission then goes to directly to game state)
-#define GS_EVENT_END_GAME 4 // end the current game (i.e. back to main menu)
-#define GS_EVENT_QUIT_GAME 5 // quit the entire game
-#define GS_EVENT_PAUSE_GAME 6 // pause the current game
-#define GS_EVENT_PREVIOUS_STATE 7 // return to the previous state
-#define GS_EVENT_OPTIONS_MENU 8 // go to the options menu
-#define GS_EVENT_BARRACKS_MENU 9 // go to the barracks menu
-#define GS_EVENT_TRAINING_MENU 10 // go to the training menu
-#define GS_EVENT_TECH_MENU 11 // go to the tech room menu
-#define GS_EVENT_LOAD_MISSION_MENU 12 // go to the load mission menu
-#define GS_EVENT_SHIP_SELECTION 13 // Show ship selection menu
-#define GS_EVENT_TOGGLE_FULLSCREEN 14 // toggle fullscreen mode
-#define GS_EVENT_START_BRIEFING 15 // go to the briefing for the current mission
-#define GS_EVENT_DEBUG_PAUSE_GAME 16
-#define GS_EVENT_HUD_CONFIG 17 // start the HUD configuration screen
-#define GS_EVENT_MULTI_JOIN_GAME 18 // start multiplayer join game screen
-#define GS_EVENT_CONTROL_CONFIG 19 // get user to choose what type of controller to config
-#define GS_EVENT_EVENT_DEBUG 20 // an event debug trace scroll list display screen
-#define GS_EVENT_WEAPON_SELECTION 21 // Do weapon loadout
-#define GS_EVENT_MISSION_LOG_SCROLLBACK 22 // scrollback screen for message log entries
-#define GS_EVENT_GAMEPLAY_HELP 23 // show help for the gameplay
-#define GS_EVENT_DEATH_DIED 24 // Player just died
-#define GS_EVENT_DEATH_BLEW_UP 25 // Saw ship explode.
-#define GS_EVENT_NEW_CAMPAIGN 26
-#define GS_EVENT_CREDITS 27 // Got to the credits
-#define GS_EVENT_SHOW_GOALS 28 // Show the goal status screen
-#define GS_EVENT_HOTKEY_SCREEN 29 // Show the hotkey assignment screen
-#define GS_EVENT_VIEW_MEDALS 30 // Go to the View Medals screen
-#define GS_EVENT_MULTI_HOST_SETUP 31 // host setup for multiplayer
-#define GS_EVENT_MULTI_CLIENT_SETUP 32 // client setup for multiplayer
-#define GS_EVENT_DEBRIEF 33 // go to debriefing
-#define GS_EVENT_GOTO_VIEW_CUTSCENES_SCREEN 34 // go to the management screen
-#define GS_EVENT_MULTI_STD_WAIT 35 // standalone wait state
-#define GS_EVENT_STANDALONE_MAIN 36 // the main do-nothing state of the standalone
-#define GS_EVENT_MULTI_PAUSE 37 // pause your multiplayer game
-#define GS_EVENT_TEAM_SELECT 38 // team selection for multiplayer
-#define GS_EVENT_TRAINING_PAUSE 39 // pause game while training message is displayed
-#define GS_EVENT_INGAME_PRE_JOIN 40 // go to ship selection screen for ingame join
-#define GS_EVENT_PLAYER_WARPOUT_START 41 // player hit 'j' to warp out
-#define GS_EVENT_PLAYER_WARPOUT_START_FORCED 42 // player is being forced out of mission no matter what
-#define GS_EVENT_PLAYER_WARPOUT_STOP 43 // player hit 'esc' or something to cancel warp out
-#define GS_EVENT_PLAYER_WARPOUT_DONE_STAGE1 44 // player ship got up to speed
-#define GS_EVENT_PLAYER_WARPOUT_DONE_STAGE2 45 // player ship got through the warp effect
-#define GS_EVENT_PLAYER_WARPOUT_DONE 46 // warp effect went away
-#define GS_EVENT_STANDALONE_POSTGAME 47 // debriefing, etc
-#define GS_EVENT_INITIAL_PLAYER_SELECT 48 // initial screen where player selects from multi/single player pilots
-#define GS_EVENT_GAME_INIT 49
-#define GS_EVENT_MULTI_MISSION_SYNC 50 // sychronize/transfer/load any mission specific data in multiplayer
-#define GS_EVENT_MULTI_START_GAME 51 // immediately before the create game screen for the host to set the game variables
-#define GS_EVENT_MULTI_HOST_OPTIONS 52 // options the host can set while in the create game scree
-#define GS_EVENT_MULTI_DOGFIGHT_DEBRIEF 53 // multiplayer furball debriefing screen (replaces normal debriefing)
-#define GS_EVENT_CAMPAIGN_ROOM 54
-#define GS_EVENT_CMD_BRIEF 55 // switch to command briefing screen
-#define GS_EVENT_TOGGLE_GLIDE 56 // GS_EVENT_TOGGLE_GLIDE
-#define GS_EVENT_RED_ALERT 57 // go to red alert screen
-#define GS_EVENT_SIMULATOR_ROOM 58
-#define GS_EVENT_END_CAMPAIGN 59 // end of the whole thang.
-#define GS_EVENT_LOOP_BRIEF 61 // campaign loop brief
-#define GS_EVENT_CAMPAIGN_CHEAT 62 // skip to a mission in a campaign
-#define GS_EVENT_PXO 63
-#define GS_EVENT_LAB 64 // WMC - I-FRED concept
-#define GS_EVENT_PXO_HELP 65
-#define GS_EVENT_FICTION_VIEWER 66
-#define GS_EVENT_SCRIPTING 67
-
+/**
+ * @brief Enum's for Game Sequence Events.
+ *
+ * @details IMPORTANT: When you add a new event, update the initialization for GS_event_text[] which is done in
+ * gamesequence.cpp. Otherwise, the fs2_open.log string "Got event..." will not display properly.
+ */
+enum GS_EVENT {
+ GS_EVENT_MAIN_MENU = 0, // first event to move to first state
+ GS_EVENT_START_GAME, // start a new game (Loads a mission then goes to briefing state)
+ GS_EVENT_ENTER_GAME, // switches into game state, probably after mission briefing or ship selection.
+ GS_EVENT_START_GAME_QUICK, // start a new game (Loads a mission then goes to directly to game state)
+ GS_EVENT_END_GAME, // end the current game (i.e. back to main menu)
+ GS_EVENT_QUIT_GAME, // quit the entire game
+ GS_EVENT_PAUSE_GAME, // pause the current game
+ GS_EVENT_PREVIOUS_STATE, // return to the previous state
+ GS_EVENT_OPTIONS_MENU, // go to the options menu
+ GS_EVENT_BARRACKS_MENU, // go to the barracks menu
+ GS_EVENT_TRAINING_MENU, // go to the training menu
+ GS_EVENT_TECH_MENU, // go to the tech room menu
+ GS_EVENT_LOAD_MISSION_MENU, // go to the load mission menu
+ GS_EVENT_SHIP_SELECTION, // Show ship selection menu
+ GS_EVENT_TOGGLE_FULLSCREEN, // toggle fullscreen mode
+ GS_EVENT_START_BRIEFING, // go to the briefing for the current mission
+ GS_EVENT_DEBUG_PAUSE_GAME,
+ GS_EVENT_HUD_CONFIG, // start the HUD configuration screen
+ GS_EVENT_MULTI_JOIN_GAME, // start multiplayer join game screen
+ GS_EVENT_CONTROL_CONFIG, // get user to choose what type of controller to config
+ GS_EVENT_EVENT_DEBUG, // an event debug trace scroll list display screen
+ GS_EVENT_WEAPON_SELECTION, // Do weapon loadout
+ GS_EVENT_MISSION_LOG_SCROLLBACK, // scrollback screen for message log entries
+ GS_EVENT_GAMEPLAY_HELP, // show help for the gameplay
+ GS_EVENT_DEATH_DIED, // Player just died
+ GS_EVENT_DEATH_BLEW_UP, // Saw ship explode.
+ GS_EVENT_NEW_CAMPAIGN,
+ GS_EVENT_CREDITS, // Got to the credits
+ GS_EVENT_SHOW_GOALS, // Show the goal status screen
+ GS_EVENT_HOTKEY_SCREEN, // Show the hotkey assignment screen
+ GS_EVENT_VIEW_MEDALS, // Go to the View Medals screen
+ GS_EVENT_MULTI_HOST_SETUP, // host setup for multiplayer
+ GS_EVENT_MULTI_CLIENT_SETUP, // client setup for multiplayer
+ GS_EVENT_DEBRIEF, // go to debriefing
+ GS_EVENT_GOTO_VIEW_CUTSCENES_SCREEN, // go to the management screen
+ GS_EVENT_MULTI_STD_WAIT, // standalone wait state
+ GS_EVENT_STANDALONE_MAIN, // the main do-nothing state of the standalone
+ GS_EVENT_MULTI_PAUSE, // pause your multiplayer game
+ GS_EVENT_TEAM_SELECT, // team selection for multiplayer
+ GS_EVENT_TRAINING_PAUSE, // pause game while training message is displayed
+ GS_EVENT_INGAME_PRE_JOIN, // go to ship selection screen for ingame join
+ GS_EVENT_PLAYER_WARPOUT_START, // player hit 'j' to warp out
+ GS_EVENT_PLAYER_WARPOUT_START_FORCED, // player is being forced out of mission no matter what
+ GS_EVENT_PLAYER_WARPOUT_STOP, // player hit 'esc' or something to cancel warp out
+ GS_EVENT_PLAYER_WARPOUT_DONE_STAGE1, // player ship got up to speed
+ GS_EVENT_PLAYER_WARPOUT_DONE_STAGE2, // player ship got through the warp effect
+ GS_EVENT_PLAYER_WARPOUT_DONE, // warp effect went away
+ GS_EVENT_STANDALONE_POSTGAME, // debriefing, etc
+ GS_EVENT_INITIAL_PLAYER_SELECT, // initial screen where player selects from multi/single player pilots
+ GS_EVENT_GAME_INIT,
+ GS_EVENT_MULTI_MISSION_SYNC, // sychronize/transfer/load any mission specific data in multiplayer
+ GS_EVENT_MULTI_START_GAME, // immediately before the create game screen for the host to set the game variables
+ GS_EVENT_MULTI_HOST_OPTIONS, // options the host can set while in the create game scree
+ GS_EVENT_MULTI_DOGFIGHT_DEBRIEF, // multiplayer furball debriefing screen (replaces normal debriefing)
+ GS_EVENT_CAMPAIGN_ROOM,
+ GS_EVENT_CMD_BRIEF, // switch to command briefing screen
+ GS_EVENT_TOGGLE_GLIDE, // GS_EVENT_TOGGLE_GLIDE
+ GS_EVENT_RED_ALERT, // go to red alert screen
+ GS_EVENT_SIMULATOR_ROOM,
+ GS_EVENT_END_CAMPAIGN, // end of the whole thang.
+ GS_EVENT_LOOP_BRIEF, // campaign loop brief
+ GS_EVENT_CAMPAIGN_CHEAT, // skip to a mission in a campaign
+ GS_EVENT_PXO,
+ GS_EVENT_LAB, // WMC - I-FRED concept
+ GS_EVENT_PXO_HELP,
+ GS_EVENT_FICTION_VIEWER,
+ GS_EVENT_SCRIPTING,
+
+ GS_NUM_EVENTS // Last one++
+};
// IMPORTANT: When you add a new event, update the initialization for GS_event_text[]
-// which is done in GameSequence.cpp
+// which is done in gamesequence.cpp
//
extern char *GS_event_text[]; // text description for the GS_EVENT_* #defines above
-// defines for game sequencing states
-//
-// IMPORTANT: When you add a new state, update the initialization for GS_state_text[]
-// which is done in GameSequence.cpp
-#define GS_STATE_MAIN_MENU 1
-#define GS_STATE_GAME_PLAY 2
-#define GS_STATE_GAME_PAUSED 3
-#define GS_STATE_QUIT_GAME 4
-#define GS_STATE_OPTIONS_MENU 5
-#define GS_STATE_BARRACKS_MENU 6
-#define GS_STATE_TECH_MENU 7
-#define GS_STATE_TRAINING_MENU 8
-#define GS_STATE_LOAD_MISSION_MENU 9
-#define GS_STATE_BRIEFING 10
-#define GS_STATE_SHIP_SELECT 11
-#define GS_STATE_DEBUG_PAUSED 12
-#define GS_STATE_HUD_CONFIG 13
-#define GS_STATE_MULTI_JOIN_GAME 14
-#define GS_STATE_CONTROL_CONFIG 15
-#define GS_STATE_WEAPON_SELECT 16
-#define GS_STATE_MISSION_LOG_SCROLLBACK 17
-#define GS_STATE_DEATH_DIED 18 // Player just died
-#define GS_STATE_DEATH_BLEW_UP 19 // Saw ship explode.
-#define GS_STATE_SIMULATOR_ROOM 20
-#define GS_STATE_CREDITS 21
-#define GS_STATE_SHOW_GOALS 22
-#define GS_STATE_HOTKEY_SCREEN 23
-#define GS_STATE_VIEW_MEDALS 24 // Go to the View Medals screen
-#define GS_STATE_MULTI_HOST_SETUP 25 // state where host sets up multiplayer game
-#define GS_STATE_MULTI_CLIENT_SETUP 26 // client setup for multiplayer game
-#define GS_STATE_DEBRIEF 27
-#define GS_STATE_VIEW_CUTSCENES 28
-#define GS_STATE_MULTI_STD_WAIT 29
-#define GS_STATE_STANDALONE_MAIN 30
-#define GS_STATE_MULTI_PAUSED 31
-#define GS_STATE_TEAM_SELECT 32
-#define GS_STATE_TRAINING_PAUSED 33 // game is paused while training msg is being read.
-#define GS_STATE_INGAME_PRE_JOIN 34 // go to ship selection screen for ingame join
-#define GS_STATE_EVENT_DEBUG 35 // an event debug trace scroll list display screen
-#define GS_STATE_STANDALONE_POSTGAME 36 // debriefing, etc.
-#define GS_STATE_INITIAL_PLAYER_SELECT 37
-#define GS_STATE_MULTI_MISSION_SYNC 38
-#define GS_STATE_MULTI_START_GAME 39
-#define GS_STATE_MULTI_HOST_OPTIONS 40
-#define GS_STATE_MULTI_DOGFIGHT_DEBRIEF 41
-#define GS_STATE_CAMPAIGN_ROOM 42
-#define GS_STATE_CMD_BRIEF 43 // command briefing screen
-#define GS_STATE_RED_ALERT 44 // red alert screen
-#define GS_STATE_END_OF_CAMPAIGN 45 // end of main campaign -- only applicable in single player
-#define GS_STATE_GAMEPLAY_HELP 46
-#define GS_STATE_LOOP_BRIEF 48
-#define GS_STATE_PXO 49
-#define GS_STATE_LAB 50
-#define GS_STATE_PXO_HELP 51
-#define GS_STATE_START_GAME 52
-#define GS_STATE_FICTION_VIEWER 53
-#define GS_STATE_SCRIPTING 54
-
-#define GS_NUM_STATES 55 //Last one++
-
+/**
+ * @brief Enum's for game sequencing states
+ *
+ * @details IMPORTANT: When you add a new state, you must update the initialization for GS_state_text[] in
+ * gamesequence.cpp. Otherwise, the fs2_open.log string "Got event..." will not display properly.
+ */
+enum GS_STATE {
+ GS_STATE_INVALID = 0, // This state should never be reached
+ GS_STATE_MAIN_MENU,
+ GS_STATE_GAME_PLAY,
+ GS_STATE_GAME_PAUSED,
+ GS_STATE_QUIT_GAME,
+ GS_STATE_OPTIONS_MENU,
+ GS_STATE_BARRACKS_MENU,
+ GS_STATE_TECH_MENU,
+ GS_STATE_TRAINING_MENU,
+ GS_STATE_LOAD_MISSION_MENU,
+ GS_STATE_BRIEFING,
+ GS_STATE_SHIP_SELECT,
+ GS_STATE_DEBUG_PAUSED,
+ GS_STATE_HUD_CONFIG,
+ GS_STATE_MULTI_JOIN_GAME,
+ GS_STATE_CONTROL_CONFIG,
+ GS_STATE_WEAPON_SELECT,
+ GS_STATE_MISSION_LOG_SCROLLBACK,
+ GS_STATE_DEATH_DIED, // Player just died
+ GS_STATE_DEATH_BLEW_UP, // Saw ship explode.
+ GS_STATE_SIMULATOR_ROOM,
+ GS_STATE_CREDITS,
+ GS_STATE_SHOW_GOALS,
+ GS_STATE_HOTKEY_SCREEN,
+ GS_STATE_VIEW_MEDALS, // Go to the View Medals screen
+ GS_STATE_MULTI_HOST_SETUP, // state where host sets up multiplayer game
+ GS_STATE_MULTI_CLIENT_SETUP, // client setup for multiplayer game
+ GS_STATE_DEBRIEF,
+ GS_STATE_VIEW_CUTSCENES,
+ GS_STATE_MULTI_STD_WAIT,
+ GS_STATE_STANDALONE_MAIN,
+ GS_STATE_MULTI_PAUSED,
+ GS_STATE_TEAM_SELECT,
+ GS_STATE_TRAINING_PAUSED, // game is paused while training msg is being read.
+ GS_STATE_INGAME_PRE_JOIN, // go to ship selection screen for ingame join
+ GS_STATE_EVENT_DEBUG, // an event debug trace scroll list display screen
+ GS_STATE_STANDALONE_POSTGAME, // debriefing, etc.
+ GS_STATE_INITIAL_PLAYER_SELECT,
+ GS_STATE_MULTI_MISSION_SYNC,
+ GS_STATE_MULTI_START_GAME,
+ GS_STATE_MULTI_HOST_OPTIONS,
+ GS_STATE_MULTI_DOGFIGHT_DEBRIEF,
+ GS_STATE_CAMPAIGN_ROOM,
+ GS_STATE_CMD_BRIEF, // command briefing screen
+ GS_STATE_RED_ALERT, // red alert screen
+ GS_STATE_END_OF_CAMPAIGN, // end of main campaign -- only applicable in single player
+ GS_STATE_GAMEPLAY_HELP,
+ GS_STATE_LOOP_BRIEF,
+ GS_STATE_PXO,
+ GS_STATE_LAB,
+ GS_STATE_PXO_HELP,
+ GS_STATE_START_GAME,
+ GS_STATE_FICTION_VIEWER,
+ GS_STATE_SCRIPTING,
+
+ GS_NUM_STATES // Last one++
+};
// IMPORTANT: When you add a new state, update the initialization for GS_state_text[]
// which is done in GameSequence.cpp
//