From 7bc8bba6f15e3d8d77e2f2d74cda3adc731279f8 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew@gmail.com" Date: Thu, 24 Sep 2009 12:32:08 +0000 Subject: [PATCH] Erwan - fix issue 20 (triangle button usage inplay) - close issue 27 (gold effect on the gold bar). Please feel free to change the gold glow if you come up with something better, but I consider this perfectly releasable now - code cleanup --- projects/mtg/include/ActionStack.h | 5 --- projects/mtg/include/CardGui.h | 3 +- projects/mtg/include/CardSelector.h | 2 +- projects/mtg/src/ActionStack.cpp | 58 +---------------------------- projects/mtg/src/CardGui.cpp | 4 ++ projects/mtg/src/CardSelector.cpp | 27 +++++++++++--- projects/mtg/src/GuiFrame.cpp | 2 +- 7 files changed, 31 insertions(+), 70 deletions(-) diff --git a/projects/mtg/include/ActionStack.h b/projects/mtg/include/ActionStack.h index 7d58fd7a0..52067c181 100644 --- a/projects/mtg/include/ActionStack.h +++ b/projects/mtg/include/ActionStack.h @@ -135,11 +135,6 @@ class ActionStack :public GuiLayer{ int mode; int checked; -/* - void unpackDamageStacks(); - void unpackDamageStack(DamageStack * ds); - void repackDamageStacks(); -*/ public: enum{ diff --git a/projects/mtg/include/CardGui.h b/projects/mtg/include/CardGui.h index 0650d7e65..ba3f16b78 100644 --- a/projects/mtg/include/CardGui.h +++ b/projects/mtg/include/CardGui.h @@ -26,7 +26,8 @@ struct CardGui : public PlayGuiObject { CardGui(MTGCardInstance* card, float x, float y); CardGui(MTGCardInstance* card, const Pos& ref); virtual void Render(); - void RenderBig(const Pos&); + void RenderBig(const Pos&); //Tries to render the Big version of a card picture, backups to text version in case of failure + void alternateRenderBig(const Pos&); //Renders Text Version of a card virtual void Update(float dt); static void alternateRender(MTGCard * card, const Pos& pos); static JQuad * alternateThumbQuad(MTGCard * card); diff --git a/projects/mtg/include/CardSelector.h b/projects/mtg/include/CardSelector.h index fa8630525..7d2b336f3 100644 --- a/projects/mtg/include/CardSelector.h +++ b/projects/mtg/include/CardSelector.h @@ -38,7 +38,7 @@ class ObjectSelector : public GuiLayer protected: vector cards; T* active; - bool showBig; + int bigMode; DuelLayers* duel; LimitorFunctor* limitor; Pos bigpos; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 9b8b19d4f..4b0c424f9 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -452,17 +452,7 @@ int ActionStack::resolve(){ action->state = RESOLVED_NOK; } if (action->type == ACTION_DAMAGE) ((Damage * )action)->target->afterDamage(); -/* - if (action->type == ACTION_DAMAGES){ - DamageStack * ds = (DamageStack *) action; - for (int i = 0; i < ds->mCount; i++){ - Damage * damage = ((Damage *) ds->mObjects[i]); - damage->state = ds->state; - } - unpackDamageStack(ds); - ds->mCount = 0; - } -*/ + if (!getNext(NULL,NOT_RESOLVED)){ for (int i = 0; i< 2 ; i++){ interruptDecision[i] = 0; @@ -537,52 +527,6 @@ Interruptible * ActionStack::getLatest(int state){ return NULL; } -/* -void ActionStack::unpackDamageStack(DamageStack * ds){ - for (int j = 0; j < ds->mCount; j++){ - Damage * damage = ((Damage *)ds->mObjects[j]); - Add(damage); - } -} - -void ActionStack::unpackDamageStacks(){ - for (int i = mCount-1; i >=0; i--){ - Interruptible * action = ((Interruptible *)mObjects[i]); - if (action->type == ACTION_DAMAGES){ - DamageStack * ds = (DamageStack *) action; - unpackDamageStack(ds); - } - } -} - -void ActionStack::repackDamageStacks(){ - std::vector::iterator iter = mObjects.begin() ; - - while( iter != mObjects.end() ){ - Interruptible * action = ((Interruptible *) *iter); - int found = 0; - if (action->type == ACTION_DAMAGE){ - Damage * damage = (Damage *) action; - for (int j = 0; j < mCount; j++){ - Interruptible * action2 = ((Interruptible *)mObjects[j]); - if (action2->type == ACTION_DAMAGES){ - DamageStack * ds = (DamageStack *) action2; - for (int k = 0; k< ds->mCount; k++){ - Damage * dsdamage = ((Damage *)ds->mObjects[k]); - if (dsdamage==damage){ - //Remove(damage); - iter = mObjects.erase( iter ) ; - found = 1; - mCount--; - } - } - } - } - } - if (!found) ++iter; - } -} -*/ void ActionStack::Update(float dt){ askIfWishesToInterrupt = NULL; //modal = 0; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index bef8edd4f..ddc62e2ef 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -238,6 +238,10 @@ void CardGui::alternateRender(MTGCard * card, const Pos& pos){ font->SetScale(backup_scale); } +void CardGui::alternateRenderBig(const Pos& pos){ + alternateRender(card,pos); +} + void CardGui::RenderBig(const Pos& pos){ JRenderer * renderer = JRenderer::GetInstance(); diff --git a/projects/mtg/src/CardSelector.cpp b/projects/mtg/src/CardSelector.cpp index 79caa8206..c20838604 100644 --- a/projects/mtg/src/CardSelector.cpp +++ b/projects/mtg/src/CardSelector.cpp @@ -7,6 +7,14 @@ using std::cout; +enum { + BIG_MODE_SHOW = 0, + BIG_MODE_TEXT = 1, + BIG_MODE_HIDE = 2, + NB_BIG_MODES = 3 +}; + + struct Left : public Exp { static inline bool test(CardSelector::Target* ref, CardSelector::Target* test) { return ref->x - test->x > fabs(ref->y - test->y); } }; struct Right : public Exp { static inline bool test(CardSelector::Target* ref, CardSelector::Target* test) @@ -21,7 +29,7 @@ struct True : public Exp { static inline bool test(CardSelector::Target* ref, Ca { return true; } }; template<> -CardSelector::ObjectSelector(DuelLayers* duel) : active(NULL), showBig(true), duel(duel), limitor(NULL), bigpos(300, 150, 1.0, 0.0, 220) {} +CardSelector::ObjectSelector(DuelLayers* duel) : active(NULL), bigMode(BIG_MODE_SHOW), duel(duel), limitor(NULL), bigpos(300, 150, 1.0, 0.0, 220) {} template<> void CardSelector::Add(CardSelector::Target* target) @@ -132,7 +140,7 @@ bool CardSelector::CheckUserInput(u32 key) active = closest(cards, limitor, active); break; case PSP_CTRL_TRIANGLE: - showBig = !showBig; + bigMode = (bigMode+1) % NB_BIG_MODES; return true; default: return false; @@ -179,9 +187,18 @@ void CardSelector::Render() if (active) { active->Render(); - if (CardView* c = dynamic_cast(active)) - if (showBig) - c->RenderBig(bigpos); + if (CardView* c = dynamic_cast(active)){ + switch(bigMode){ + case BIG_MODE_SHOW: + c->RenderBig(bigpos); + break; + case BIG_MODE_TEXT: + c->alternateRenderBig(bigpos); + break; + default: + break; + } + } } } diff --git a/projects/mtg/src/GuiFrame.cpp b/projects/mtg/src/GuiFrame.cpp index 2dcc74b12..5d980adb9 100644 --- a/projects/mtg/src/GuiFrame.cpp +++ b/projects/mtg/src/GuiFrame.cpp @@ -23,7 +23,7 @@ GuiFrame::GuiFrame() GameApp::systemError += "Can't load gold texture : " __FILE__ "\n"; } if (resources.GetTexture("goldglow.png")) - goldGlow = resources.RetrieveQuad("goldglow.png", 0, 1, SCREEN_WIDTH, 18); + goldGlow = resources.RetrieveQuad("goldglow.png", 1, 1, SCREEN_WIDTH - 2, 18); else { goldGlow = NULL;