From c617ede243eca9bd2a9bca5ba5f1a8ebfc9960ef Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 16 Jul 2016 09:15:58 +0800 Subject: [PATCH] First set of Graphic changes TODO: generate a graph/stats on deck menu to the right, update other graphics, move detailed info on the right of deck menu... --- projects/mtg/src/DeckMenu.cpp | 68 +++++++++++++++++++------- projects/mtg/src/DeckMenuItem.cpp | 4 +- projects/mtg/src/GameStateDuel.cpp | 2 +- projects/mtg/src/InteractiveButton.cpp | 9 ++-- projects/mtg/src/TextScroller.cpp | 10 ++++ 5 files changed, 67 insertions(+), 26 deletions(-) diff --git a/projects/mtg/src/DeckMenu.cpp b/projects/mtg/src/DeckMenu.cpp index 7d32a4727..68d06fdae 100644 --- a/projects/mtg/src/DeckMenu.cpp +++ b/projects/mtg/src/DeckMenu.cpp @@ -97,13 +97,13 @@ JGuiController(JGE::GetInstance(), id, listener), fontId(fontId), mShowDetailsSc stars = NEW hgeParticleSystem(WResourceManager::Instance()->RetrievePSI("stars.psi", WResourceManager::Instance()->GetQuad("stars").get())); stars->FireAt(mX, mY); - const string detailedInfoString = _("Detailed Info"); + const string detailedInfoString = _("info"); WFont *descriptionFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT); float stringWidth = descriptionFont->GetStringWidth(detailedInfoString.c_str()); float boxStartX = detailedInfoBoxX - stringWidth / 2 + 20; - - dismissButton = NEW InteractiveButton( this, DeckMenuConst::kDetailedInfoButtonId, Fonts::MAIN_FONT, detailedInfoString, boxStartX, detailedInfoBoxY, JGE_BTN_CANCEL); + //dismiss button? + dismissButton = NEW InteractiveButton( this, DeckMenuConst::kDetailedInfoButtonId, Fonts::MAIN_FONT, detailedInfoString, boxStartX+30, detailedInfoBoxY+4.5f, JGE_BTN_CANCEL); JGuiController::Add(dismissButton, true); updateScroller(); @@ -117,20 +117,23 @@ void DeckMenu::RenderDeckManaColors() bool displayDeckMana = backgroundName.find("DeckMenuBackdrop") != string::npos; // current set of coordinates puts the mana symbols to the right of the last stat info in the upper right // box of the deck selection screen. - float manaIconX = 398; - float manaIconY = 55; + //float manaIconX = 398; + //float manaIconY = 55; + float manaIconX = 288; + float manaIconY = 248; if (mSelectedDeck &&displayDeckMana) { string deckManaColors = mSelectedDeck->getColorIndex().c_str(); if (deckManaColors.size() >= 6) { // due to space constraints don't display icons for colorless mana. - for( int colorIdx = Constants::MTG_COLOR_GREEN; colorIdx < Constants::MTG_COLOR_WASTE; ++colorIdx ) + for( int colorIdx = Constants::MTG_COLOR_ARTIFACT; colorIdx < Constants::MTG_COLOR_WASTE; ++colorIdx ) { if ( (deckManaColors.at(colorIdx) == '1') != 0) { - JRenderer::GetInstance()->RenderQuad(manaIcons[colorIdx].get(), manaIconX, manaIconY, 0, 0.5f, 0.5f); - manaIconX += 15; + //JRenderer::GetInstance()->FillCircle(manaIconX,manaIconY,8.5f,ARGB(240,255,255,5)); + JRenderer::GetInstance()->RenderQuad(manaIcons[colorIdx].get(), manaIconX, manaIconY, 0, 0.6f, 0.6f); + manaIconX += 26; } } } @@ -230,6 +233,21 @@ void DeckMenu::Render() { JRenderer * renderer = JRenderer::GetInstance(); float height = mHeight; + JQuadPtr avatarholder; + JQuadPtr menupanel; + JQuadPtr menuholder; + avatarholder = WResourceManager::Instance()->RetrieveTempQuad("avatarholder.png");//new graphics avatarholder + menupanel = WResourceManager::Instance()->RetrieveTempQuad("menupanel.jpg");//new graphics menupanel + menuholder = WResourceManager::Instance()->RetrieveTempQuad("menuholder.png");//new graphics menuholder + bool inDeckMenu = backgroundName.find("DeckMenuBackdrop") != string::npos; + float modAvatarX = 0.f; + float modAvatarY = 0.f; + + if(inDeckMenu) + { + modAvatarX =26.f; + modAvatarY =1.f; + } if (!menuInitialized) { @@ -238,7 +256,12 @@ void DeckMenu::Render() timeOpen = 0; menuInitialized = true; } - + if (avatarholder.get() && menupanel.get() && inDeckMenu)//bg panel + renderer->RenderQuad(menupanel.get(), 225.f, 0, 0 ,SCREEN_WIDTH_F / avatarholder.get()->mWidth, SCREEN_HEIGHT_F / avatarholder.get()->mHeight); + RenderBackground();//background deck menu + if (menuholder.get() && inDeckMenu)//menuholder + renderer->RenderQuad(menuholder.get(), 0, 0, 0 ,SCREEN_WIDTH_F / menuholder.get()->mWidth, SCREEN_HEIGHT_F / menuholder.get()->mHeight); + if (timeOpen < 1) height *= timeOpen > 0 ? timeOpen : -timeOpen; for (int i = startId; i < startId + maxItems; i++) @@ -268,7 +291,7 @@ void DeckMenu::Render() else { dismissButton->setIsSelectionValid(false); - } + }//detailed info??? // display the avatar image string currentAvatarImageName = currentMenuItem->getImageFilename(); if (currentAvatarImageName.size() > 0) @@ -276,17 +299,25 @@ void DeckMenu::Render() JQuadPtr quad = WResourceManager::Instance()->RetrieveTempQuad(currentAvatarImageName, TEXTURE_SUB_AVATAR); if(quad.get()) { - quad->mWidth = 35.f; - quad->mHeight = 50.f; + float xscale = 37.f / quad->mWidth;//orig 35.f + float yscale = 50.f / quad->mHeight; if (currentMenuItem->getText() == "Evil Twin") { JQuad * evil = quad.get(); evil->SetHFlip(true); - renderer->RenderQuad(quad.get(), avatarX, avatarY); + if (avatarholder.get() && inDeckMenu) + renderer->RenderQuad(avatarholder.get(), 0, 0, 0 ,SCREEN_WIDTH_F / avatarholder.get()->mWidth, SCREEN_HEIGHT_F / avatarholder.get()->mHeight); + renderer->RenderQuad(quad.get(), avatarX+modAvatarX, avatarY+modAvatarY, 0, xscale, yscale); + renderer->DrawRect(avatarX+modAvatarX, avatarY+modAvatarY,37.f,50.f,ARGB(200,3,3,3)); evil = NULL; } else - renderer->RenderQuad(quad.get(), avatarX, avatarY); + { + if (avatarholder.get() && inDeckMenu) + renderer->RenderQuad(avatarholder.get(), 0, 0, 0 ,SCREEN_WIDTH_F / avatarholder.get()->mWidth, SCREEN_HEIGHT_F / avatarholder.get()->mHeight); + renderer->RenderQuad(quad.get(), avatarX+modAvatarX, avatarY+modAvatarY, 0, xscale, yscale); + renderer->DrawRect(avatarX+modAvatarX, avatarY+modAvatarY,37.f,50.f,ARGB(200,3,3,3)); + } } } @@ -302,7 +333,7 @@ void DeckMenu::Render() oss << _("Deck: ") << currentMenuItem->getDeckName() << endl; oss << currentMenuItem->getDeckStatsSummary(); descriptionFont->SetColor(ARGB(255,255,255,255)); - descriptionFont->DrawString(oss.str(), statsX, statsY); + descriptionFont->DrawString(oss.str(), statsX+2, statsY-2); } // change the font color of the current menu item @@ -314,15 +345,14 @@ void DeckMenu::Render() } } + mScroller->Render(); + RenderDeckManaColors(); + if (!title.empty()) { mFont->SetColor(ARGB(255,255,255,255)); mFont->DrawString(title.c_str(), titleX, titleY, JGETEXT_CENTER); } - - mScroller->Render(); - RenderBackground(); - RenderDeckManaColors(); renderer->SetTexBlend(BLEND_SRC_ALPHA, BLEND_ONE); stars->Render(); diff --git a/projects/mtg/src/DeckMenuItem.cpp b/projects/mtg/src/DeckMenuItem.cpp index d44e4725d..cd37be3d4 100644 --- a/projects/mtg/src/DeckMenuItem.cpp +++ b/projects/mtg/src/DeckMenuItem.cpp @@ -112,10 +112,10 @@ void DeckMenuItem::RenderWithOffset(float yOffset) JTexture * tex = WResourceManager::Instance()->RetrieveTexture("new.png"); if (tex) { - JQuadPtr quad = WResourceManager::Instance()->RetrieveQuad("new.png", 2.0f, 2.0f, tex->mWidth - 4.0f, tex->mHeight - 4.0f); //avoids weird rectangle aroudn the texture because of bilinear filtering + JQuadPtr quad = WResourceManager::Instance()->RetrieveQuad("new.png", 2.0f, 2.0f, tex->mWidth - 0.0f, tex->mHeight - 0.0f); //avoids weird rectangle aroudn the texture because of bilinear filtering quad->SetHotSpot(quad->mWidth/2.0f, quad->mHeight/2.0f); float x = mX + min(ITEM_PX_WIDTH - quad->mWidth, getWidth() )/2 + quad->mWidth/2; - if (quad) JRenderer::GetInstance()->RenderQuad(quad.get(), x , mY + yOffset + quad->mHeight/2, 0.5); + if (quad) JRenderer::GetInstance()->RenderQuad(quad.get(), x , mY + yOffset + quad->mHeight/2, 0, 16.f / quad->mWidth, 12.f / quad->mHeight); } } mFont->SetScale(SCALE_NORMAL); diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index 98baeddf1..71369ce24 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -1165,7 +1165,7 @@ void GameStateDuel::Render() opponentMenu->Render(); // display the selected player deck name too string selectedPlayerDeckName = _("Player Deck: ").c_str() + game->players[0]->deckName; - mFont->DrawString( selectedPlayerDeckName.c_str(), 30, 40); + mFont->DrawString( selectedPlayerDeckName.c_str(), (SCREEN_WIDTH / 4) - (mFont->GetStringWidth(selectedPlayerDeckName.c_str())/2)-3, 32); } else if (deckmenu && !deckmenu->isClosed()) deckmenu->Render(); diff --git a/projects/mtg/src/InteractiveButton.cpp b/projects/mtg/src/InteractiveButton.cpp index b86524204..fd1c0e6df 100644 --- a/projects/mtg/src/InteractiveButton.cpp +++ b/projects/mtg/src/InteractiveButton.cpp @@ -68,15 +68,16 @@ void InteractiveButton::Render() float stringWidth = mainFont->GetStringWidth(detailedInfoString.c_str()); float pspIconsSize = 0.5; float mainFontHeight = mainFont->GetHeight(); - float boxStartX = getX() - 5; + float boxStartX = getX() - 4; mXOffset = 0; mYOffset = 0; #ifndef TOUCH_ENABLED renderer->FillRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 9, 5, ARGB(0, 0, 0, 0)); #else - renderer->FillRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 5, 5, ARGB(255, 192, 172, 119)); - renderer->DrawRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 5, 5, ARGB(255, 255, 255, 255)); + renderer->FillRoundRect(boxStartX+1, getY()+1, stringWidth - 3, mainFontHeight - 4, 5, ARGB(220, 5, 5, 5)); + renderer->FillRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 4, 5, ARGB(255, 140, 23, 23)); + renderer->DrawRoundRect(boxStartX, getY(), stringWidth - 3, mainFontHeight - 4, 5, ARGB(255, 5, 5, 5)); mYOffset += 2; #endif @@ -86,7 +87,7 @@ void InteractiveButton::Render() { renderer->RenderQuad(buttonImage.get(), buttonXOffset - buttonImage.get()->mWidth/2, buttonYOffset + mainFontHeight/2, 0, pspIconsSize, pspIconsSize); } - mainFont->SetColor(ARGB(255, 0, 0, 0)); + //mainFont->SetColor(ARGB(255, 0, 0, 0)); mainFont->DrawString(detailedInfoString, buttonXOffset, buttonYOffset); } diff --git a/projects/mtg/src/TextScroller.cpp b/projects/mtg/src/TextScroller.cpp index e539831e4..dc98af964 100644 --- a/projects/mtg/src/TextScroller.cpp +++ b/projects/mtg/src/TextScroller.cpp @@ -157,5 +157,15 @@ void VerticalTextScroller::Update(float dt) void VerticalTextScroller::Render() { WFont * mFont = WResourceManager::Instance()->GetWFont(fontId); + JQuadPtr textscroller; + JQuadPtr textscrollershadow; + textscroller = WResourceManager::Instance()->RetrieveTempQuad("textscroller.png");//new graphics textscroller + textscrollershadow = WResourceManager::Instance()->RetrieveTempQuad("textscrollershadow.png");//new graphics textscroller shadow + if(!mText.empty() && mText.length() > 1) + if (textscrollershadow.get()) + JRenderer::GetInstance()->RenderQuad(textscrollershadow.get(), 0, 0, 0 ,SCREEN_WIDTH_F / textscrollershadow->mWidth, SCREEN_HEIGHT_F / textscrollershadow->mHeight); mFont->DrawString(mText.c_str(), mX, mY); + if(!mText.empty() && mText.length() > 1) + if (textscroller.get()) + JRenderer::GetInstance()->RenderQuad(textscroller.get(), 0, 0, 0 ,SCREEN_WIDTH_F / textscroller->mWidth, SCREEN_HEIGHT_F / textscroller->mHeight); }