Revision: 2435
          http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2435&view=rev
Author:   rorthomas
Date:     2012-02-02 14:33:06 +0000 (Thu, 02 Feb 2012)
Log Message:
-----------
fixed visibility of 3d dashboards

Modified Paths:
--------------
    trunk/source/main/gameplay/RoRFrameListener.cpp
    trunk/source/main/gui/DashBoardManager.cpp
    trunk/source/main/gui/DashBoardManager.h
    trunk/source/main/physics/Beam.cpp

Modified: trunk/source/main/gameplay/RoRFrameListener.cpp
===================================================================
--- trunk/source/main/gameplay/RoRFrameListener.cpp     2012-02-02 13:56:29 UTC 
(rev 2434)
+++ trunk/source/main/gameplay/RoRFrameListener.cpp     2012-02-02 14:33:06 UTC 
(rev 2435)
@@ -5334,6 +5334,15 @@
 
        enforceCameraFOVUpdate = true;
 
+       // hide any old dashes
+       if(previousTruck && previousTruck->dash)
+               previousTruck->dash->setVisible3d(false);
+       // show new
+       if(currentTruck && currentTruck->dash)
+               currentTruck->dash->setVisible3d(true);
+
+
+       // normal workflow
        if (!currentTruck)
        {
                // get out

Modified: trunk/source/main/gui/DashBoardManager.cpp
===================================================================
--- trunk/source/main/gui/DashBoardManager.cpp  2012-02-02 13:56:29 UTC (rev 
2434)
+++ trunk/source/main/gui/DashBoardManager.cpp  2012-02-02 14:33:06 UTC (rev 
2435)
@@ -176,15 +176,25 @@
        return 0;
 }
 
-void DashBoardManager::setVisible( bool v )
+void DashBoardManager::setVisible( bool visibility )
 {
-       visible = v;
+       visible = visibility;
        for(int i=0; i < free_dashboard; i++)
        {
-               dashboards[i]->setVisible(visible);
+               if(!dashboards[i]->getIsTextureLayer())
+                       dashboards[i]->setVisible(visibility);
        }
 }
 
+void DashBoardManager::setVisible3d( bool visibility )
+{
+       for(int i=0; i < free_dashboard; i++)
+       {
+               if(dashboards[i]->getIsTextureLayer())
+                       dashboards[i]->setVisible(visibility, false);
+       }
+}
+
 void DashBoardManager::windowResized()
 {
        for(int i=0; i < free_dashboard; i++)
@@ -650,10 +660,15 @@
                mainWidget->detachFromWidget("RTTLayer1");
 }
 
-void DashBoard::setVisible(bool v)
+void DashBoard::setVisible(bool v, bool smooth)
 {
+       if(!mainWidget) return;
        visible = v;
-       if(mainWidget) mainWidget->setVisibleSmooth(v);
+
+       if(smooth)
+               mainWidget->setVisibleSmooth(v);
+       else
+               mainWidget->setVisible(v);
 }
 
 #endif // USE_MYGUI

Modified: trunk/source/main/gui/DashBoardManager.h
===================================================================
--- trunk/source/main/gui/DashBoardManager.h    2012-02-02 13:56:29 UTC (rev 
2434)
+++ trunk/source/main/gui/DashBoardManager.h    2012-02-02 14:33:06 UTC (rev 
2435)
@@ -191,7 +191,8 @@
 
        bool wasLoaded() { return (free_dashboard > 0); };
 
-       void setVisible(bool visible);
+       void setVisible(bool visibility);
+       void setVisible3d(bool visibility);
        bool getVisible() { return visible; };
        void windowResized();
 
@@ -209,9 +210,11 @@
        DashBoard(DashBoardManager *manager, Ogre::String filename, bool 
textureLayer);
        ~DashBoard();
 
-       void setVisible(bool visible);
+       void setVisible(bool visible, bool smooth=true);
        bool getVisible() { return visible; };
 
+       bool getIsTextureLayer() { return textureLayer; }
+
        void update(float &dt);
 
        void windowResized();

Modified: trunk/source/main/physics/Beam.cpp
===================================================================
--- trunk/source/main/physics/Beam.cpp  2012-02-02 13:56:29 UTC (rev 2434)
+++ trunk/source/main/physics/Beam.cpp  2012-02-02 14:33:06 UTC (rev 2435)
@@ -5426,7 +5426,7 @@
                        {
                                dash->loadDashBoard("default_dashboard.layout", 
false);
                                // TODO: load texture dashboard by default as 
well
-                               
//dash->loadDashBoard("default_dashboard.layout", true);
+                               dash->loadDashBoard("default_dashboard.layout", 
true);
                        }
                } else
                {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Rigsofrods-devel mailing list
Rigsofrods-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel

Reply via email to