]> git.localhorst.tv Git - l2e.git/blobdiff - src/menu/CapsuleMenu.cpp
removed lazy fwd headers
[l2e.git] / src / menu / CapsuleMenu.cpp
index 22d0ad7129b757606ab580e55f1d0cb7844d057d..6b2eeeb1da1194da8674754a8b7ffbe8358453c3 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "CapsuleChangeMenu.h"
 #include "CapsuleFeedMenu.h"
+#include "CapsuleNameMenu.h"
 #include "PartyMenu.h"
 #include "Resources.h"
 #include "../app/Application.h"
 #include "../graphics/Font.h"
 #include "../graphics/Frame.h"
 #include "../graphics/Texture.h"
+#include "../math/Vector.h"
 
 using app::Input;
 using common::Capsule;
 using common::Stats;
-using geometry::Vector;
+using math::Vector;
 using graphics::Font;
 using graphics::Frame;
 
@@ -73,7 +75,7 @@ void CapsuleMenu::HandleEvents(const Input &input) {
                                menu.SetSelected();
                                break;
                        case CHOICE_NAME:
-                               // push name menu
+                               Ctrl().PushState(new CapsuleNameMenu(this));
                                menu.SetSelected();
                                break;
                }
@@ -82,7 +84,7 @@ void CapsuleMenu::HandleEvents(const Input &input) {
        }
 }
 
-void CapsuleMenu::UpdateWorld(float deltaT) {
+void CapsuleMenu::UpdateWorld(Uint32 deltaT) {
 
 }
 
@@ -96,7 +98,9 @@ void CapsuleMenu::Render(SDL_Surface *screen) {
                        12 * font.CharWidth(),
                        2 * font.CharHeight() - font.CharHeight() / 8);
        // TODO: wheel offset: top left, center, or center bottom?
-       const Vector<int> wheelOffset;
+       const Vector<int> wheelOffset(
+                       6 * font.CharWidth(),
+                       19 * font.CharHeight() - font.CharHeight() / 8);
        const Vector<int> statsOffset(
                        12 * font.CharWidth(),
                        15 * font.CharHeight() - font.CharHeight() / 8);
@@ -176,7 +180,8 @@ void CapsuleMenu::RenderInfo(SDL_Surface *screen, const Vector<int> &offset) con
 }
 
 void CapsuleMenu::RenderWheel(SDL_Surface *screen, const Vector<int> &offset) const {
-       // later
+       Res().capsuleAlignmentWheel->DrawCenter(screen, offset);
+       Res().capsuleAlignmentCursor->DrawCenter(screen, offset + Game().state->GetCapsule().AlignmentOffset());
 }
 
 void CapsuleMenu::RenderStats(SDL_Surface *screen, const Vector<int> &offset) const {
@@ -216,7 +221,7 @@ void CapsuleMenu::RenderStats(SDL_Surface *screen, const Vector<int> &offset) co
        font.DrawNumberRight(capsule.NextLevel(), screen, lineHead);
 }
 
-void CapsuleMenu::RenderStatsLine(SDL_Surface *screen, const geometry::Vector<int> &offset, const char *name, int value) const {
+void CapsuleMenu::RenderStatsLine(SDL_Surface *screen, const math::Vector<int> &offset, const char *name, int value) const {
        const Font &font(*Res().statusFont);
        const Vector<int> numberOffset(4 * font.CharWidth(), 0);
 
@@ -259,8 +264,12 @@ int CapsuleMenu::Height() const {
        return parent->Height();
 }
 
+Capsule &CapsuleMenu::GetCapsule() {
+       return Game().state->GetCapsule();
+}
+
 const Capsule &CapsuleMenu::GetCapsule() const {
-       return *Game().state->capsule;
+       return Game().state->GetCapsule();
 }
 
 }