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

Reply via email to