00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021
00022
00024
00025
00027
00028 #ifndef BRIEFING_H
00029 #define BRIEFING_H
00030
00031 #include "Globals.hpp"
00032 #include "Bitmapfont.hpp"
00033 #include "MenuListField.hpp"
00034 #include "SaveManager.hpp"
00035 #include "Player.hpp"
00036
00037 #include <string>
00038 #include <SFML/Graphics.hpp>
00039
00040 static const unsigned BRIEF_SCROLL_DELAY = 200;
00041
00042 static const unsigned BRIEF_BUTTON_START = 0;
00043 static const unsigned BRIEF_BUTTON_CANCEL = 1;
00044 static const unsigned BRIEF_BUTTON_FINISH = 2;
00045
00046 static const unsigned BRIEF_SUB_START = 0;
00047 static const unsigned BRIEF_SUB_SAVE = 1;
00048
00050
00054 class CBriefing
00055 {
00056 public:
00058 CBriefing();
00059 ~CBriefing();
00060
00062 void Init(CBitmapFont* BitMapFont, int* MouseX, int* MouseY,
00063 bool* MouseDown, CPlayer* Player);
00064
00066 void SetContent(std::string Title, std::string Content, std::string FileName,
00067 int ButtonType = BRIEF_BUTTON_START, unsigned int FrameCount = 1, int FrameDelay = 50);
00068
00070 void Update();
00071
00073 bool Close()
00074 {
00075 bool Close = m_Close;
00076 m_Close = false;
00077 return Close;
00078 }
00079
00081 int GetButtonType() const { return m_ButtonType; }
00082
00084 void SetCampaign(std::string Campaign) { m_CampaignName = Campaign; }
00085
00087 std::string GetCampaign() const { return m_CampaignName; }
00088
00089
00091 void SetCurMission(int Mission) { m_CurMission = Mission; }
00092
00094 void IncCurMission() { m_CurMission++; }
00095
00097 int GetCurMission() const { return m_CurMission; }
00098
00099 private:
00100
00101 void RenderAll();
00102
00103
00104 void RenderStart();
00105
00106
00107 void RenderLoad();
00108
00109
00110
00111 bool UpdateAll();
00112
00113
00114
00115 void ChangeToSave();
00116
00117
00118 void ChangeToStart();
00119
00120
00121
00122 void Save();
00123
00124
00125 void FillSaveList();
00126
00127 CBitmapFont* m_BitmapFont;
00128
00129 CPlayer* m_Player;
00130
00131 sf::Sprite* m_LogoSprite;
00132 unsigned int frame_count;
00133 int m_LastFrameInc;
00134 int m_FrameDelay;
00135
00136 sf::Sprite m_BackSprite;
00137
00138 sf::Sprite m_ScrollUp_Up;
00139 sf::Sprite m_ScrollUp_Down;
00140 sf::Sprite m_ScrollUpDisable;
00141
00142 sf::Sprite m_ScrollDown_Up;
00143 sf::Sprite m_ScrollDown_Down;
00144 sf::Sprite m_ScrollDownDisable;
00145
00146 sf::Sprite m_StartUp;
00147 sf::Sprite m_StartDown;
00148
00149 sf::Sprite m_SaveUp;
00150 sf::Sprite m_SaveDown;
00151
00152 sf::Sprite m_BackUp;
00153 sf::Sprite m_BackDown;
00154
00155 sf::Sprite m_CancelUp;
00156 sf::Sprite m_CancelDown;
00157
00158 sf::Sprite m_FinishUp;
00159 sf::Sprite m_FinishDown;
00160
00161 CMenuListField m_SaveField;
00162
00163 int m_SubMenu;
00164
00165 int m_ButtonType;
00166
00167 int* m_MouseX;
00168 int* m_MouseY;
00169 bool* m_MouseDown;
00170 bool m_HasHitMouse;
00171 bool m_ButtonDown;
00172
00173 bool m_SaveButtonDown;
00174
00175 bool m_ScrollingUp;
00176 bool m_ScrollingDown;
00177 int m_LastScrollTime;
00178
00179 bool m_CanScrollDown;
00180
00181 bool m_Close;
00182
00183 std::string m_Title;
00184 std::string m_Content;
00185 int m_ContentScroll;
00186
00187 std::string m_CampaignName;
00188 int m_CurMission;
00189 };
00190 #endif