00001 #ifndef __VECTRACER_GUI_H__
00002 #define __VECTRACER_GUI_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "Common.h"
00012 #include "SelectableObject.h"
00013 #include "Track.h"
00014
00018 class GUI
00019 {
00020 public:
00021 GUI();
00022 ~GUI();
00023
00025 bool handleClick(SelectableObject* _val);
00026
00028 void updateKPH(int _val);
00029
00031 void updateLapCount(int _current, int _remaining);
00032
00034 void updateTimer(Ogre::Real _best, Ogre::Real _current, Ogre::Real _overall);
00035
00037 void updateGameState(gameState _val);
00038
00040 void createNonSelectable(Ogre::String _name, Ogre::String _materialName, GameObject* _object, Ogre::Real _width, Ogre::Real _height, Ogre::Real _scaleFactor);
00041
00042 void createSelectable(Ogre::String _name, Ogre::String _materialName, SelectableObject* _object, Ogre::Real _width, Ogre::Real _height, Ogre::Real _scaleFactor, Ogre::Vector3 _selectorScale = Ogre::Vector3::UNIT_SCALE);
00043
00044 protected:
00045
00047 bool handleStartClick();
00049 bool handleCancelClick();
00050
00051 bool handleLapsLeftClick();
00052 bool handleLapsRightClick();
00053 bool handleNodesLeftClick();
00054 bool handleNodesRightClick();
00055
00056 bool handleBuildClick();
00057
00058 GameObject* m_mainLogo;
00059
00060 Ogre::OverlayContainer* m_speedoContainer;
00061 Ogre::Overlay* m_speedo;
00062 Ogre::OverlayElement* m_speedoText;
00063
00064 Ogre::OverlayContainer* m_timerContainer;
00065 Ogre::Overlay* m_timer;
00066 Ogre::OverlayElement* m_timerText;
00067
00068 Ogre::OverlayContainer* m_lapContainer;
00069 Ogre::Overlay* m_lap;
00070 Ogre::OverlayElement* m_lapText;
00071
00072 SelectableObject* m_start;
00073
00074 SelectableObject* m_numLapsLeftArrow;
00075 GameObject* m_numLaps;
00076 GameObject* m_numLapsText;
00077 SelectableObject* m_numLapsRightArrow;
00078
00079 Ogre::OverlayContainer* m_numLapsOverlayContainer;
00080 Ogre::Overlay* m_numLapsOverlay;
00081 Ogre::OverlayElement* m_numLapsOverlayText;
00082 int m_numLapsVal;
00083
00084 Ogre::OverlayContainer* m_numNodesOverlayContainer;
00085 Ogre::Overlay* m_numNodesOverlay;
00086 Ogre::OverlayElement* m_numNodesOverlayText;
00087 int m_numNodesVal;
00088
00089 SelectableObject* m_numNodesLeftArrow;
00090 GameObject* m_numNodes;
00091 GameObject* m_numNodesText;
00092 SelectableObject* m_numNodesRightArrow;
00093
00094 SelectableObject* m_cancel;
00095
00096 SelectableObject* m_edit;
00097
00098 SelectableObject* m_build;
00099
00100 GameObject* m_finish;
00101
00102 Track* m_fakeTrack;
00103 };
00104
00105 #endif