// Leonardo Zide (leo@lokigames.com)
//
+#include "defaults.h"
#include "qe3.h"
#include "globaldefs.h"
const char* userRoot = g_qeglobals.m_userEnginePath.c_str();
const char* globalRoot = EnginePath_get();
+ // editor builtin VFS
+ StringOutputStream editorGamePath( 256 );
+ editorGamePath << GlobalRadiant().getAppPath() << DEFAULT_EDITORVFS_DIRNAME;
+ GlobalFileSystem().initDirectory( editorGamePath.c_str() );
+
// if we have a mod dir
if ( !string_equal( gamename, basegame ) ) {
// ~/.<gameprefix>/<fs_game>
- if ( userRoot ) {
+ if ( userRoot && !string_equal( globalRoot, userRoot ) && !g_disableHomePath ) {
StringOutputStream userGamePath( 256 );
userGamePath << userRoot << gamename << '/';
GlobalFileSystem().initDirectory( userGamePath.c_str() );
}
// <fs_basepath>/<fs_game>
- {
+ if ( !g_disableEnginePath ) {
StringOutputStream globalGamePath( 256 );
globalGamePath << globalRoot << gamename << '/';
GlobalFileSystem().initDirectory( globalGamePath.c_str() );
}
// ~/.<gameprefix>/<fs_main>
- if ( userRoot ) {
+ if ( userRoot && !string_equal( globalRoot, userRoot ) && !g_disableHomePath ) {
StringOutputStream userBasePath( 256 );
userBasePath << userRoot << basegame << '/';
GlobalFileSystem().initDirectory( userBasePath.c_str() );
}
// <fs_basepath>/<fs_main>
- {
+ if ( !g_disableEnginePath ) {
StringOutputStream globalBasePath( 256 );
globalBasePath << globalRoot << basegame << '/';
GlobalFileSystem().initDirectory( globalBasePath.c_str() );
}
+
+ // extra pakpaths
+ for ( int i = 0; i < g_pakPathCount; i++ ) {
+ if (g_strcmp0( g_strPakPath[i].c_str(), "")) {
+ GlobalFileSystem().initDirectory( g_strPakPath[i].c_str() );
+ }
+ }
}
int g_numbrushes = 0;
return true;
}
- auto result = MainFrame_getWindow().alert( "The current map has changed since it was last saved.\nDo you want to save the current map before continuing?", title, ui::alert_type::YESNOCANCEL, ui::alert_icon::Question );
+ auto result = ui::alert( MainFrame_getWindow(), "The current map has changed since it was last saved.\nDo you want to save the current map before continuing?", title, ui::alert_type::YESNOCANCEL, ui::alert_icon::Question );
if ( result == ui::alert_response::CANCEL ) {
return false;
}
build_set_variable( "MonitorAddress", ( g_WatchBSP_Enabled ) ? "127.0.0.1:39000" : "" );
build_set_variable( "GameName", gamename_get() );
+ StringBuffer ExtraQ3map2Args;
+ // extra pakpaths
+ for ( int i = 0; i < g_pakPathCount; i++ ) {
+ if ( g_strcmp0( g_strPakPath[i].c_str(), "") ) {
+ ExtraQ3map2Args.push_string( " -fs_pakpath \"" );
+ ExtraQ3map2Args.push_string( g_strPakPath[i].c_str() );
+ ExtraQ3map2Args.push_string( "\"" );
+ }
+ }
+
+ // extra switches
+ if ( g_disableEnginePath ) {
+ ExtraQ3map2Args.push_string( " -fs_nobasepath " );
+ }
+
+ if ( g_disableHomePath ) {
+ ExtraQ3map2Args.push_string( " -fs_nohomepath " );
+ }
+
+ build_set_variable( "ExtraQ3map2Args", ExtraQ3map2Args.c_str() );
+
const char* mapname = Map_Name( g_map );
StringOutputStream name( 256 );
name << StringRange( mapname, path_get_filename_base_end( mapname ) ) << ".bsp";
ArrayCommandListener(){
m_array = g_ptr_array_new();
}
+
~ArrayCommandListener(){
g_ptr_array_free( m_array, TRUE );
}