/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * * Distributable under the terms and conditions of the 2-clause BSD license; * see the file COPYING for a complete text of the license. * *****************************************************************************/ #ifndef _HUD_HH_ #define _HUD_HH_ #include #include //#include #include #include "GameState.hh" /** * \file Hud.hh * Heads-up Display */ // forward declarations class rectangle; // TODO this stuff is still just hacked up class ProgressBar : public moof::drawable { public: ProgressBar(const moof::sprite& tilemap, int index); void resize(const moof::rectangle& rect); void setProgress(moof::scalar progress); void draw(moof::scalar alpha = 0.0) const; private: moof::scalar mProgress; moof::vector2 mVertices[8]; moof::scalar mWidth; moof::sprite mTilemap; moof::scalar mTexCoords[8]; moof::scalar mMidCoords[2]; }; class Hud; typedef boost::shared_ptr HudP; class Hud { public: static HudP alloc(GameState& state) { return HudP(new Hud(state)); } Hud(GameState& state); void setBar1Progress(moof::scalar progress) { // pass through mBar1.setProgress(progress); } void setBar2Progress(moof::scalar progress) { // pass through mBar2.setProgress(progress); } void setNumber(unsigned value); void resize(int width, int height); void update(moof::scalar t, moof::scalar dt); void draw(moof::scalar alpha = 0.0) const; bool handle_event(const moof::event& event); private: GameState& state_; ProgressBar mBar1; ProgressBar mBar2; unsigned mNumber; moof::sprite mFont; moof::matrix4 mProjection; }; #endif // _HUD_HH_