00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef HUDELEMENT_H
00019 #define HUDELEMENT_H
00020
00021 #include "Player.hpp"
00022 #include "Enemy_Help.hpp"
00023 #include "Bitmapfont.hpp"
00024 #include <string>
00025 #include <list>
00026
00027
00028 enum HUDType {POLL_GRAFIK_HORZ, POLL_GRAFIK_VERT, POLL_TEXT, SET_TEXT, POLL_INFO};
00029
00031
00032
00033 class AHUDElement
00034 {
00035 protected:
00036 int m_X, m_Y;
00037 int m_Width, m_Height;
00038 CPlayer* m_player;
00039 public:
00040 void SetPosition(int X, int Y);
00041 void SetSize(int Width, int Height);
00042 int GetPosition_X()
00043 {return m_X;}
00044 int GetPosition_Y()
00045 {return m_Y;}
00046 int GetSize_Width()
00047 {return m_Width;}
00048 int GetSize_Height()
00049 {return m_Height;}
00050 virtual void draw() = 0;
00051 };
00052
00053
00054
00055 class AHUDPoll :
00056 public AHUDElement
00057 {
00058 protected:
00059 enum {FLOAT, INTEGER} m_ValueType;
00060 const float* m_fAktuell;
00061 const int* m_iAktuell;
00062 float m_maxValue;
00063 public:
00064 void init(int maxValue, const int* aktuell);
00065 void init(float maxValue, const float* aktuell);
00066 virtual void initChild() = 0;
00067 };
00068
00069
00070
00071 class CHUDPollGrafikHorz :
00072 public AHUDPoll
00073 {
00074 private:
00075 sf::Sprite* m_Sprite;
00076 public:
00077 void initChild();
00078 void draw();
00079 CHUDPollGrafikHorz(global_data_pointers data);
00080 };
00081
00082 class CHUDPollGrafikVert :
00083 public AHUDPoll
00084 {
00085 private:
00086 sf::Sprite* m_Sprite;
00087 public:
00088 void initChild();
00089 void draw();
00090 CHUDPollGrafikVert(global_data_pointers data);
00091 };
00092
00093 class AHUDSetGrafik :
00094 public AHUDElement
00095 {
00096 protected:
00097 enum {FLOAT, INTEGER} m_ValueType;
00098 float m_Aktuell;
00099 float m_Max;
00100 public:
00101 float* init(float maxValue);
00102 virtual void initChild() = 0;
00103
00104 };
00105
00106
00107
00108 class CHUDPollText :
00109 public AHUDElement
00110 {
00111 CBitmapFont* m_bmFont;
00112 const std::string* m_Data;
00113 int m_fontsize;
00114 int m_textwidth;
00115 public:
00116 CHUDPollText(CBitmapFont* bmFont, int fontsize, int textwidth)
00117 {m_bmFont = bmFont; m_fontsize = fontsize; m_textwidth = textwidth;}
00118 void init(const std::string* data);
00119 void draw();
00120 };
00121
00122 class CHUDSetText :
00123 public AHUDElement
00124 {
00125 CBitmapFont* m_bmFont;
00126 std::string m_Data;
00127 int m_fontsize;
00128 public:
00129 CHUDSetText(CBitmapFont* bmFont, int fontsize)
00130 {m_bmFont = bmFont; m_fontsize = fontsize;}
00131 std::string* init()
00132 {return &m_Data;}
00133 void draw();
00134 };
00135
00136 class CHUDInfo :
00137 public AHUDElement
00138 {
00139 int m_timer;
00140 CBitmapFont* m_bmFont;
00141 sf::Sprite* m_backg;
00142 sf::Sprite* m_image;
00143 global_data_pointers m_data;
00144 bool* p_show;
00145
00146 std::list<SInfo*>* p_Infos;
00147 public:
00148 CHUDInfo(global_data_pointers data, CBitmapFont* bmFont)
00149 {m_bmFont = bmFont; m_data = data; m_backg = NULL;}
00150 void init(bool* show, std::list<SInfo*>* Infos);
00151 void draw();
00152 };
00153
00154 #endif
00155