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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel