]> git.localhorst.tv Git - l2e.git/commitdiff
added config menu dummy
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 29 Nov 2012 12:56:31 +0000 (13:56 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 29 Nov 2012 12:56:31 +0000 (13:56 +0100)
src/menu/ConfigMenu.cpp [new file with mode: 0644]
src/menu/ConfigMenu.h [new file with mode: 0644]
src/menu/PartyMenu.cpp
src/menu/fwd.h

diff --git a/src/menu/ConfigMenu.cpp b/src/menu/ConfigMenu.cpp
new file mode 100644 (file)
index 0000000..1e27973
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * ConfigMenu.cpp
+ *
+ *  Created on: Nov 29, 2012
+ *      Author: holy
+ */
+
+#include "ConfigMenu.h"
+
+#include "PartyMenu.h"
+#include "Resources.h"
+#include "../common/GameConfig.h"
+#include "../common/GameState.h"
+#include "../graphics/Font.h"
+#include "../graphics/Frame.h"
+
+using app::Input;
+using geometry::Vector;
+using graphics::Font;
+using graphics::Frame;
+
+namespace menu {
+
+ConfigMenu::ConfigMenu(PartyMenu *parent)
+: parent(parent) {
+
+}
+
+
+void ConfigMenu::OnEnterState(SDL_Surface *) {
+
+}
+
+void ConfigMenu::OnExitState(SDL_Surface *) {
+
+}
+
+void ConfigMenu::OnResumeState(SDL_Surface *) {
+
+}
+
+void ConfigMenu::OnPauseState(SDL_Surface *) {
+
+}
+
+
+void ConfigMenu::OnResize(int width, int height) {
+
+}
+
+
+int ConfigMenu::Width() const {
+       return parent->Width();
+}
+
+int ConfigMenu::Height() const {
+       return parent->Height();
+}
+
+
+void ConfigMenu::HandleEvents(const Input &input) {
+       if (input.JustPressed(Input::ACTION_B)) {
+               Ctrl().PopState();
+       }
+}
+
+void ConfigMenu::UpdateWorld(float deltaT) {
+
+}
+
+void ConfigMenu::Render(SDL_Surface *screen) {
+       const Font &font(*parent->Res().normalFont);
+       const Vector<int> offset((screen->w - Width()) / 2, (screen->h - Height()) / 2);
+       const Vector<int> headlineOffset(
+                       font.CharWidth(), 2 * font.CharHeight() - font.CharHeight() / 8);
+       const Vector<int> menuOffset(
+                       font.CharWidth(), 5 * font.CharHeight() - font.CharHeight() / 8);
+
+       parent->RenderBackground(screen);
+       RenderHeadline(screen, offset + headlineOffset);
+       RenderMenu(screen, offset + menuOffset);
+}
+
+void ConfigMenu::RenderHeadline(SDL_Surface *screen, const geometry::Vector<int> &offset) const {
+       const Font &font(*parent->Res().normalFont);
+       const Frame &frame(*parent->Res().statusFrame);
+       const Vector<int> textOffset(
+                       2 * font.CharWidth(), font.CharHeight());
+
+       frame.Draw(screen, offset, 10 * font.CharWidth(), 3 * font.CharHeight());
+       font.DrawString(parent->Res().mainMenuConfigText, screen, offset + textOffset, 6);
+}
+
+void ConfigMenu::RenderMenu(SDL_Surface *screen, const geometry::Vector<int> &offset) const {
+       const Font &font(*parent->Res().normalFont);
+       const Frame &frame(*parent->Res().statusFrame);
+
+       frame.Draw(screen, offset, 30 * font.CharWidth(), 14 * font.CharHeight());
+}
+
+}
diff --git a/src/menu/ConfigMenu.h b/src/menu/ConfigMenu.h
new file mode 100644 (file)
index 0000000..c3f96f0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * ConfigMenu.h
+ *
+ *  Created on: Nov 29, 2012
+ *      Author: holy
+ */
+
+#ifndef MENU_CONFIGMENU_H_
+#define MENU_CONFIGMENU_H_
+
+#include "fwd.h"
+#include "../app/State.h"
+#include "../geometry/Vector.h"
+
+namespace menu {
+
+class ConfigMenu
+: public app::State {
+
+public:
+       explicit ConfigMenu(PartyMenu *parent);
+
+public:
+       virtual void HandleEvents(const app::Input &);
+       virtual void UpdateWorld(float deltaT);
+       virtual void Render(SDL_Surface *);
+
+public:
+       int Width() const;
+       int Height() const;
+
+private:
+       virtual void OnEnterState(SDL_Surface *screen);
+       virtual void OnExitState(SDL_Surface *screen);
+       virtual void OnResumeState(SDL_Surface *screen);
+       virtual void OnPauseState(SDL_Surface *screen);
+
+       virtual void OnResize(int width, int height);
+
+       void RenderHeadline(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+       void RenderMenu(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+
+private:
+       PartyMenu *parent;
+
+};
+
+}
+
+#endif /* MENU_CONFIGMENU_H_ */
index bda633129211b3973d5e1d33034f6691c8d5efbd..99e86d1b67e40521ee86f616aa6bf0051db1849e 100644 (file)
@@ -8,6 +8,7 @@
 #include "PartyMenu.h"
 
 #include "ChangeHero.h"
+#include "ConfigMenu.h"
 #include "EquipMenu.h"
 #include "InventoryMenu.h"
 #include "Resources.h"
@@ -114,6 +115,7 @@ void PartyMenu::HandleEvents(const Input &input) {
                                Ctrl().PushState(new ChangeHero(this));
                                break;
                        case MENU_ITEM_CONFIG:
+                               Ctrl().PushState(new ConfigMenu(this));
                                break;
                        case MENU_ITEM_SCENARIO:
                                break;
index 40d0163bc8d7941a1e883ab6284bf4bdb0b06e41..b0ad85acab1a5581cf6ff7bdd56f4a9445dc30d4 100644 (file)
@@ -11,6 +11,7 @@
 namespace menu {
 
 class ChangeHero;
+class ConfigMenu;
 class EquipMenu;
 class HeroStatus;
 class InventoryMenu;