//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CASW_PropJeep::HandleWater( void ) { // Only check the wheels and engine in water if we have a driver (player). if ( !GetDriver() ) return; // Check to see if we are in water. if ( CheckWater() ) { for ( int iWheel = 0; iWheel < ASW_JEEP_WHEEL_COUNT; ++iWheel ) { // Create an entry/exit splash! if ( m_WaterData.m_bWheelInWater[iWheel] != m_WaterData.m_bWheelWasInWater[iWheel] ) { CreateSplash( m_WaterData.m_vecWheelContactPoints[iWheel] ); CreateRipple( m_WaterData.m_vecWheelContactPoints[iWheel] ); } // Create ripples. if ( m_WaterData.m_bWheelInWater[iWheel] && m_WaterData.m_bWheelWasInWater[iWheel] ) { if ( m_WaterData.m_flNextRippleTime[iWheel] < gpGlobals->curtime ) { // Stagger ripple times m_WaterData.m_flNextRippleTime[iWheel] = gpGlobals->curtime + RandomFloat( 0.1, 0.3 ); CreateRipple( m_WaterData.m_vecWheelContactPoints[iWheel] ); } } } } // Save of data from last think. for ( int iWheel = 0; iWheel < ASW_JEEP_WHEEL_COUNT; ++iWheel ) { m_WaterData.m_bWheelWasInWater[iWheel] = m_WaterData.m_bWheelInWater[iWheel]; } }
CCoreApplication< APPLICATION, SETTINGS >::CCoreApplication( int &argc, char **argv, bool GUIenabled, QString customConfigPath ) //customConfigPath = QString() : base_t( argc, argv, GUIenabled, customConfigPath.isEmpty() ? smApplicationPaths->mInternalDataDir.c_str() : customConfigPath ) , mSettings( *smApplicationPaths, "ESA", q2t< std::string >( QgsApplication::applicationName() ) ) { LOG_TRACE( "Starting application instance construction..." ); // v4 //#ifdef WIN32 //#ifdef _DEBUG // _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); //#endif //#endif assert__( smPrologueCalled ); if ( !smPrologueCalled ) throw CException( "CCoreApplication Prologue must be called before application construction." ); CheckRunMode(); CreateSplash(); // QGIS paths // setPkgDataPath( mSettings.BratPaths().mInternalDataDir.c_str() ); // returned by QgsApplication::srsDbFilePath(); variable: mPkgDataPath LOG_TRACE( "srsDbFilePath==" + srsDbFilePath() ); LOG_TRACE( "showSettings==" + showSettings() ); LOG_TRACE( "qgisSettingsDirPath==" + qgisSettingsDirPath() ); LOG_TRACE( "qgisUserDbFilePath==" + qgisUserDbFilePath() ); //variable mConfigPath LOG_TRACEstd( "Qt plugins==" + mSettings.BratPaths().mQtPluginsDir ); LOG_TRACEstd( "QGIS plugins==" + mSettings.BratPaths().mQgisPluginsDir ); // To be sure that number have always a decimal point (and not a comma or something else) // setlocale( LC_NUMERIC, "C" ); ShowSplash( "Loading application settings..." ); // Load configuration - I // if ( !mSettings.LoadConfig() ) { throw CException( "Error reading the configuration. Settings file: " + mSettings.FilePath() ); } // Keep v3 happy // CTools::SetInternalDataDir( mSettings.BratPaths().mInternalDataDir ); assert__( CTools::DirectoryExists( CTools::GetInternalDataDir() ) ); // Register Brat algorithms // LOG_TRACE( "Registering algorithms..." ); RegisterAlgorithms(); // OpenGL // ShowSplash( "Checking OpenGL..." ); if ( mSettings.mCheckOpenGL ) { CheckOpenGL(); //throws on failure LOG_TRACE( "OpenGL check successful." ); } // Use application paths to initialize COperation internal path references // COperation::SetExecNames( mSettings.BratPaths() ); // Load physical units system // std::string errorMsg; if ( !CTools::LoadAndCheckUdUnitsSystem( errorMsg ) ) { std::cerr << errorMsg << std::endl; SimpleErrorBox( errorMsg.c_str() ); throw false; } // Load aliases dictionary // CAliasesDictionary::LoadAliasesDictionary( &errorMsg, false ); if ( !errorMsg.empty() ) { std::cerr << "WARNING: " << errorMsg << std::endl; SimpleWarnBox( errorMsg ); } // CODA - can only be done after SetInternalDataDir // assert__( CProduct::GetRefCount() <= 0 ); // CProduct::CodaInit(); // Load configuration - II - can only be done after CodaInit // if ( !mSettings.LoadConfigSelectionCriteria() ) { throw CException( "Error reading the configuration file." ); } // (*) this can be statically set, but not statically // queried before ctor call (issues Qt assertion) // #if defined (Q_OS_LINUX) mDefaultAppStyle = t2q( mSettings.getNameOfStyle( new QCleanlooksStyle, true ) ); //(*) #else mDefaultAppStyle = getCurrentStyleName(); //(*) #endif mSettings.setApplicationStyle( *this, mDefaultAppStyle ); // Load XML processor and TasksProcessor // ShowSplash( "Loading scheduled tasks processor." ); ::xercesc::XMLPlatformUtils::Initialize(); if ( !CTasksProcessor::GetInstance() ) CTasksProcessor::CreateInstance( mSettings.BratPaths().mExecutableDir ); LOG_TRACE( "Scheduled tasks processor loaded." ); //v4: remaining initialization in charge of the main window LOG_TRACE( "Finished application instance construction." ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CPropAirboat::UpdateSplashEffects( void ) { // Splash effects. CreateSplash( AIRBOAT_SPLASH_RIPPLE ); // CreateSplash( AIRBOAT_SPLASH_SPRAY ); }