Revision: 1685
http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=1685&view=rev
Author: rorthomas
Date: 2011-02-17 21:32:24 +0000 (Thu, 17 Feb 2011)
Log Message:
-----------
added error message upon no content
fixed airplane crash on no sound
fixed dashboards usage in non 4:3 resolutions: will scale better now
improved screen resize and dashboard size: dashboard resizes well now
Modified Paths:
--------------
trunk/source/main/gameplay/CacheSystem.cpp
trunk/source/main/gameplay/RoRFrameListener.cpp
trunk/source/main/gui/OverlayWrapper.cpp
trunk/source/main/gui/OverlayWrapper.h
trunk/source/main/physics/BeamForcesEuler.cpp
Modified: trunk/source/main/gameplay/CacheSystem.cpp
===================================================================
--- trunk/source/main/gameplay/CacheSystem.cpp 2011-02-17 20:57:21 UTC (rev
1684)
+++ trunk/source/main/gameplay/CacheSystem.cpp 2011-02-17 21:32:24 UTC (rev
1685)
@@ -24,6 +24,7 @@
#include "ImprovedConfigFile.h"
#include "Settings.h"
#include "language.h"
+#include "errorutils.h"
#include "SoundScriptManager.h"
#include "BeamData.h" // for authorinfo_t
@@ -102,7 +103,7 @@
// generate the cache
generateCache((valid < -1));
- LogManager::getSingleton().logMessage("unloading unused
resource groups ...");
+ //LogManager::getSingleton().logMessage("unloading unused
resource groups ...");
// important: unload everything again!
//unloadUselessResourceGroups();
}
@@ -111,6 +112,13 @@
// load the cache finally!
loadCache();
+ // show error on zero content
+ if(!entries.size())
+ {
+ showWebError(_L("No content installed"), _L("You have no
content installed"), "http://www.rigsofrods.com/wiki/pages/Install_Content");
+ exit(1337);
+ }
+
LogManager::getSingleton().logMessage("cache loaded!");
}
Modified: trunk/source/main/gameplay/RoRFrameListener.cpp
===================================================================
--- trunk/source/main/gameplay/RoRFrameListener.cpp 2011-02-17 20:57:21 UTC
(rev 1684)
+++ trunk/source/main/gameplay/RoRFrameListener.cpp 2011-02-17 21:32:24 UTC
(rev 1685)
@@ -559,7 +559,7 @@
ssm->modulate(current_truck, SS_MOD_AOA, absangle);
if (absangle>18.0 && ssm)
ssm->trigStart(current_truck, SS_TRIG_AOA);
- else
+ else if(ssm)
ssm->trigStop(current_truck, SS_TRIG_AOA);
#endif // OPENAL
if (angle>25.0) angle=25.0;
@@ -4409,7 +4409,15 @@
#endif //SOCKETW
showcredits=1;
loading_state=EXITING;
- if(ow)
OverlayManager::getSingleton().getByName("tracks/CreditsOverlay")->show();
+ if(ow)
+ {
+
OverlayManager::getSingleton().getByName("tracks/CreditsOverlay")->show();
+ // enforce 4:3 for credits screen
+ float w = mWindow->getWidth();
+ float h = mWindow->getHeight();
+ float sx = (4/3) / (w/h);
+
OverlayManager::getSingleton().getByName("tracks/CreditsOverlay")->setScale(sx,
1);
+ }
#ifdef USE_OPENAL
if(ssm) ssm->soundEnable(false);
#endif // OPENAL
@@ -7653,6 +7661,8 @@
screenWidth = width;
screenHeight = height;
+ ow->windowResized(rw);
+
//update mouse area
INPUTENGINE.windowResized(rw);
}
Modified: trunk/source/main/gui/OverlayWrapper.cpp
===================================================================
--- trunk/source/main/gui/OverlayWrapper.cpp 2011-02-17 20:57:21 UTC (rev
1684)
+++ trunk/source/main/gui/OverlayWrapper.cpp 2011-02-17 21:32:24 UTC (rev
1685)
@@ -64,10 +64,46 @@
Ogre::Overlay *OverlayWrapper::loadOverlay(Ogre::String name)
{
- return OverlayManager::getSingleton().getByName(name);
+ Overlay *o = OverlayManager::getSingleton().getByName(name);
+
+ struct loadedOverlay_t lo;
+ lo.o = o;
+ lo.orgScaleX = o->getScaleX();
+ lo.orgScaleY = o->getScaleY();
+
+ overlays.push_back(lo);
+ resizeOverlay(lo);
+ return o;
}
+void OverlayWrapper::resizeOverlay(struct loadedOverlay_t lo)
+{
+ // enforce 4:3 for overlays
+ float w = win->getWidth();
+ float h = win->getHeight();
+ float s = (4.0f/3.0f) / (w/h);
+ // window is higher than wide
+ if(s > 1)
+ s = (3.0f/4.0f) / (h/w);
+
+ // originals
+ lo.o->setScale(lo.orgScaleX, lo.orgScaleY);
+ lo.o->setScroll(0, 0);
+
+ // now the new values
+ lo.o->setScale(s, s);
+ lo.o->scroll(1 - s, s - 1);
+}
+
+void OverlayWrapper::windowResized(Ogre::RenderWindow *rw)
+{
+ for(std::vector<struct loadedOverlay_t>::iterator it =
overlays.begin(); it != overlays.end(); it++)
+ {
+ resizeOverlay(*it);
+ }
+}
+
Ogre::OverlayElement *OverlayWrapper::loadOverlayElement(Ogre::String name)
{
return OverlayManager::getSingleton().getOverlayElement(name);
Modified: trunk/source/main/gui/OverlayWrapper.h
===================================================================
--- trunk/source/main/gui/OverlayWrapper.h 2011-02-17 20:57:21 UTC (rev
1684)
+++ trunk/source/main/gui/OverlayWrapper.h 2011-02-17 21:32:24 UTC (rev
1685)
@@ -34,6 +34,12 @@
#include "OgreLineStreamOverlayElement.h"
#include <OgrePanelOverlayElement.h>
+struct loadedOverlay_t
+{
+ float orgScaleX;
+ float orgScaleY;
+ Ogre::Overlay *o;
+};
class OverlayWrapper
{
@@ -52,7 +58,10 @@
void flashMessage(const char* txt, float time=1, float charHeight=-1);
void flashMessage(Ogre::String txt, float time=1, float charHeight=-1);
+ void windowResized(Ogre::RenderWindow* rw);
+ void resizeOverlay(struct loadedOverlay_t);
+
//protected:
int init();
void update(float dt);
@@ -171,6 +180,9 @@
float thrheight;
float throffset;
+protected:
+ std::vector<struct loadedOverlay_t> overlays;
+
};
Modified: trunk/source/main/physics/BeamForcesEuler.cpp
===================================================================
--- trunk/source/main/physics/BeamForcesEuler.cpp 2011-02-17 20:57:21 UTC
(rev 1684)
+++ trunk/source/main/physics/BeamForcesEuler.cpp 2011-02-17 21:32:24 UTC
(rev 1685)
@@ -186,8 +186,10 @@
//Sound effect
//Sound volume depends on the
energy lost due to deformation (which gets converted to sound (and thermal)
energy)
- /*ssm->modulate(trucknum,
SS_MOD_CREAK, deform*k*(difftoBeamL+deform*0.5f));
- ssm->trigOnce(trucknum,
SS_TRIG_CREAK);*/
+ /*
+ if(ssm) ssm->modulate(trucknum,
SS_MOD_CREAK, deform*k*(difftoBeamL+deform*0.5f));
+ if(ssm) ssm->trigOnce(trucknum,
SS_TRIG_CREAK);
+ */
beams[i].minmaxposnegstress=std::min(beams[i].maxposstress,
-beams[i].maxnegstress);
beams[i].minmaxposnegstress=std::min(beams[i].minmaxposnegstress,
beams[i].strength);
@@ -213,8 +215,10 @@
//Sound effect
//Sound volume depends on the
energy lost due to deformation (which gets converted to sound (and thermal)
energy)
- /*ssm->modulate(trucknum,
SS_MOD_CREAK, deform*k*(difftoBeamL+deform*0.5f));
- ssm->trigOnce(trucknum,
SS_TRIG_CREAK);*/
+ /*
+ if(ssm) ssm->modulate(trucknum,
SS_MOD_CREAK, deform*k*(difftoBeamL+deform*0.5f));
+ if(ssm) ssm->trigOnce(trucknum,
SS_TRIG_CREAK);
+ */
beams[i].minmaxposnegstress=std::min(beams[i].maxposstress,
-beams[i].maxnegstress);
beams[i].minmaxposnegstress=std::min(beams[i].minmaxposnegstress,
beams[i].strength);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Rigsofrods-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel