#include "missing.h"
#include "gtkmisc.h"
+#ifdef _WIN32
+ // sanity check - some gtk2 win32 runtimes replace sprintf
+ #if defined( sprintf )
+ #error sprintf is a macro. are you sure?
+ #endif
+#endif
+
#ifdef _WIN32
#include <io.h>
#define X_OK 0
#ifdef _WIN32
// win32 file dialog
- check = gtk_check_button_new_with_label (_("Use win32 file load dialog"));
+ check = gtk_check_button_new_with_label (_("Use win32 file dialog (hacky)"));
gtk_widget_show (check);
// gtk_container_add (GTK_CONTAINER (vbox), check);
gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
case GAME_TREMULOUS:
gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _("Tremulous") );
break;
+ case GAME_JA:
+ gtk_combo_box_append_text( GTK_COMBO_BOX( combo ), _("Jedi Academy and mods") );
+ break;
}
iGame++;
}
void CGameInstall::Run() {
ScanGames();
+ if ( m_availGames[0] == GAME_NONE ) {
+ return;
+ }
if ( DoModal() == IDCANCEL ) {
Sys_Printf( "game dialog cancelled\n" );
return;
gameFilePath += ".game";
Sys_Printf( "game file: %s\n", gameFilePath.GetBuffer() );
- FILE *fg = fopen( gameFilePath.GetBuffer(), "w" );
- if ( fg == NULL || ferror( fg ) ) {
+ FILE * fg = fopen( gameFilePath.GetBuffer(), "w" );
+ if ( fg == NULL ) {
Error( "Failed to open %s for writing\n", gameFilePath.GetBuffer() );
}
fprintf( fg, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n<game\n" );
fprintf( fg, " basegame=\"base\"\n" );
break;
}
+ case GAME_JA: {
+ fprintf( fg, " "TOOLS_ATTRIBUTE"=\"%sinstalls/JAPack/game\"\n", g_strAppPath.GetBuffer() );
+ fprintf( fg, " prefix=\".ja\"\n" );
+ Str source = g_strAppPath.GetBuffer();
+ source += "installs/";
+ source += JA_PACK;
+ source += "/install/";
+ Str dest = m_strEngine.GetBuffer();
+ CopyTree( source.GetBuffer(), dest.GetBuffer() );
+ fprintf( fg, " basegame=\"base\"\n" );
+ break;
+ }
}
fprintf( fg, "/>\n" );
fclose( fg );
if ( stricmp( dirname, TREMULOUS_PACK ) == 0 ) {
m_availGames[ iGame++ ] = GAME_TREMULOUS;
}
+ if ( stricmp( dirname, JA_PACK ) == 0 ) {
+ m_availGames[ iGame++ ] = GAME_JA;
+ }
}
+ Sys_Printf("No installable games found in: %s\n",
+ pakPaths.GetBuffer() );
}