diff --git a/source/code/HelpAboutState.cpp b/source/code/HelpAboutState.cpp index fdbd027..4869c33 100644 --- a/source/code/HelpAboutState.cpp +++ b/source/code/HelpAboutState.cpp @@ -31,10 +31,6 @@ https://blockattack.net #include "version.h" #include "sago/SagoMisc.hpp" -const int buttonOffset = 160; -extern sago::SagoSprite bExit; - - static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) { field.SetHolder(holder); @@ -46,10 +42,6 @@ static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTex } - - - - HelpAboutState::HelpAboutState() { SDL_RendererInfo renderInfo; SDL_version compiled; @@ -81,19 +73,6 @@ HelpAboutState::HelpAboutState() { HelpAboutState::~HelpAboutState() { } -bool HelpAboutState::IsActive() { - return isActive; -} - -void HelpAboutState::ProcessInput(const SDL_Event& event, bool& processed) { - - UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey); - - if (isConfirmEvent(event) || isEscapeEvent(event)) { - isActive = false; - processed = true; - } -} void HelpAboutState::Draw(SDL_Renderer* target) { DrawBackground(target); @@ -101,31 +80,5 @@ void HelpAboutState::Draw(SDL_Renderer* target) { DrawRectYellow(target, 40, 90, 600, 900); infoBox.SetMaxWidth(850); infoBox.Draw(target, 50, 100); - bExit.Draw(globalData.screen, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset); -#if DEBUG - static sago::SagoTextField mousePos; - mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); - mousePos.SetFontSize(16); - mousePos.SetOutline(1, {128,128,128,255}); - mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); - mousePos.Draw(target, 0,0); -#endif -} - -void HelpAboutState::Update() { - // If the mouse button is released, make bMouseUp equal true - if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) { - bMouseUp=true; - } - - if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { - bMouseUp = false; - - //The Score button: - if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mouseyGetDataHolder()); + mousePos.SetFontSize(16); + mousePos.SetOutline(1, {128,128,128,255}); + mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); + mousePos.Draw(target, 0,0); +#endif +} + + +void HelpCommonState::Update() { + // If the mouse button is released, make bMouseUp equal true + if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) { + bMouseUp=true; + } + + if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { + bMouseUp = false; + + //The Score button: + if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mouseyGetDataHolder(), supportedControllers, s.c_str()); processed = true; } - - if (isConfirmEvent(event) || isEscapeEvent(event)) { - isActive = false; - processed = true; - } + HelpCommonState::ProcessInput(event, processed); } -extern sago::SagoSprite bExit; - #define OFFSETX (-512+globalData.xsize/2) void HelpGamepadState::Draw(SDL_Renderer* target) { @@ -109,33 +94,7 @@ void HelpGamepadState::Draw(SDL_Renderer* target) { SDL_RenderDrawLine(target, 900+OFFSETX, 241, 900+OFFSETX, 400); switchLabel.Draw(target, 900+OFFSETX, 404, sago::SagoTextField::Alignment::center); confirmLabel.Draw(target, 900+OFFSETX, 404+30, sago::SagoTextField::Alignment::center); - bExit.Draw(globalData.screen, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset); supportedControllers.Draw(target, 10, 600); - -#if DEBUG - static sago::SagoTextField mousePos; - mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); - mousePos.SetFontSize(16); - mousePos.SetOutline(1, {128,128,128,255}); - mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); - mousePos.Draw(target, 0,0); -#endif + HelpCommonState::Draw(target); } -void HelpGamepadState::Update() { - // If the mouse button is released, make bMouseUp equal true - if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) { - bMouseUp=true; - } - - if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { - bMouseUp = false; - - //The Score button: - if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mousey -const int buttonOffset = 160; -extern sago::SagoSprite bExit; extern sago::SagoSprite bricks[7]; /** @@ -132,20 +130,6 @@ HelpHowtoState::HelpHowtoState() { HelpHowtoState::~HelpHowtoState() { } -bool HelpHowtoState::IsActive() { - return isActive; -} - -void HelpHowtoState::ProcessInput(const SDL_Event& event, bool& processed) { - - UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey); - - if (isConfirmEvent(event) || isEscapeEvent(event)) { - isActive = false; - processed = true; - } -} - const double PI =3.141592653589793238463; static void DrawArrow(SDL_Renderer* target, int x1, int y1, int x2, int y2) { @@ -199,32 +183,10 @@ void HelpHowtoState::Draw(SDL_Renderer* target) { DrawArrow(target, 600, 600, 650, 600); DrawArrow(target, 525, 525, 525, 675); chainField.Draw(target, 400, 710, sago::SagoTextField::Alignment::center); - bExit.Draw(globalData.screen, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset); -#if DEBUG - static sago::SagoTextField mousePos; - mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); - mousePos.SetFontSize(16); - mousePos.SetOutline(1, {128,128,128,255}); - mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); - mousePos.Draw(target, 0,0); -#endif + HelpCommonState::Draw(target); } void HelpHowtoState::Update() { - // If the mouse button is released, make bMouseUp equal true - if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) { - bMouseUp=true; - } - - if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { - bMouseUp = false; - - //The Score button: - if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mousey -const int buttonOffsetX = 140; -const int buttonOffsetY = 180; -extern sago::SagoSprite bExit; static void setButtonFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) { field.SetHolder(holder); @@ -66,7 +63,7 @@ const int numberOfPages = 7; void ScoresDisplay::DrawBackgroundAndCalcPlacements() { DrawBackground(globalData.screen); nextX = globalData.xsize-buttonXsize-20; - backY = globalData.ysize-buttonYsize-20; + backY = globalData.ysize-buttonYsize-18; nextY = backY; } @@ -195,11 +192,7 @@ ScoresDisplay::ScoresDisplay() { ScoresDisplay::~ScoresDisplay() { } -bool ScoresDisplay::IsActive() { - return isActive; -} - -void ScoresDisplay::Draw(SDL_Renderer*) { +void ScoresDisplay::Draw(SDL_Renderer* target) { switch (page) { case 0: case 1: @@ -220,7 +213,6 @@ void ScoresDisplay::Draw(SDL_Renderer*) { const sago::SagoDataHolder* holder = &globalData.spriteHolder->GetDataHolder(); //Draw buttons: - bExit.Draw(globalData.screen, SDL_GetTicks(), globalData.xsize-buttonOffsetX, globalData.ysize-buttonOffsetY); globalData.bBack.Draw(globalData.screen, 0, backX, backY); static sago::SagoTextField backLabel; setButtonFont(holder, backLabel, _("Back")); @@ -233,6 +225,7 @@ void ScoresDisplay::Draw(SDL_Renderer*) { //Draw page number std::string pageXofY = fmt::format(_("Page {} of {}"), page+1, numberOfPages); getCachedText(pageXofY)->Draw(globalData.screen, globalData.xsize/2, globalData.ysize-60, sago::SagoTextField::Alignment::center); + HelpCommonState::Draw(target); } void ScoresDisplay::ProcessInput(const SDL_Event& event, bool& processed) { @@ -254,11 +247,7 @@ void ScoresDisplay::ProcessInput(const SDL_Event& event, bool& processed) { } processed = true; } - - if (isConfirmEvent(event) || isEscapeEvent(event)) { - isActive = false; - processed = true; - } + HelpCommonState::ProcessInput(event, processed); } void ScoresDisplay::Update() { @@ -270,12 +259,6 @@ void ScoresDisplay::Update() { if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { bMouseUp = false; - //The Exit button: - if ((globalData.mousex>globalData.xsize-buttonOffsetX) && (globalData.mousexglobalData.ysize-buttonOffsetY) && (globalData.mouseybackX) && (globalData.mousexbackY) && (globalData.mousey #include #include "highscore.h" -class ScoresDisplay : public sago::GameStateInterface { +class ScoresDisplay : public HelpCommonState{ public: ScoresDisplay(); ScoresDisplay(const ScoresDisplay& orig) = delete; virtual ~ScoresDisplay(); - bool IsActive() override; void Draw(SDL_Renderer* target) override; void ProcessInput(const SDL_Event& event, bool &processed) override; void Update() override; @@ -61,7 +60,6 @@ private: void Write(SDL_Renderer* target, int x, int y, const std::string& text); sago::SagoTextField* getCachedText(const std::string& text); std::map > fieldCache; - bool isActive = true; bool bMouseUp = false; int backX = 20; int backY = 0; diff --git a/source/code/ShowFileState.cpp b/source/code/ShowFileState.cpp index d965343..926338d 100644 --- a/source/code/ShowFileState.cpp +++ b/source/code/ShowFileState.cpp @@ -25,9 +25,6 @@ https://blockattack.net #include "MenuSystem.h" #include -const int buttonOffset = 160; -extern sago::SagoSprite bExit; - static void setHelpGamepadFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) { field.SetHolder(holder); field.SetFont("freeserif"); @@ -52,20 +49,6 @@ void ShowFileState::SetData(const std::string& filename, const std::string& head filenameField.SetText(fmt::format(_("Showing content of: {}"), filename)); } -bool ShowFileState::IsActive() { - return isActive; -} - -void ShowFileState::ProcessInput(const SDL_Event& event, bool& processed) { - - UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey); - - if (isConfirmEvent(event) || isEscapeEvent(event)) { - isActive = false; - processed = true; - } -} - void ShowFileState::Draw(SDL_Renderer* target) { DrawBackground(target); titleField.Draw(target, 50, 50); @@ -74,31 +57,6 @@ void ShowFileState::Draw(SDL_Renderer* target) { infoBox.Draw(target, 50, 100); DrawRectYellow(target, 40, 700, 50, 900); filenameField.Draw(target, 50, 715); - bExit.Draw(globalData.screen, SDL_GetTicks(), globalData.xsize-buttonOffset, globalData.ysize-buttonOffset); -#if DEBUG - static sago::SagoTextField mousePos; - mousePos.SetHolder(&globalData.spriteHolder->GetDataHolder()); - mousePos.SetFontSize(16); - mousePos.SetOutline(1, {128,128,128,255}); - mousePos.SetText(std::string("Mouse position: ")+std::to_string(globalData.mousex)+std::string(", ")+std::to_string(globalData.mousey)); - mousePos.Draw(target, 0,0); -#endif + HelpCommonState::Draw(target); } -void ShowFileState::Update() { - // If the mouse button is released, make bMouseUp equal true - if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) { - bMouseUp=true; - } - - if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { - bMouseUp = false; - - //The Score button: - if ((globalData.mousex>globalData.xsize-buttonOffset) && (globalData.mousexglobalData.ysize-buttonOffset) && (globalData.mousey #include "common.h" -class ShowFileState : public sago::GameStateInterface { +class ShowFileState : public HelpCommonState { public: ShowFileState(); ShowFileState(const ShowFileState& orig) = delete; virtual ~ShowFileState(); - bool IsActive() override; void Draw(SDL_Renderer* target) override; - void ProcessInput(const SDL_Event& event, bool &processed) override; - void Update() override; void SetData(const std::string& filename, const std::string& header);