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

Reply via email to