Revision: 1367 http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=1367&view=rev Author: rorthomas Date: 2010-05-04 22:05:22 +0000 (Tue, 04 May 2010)
Log Message: ----------- added pointer guards for ssm pointers optimization: when "no sound" selected, sound engine is not loaded and no .soundscripts are parsed optimization on loading: caelum, hydrax and vegetation only loaded when selected in the configurator -> faster loading times decreased verbosity of torquecurve fixed waterplane size and scale factor: only scaling when map is smaller than 1,5km (should fix wave problems) Modified Paths: -------------- trunk/source/main/Beam.cpp trunk/source/main/CacheSystem.cpp trunk/source/main/ExampleFrameListener.cpp trunk/source/main/SoundScriptManager.cpp trunk/source/main/TorqueCurve.cpp trunk/source/main/WaterOld.cpp trunk/source/main/autopilot.cpp trunk/source/main/engine.cpp trunk/source/main/main.cpp trunk/source/main/screwprop.cpp trunk/source/main/turbojet.cpp trunk/source/main/turboprop.cpp Modified: trunk/source/main/Beam.cpp =================================================================== --- trunk/source/main/Beam.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/Beam.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -1103,21 +1103,19 @@ unsigned int flagmask=oob1->flagmask; pthread_mutex_unlock(&net_mutex); - if (engine) - { #ifdef USE_OPENAL + if (engine && ssm) + { ssm->modulate(trucknum, SS_MOD_ENGINE, engspeed); -#endif //OPENAL } - if(free_aeroengine>0) + if(free_aeroengine>0 && ssm) { -#ifdef USE_OPENAL ssm->modulate(trucknum, SS_MOD_AEROENGINE1, engspeed); ssm->modulate(trucknum, SS_MOD_AEROENGINE2, engspeed); ssm->modulate(trucknum, SS_MOD_AEROENGINE3, engspeed); ssm->modulate(trucknum, SS_MOD_AEROENGINE4, engspeed); -#endif //OPENAL } +#endif //OPENAL if (engine) engine->netForceSettings(engspeed, engforce); //for smoke @@ -1146,18 +1144,18 @@ setCustomLightVisible(3, ((flagmask&NETMASK_CLIGHT4)>0)); #ifdef USE_OPENAL - if (flagmask&NETMASK_HORN) + if (flagmask&NETMASK_HORN && ssm) ssm->trigStart(trucknum, SS_TRIG_HORN); - else + else if(ssm) ssm->trigStop(trucknum, SS_TRIG_HORN); #endif //OPENAL netBrakeLight = ((flagmask&NETMASK_BRAKES)!=0); netReverseLight = ((flagmask&NETMASK_REVERSE)!=0); #ifdef USE_OPENAL - if(netReverseLight) + if(netReverseLight && ssm) ssm->trigStart(trucknum, SS_TRIG_REVERSE_GEAR); - else + else if(ssm) ssm->trigStop(trucknum, SS_TRIG_REVERSE_GEAR); #endif //OPENAL @@ -4414,7 +4412,7 @@ continue; } #ifdef USE_OPENAL - addSoundSource(ssm->createInstance(script, trucknum, NULL), ref); + if(ssm) addSoundSource(ssm->createInstance(script, trucknum, NULL), ref); #endif //OPENAL } else if (mode==48) @@ -5165,6 +5163,7 @@ void Beam::setupDefaultSoundSources() { #ifdef USE_OPENAL + if(!ssm) return; //engine if (engine) { @@ -6684,7 +6683,7 @@ if (getBeaconMode()) send_oob->flagmask+=NETMASK_BEACONS; if (getCustomParticleMode()) send_oob->flagmask+=NETMASK_PARTICLE; #ifdef USE_OPENAL - if (ssm->getTrigState(trucknum, SS_TRIG_HORN)) send_oob->flagmask+=NETMASK_HORN; + if (ssm && ssm->getTrigState(trucknum, SS_TRIG_HORN)) send_oob->flagmask+=NETMASK_HORN; #endif //OPENAL } @@ -7493,8 +7492,8 @@ // Sound effect. // Sound volume depends on spring's stored energy #ifdef USE_OPENAL - ssm->modulate(trucknum, SS_MOD_BREAK, 0.5*k*difftoBeamL*difftoBeamL); - ssm->trigOnce(trucknum, SS_TRIG_BREAK); + if(ssm) ssm->modulate(trucknum, SS_MOD_BREAK, 0.5*k*difftoBeamL*difftoBeamL); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_BREAK); #endif //OPENAL increased_accuracy=1; @@ -8563,9 +8562,9 @@ else stabcommand=0; #ifdef USE_OPENAL - if (stabcommand && fabs(stabratio)<0.1) + if (stabcommand && fabs(stabratio)<0.1 && ssm) ssm->trigStart(trucknum, SS_TRIG_AIR); - else + else if (ssm) ssm->trigStop(trucknum, SS_TRIG_AIR); #endif //OPENAL @@ -9044,13 +9043,12 @@ if (doUpdate && state==ACTIVATED) { #ifdef USE_OPENAL - if (active) + if (active && ssm) { ssm->trigStart(trucknum, SS_TRIG_PUMP); float pump_rpm=660.0*(1.0-(work/(float)active)/100.0); ssm->modulate(trucknum, SS_MOD_PUMP, pump_rpm); - } - else + } else if(ssm) ssm->trigStop(trucknum, SS_TRIG_PUMP); #endif //OPENAL } @@ -9819,9 +9817,9 @@ { #ifdef USE_OPENAL blinkingtype = blink; - if(blink == BLINK_NONE) + if(blink == BLINK_NONE && ssm) ssm->trigStop(trucknum, SS_TRIG_TURN_SIGNAL); - else + else if(ssm) ssm->trigStart(trucknum, SS_TRIG_TURN_SIGNAL); #endif //OPENAL } @@ -9905,6 +9903,7 @@ void Beam::updateSoundSources() { #ifdef USE_OPENAL + if(!ssm) return; for (int i=0; i<free_soundsource; i++) { soundsources[i].ssi->setPosition(nodes[soundsources[i].nodenum].AbsPosition, nodes[soundsources[i].nodenum].Velocity); @@ -10725,9 +10724,9 @@ parkingbrake=!parkingbrake; #ifdef USE_OPENAL - if (parkingbrake) + if (parkingbrake && ssm) ssm->trigStart(trucknum, SS_TRIG_PARK); - else + else if (ssm) ssm->trigStop(trucknum, SS_TRIG_PARK); #endif // USE_OPENAL Modified: trunk/source/main/CacheSystem.cpp =================================================================== --- trunk/source/main/CacheSystem.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/CacheSystem.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -138,7 +138,8 @@ try { #ifdef USE_OPENAL - SoundScriptManager::getSingleton()->clearTemplates(); + SoundScriptManager *ssm = SoundScriptManager::getSingleton(); + if(ssm) ssm->clearTemplates(); #endif //OPENAL // we cannot fix this problem below Ogre version 1.7 //ParticleSystemManager::getSingleton().removeTemplatesByResourceGroup(*it); @@ -2728,7 +2729,8 @@ LogManager::getSingleton().logMessage("UnLoading " + dirname); #ifdef USE_OPENAL - SoundScriptManager::getSingleton()->clearTemplates(); + SoundScriptManager *ssm = SoundScriptManager::getSingleton(); + if(ssm) ssm->clearTemplates(); #endif //OPENAL //ParticleSystemManager::getSingleton().removeTemplatesByResourceGroup(rgname); ResourceGroupManager::getSingleton().clearResourceGroup(rgname); @@ -2797,7 +2799,8 @@ { LogManager::getSingleton().logMessage("Unloading " + realzipPath); #ifdef USE_OPENAL - SoundScriptManager::getSingleton()->clearTemplates(); + SoundScriptManager *ssm = SoundScriptManager::getSingleton(); + if(ssm) ssm->clearTemplates(); #endif //OPENAL //ParticleSystemManager::getSingleton().removeTemplatesByResourceGroup(rgname); rgm.removeResourceLocation(realzipPath, rgname); Modified: trunk/source/main/ExampleFrameListener.cpp =================================================================== --- trunk/source/main/ExampleFrameListener.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/ExampleFrameListener.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -750,8 +750,8 @@ float absangle=angle; if (absangle<0) absangle=-absangle; #ifdef USE_OPENAL - ssm->modulate(current_truck, SS_MOD_AOA, absangle); - if (absangle>18.0) ssm->trigStart(current_truck, SS_TRIG_AOA); else ssm->trigStop(current_truck, SS_TRIG_AOA); + if(ssm) ssm->modulate(current_truck, SS_MOD_AOA, absangle); + if (absangle>18.0 && ssm) ssm->trigStart(current_truck, SS_TRIG_AOA); else ssm->trigStop(current_truck, SS_TRIG_AOA); #endif // OPENAL if (angle>25.0) angle=25.0; if (angle<-25.0) angle=-25.0; @@ -2698,7 +2698,7 @@ { //take a position reference #ifdef USE_OPENAL - ssm->trigOnce(rtruck, SS_TRIG_REPAIR); + if(ssm) ssm->trigOnce(rtruck, SS_TRIG_REPAIR); #endif //OPENAL Vector3 ipos=trucks[rtruck]->nodes[0].AbsPosition; trucks[rtruck]->reset(); @@ -2901,6 +2901,10 @@ } if (INPUTENGINE.getEventBoolValueBounce(EV_COMMON_SCREENSHOT_BIG, 0.5f)) { + // hide flash messages + flashMessage(0); + flashOverlay->hide(); + int mNumScreenShots=0; String path = SETTINGS.getSetting("User Path"); String tmp = path + String("screenshot_big_") + StringConverter::toString(++mNumScreenShots) + String(".") + String(screenshotformat); @@ -2909,9 +2913,6 @@ tmp = String("screenshot_big_") + StringConverter::toString(++mNumScreenShots); - // hide flash messages - flashMessage(0); - hideGUI(true); gridScreenshots(mWindow, mCamera, 6, path, tmp, "."+String(screenshotformat), true); @@ -3484,9 +3485,9 @@ float brake = INPUTENGINE.getEventValue(EV_TRUCK_BRAKE); trucks[current_truck]->brake = brake*trucks[current_truck]->brakeforce; #ifdef USE_OPENAL - if (trucks[current_truck]->brake > trucks[current_truck]->brakeforce/6.0) + if (ssm && trucks[current_truck]->brake > trucks[current_truck]->brakeforce/6.0) ssm->trigStart(current_truck, SS_TRIG_BRAKE); - else + else if (ssm) ssm->trigStop(current_truck, SS_TRIG_BRAKE); #endif //OPENAL @@ -3503,14 +3504,14 @@ //starter trucks[current_truck]->engine->setstarter(1); #ifdef USE_OPENAL - ssm->trigStart(current_truck, SS_TRIG_STARTER); + if(ssm) ssm->trigStart(current_truck, SS_TRIG_STARTER); #endif // OPENAL } else { trucks[current_truck]->engine->setstarter(0); #ifdef USE_OPENAL - ssm->trigStop(current_truck, SS_TRIG_STARTER); + if(ssm) ssm->trigStop(current_truck, SS_TRIG_STARTER); #endif // OPENAL } @@ -3655,7 +3656,7 @@ #ifdef USE_OPENAL if (trucks[current_truck]->ispolice) { - if (INPUTENGINE.getEventBoolValueBounce(EV_TRUCK_HORN)) + if (INPUTENGINE.getEventBoolValueBounce(EV_TRUCK_HORN) && ssm) { ssm->trigToggle(current_truck, SS_TRIG_HORN); } @@ -3664,8 +3665,11 @@ { if (INPUTENGINE.getEventBoolValue(EV_TRUCK_HORN) && !trucks[current_truck]->replaymode) { - ssm->trigStart(current_truck, SS_TRIG_HORN); - } else {ssm->trigStop(current_truck, SS_TRIG_HORN);}; + if(ssm) ssm->trigStart(current_truck, SS_TRIG_HORN); + } else + { + if(ssm) ssm->trigStop(current_truck, SS_TRIG_HORN); + }; } #endif // OPENAL @@ -4122,7 +4126,7 @@ if (INPUTENGINE.getEventBoolValue(EV_COMMON_REPAIR_TRUCK)) { #ifdef USE_OPENAL - ssm->trigOnce(current_truck, SS_TRIG_REPAIR); + if(ssm) ssm->trigOnce(current_truck, SS_TRIG_REPAIR); #endif //OPENAL trucks[current_truck]->reset(true); } @@ -4202,7 +4206,7 @@ { showPressureOverlay(true); #ifdef USE_OPENAL - ssm->trigStart(current_truck, SS_TRIG_AIR); + if(ssm) ssm->trigStart(current_truck, SS_TRIG_AIR); #endif // OPENAL trucks[current_truck]->addPressure(-dt*10.0); pressure_pressed=true; @@ -4211,14 +4215,14 @@ { showPressureOverlay(true); #ifdef USE_OPENAL - ssm->trigStart(current_truck, SS_TRIG_AIR); + if(ssm) ssm->trigStart(current_truck, SS_TRIG_AIR); #endif // OPENAL trucks[current_truck]->addPressure(dt*10.0); pressure_pressed=true; } else if (pressure_pressed) { #ifdef USE_OPENAL - ssm->trigStop(current_truck, SS_TRIG_AIR); + if(ssm) ssm->trigStop(current_truck, SS_TRIG_AIR); #endif // OPENAL pressure_pressed=false; showPressureOverlay(false); @@ -5046,7 +5050,7 @@ loading_state=EXITING; OverlayManager::getSingleton().getByName("tracks/CreditsOverlay")->show(); #ifdef USE_OPENAL - ssm->soundEnable(false); + if(ssm) ssm->soundEnable(false); #endif // OPENAL #ifdef USE_OIS_G27 //logitech G27 LEDs tachometer @@ -6857,8 +6861,8 @@ showDashboardOverlays(false,0); showEditorOverlay(false); #ifdef USE_OPENAL - ssm->trigStop(previous_truck, SS_TRIG_AIR); - ssm->trigStop(previous_truck, SS_TRIG_PUMP); + if(ssm) ssm->trigStop(previous_truck, SS_TRIG_AIR); + if(ssm) ssm->trigStop(previous_truck, SS_TRIG_PUMP); #endif // OPENAL int t; for (t=0; t<free_truck; t++) @@ -7366,7 +7370,7 @@ cdoppler=cpos; // XXX maybe thats the source of sound destorsion: runtime order??? #ifdef USE_OPENAL - ssm->setCamera(cpos, cdir, cup, cspeed); + if(ssm) ssm->setCamera(cpos, cdir, cup, cspeed); #endif // OPENAL //if (cspeed.length()>50.0) {cspeed.normalise(); cspeed=50.0*cspeed;}; //if (audioManager) audioManager->setListenerPosition(cpos.x, cpos.y, cpos.z, cspeed.x, cspeed.y, cspeed.z, cdir.x, cdir.y, cdir.z, cup.x, cup.y, cup.z); Modified: trunk/source/main/SoundScriptManager.cpp =================================================================== --- trunk/source/main/SoundScriptManager.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/SoundScriptManager.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -128,6 +128,7 @@ SoundScriptManager *SoundScriptManager::getSingleton() { + if (SETTINGS.getSetting("3D Sound renderer") == "No sound") return 0; if (!singleton) singleton=new SoundScriptManager(); return singleton; } Modified: trunk/source/main/TorqueCurve.cpp =================================================================== --- trunk/source/main/TorqueCurve.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/TorqueCurve.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -125,7 +125,7 @@ int TorqueCurve::setTorqueModel(String name) { - LogManager::getSingleton().logMessage("using torque curve: " + name); + //LogManager::getSingleton().logMessage("using torque curve: " + name); // check if we have such a model loaded if (splines.find(name) == splines.end()) { Modified: trunk/source/main/WaterOld.cpp =================================================================== --- trunk/source/main/WaterOld.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/WaterOld.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -86,7 +86,9 @@ vRtt1 = vRtt2 = 0; mapsizex = _mapsizex; mapsizez = _mapsizez; - mScale = 2.0f; + mScale = 1.0f; + if(*mapsizex < 1500) + mScale = 1.5f; //reading wavefield visible=true; haswaves=usewaves; Modified: trunk/source/main/autopilot.cpp =================================================================== --- trunk/source/main/autopilot.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/autopilot.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -64,7 +64,7 @@ if (mode_gpws) { #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_GPWS_APDISCONNECT); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_GPWS_APDISCONNECT); #endif //OPENAL } } @@ -265,6 +265,7 @@ void Autopilot::gpws_update() { #ifdef USE_OPENAL + if(!ssm) return; if (mode_gpws && hf && ref_b) { float groundalt=hf->getHeightAt(ref_b->AbsPosition.x, ref_b->AbsPosition.z); @@ -349,7 +350,7 @@ *hdev=closest_hangle; *vdev=closest_vangle; #ifdef USE_OPENAL - if (mode_heading==HEADING_NAV && mode_gpws && closest_hdist>10.0 && closest_hdist<350.0 && last_closest_hdist>10.0 && last_closest_hdist>350.0) + if (ssm && mode_heading==HEADING_NAV && mode_gpws && closest_hdist>10.0 && closest_hdist<350.0 && last_closest_hdist>10.0 && last_closest_hdist>350.0) ssm->trigOnce(trucknum, SS_TRIG_GPWS_MINIMUMS); #endif //OPENAL last_closest_hdist=closest_hdist; Modified: trunk/source/main/engine.cpp =================================================================== --- trunk/source/main/engine.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/engine.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -118,7 +118,7 @@ //air pressure apressure+=dt*curEngineRPM; #ifdef USE_OPENAL - if (apressure>50000.0) {ssm->trigOnce(trucknum, SS_TRIG_AIR_PURGE); apressure=0;}; + if (apressure>50000.0 && ssm) {ssm->trigOnce(trucknum, SS_TRIG_AIR_PURGE); apressure=0;}; #endif //OPENAL } if (hasturbo) @@ -161,7 +161,7 @@ { running=1; #ifdef USE_OPENAL - ssm->trigStart(trucknum, SS_TRIG_ENGINE); + if(ssm) ssm->trigStart(trucknum, SS_TRIG_ENGINE); #endif //OPENAL } //clutch @@ -199,7 +199,7 @@ if (shiftval && shiftclock>clutch_time/2) { #ifdef USE_OPENAL - ssm->trigStart(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigStart(trucknum, SS_TRIG_SHIFT); #endif //OPENAL curGear+=shiftval; if (automode==AUTOMATIC) while (curGear>2 && curGearboxRPM*gearsRatio[curGear]<iddleRPM) curGear-=2; @@ -211,7 +211,7 @@ if (shiftclock>shift_time) { #ifdef USE_OPENAL - ssm->trigStop(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigStop(trucknum, SS_TRIG_SHIFT); #endif //OPENAL setAcc(autocurAcc); shifting=0; @@ -253,23 +253,23 @@ } //audio stuff #ifdef USE_OPENAL - if (hasturbo) ssm->modulate(trucknum, SS_MOD_TURBO, curTurboRPM); + if (hasturbo && ssm) ssm->modulate(trucknum, SS_MOD_TURBO, curTurboRPM); if (doUpdate) { - ssm->modulate(trucknum, SS_MOD_ENGINE, curEngineRPM); - ssm->modulate(trucknum, SS_MOD_TORQUE, curClutchTorque); - ssm->modulate(trucknum, SS_MOD_GEARBOX, curGearboxRPM); + if(ssm) ssm->modulate(trucknum, SS_MOD_ENGINE, curEngineRPM); + if(ssm) ssm->modulate(trucknum, SS_MOD_TORQUE, curClutchTorque); + if(ssm) ssm->modulate(trucknum, SS_MOD_GEARBOX, curGearboxRPM); //gear hack if (curGear<0 || automode!=AUTOMATIC) return; if (!shifting && !postshifting && curEngineRPM>maxRPM-100.0 && curGear<numGears && autoselect==DRIVE) shift(1); if (!shifting && !postshifting && curEngineRPM<iddleRPM && curGear>1 && autoselect==DRIVE) shift(-1); } // reverse gear beep - if (curGear==-1 && running) + if (curGear==-1 && running && ssm) { ssm->trigStart(trucknum, SS_TRIG_REVERSE_GEAR); } - else + else if(ssm) { ssm->trigStop(trucknum, SS_TRIG_REVERSE_GEAR); } @@ -307,7 +307,7 @@ else if (curEngineRPM<900) {float t=(900.0f-curEngineRPM)/50.0f;if (t>val) val=t;}; } #ifdef USE_OPENAL - ssm->modulate(trucknum, SS_MOD_INJECTOR, val); + if(ssm) ssm->modulate(trucknum, SS_MOD_INJECTOR, val); #endif //OPENAL curAcc=val*0.94f+0.06f; } @@ -371,8 +371,8 @@ { contact=!contact; #ifdef USE_OPENAL - if (contact) ssm->trigStart(trucknum, SS_TRIG_IGNITION); - else ssm->trigStop(trucknum, SS_TRIG_IGNITION); + if (contact && ssm) ssm->trigStart(trucknum, SS_TRIG_IGNITION); + else if(ssm) ssm->trigStop(trucknum, SS_TRIG_IGNITION); #endif //OPENAL } @@ -405,9 +405,9 @@ running=1; contact=1; #ifdef USE_OPENAL - ssm->trigStart(trucknum, SS_TRIG_IGNITION); + if(ssm) ssm->trigStart(trucknum, SS_TRIG_IGNITION); setAcc(0); - ssm->trigStart(trucknum, SS_TRIG_ENGINE); + if(ssm) ssm->trigStart(trucknum, SS_TRIG_ENGINE); #endif //OPENAL } @@ -420,9 +420,9 @@ running=0; contact=0; #ifdef USE_OPENAL - ssm->trigStop(trucknum, SS_TRIG_IGNITION); + if(ssm) ssm->trigStop(trucknum, SS_TRIG_IGNITION); // setAcc(0); - ssm->trigStop(trucknum, SS_TRIG_ENGINE); + if(ssm) ssm->trigStop(trucknum, SS_TRIG_ENGINE); #endif //OPENAL } @@ -452,7 +452,7 @@ ScriptEngine::getSingleton().triggerEvent(ScriptEngine::SE_TRUCK_ENGINE_DIED, trucknum); #endif #ifdef USE_OPENAL - ssm->trigStop(trucknum, SS_TRIG_ENGINE); + if(ssm) ssm->trigStop(trucknum, SS_TRIG_ENGINE); #endif //OPENAL } @@ -470,7 +470,7 @@ if (automode<MANUAL) { #ifdef USE_OPENAL - ssm->trigStart(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigStart(trucknum, SS_TRIG_SHIFT); #endif //OPENAL shiftval=val; shifting=1; @@ -482,13 +482,13 @@ if (curClutch>0.25) { #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_GEARSLIDE); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_GEARSLIDE); #endif //OPENAL } else { #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_SHIFT); #endif //OPENAL curGear+=val; if (curGear<-1) curGear=-1; @@ -512,13 +512,13 @@ if (curClutch>0.25) { #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_GEARSLIDE); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_GEARSLIDE); #endif //OPENAL } else { #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_SHIFT); #endif //OPENAL curGear=val; if (curGear<-1) curGear=-1; @@ -536,7 +536,7 @@ if (autoselect==ONE) shiftTo(1); */ #ifdef USE_OPENAL - ssm->trigOnce(trucknum, SS_TRIG_SHIFT); + if(ssm) ssm->trigOnce(trucknum, SS_TRIG_SHIFT); #endif //OPENAL if (autoselect==REAR) curGear=-1; if (autoselect==NEUTRAL) curGear=0; Modified: trunk/source/main/main.cpp =================================================================== --- trunk/source/main/main.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/main.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -129,15 +129,25 @@ loadMainResource("materials", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("meshes", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("overlays", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); - loadMainResource("paged", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("particles", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("mygui", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("layouts", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("scripts", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); - loadMainResource("sounds", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); loadMainResource("textures", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); - loadMainResource("caelum", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); - loadMainResource("hydrax", "Hydrax"); // special resourcegroup required! + + // optional ones + if (SETTINGS.getSetting("3D Sound renderer") != "No sound") + loadMainResource("sounds", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); + + if (SETTINGS.getSetting("Sky effects") == "Caelum (best looking, slower)") + loadMainResource("caelum", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); + + if(SETTINGS.getSetting("Hydrax") == "Yes") + loadMainResource("hydrax", "Hydrax"); // special resourcegroup required! + + if(SETTINGS.getSetting("Vegetation") != "None (fastest)") + loadMainResource("paged", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); + //streams path, to be processed later by the cache system LogManager::getSingleton().logMessage("Loading filesystems"); @@ -263,13 +273,6 @@ if (tft=="Trilinear") tfo=TFO_TRILINEAR; if (tft=="Anisotropic (best looking)") tfo=TFO_ANISOTROPIC; - - // Test which syntax are allowed for shaders - LogManager::getSingleton().logMessage("* supported shader profiles:"); - const GpuProgramManager::SyntaxCodes &syntaxCodes = GpuProgramManager::getSingleton().getSupportedSyntax(); - for (GpuProgramManager::SyntaxCodes::const_iterator iter = syntaxCodes.begin();iter != syntaxCodes.end();++iter) - LogManager::getSingleton().logMessage(" - "+(*iter)); - // Set ambient light // mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5)); mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5)); Modified: trunk/source/main/screwprop.cpp =================================================================== --- trunk/source/main/screwprop.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/screwprop.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -63,7 +63,8 @@ //pseudo-rpm float prpm=(0.5+fabs(val)/2.0)*100.0; #ifdef USE_OPENAL - SoundScriptManager::getSingleton()->modulate(trucknum, SS_MOD_ENGINE, prpm); + SoundScriptManager *ssm = SoundScriptManager::getSingleton(); + if(ssm) ssm->modulate(trucknum, SS_MOD_ENGINE, prpm); #endif //OPENAL } Modified: trunk/source/main/turbojet.cpp =================================================================== --- trunk/source/main/turbojet.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/turbojet.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -192,7 +192,7 @@ { #ifdef USE_OPENAL //sound update - ssm->modulate(trucknum, mod_id, rpm); + if(ssm) ssm->modulate(trucknum, mod_id, rpm); #endif //OPENAL } timer+=dt; @@ -225,8 +225,8 @@ if (afterburner) enginethrust+=(afterburnthrust-maxdrythrust); } else afterburner=false; #ifdef USE_OPENAL - if (afterburner) ssm->trigStart(trucknum, ab_id); - else ssm->trigStop(trucknum, ab_id); + if (afterburner && ssm) ssm->trigStart(trucknum, ab_id); + else if(ssm) ssm->trigStop(trucknum, ab_id); #endif //OPENAL nodes[nodeback].Forces+=(enginethrust*1000.0)*axis; @@ -240,7 +240,7 @@ throtle=val; #ifdef USE_OPENAL //sound update - ssm->modulate(trucknum, thr_id, val); + if(ssm) ssm->modulate(trucknum, thr_id, val); #endif //OPENAL } @@ -280,13 +280,13 @@ warmup=true; warmupstart=timer; #ifdef USE_OPENAL - ssm->trigStart(trucknum, src_id); + if(ssm) ssm->trigStart(trucknum, src_id); #endif //OPENAL } else { #ifdef USE_OPENAL - ssm->trigStop(trucknum, src_id); + if(ssm) ssm->trigStop(trucknum, src_id); #endif //OPENAL } Modified: trunk/source/main/turboprop.cpp =================================================================== --- trunk/source/main/turboprop.cpp 2010-05-04 19:02:22 UTC (rev 1366) +++ trunk/source/main/turboprop.cpp 2010-05-04 22:05:22 UTC (rev 1367) @@ -213,7 +213,7 @@ airdensity=airpressure*0.0000120896;//1.225 at sea level #ifdef USE_OPENAL //sound update - ssm->modulate(trucknum, mod_id, rpm); + if(ssm) ssm->modulate(trucknum, mod_id, rpm); #endif //OPENAL } @@ -394,7 +394,7 @@ throtle=val; #ifdef USE_OPENAL //sound update - ssm->modulate(trucknum, thr_id, val); + if(ssm) ssm->modulate(trucknum, thr_id, val); #endif //OPENAL } @@ -435,13 +435,13 @@ warmup=true; warmupstart=timer; #ifdef USE_OPENAL - ssm->trigStart(trucknum, src_id); + if(ssm) ssm->trigStart(trucknum, src_id); #endif //OPENAL } else { #ifdef USE_OPENAL - ssm->trigStop(trucknum, src_id); + if(ssm) ssm->trigStop(trucknum, src_id); #endif //OPENAL } lastflip=timer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ Rigsofrods-devel mailing list Rigsofrods-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel