diff --git a/projects/mtg/include/DuelLayers.h b/projects/mtg/include/DuelLayers.h index 8342d87ac..ff29a8649 100644 --- a/projects/mtg/include/DuelLayers.h +++ b/projects/mtg/include/DuelLayers.h @@ -33,6 +33,7 @@ public: ActionLayer * actionLayer(); ActionStack * stackLayer(); GuiCombat * combatLayer(); + GuiAvatars * GetAvatars(); void init(); virtual void Update(float dt, Player * player); void CheckUserInput(int isAI); diff --git a/projects/mtg/include/GuiAvatars.h b/projects/mtg/include/GuiAvatars.h index f94a2203f..5b5a9eaaa 100644 --- a/projects/mtg/include/GuiAvatars.h +++ b/projects/mtg/include/GuiAvatars.h @@ -20,9 +20,11 @@ class GuiAvatars : public GuiLayer public: - GuiAvatars(CardSelector*); + GuiAvatars(CardSelector*); ~GuiAvatars(); - // virtual void Render(); + + GuiAvatar* GetSelf(); + GuiAvatar* GetOpponent(); void Update(float dt); void Render(); void Activate(PlayGuiObject* c); diff --git a/projects/mtg/src/CardSelector.cpp b/projects/mtg/src/CardSelector.cpp index 6c9c46027..7b700ba21 100644 --- a/projects/mtg/src/CardSelector.cpp +++ b/projects/mtg/src/CardSelector.cpp @@ -158,6 +158,23 @@ bool CardSelector::CheckUserInput(JButton key) lasts[oldowner] = SelectorMemory(oldactive); } } + else + { + // active card hasn't changed - that means we're probably at an edge of the battlefield. + // check if we're not already a selected avatar - if not, select one depending whether we're going up/down. + GuiAvatar* avatar = dynamic_cast(active); + if (!avatar) + { + if (key == JGE_BTN_DOWN) + { + active = duel->GetAvatars()->GetSelf(); + } + else if (key == JGE_BTN_UP) + { + active = duel->GetAvatars()->GetOpponent(); + } + } + } if (active != oldactive) { { CardView* c = dynamic_cast(oldactive); if (c) c->zoom = 1.0f; } { CardView* c = dynamic_cast(active); if (c) c->zoom = 1.4f; } diff --git a/projects/mtg/src/DuelLayers.cpp b/projects/mtg/src/DuelLayers.cpp index d2d10216e..95a0ecd29 100644 --- a/projects/mtg/src/DuelLayers.cpp +++ b/projects/mtg/src/DuelLayers.cpp @@ -104,6 +104,11 @@ ActionLayer * DuelLayers::actionLayer(){ return action; } +GuiAvatars * DuelLayers::GetAvatars() +{ + return avatars; +} + DuelLayers::DuelLayers() : nbitems(0) {} DuelLayers::~DuelLayers(){ diff --git a/projects/mtg/src/GuiAvatars.cpp b/projects/mtg/src/GuiAvatars.cpp index 9af776f0e..553f682f0 100644 --- a/projects/mtg/src/GuiAvatars.cpp +++ b/projects/mtg/src/GuiAvatars.cpp @@ -115,3 +115,13 @@ void GuiAvatars::Render() GuiLayer::Render(); } + +GuiAvatar* GuiAvatars::GetSelf() +{ + return self; +} + +GuiAvatar* GuiAvatars::GetOpponent() +{ + return opponent; +}