commit 5147de4e
Add "About" to Help
Changed files
| A | source/code/HelpAboutState.cpp |
| A | source/code/HelpAboutState.hpp |
| M | source/code/menudef.cpp before |
diff --git a/source/code/HelpAboutState.cpp b/source/code/HelpAboutState.cpp
new file mode 100644
index 0000000..5cb8c70
--- /dev/null
+++ b/source/code/HelpAboutState.cpp
@@ -0,0 +1,83 @@
+/*
+===========================================================================
+blockattack - Block Attack - Rise of the Blocks
+Copyright (C) 2005-2018 Poul Sander
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see http://www.gnu.org/licenses/
+
+Source information and contacts persons can be found at
+https://blockattack.net
+===========================================================================
+*/
+
+#include "HelpAboutState.hpp"
+#include "global.hpp"
+#include "common.h"
+#include "MenuSystem.h"
+
+const int xsize = 1024;
+const int ysize = 768;
+const int buttonOffset = 160;
+extern sago::SagoSprite bExit;
+
+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);
+ bExit.Draw(globalData.screen, SDL_GetTicks(), xsize-buttonOffset, 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>xsize-buttonOffset) && (globalData.mousex<xsize-buttonOffset+bExit.GetWidth())
+ && (globalData.mousey>ysize-buttonOffset) && (globalData.mousey<ysize-buttonOffset+bExit.GetHeight())) {
+ isActive = false;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/source/code/HelpAboutState.hpp b/source/code/HelpAboutState.hpp
new file mode 100644
index 0000000..edf7375
--- /dev/null
+++ b/source/code/HelpAboutState.hpp
@@ -0,0 +1,46 @@
+/*
+===========================================================================
+blockattack - Block Attack - Rise of the Blocks
+Copyright (C) 2005-2018 Poul Sander
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see http://www.gnu.org/licenses/
+
+Source information and contacts persons can be found at
+https://blockattack.net
+===========================================================================
+*/
+
+#ifndef HELPABOUT_HPP
+#define HELPABOUT_HPP
+
+#include "sago/GameStateInterface.hpp"
+
+class HelpAboutState : public sago::GameStateInterface {
+public:
+ HelpAboutState();
+ HelpAboutState(const HelpAboutState& orig) = delete;
+ virtual ~HelpAboutState();
+
+ bool IsActive() override;
+ void Draw(SDL_Renderer* target) override;
+ void ProcessInput(const SDL_Event& event, bool &processed) override;
+ void Update() override;
+
+private:
+ bool isActive = true;
+ bool bMouseUp = true;
+};
+
+#endif /* HELPABOUT_HPP */
+
diff --git a/source/code/menudef.cpp b/source/code/menudef.cpp
index 95d239e..35ec7ea 100644
--- a/source/code/menudef.cpp
+++ b/source/code/menudef.cpp
@@ -27,6 +27,7 @@ http://blockattack.net
#include "common.h"
#include "HelpHowtoState.hpp"
#include "HelpGamepadState.hpp"
+#include "HelpAboutState.hpp"
using std::string;
using std::cerr;
@@ -278,6 +279,11 @@ static void runHelpGamepad() {
RunGameState(helpGamepad);
}
+static void runHelpAbout() {
+ HelpAboutState helpAbout;
+ RunGameState(helpAbout);
+}
+
static void HelpMenu() {
Menu m(globalData.screen, _("Help"), true);
Button bHowto;
@@ -288,6 +294,10 @@ static void HelpMenu() {
bGamepad.setLabel(_("Gamepad"));
bGamepad.setAction(runHelpGamepad);
m.addButton(&bGamepad);
+ Button bAbout;
+ bAbout.setLabel(_("About"));
+ bAbout.setAction(runHelpAbout);
+ m.addButton(&bAbout);
RunGameState(m);
}