From e5edf779f5849ea2420c9edb1070d1a52317eb0c Mon Sep 17 00:00:00 2001 From: "wrenczes@gmail.com" Date: Thu, 13 Jan 2011 09:56:55 +0000 Subject: [PATCH] Reworked a patch sent to us (http://wololo.net/forum/viewtopic.php?f=15&t=2464) that replaces the text symbols for the psp buttons with the actual icons. While at it, I found a bunch of issues with the ActionStack's render code (ie when you get the popup menu to interrupt a spell being played & the like) - the bounding rect actually went above the screen's region, clipping problems (the interrupt text was previously drawing over the interrupt effect), alignment problems when the avatar was being drawn, vertical text alignment, fudged alignment numbers for the quads that didn't make any sense, etc. I also tweaked slightly the psp icons to center the symbols, as they were too much to the right. (Be sure to copy the updated graphics/iconspsp.png to your Res folder.) --- projects/mtg/bin/Res/graphics/iconspsp.png | Bin 26619 -> 29239 bytes projects/mtg/include/ActionStack.h | 7 +- projects/mtg/include/GameStateShop.h | 1 + projects/mtg/src/ActionStack.cpp | 124 +++++++++++++-------- projects/mtg/src/GameStateShop.cpp | 28 ++++- 5 files changed, 106 insertions(+), 54 deletions(-) diff --git a/projects/mtg/bin/Res/graphics/iconspsp.png b/projects/mtg/bin/Res/graphics/iconspsp.png index 90aa48a5c134e179ffce3e8de202e335ce33b96d..4c9d8ea0ba835c1cde549e3ee31e02426355286c 100644 GIT binary patch literal 29239 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 literal 26619 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 R0(a(tk&{xEtPwW}{vUaebJG9- diff --git a/projects/mtg/include/ActionStack.h b/projects/mtg/include/ActionStack.h index ffd0052e6..99813173f 100644 --- a/projects/mtg/include/ActionStack.h +++ b/projects/mtg/include/ActionStack.h @@ -63,6 +63,9 @@ class Interruptible: public PlayGuiObject, public Targetable{ #if defined (WIN32) || defined (LINUX) || defined (IOS) virtual void Dump(); #endif + +protected: + float GetVerticalTextOffset() const; }; class NextGamePhase: public Interruptible { @@ -136,6 +139,7 @@ class DrawAction: public Interruptible { class ActionStack :public GuiLayer{ protected: + JQuad * pspIcons[8]; GameObserver* game; int interruptDecision[2]; float timer; @@ -145,7 +149,8 @@ class ActionStack :public GuiLayer{ public: - enum{ + enum + { NOT_DECIDED = 0, INTERRUPT = -1, DONT_INTERRUPT = 1, diff --git a/projects/mtg/include/GameStateShop.h b/projects/mtg/include/GameStateShop.h index f50fdc5e4..ccab4c1b0 100644 --- a/projects/mtg/include/GameStateShop.h +++ b/projects/mtg/include/GameStateShop.h @@ -59,6 +59,7 @@ private: class GameStateShop: public GameState, public JGuiListener { private: + JQuad * pspIcons[8]; WSrcCards * srcCards; JTexture * altThumb[8]; JQuad * mBack; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 2f1bc1893..8c825ed56 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -17,10 +17,18 @@ The Action Stack contains all information for Game Events that can be interrupte #include +namespace +{ + float kGamepadIconSize = 0.5f; + + const std::string kInterruptString(": Interrupt"); + const std::string kNoString(": No"); + const std::string kNoToAllString(": No To All"); +} + /* NextGamePhase requested by user */ - int NextGamePhase::resolve() { GameObserver::GetInstance()->nextGamePhase(); @@ -72,13 +80,20 @@ const string Interruptible::getDisplayName() const return typeid(*this).name(); } +float Interruptible::GetVerticalTextOffset() const +{ + static const float kTextVerticalOffset = (mHeight - WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT)->GetHeight()) / 2; + return kTextVerticalOffset; +} + void Interruptible::Render(MTGCardInstance * source, JQuad * targetQuad, string alt1, string alt2, string action, bool bigQuad) { WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT); mFont->SetColor(ARGB(255,255,255,255)); mFont->SetScale(DEFAULT_MAIN_FONT_SCALE); - mFont->DrawString(_(action).c_str(), x + 30, y, JGETEXT_LEFT); + + mFont->DrawString(_(action).c_str(), x + 35, y + GetVerticalTextOffset(), JGETEXT_LEFT); JRenderer * renderer = JRenderer::GetInstance(); JQuad * quad = WResourceManager::Instance()->RetrieveCard(source, CACHE_THUMB); if (!quad) @@ -87,11 +102,11 @@ void Interruptible::Render(MTGCardInstance * source, JQuad * targetQuad, string { quad->SetColor(ARGB(255,255,255,255)); float scale = mHeight / quad->mHeight; - renderer->RenderQuad(quad, x + 10 * scale, y + 15 * scale, 0, scale, scale); + renderer->RenderQuad(quad, x + (quad->mWidth * scale / 2), y + (quad->mHeight * scale / 2), 0, scale, scale); } else if (alt1.size()) { - mFont->DrawString(_(alt1).c_str(), x, y - 15); + mFont->DrawString(_(alt1).c_str(), x, y + GetVerticalTextOffset()); } if (bigQuad) @@ -107,12 +122,12 @@ void Interruptible::Render(MTGCardInstance * source, JQuad * targetQuad, string targetQuad->SetColor(ARGB(255,255,255,255)); targetQuad->SetHotSpot(targetQuad->mWidth / 2, targetQuad->mHeight / 2); float scale = mHeight / targetQuad->mHeight; - renderer->RenderQuad(targetQuad, x + 150, y + 15 * scale, 0, scale, scale); + renderer->RenderQuad(targetQuad, x + 150, y + ((mHeight - targetQuad->mHeight) / 2) + targetQuad->mHotSpotY, 0, scale, scale); targetQuad->SetHotSpot(backupX, backupY); } else if (alt2.size()) { - mFont->DrawString(_(alt2).c_str(), x + 120, y); + mFont->DrawString(_(alt2).c_str(), x + 120, y + GetVerticalTextOffset()); } } @@ -428,7 +443,7 @@ void DrawAction::Render() if (player == GameObserver::GetInstance()->players[1]) playerId = 2; sprintf(buffer, _("Player %i draws %i card").c_str(), playerId, nbcards); - mFont->DrawString(buffer, x + 20, y, JGETEXT_LEFT); + mFont->DrawString(buffer, x + 35, y + GetVerticalTextOffset(), JGETEXT_LEFT); } ostream& DrawAction::toString(ostream& out) const @@ -437,7 +452,6 @@ ostream& DrawAction::toString(ostream& out) const return out; } -/* The Action Stack itself */ int ActionStack::addPutInGraveyard(MTGCardInstance * card) { PutInGraveyard * death = NEW PutInGraveyard(mCount, card); @@ -556,8 +570,8 @@ Interruptible * ActionStack::getAt(int id) return (Interruptible *) mObjects[id]; } -ActionStack::ActionStack(GameObserver* game) : -game(game) +ActionStack::ActionStack(GameObserver* game) + : game(game) { for (int i = 0; i < 2; i++) interruptDecision[i] = 0; @@ -567,6 +581,13 @@ game(game) mode = ACTIONSTACK_STANDARD; checked = 0; + for (int i = 0; i < 8; ++i) + { + std::ostringstream stream; + stream << "iconspsp" << i; + pspIcons[i] = WResourceManager::Instance()->RetrieveQuad("iconspsp.png", (float) i * 32, 0, 32, 32, stream.str(), RETRIEVE_MANAGE); + pspIcons[i]->SetHotSpot(16, 16); + } } int ActionStack::has(MTGAbility * ability) @@ -991,8 +1012,9 @@ void ActionStack::Fizzle(Interruptible * action) void ActionStack::Render() { - float x0 = 250; - float y0 = 30; + static const float kSpacer = 8; + static const float x0 = 250; + static const float y0 = 0; float width = 200; float height = 90; float currenty = y0 + 5; @@ -1019,51 +1041,59 @@ void ActionStack::Render() //float xScale = width / back->mWidth; //float yScale = height / back->mHeight; renderer->FillRoundRect(x0 + 16, y0 + 16, width + 2, height + 2, 10, ARGB(128,0,0,0)); - renderer->FillRoundRect(x0 - 5, y0 - 5, width + 2, height + 2, 10, ARGB(200,0,0,0)); + renderer->FillRoundRect(x0 - 5, y0, width + 2, height + 2, 10, ARGB(200,0,0,0)); //renderer->RenderQuad(back,x0,y0,0,xScale, yScale); - renderer->DrawRoundRect(x0 - 5, y0 - 5, width + 2, height + 2, 10, ARGB(255,255,255,255)); + renderer->DrawRoundRect(x0 - 5, y0, width + 2, height + 2, 10, ARGB(255,255,255,255)); + + std::ostringstream stream; + // WALDORF - changed "interrupt ?" to "Interrupt?". Don't display count down + // seconds if the user disables auto progressing interrupts by setting the seconds + // value to zero in Options. + + // Mootpoint 01/12/2011: draw the interrupt text first, at the top. Offset the rest of the + // unresolved stack effects down so that they don't collide with the interrupt text. + if (options[Options::INTERRUPT_SECONDS].number == 0) + stream << "Interrupt?"; + else + stream << "Interrupt? " << static_cast(timer); + + mFont->DrawString(stream.str(), x0 + 5, currenty); + + static const float kIconVerticalOffset = 24; + if (mCount > 1) + { + renderer->RenderQuad(pspIcons[7], x0 + 10, kIconVerticalOffset, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kInterruptString, x0 + 19, kIconVerticalOffset - 6); + + renderer->RenderQuad(pspIcons[4], x0 + 97, kIconVerticalOffset, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kNoString, x0 + 106, kIconVerticalOffset - 6); + + renderer->RenderQuad(pspIcons[6], x0 + 145, kIconVerticalOffset, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kNoToAllString, x0 + 154, kIconVerticalOffset - 6); + } + else + { + renderer->RenderQuad(pspIcons[7], x0 + 40, kIconVerticalOffset, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kInterruptString, x0 + 49, kIconVerticalOffset - 6); + + renderer->RenderQuad(pspIcons[4], x0 + 140, kIconVerticalOffset - 6, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kNoString, x0 + 146, kIconVerticalOffset - 6); + } + + currenty += kIconVerticalOffset + kSpacer; for (int i = 0; i < mCount; i++) { Interruptible * current = (Interruptible *) mObjects[i]; if (current && current->state == NOT_RESOLVED) { - current->x = x0 + 5; - if (i != mCount - 1) - { - current->y = currenty; - currenty += current->mHeight; - } - else - { - current->y = currenty + 40; - currenty += current->mHeight + 40; - } + current->x = x0; + current->y = currenty; current->Render(); + + currenty += current->mHeight; } } - - char buffer[200]; - // WALDORF - changed "interrupt ?" to "Interrupt?". Don't display count down - // seconds if the user disables auto progressing interrupts by setting the seconds - // value to zero in Options. - if (options[Options::INTERRUPT_SECONDS].number == 0) - sprintf(buffer, "%s", _("Interrupt?").c_str()); - else - sprintf(buffer, "%s %i", _("Interrupt?").c_str(), static_cast (timer)); - - //WALDORF - removed all the unnecessary math. just display the prompt at the - // top of the box. - mFont->DrawString(buffer, x0 + 5, y0); - - if (mCount > 1) - sprintf(buffer, "%s", _("X Interrupt - 0 No - [] No to All").c_str()); - else - sprintf(buffer, "%s", _("X Interrupt - 0 No").c_str()); - - // WALDORF - puts the button legend right under the prompt. the stack - // will be displayed below it now. no more need to do wierd currY math. - mFont->DrawString(buffer, x0 + 5, y0 + 14); } else if (mode == ACTIONSTACK_TARGET && modal) { diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index 9f4bb4037..4b285442a 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -26,6 +26,13 @@ float GameStateShop::_y3[] = { 164, 205, 257, 184, 180, 170, 219, 212, 195, 251, float GameStateShop::_x4[] = { 76, 90, 65, 131, 171, 221, 123, 187, 225, 141, 237 }; float GameStateShop::_y4[] = { 169, 188, 250, 182, 182, 168, 220, 208, 198, 259, 245 }; +namespace +{ + float kGamepadIconSize = 0.5f; + const std::string kOtherCardsString(": Other cards"); +} + + BoosterDisplay::BoosterDisplay(int id, GameObserver* game, int x, int y, JGuiListener * listener, TargetChooser * tc, int nb_displayed_items) : CardDisplay(id, game, x, y, listener, tc, nb_displayed_items) @@ -134,6 +141,14 @@ void GameStateShop::Start() mBack = WResourceManager::Instance()->GetQuad("back"); + for (int i = 0; i < 8; ++i) + { + std::ostringstream stream; + stream << "iconspsp" << i; + pspIcons[i] = WResourceManager::Instance()->RetrieveQuad("iconspsp.png", (float) i * 32, 0, 32, 32, stream.str(), RETRIEVE_MANAGE); + pspIcons[i]->SetHotSpot(16, 16); + } + JRenderer::GetInstance()->EnableVSync(true); taskList = NULL; @@ -718,13 +733,14 @@ void GameStateShop::Render() //Render the info bar r->FillRect(0, SCREEN_HEIGHT - 17, SCREEN_WIDTH, 17, ARGB(128,0,0,0)); - char c[512]; - sprintf(c, _("credits: %i").c_str(), playerdata->credits); + std::ostringstream stream; + stream << "Credits: " << playerdata->credits; mFont->SetColor(ARGB(255,255,255,255)); - mFont->DrawString(c, 5, SCREEN_HEIGHT - 12); - sprintf(c, "%s", _("[]:other cards").c_str()); - float len = 4 + mFont->GetStringWidth(c); - mFont->DrawString(c, SCREEN_WIDTH - len, SCREEN_HEIGHT - 14); + mFont->DrawString(stream.str(), 5, SCREEN_HEIGHT - 14); + + float len = 4 + mFont->GetStringWidth(kOtherCardsString.c_str()); + r->RenderQuad(pspIcons[6], SCREEN_WIDTH - len - kGamepadIconSize - 10, SCREEN_HEIGHT - 8, 0, kGamepadIconSize, kGamepadIconSize); + mFont->DrawString(kOtherCardsString, SCREEN_WIDTH - len, SCREEN_HEIGHT - 14); mFont->SetColor(ARGB(255,255,255,0)); mFont->DrawString(descPurchase(bigSync.getPos()).c_str(), SCREEN_WIDTH / 2, SCREEN_HEIGHT - 14, JGETEXT_CENTER);