diff --git a/radiant/build.cpp b/radiant/build.cpp index 83f72e1e..cc6256e9 100644 --- a/radiant/build.cpp +++ b/radiant/build.cpp @@ -258,6 +258,11 @@ public: void flush(){ if ( !m_buffer.empty() ) { m_tool.push_back( new VariableString( m_buffer.c_str() ) ); + // q3map2 ExtraResoucePath hack + if( strstr( m_buffer.c_str(), "[RadiantPath]q3map2.[ExecutableType]" ) != nullptr // is q3map2 + && strstr( m_buffer.c_str(), "[ExtraResoucePath]" ) == nullptr ){ // has no extra path right away (could have been added by this before) + m_tool.push_back( new VariableString( "[ExtraResoucePath]" ) ); + } m_buffer.clear(); } } diff --git a/radiant/qe3.cpp b/radiant/qe3.cpp index d2c499c3..dcaed496 100644 --- a/radiant/qe3.cpp +++ b/radiant/qe3.cpp @@ -163,6 +163,8 @@ void bsp_init(){ build_set_variable( "ExecutableType", RADIANT_EXECUTABLE ); build_set_variable( "EnginePath", EnginePath_get() ); build_set_variable( "UserEnginePath", g_qeglobals.m_userEnginePath.c_str() ); + build_set_variable( "ExtraResoucePath", string_empty( ExtraResourcePath_get() )? "" + : StringOutputStream()( " -fs_pakpath ", makeQuoted( ExtraResourcePath_get() ) ) ); build_set_variable( "MonitorAddress", ( g_WatchBSP_Enabled ) ? RADIANT_MONITOR_ADDRESS : "" ); build_set_variable( "GameName", gamename_get() );