mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-14 00:11:09 +00:00
control 32/64 bit version of q3map2 for the Windows build. requires a restart of the editor (and regen of the project file)
This commit is contained in:
parent
f0c620b09f
commit
6b62952832
6 changed files with 47 additions and 11 deletions
|
@ -45,7 +45,7 @@ Dialog::Dialog (){
|
||||||
m_pDataList = (GSList*)NULL;
|
m_pDataList = (GSList*)NULL;
|
||||||
m_nReturn = IDCANCEL;
|
m_nReturn = IDCANCEL;
|
||||||
m_bNeedBuild = true;
|
m_bNeedBuild = true;
|
||||||
m_nLoop = 0;
|
m_nLoop = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Dialog::~Dialog (){
|
Dialog::~Dialog (){
|
||||||
|
@ -265,7 +265,7 @@ void Dialog::UpdateData( bool retrieve ){
|
||||||
}
|
}
|
||||||
|
|
||||||
void Dialog::EndModal( int code ) {
|
void Dialog::EndModal( int code ) {
|
||||||
m_nLoop = 0;
|
m_nLoop = false;
|
||||||
m_nReturn = code;
|
m_nReturn = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ int Dialog::DoModal(){
|
||||||
gtk_grab_add( m_pWidget );
|
gtk_grab_add( m_pWidget );
|
||||||
gtk_widget_show( m_pWidget );
|
gtk_widget_show( m_pWidget );
|
||||||
|
|
||||||
m_nLoop = 1;
|
m_nLoop = true;
|
||||||
while ( m_nLoop ) {
|
while ( m_nLoop ) {
|
||||||
gtk_main_iteration();
|
gtk_main_iteration();
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,14 +60,13 @@ virtual void ShowDlg();
|
||||||
virtual void HideDlg();
|
virtual void HideDlg();
|
||||||
void Create();
|
void Create();
|
||||||
void Destroy();
|
void Destroy();
|
||||||
GtkWidget* GetDlgWidget( const char* name )
|
GtkWidget* GetDlgWidget( const char* name ) { return GTK_WIDGET( g_object_get_data( G_OBJECT( m_pWidget ), name ) ); }
|
||||||
{ return GTK_WIDGET( g_object_get_data( G_OBJECT( m_pWidget ), name ) ); }
|
GtkWidget* GetWidget() { return m_pWidget; }
|
||||||
GtkWidget* GetWidget()
|
bool IsModal() { return m_nLoop; }
|
||||||
{ return m_pWidget; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GtkWidget *m_pWidget;
|
GtkWidget *m_pWidget;
|
||||||
int m_nLoop;
|
bool m_nLoop;
|
||||||
int m_nReturn;
|
int m_nReturn;
|
||||||
|
|
||||||
void AddDialogData( GtkWidget *widget, void *buf, DLG_DATA_TYPE type )
|
void AddDialogData( GtkWidget *widget, void *buf, DLG_DATA_TYPE type )
|
||||||
|
|
|
@ -1712,7 +1712,9 @@ bool WINAPI color_dialog( void *parent, float *color, const char* title ){
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenURL( const char *url ){
|
void OpenURL( const char *url ){
|
||||||
|
#ifndef _WIN32
|
||||||
char command[2 * PATH_MAX];
|
char command[2 * PATH_MAX];
|
||||||
|
#endif
|
||||||
|
|
||||||
Sys_Printf( "OpenURL: %s\n", url );
|
Sys_Printf( "OpenURL: %s\n", url );
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
|
@ -148,6 +148,7 @@
|
||||||
#define TEXTURECOMPRESSIONFORMAT_KEY "TextureCompressionFormat"
|
#define TEXTURECOMPRESSIONFORMAT_KEY "TextureCompressionFormat"
|
||||||
#define LIGHTRADIUS_KEY "LightRadiuses"
|
#define LIGHTRADIUS_KEY "LightRadiuses"
|
||||||
#define Q3MAP2TEX_KEY "Q3Map2Tex"
|
#define Q3MAP2TEX_KEY "Q3Map2Tex"
|
||||||
|
#define X64Q3MAP2_KEY "x64Q3Map2"
|
||||||
|
|
||||||
#ifdef ATIHACK_812
|
#ifdef ATIHACK_812
|
||||||
#define ATIHACK_KEY "ATIHack"
|
#define ATIHACK_KEY "ATIHack"
|
||||||
|
@ -661,6 +662,7 @@ PrefsDlg::PrefsDlg (){
|
||||||
#endif
|
#endif
|
||||||
m_nLightRadiuses = 1;
|
m_nLightRadiuses = 1;
|
||||||
m_bQ3Map2Texturing = TRUE;
|
m_bQ3Map2Texturing = TRUE;
|
||||||
|
m_bx64q3map2 = TRUE;
|
||||||
#ifdef ATIHACK_812
|
#ifdef ATIHACK_812
|
||||||
m_bGlATIHack = FALSE;
|
m_bGlATIHack = FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1511,6 +1513,17 @@ static void treeSelection( GtkTreeSelection* selection, gpointer data ){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void OnX64Toggle( GtkWidget *widget, gpointer data ) {
|
||||||
|
Dialog * d = static_cast< Dialog * >( data );
|
||||||
|
if ( !d->IsModal() ) {
|
||||||
|
// calls to gtk_toggle_button_get_active trigger the "toggle" signal to fire .. so ignore unless we're in the modal dialog
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gtk_MessageBox( widget, _( "You must restart Radiant for the change to take effect." ) );
|
||||||
|
g_PrefsDlg.m_nLastProjectVer = -1;
|
||||||
|
g_PrefsDlg.m_strLastProject = "";
|
||||||
|
}
|
||||||
|
|
||||||
void PrefsDlg::BuildDialog(){
|
void PrefsDlg::BuildDialog(){
|
||||||
// Main Preferences dialog
|
// Main Preferences dialog
|
||||||
GtkWidget *dialog, *mainvbox, *hbox, *sc_win, *preflabel;
|
GtkWidget *dialog, *mainvbox, *hbox, *sc_win, *preflabel;
|
||||||
|
@ -2693,12 +2706,20 @@ void PrefsDlg::BuildDialog(){
|
||||||
g_object_set_data( G_OBJECT( dialog ), "check_q3map2", check );
|
g_object_set_data( G_OBJECT( dialog ), "check_q3map2", check );
|
||||||
AddDialogData( check, &g_PrefsDlg.m_bQ3Map2Texturing, DLG_CHECK_BOOL );
|
AddDialogData( check, &g_PrefsDlg.m_bQ3Map2Texturing, DLG_CHECK_BOOL );
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// use 64 bit q3map2
|
||||||
|
check = gtk_check_button_new_with_label( _( "Use 64 bit q3map2" ) );
|
||||||
|
gtk_widget_show( check );
|
||||||
|
gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, FALSE, 0 );
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "check_x64_q3map2", check );
|
||||||
|
AddDialogData( check, &g_PrefsDlg.m_bx64q3map2, DLG_CHECK_BOOL );
|
||||||
|
g_signal_connect( GTK_OBJECT( check ), "toggled", GTK_SIGNAL_FUNC( OnX64Toggle ), this );
|
||||||
|
#endif
|
||||||
|
|
||||||
// Add the page to the notebook
|
// Add the page to the notebook
|
||||||
gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), pageframe, preflabel );
|
gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), pageframe, preflabel );
|
||||||
|
|
||||||
gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), PTAB_FRONT );
|
gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), PTAB_FRONT );
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// end new prefs dialog
|
// end new prefs dialog
|
||||||
|
@ -3116,6 +3137,7 @@ void PrefsDlg::LoadPrefs(){
|
||||||
mLocalPrefs.GetPref( LIGHTRADIUS_KEY, &m_nLightRadiuses, TRUE );
|
mLocalPrefs.GetPref( LIGHTRADIUS_KEY, &m_nLightRadiuses, TRUE );
|
||||||
|
|
||||||
mLocalPrefs.GetPref( Q3MAP2TEX_KEY, &m_bQ3Map2Texturing, TRUE );
|
mLocalPrefs.GetPref( Q3MAP2TEX_KEY, &m_bQ3Map2Texturing, TRUE );
|
||||||
|
mLocalPrefs.GetPref( X64Q3MAP2_KEY, &m_bx64q3map2, TRUE );
|
||||||
|
|
||||||
#ifdef ATIHACK_812
|
#ifdef ATIHACK_812
|
||||||
mLocalPrefs.GetPref( ATIHACK_KEY, &m_bGlATIHack, FALSE );
|
mLocalPrefs.GetPref( ATIHACK_KEY, &m_bGlATIHack, FALSE );
|
||||||
|
|
|
@ -695,6 +695,9 @@ int m_nTextureCompressionFormat;
|
||||||
int m_nLightRadiuses;
|
int m_nLightRadiuses;
|
||||||
|
|
||||||
bool m_bQ3Map2Texturing;
|
bool m_bQ3Map2Texturing;
|
||||||
|
#ifdef _WIN32
|
||||||
|
bool m_bx64q3map2;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ATIHACK_812
|
#ifdef ATIHACK_812
|
||||||
bool m_bGlATIHack;
|
bool m_bGlATIHack;
|
||||||
|
|
|
@ -443,6 +443,7 @@ void ReplaceTemplates( char* w, const char* r ){
|
||||||
const char *__TOOLSPATH = "TEMPLATEtoolspath";
|
const char *__TOOLSPATH = "TEMPLATEtoolspath";
|
||||||
const char *__BASEDIR = "TEMPLATEbasedir";
|
const char *__BASEDIR = "TEMPLATEbasedir";
|
||||||
const char *__APPPATH = "TEMPLATEapppath";
|
const char *__APPPATH = "TEMPLATEapppath";
|
||||||
|
const char *__Q3MAP2 = "TEMPLATEq3map2";
|
||||||
|
|
||||||
// iterate through string r
|
// iterate through string r
|
||||||
while ( *r != '\0' )
|
while ( *r != '\0' )
|
||||||
|
@ -469,6 +470,15 @@ void ReplaceTemplates( char* w, const char* r ){
|
||||||
r += strlen( __APPPATH ) + 1;
|
r += strlen( __APPPATH ) + 1;
|
||||||
p = g_strAppPath.GetBuffer();
|
p = g_strAppPath.GetBuffer();
|
||||||
}
|
}
|
||||||
|
else if ( strncmp( r + 1, __Q3MAP2, strlen( __Q3MAP2 ) ) == 0 ) {
|
||||||
|
r += strlen( __Q3MAP2 ) + 1;
|
||||||
|
// see https://github.com/TTimo/GtkRadiant/issues/116
|
||||||
|
if ( g_PrefsDlg.m_bx64q3map2 ) {
|
||||||
|
p = "x64/q3map2";
|
||||||
|
} else {
|
||||||
|
p = "q3map2";
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
r++;
|
r++;
|
||||||
|
|
Loading…
Reference in a new issue