]> git.localhorst.tv Git - l2e.git/commitdiff
more intuitive horizontal capsule class navigation
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Tue, 18 Dec 2012 20:53:25 +0000 (21:53 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Tue, 18 Dec 2012 20:53:25 +0000 (21:53 +0100)
src/common/Capsule.cpp
src/common/Capsule.h
src/menu/CapsuleChangeMenu.cpp

index 008514776fb259d581e505d5b1223a10dcc9df30..f886724515c3db11f9d5698f3d063f3eb306c45f 100644 (file)
@@ -99,6 +99,16 @@ void Capsule::PreviousClass() {
        }
 }
 
+void Capsule::SetClass(int index) {
+       curClass = index;
+       if (curClass < 0 ) {
+               curClass = 0;
+       }
+       if (curClass >= maxClass) {
+               curClass = maxClass - 1;
+       }
+}
+
 
 Sprite *Capsule::BattleSprite() {
        return GetClass().battleSprite;
index f168506b21d59c5dfcd9870ff804b0832387c2e4..f68ba5301a52ef2b4b7b4503c185996ac13c2f46 100644 (file)
@@ -42,6 +42,8 @@ public:
        void UpgradeClass();
        void NextClass();
        void PreviousClass();
+       int ClassIndex() const { return curClass; }
+       void SetClass(int index);
 
        Uint16 MaxHealth() const;
 
index 912f81aa513b6fde2e19d0bc2fc638256b3e0802..24b7187b2cbc34415974e15203463a28212f7ec7 100644 (file)
@@ -70,6 +70,7 @@ void CapsuleChangeMenu::HandleEvents(const Input &input) {
 }
 
 void CapsuleChangeMenu::NextCapsule() {
+       int storedClass = parent->Game().state->GetCapsule().ClassIndex();
        int &index = parent->Game().state->capsule;
        ++index;
        index %= parent->Game().state->NumCapsules();
@@ -78,9 +79,11 @@ void CapsuleChangeMenu::NextCapsule() {
                ++index;
                index %= parent->Game().state->NumCapsules();
        }
+       parent->Game().state->GetCapsule().SetClass(storedClass);
 }
 
 void CapsuleChangeMenu::PreviousCapsule() {
+       int storedClass = parent->Game().state->GetCapsule().ClassIndex();
        int &index = parent->Game().state->capsule;
        --index;
        if (index < 0) index += parent->Game().state->NumCapsules();
@@ -89,6 +92,7 @@ void CapsuleChangeMenu::PreviousCapsule() {
                --index;
                if (index < 0) index += parent->Game().state->NumCapsules();
        }
+       parent->Game().state->GetCapsule().SetClass(storedClass);
 }
 
 void CapsuleChangeMenu::NextClass() {