/*! * @file hud.h * @brief Definition of the ingame HUD. */ #ifndef _HUD_H #define _HUD_H #include "element_2d.h" #include "event_listener.h" #include "glgui_box.h" // FORWARD DECLARATION class WeaponManager; namespace OrxGui { class GLGuiWidget; class GLGuiNotifier; class GLGuiInputLine; class GLGuiRadar; } //! A class that renders a HUD (Heads Up Display for User Information). class Hud : public Element2D, public EventListener { ObjectListDeclaration(Hud); public: Hud(); virtual ~Hud(); virtual void loadParams(const TiXmlElement* root); void notifyUser(const std::string& message); void setBackGround(); void setEnergyWidget(OrxGui::GLGuiWidget* widget); void setShiledWidget(OrxGui::GLGuiWidget* widget); void setArmorWidget(OrxGui::GLGuiWidget* widget); void setWeaponManager(WeaponManager* weaponMan, WeaponManager* weaponManSec = NULL); void addWeaponWidget(OrxGui::GLGuiWidget* widget); void removeWeaponWidget(OrxGui::GLGuiWidget* widget); OrxGui::GLGuiRadar* radar() const { return _radar; }; void updateWeaponManager(); void draw() const; virtual void process(const Event &event); private: void updateResolution(); private: unsigned int resX; unsigned int resY; OrxGui::GLGuiWidget* energyWidget; OrxGui::GLGuiWidget* shieldWidget; OrxGui::GLGuiWidget* armorWidget; OrxGui::GLGuiBox* shipValuesBox; OrxGui::GLGuiNotifier* notifier; OrxGui::GLGuiInputLine* inputLine; OrxGui::GLGuiRadar* _radar; WeaponManager* weaponManager; WeaponManager* weaponManagerSecondary; std::list weaponsWidgets; //!< WeaponWidgets will be displayed one after another }; #endif /* _HUD_H */