bool mEClassSingleLoad; ///< only load a single eclass definition file
bool mNoPatch; ///< this game doesn't support patch technology
Str mCaulkShader; ///< the shader to use for caulking
+ bool quake2; ///< set this to true to get quake2
CGameDescription() { mpDoc = NULL; }
/*!
void Dump();
};
+/*!
+select games, copy editing assets and write out configuration files
+ */
+
+#define Q3_PACK "Q3Pack"
+#define URT_PACK "UrTPack"
+#define UFOAI_PACK "UFOAIPack"
+#define Q2W_PACK "Q2WPack"
+#define WARSOW_PACK "WarsowPack"
+#define NEXUIZ_PACK "NexuizPack"
+#define Q2_PACK "Q2Pack"
+
+class CGameInstall : public Dialog {
+public:
+ CGameInstall();
+ void ScanGames();
+ void Run();
+ void BuildDialog();
+
+ enum gameType_e {
+ GAME_NONE = 0,
+ GAME_Q3 = 1,
+ GAME_URT,
+ GAME_UFOAI,
+ GAME_Q2W,
+ GAME_WARSOW,
+ GAME_NEXUIZ,
+ GAME_Q2,
+ GAME_COUNT
+ };
+
+protected:
+ Str m_strName;
+ Str m_strMod;
+ Str m_strEngine;
+ int m_nComboSelect;
+
+ // maps from m_nComboSelect to the games
+ int m_availGames[GAME_COUNT];
+};
+
/*!
standalone dialog for games selection, and more generally global settings
*/
static bool m_bNetRun;
#endif
+ bool m_bDoGameInstall;
+
+ CGameInstall mGameInstall;
+
protected:
int m_nComboSelect; ///< intermediate int value for combo in dialog box
*/
list<CGameDescription *> mGames;
- CGameDialog() { mFrame = NULL; m_pCurrentGameDescription = NULL; m_bLogConsole = false; m_bForceLogConsole = false; }
+ CGameDialog() {
+ mFrame = NULL;
+ m_pCurrentGameDescription = NULL;
+ m_bLogConsole = false;
+ m_bForceLogConsole = false;
+ m_bDoGameInstall = true; // go through DoModal at least once
+ }
virtual ~CGameDialog();
- void AddPacksURL(Str &s);
+ void AddPacksURL( Str &s );
/*!
intialize the game dialog, called at CPrefsDlg::Init
*/
void DoGameDialog();
+ /*!
+ call out to the game installation dialog
+ */
+ void DoGameInstall();
+
/*!
Dialog API
this is only called when the dialog is built at startup for main engine select
*/
- void BuildDialog ();
- void UpdateData (bool retrieve);
+ void BuildDialog();
+ void UpdateData( bool retrieve );
/*!
construction of the dialog frame
uses m_nComboItem to find the right mGames
*/
CGameDescription *GameDescriptionForComboItem();
+
+ /*!
+ callback for the game install button
+ */
+ static void SInstallCallback( GtkWidget *widget, gpointer data );
};
typedef struct {