Revision: 2384
http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2384&view=rev
Author: rorthomas
Date: 2012-01-29 20:52:02 +0000 (Sun, 29 Jan 2012)
Log Message:
-----------
improved dashboards a bit
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-01-29 15:45:26 UTC
(rev 2383)
+++ trunk/source/main/gameplay/RoRFrameListener.cpp 2012-01-29 20:52:02 UTC
(rev 2384)
@@ -5247,6 +5247,26 @@
}
#endif //MYGUI
+#if 0
+ // put some trucks in a fancy circle
+ // not functional purpose, just for screenshots
+ {
+ float dg = 0, rad = 10;
+ for(int i=0;i < 200; i++)
+ {
+ dg += (Ogre::Math::PI * 2) / (10+rad);
+ rad += 0.4f;
+ if(dg > 2 * Ogre::Math::PI)
+ {
+ //rad += 10;
+ dg -= 2 * Ogre::Math::PI;
+ }
+ Vector3 pos(cx + cos(dg) * rad, cy, cz + sin(dg) * rad);
+ BeamFactory::getSingleton().createLocal(pos,
Quaternion(Radian(-dg), Vector3::UNIT_Y), "semi.truck");
+ }
+ BeamFactory::getSingleton().sendAllTrucksSleeping();
+ }
+#endif // 0
collisions->finishLoadingTerrain();
Modified: trunk/source/main/gui/DashBoardManager.cpp
===================================================================
--- trunk/source/main/gui/DashBoardManager.cpp 2012-01-29 15:45:26 UTC (rev
2383)
+++ trunk/source/main/gui/DashBoardManager.cpp 2012-01-29 20:52:02 UTC (rev
2384)
@@ -195,12 +195,14 @@
// DASHBOARD class below
-DashBoard::DashBoard(DashBoardManager *manager, Ogre::String filename, bool
_textureLayer) : manager(manager), filename(filename), free_controls(0),
visible(false), mainWidget(0), textureLayer(_textureLayer)
+DashBoard::DashBoard(DashBoardManager *manager, Ogre::String filename, bool
_textureLayer) : manager(manager), filename(filename), free_controls(0),
visible(false), mainWidget(nullptr), textureLayer(_textureLayer)
{
// use 'this' class pointer to make layout unique
prefix = MyGUI::utility::toString(this, "_");
memset(&controls, 0, sizeof(controls));
loadLayout(filename);
+ // hide first
+ if(mainWidget) mainWidget->setVisible(false);
}
DashBoard::~DashBoard()
@@ -313,7 +315,7 @@
else if(controls[i].direction == DIRECTION_RIGHT)
controls[i].widget->setPosition(controls[i].initialPosition.left + translation,
controls[i].initialPosition.top);
}
- else if(controls[i].animationType == ANIM_TEXT)
+ else if(controls[i].animationType == ANIM_TEXTFORMAT)
{
float val = manager->getNumeric(controls[i].linkID);
@@ -333,7 +335,7 @@
controls[i].txt->setCaption(s);
}
- else if(controls[i].animationType == ANIM_TEXT2)
+ else if(controls[i].animationType == ANIM_TEXTSTRING)
{
char *val = manager->getChar(controls[i].linkID);
controls[i].txt->setCaption(MyGUI::UString(val));
@@ -379,7 +381,7 @@
std::string prefixLessName = name.substr(prefix.size());
if(prefixLessName == "_Main")
{
- mainWidget = w;
+ mainWidget = (MyGUI::WindowPtr)w;
// resize it
windowResized();
}
@@ -548,11 +550,26 @@
return;
}
}
- else if(anim == "text")
+ else if(anim == "textcolor" || anim == "textcolour")
{
+ ctrl.animationType = ANIM_TEXTCOLOR;
+
// try to cast, will throw
try
{
+ ctrl.txt = (MyGUI::TextBox *)w;
+ }
+ catch (...)
+ {
+ LOG("Dashboard ("+filename+"/"+name+"):
textcolor controls must use the TextBox Control");
+ return;
+ }
+ }
+ else if(anim == "textformat")
+ {
+ // try to cast, will throw
+ try
+ {
ctrl.txt = (MyGUI::TextBox *)w; //
w->getSubWidgetMain()->castType<MyGUI::TextBox>();
}
catch (...)
@@ -560,9 +577,9 @@
LOG("Dashboard ("+filename+"/"+name+"): Lamp
controls must use the ImageBox Control");
return;
}
- ctrl.animationType = ANIM_TEXT;
+ ctrl.animationType = ANIM_TEXTFORMAT;
}
- else if(anim == "text2")
+ else if(anim == "textstring")
{
// try to cast, will throw
try
@@ -574,7 +591,7 @@
LOG("Dashboard ("+filename+"/"+name+"): Lamp
controls must use the ImageBox Control");
return;
}
- ctrl.animationType = ANIM_TEXT2;
+ ctrl.animationType = ANIM_TEXTSTRING;
}
else if(anim == "lamp")
{
@@ -636,7 +653,7 @@
void DashBoard::setVisible(bool v)
{
visible = v;
- if(mainWidget) mainWidget->setVisible(v);
+ if(mainWidget) mainWidget->setVisibleSmooth(v);
}
#endif // USE_MYGUI
Modified: trunk/source/main/gui/DashBoardManager.h
===================================================================
--- trunk/source/main/gui/DashBoardManager.h 2012-01-29 15:45:26 UTC (rev
2383)
+++ trunk/source/main/gui/DashBoardManager.h 2012-01-29 20:52:02 UTC (rev
2384)
@@ -218,11 +218,11 @@
DashBoardManager *manager;
Ogre::String filename;
MyGUI::VectorWidgetPtr widgets;
- MyGUI::WidgetPtr mainWidget;
+ MyGUI::WindowPtr mainWidget;
bool visible, textureLayer;
std::string prefix;
- enum {ANIM_NONE, ANIM_ROTATE, ANIM_SCALE, ANIM_TEXT, ANIM_TEXT2,
ANIM_LAMP, ANIM_SERIES, ANIM_TRANSLATE };
+ enum {ANIM_NONE, ANIM_ROTATE, ANIM_SCALE, ANIM_TEXTFORMAT,
ANIM_TEXTSTRING, ANIM_LAMP, ANIM_SERIES, ANIM_TRANSLATE, ANIM_TEXTCOLOR };
enum {DIRECTION_NONE, DIRECTION_UP, DIRECTION_RIGHT, DIRECTION_DOWN,
DIRECTION_LEFT };
enum {CONDITION_NONE, CONDITION_GREATER, CONDITION_LESSER};
Modified: trunk/source/main/physics/Beam.cpp
===================================================================
--- trunk/source/main/physics/Beam.cpp 2012-01-29 15:45:26 UTC (rev 2383)
+++ trunk/source/main/physics/Beam.cpp 2012-01-29 20:52:02 UTC (rev 2384)
@@ -5533,7 +5533,7 @@
} else
{
// load all dashs
- for(int i=0; i < dashBoardLayouts.size(); i++)
+ for(unsigned int i=0; i < dashBoardLayouts.size(); i++)
dash->loadDashBoard(dashBoardLayouts[i].first,
dashBoardLayouts[i].second);
}
dash->setVisible(false);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
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-dev2
_______________________________________________
Rigsofrods-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel