From 5aeb2ebc0552d1a1f2e7e7b61b4db1effb432279 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 28 Jul 2016 21:35:43 +0800 Subject: [PATCH 1/6] Create TirelessGraf.txt --- projects/mtg/bin/Res/test/TirelessGraf.txt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 projects/mtg/bin/Res/test/TirelessGraf.txt diff --git a/projects/mtg/bin/Res/test/TirelessGraf.txt b/projects/mtg/bin/Res/test/TirelessGraf.txt new file mode 100644 index 000000000..ad71b77c6 --- /dev/null +++ b/projects/mtg/bin/Res/test/TirelessGraf.txt @@ -0,0 +1,39 @@ +#Tireless Tracker counters vs Graf Mole opponents +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:Concordant Crossroads, Swamp, Tireless Tracker, Mortician Beetle +library:Mountain +hand:Plains +[PLAYER2] +inplay:Graf Mole +[DO] +Plains +Swamp +Plains +Clue +#Tireless Tracker gets a counter +#Mortician sacrificed event must not trigger +#Graf Mole in opponents must not trigger and his life must not change +#begins +next +#attack +next +Tireless Tracker +Mortician Beetle +next +#damage +next +#end +eot +#untap +[ASSERT] +UNTAP +[PLAYER1] +inplay:Concordant Crossroads, Swamp, Tireless Tracker, Plains, Mortician Beetle +hand:Mountain +life:20 +[PLAYER2] +inplay:Graf Mole +life:15 +[END] From 239a186b3679f3390f698f1da4d3ec171ec69059 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 28 Jul 2016 21:36:21 +0800 Subject: [PATCH 2/6] Update _tests.txt --- projects/mtg/bin/Res/test/_tests.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 13feabb28..1dcc987d7 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -683,6 +683,7 @@ tidal_warrior_i649.txt tidal_warrior_i652.txt Timely_Reinforcements.txt TirelessTracker.txt +TirelessGraf.txt titanic_ultimatum.txt tokenizer.txt tokenizer2.txt From a20c2ce29a3852db91ec69b5f3768e4f18f42e5f Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 29 Jul 2016 07:30:20 +0800 Subject: [PATCH 3/6] Unused variable --- projects/mtg/include/AllAbilities.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 17498f0fc..139f9e9c8 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1372,7 +1372,7 @@ public: if (!e) return 0; MTGCardInstance * check = e->cardAfter; MTGGameZone * oldZone = e->cardAfter->currentZone; - MTGGameZone * currZone = check->currentZone; + //MTGGameZone * currZone = check->currentZone; check->currentZone = check->previousZone; if (check->next && (check->next->currentZone|| check->isToken)) { From 1d2abeb20be69f16ff2ec5dd77b4369e7ed63933 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 29 Jul 2016 18:37:03 +0800 Subject: [PATCH 4/6] Minor Border changes Also added copier values if it has copied a token or not... --- projects/mtg/bin/Res/graphics/alphabeta.png | Bin 4678 -> 19522 bytes projects/mtg/include/CardGui.h | 6 +-- projects/mtg/include/MTGCardInstance.h | 1 + projects/mtg/src/AllAbilities.cpp | 11 +++-- projects/mtg/src/CardDisplay.cpp | 6 +-- projects/mtg/src/CardGui.cpp | 42 ++++++++++++-------- projects/mtg/src/DeckView.cpp | 15 +++++-- projects/mtg/src/MTGCardInstance.cpp | 1 + 8 files changed, 53 insertions(+), 29 deletions(-) diff --git a/projects/mtg/bin/Res/graphics/alphabeta.png b/projects/mtg/bin/Res/graphics/alphabeta.png index 6684258170d55a63b841f75389d398b6561b7864..bc2c38a027292e72c7817bcee6a86aa0962186e8 100644 GIT binary patch literal 19522 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 delta 4153 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 || _target->isACopier) + if(_target->isToken || (_target->isACopier && _target->hasCopiedToken)) + { clone = _target; + tokencopied = true; + } else clone = MTGCollection()->getCardById(_target->copiedID); MTGCardInstance * myClone = NEW MTGCardInstance(clone, source->controller()->game); source->copy(myClone); SAFE_DELETE(myClone); source->isACopier = true; + source->hasCopiedToken = tokencopied; source->copiedID = _target->copiedID; if(_target->isMorphed) { @@ -3880,8 +3885,8 @@ int AACloner::resolve() // Use id of the card to have the same image as the original MTGCard* clone = (_target->isToken ? _target: MTGCollection()->getCardById(_target->getId())); - // If its a copier then copy what it is - if(_target->isACopier) + // If its a copier and copied a token then copy what it is + if(_target->isACopier && _target->hasCopiedToken) clone = _target; Player * targetPlayer = who == 1 ? source->controller()->opponent() : source->controller(); diff --git a/projects/mtg/src/CardDisplay.cpp b/projects/mtg/src/CardDisplay.cpp index 13c9f2fcd..d9147acdf 100644 --- a/projects/mtg/src/CardDisplay.cpp +++ b/projects/mtg/src/CardDisplay.cpp @@ -263,11 +263,11 @@ void CardDisplay::Render() { mObjects[mCurr]->Render(); CardGui * cardg = ((CardGui *) mObjects[mCurr]); - Pos pos = Pos(CardGui::BigWidth / 2, CardGui::BigHeight / 2 - 10, 1.0, 0.0, 220); - int drawMode = DrawMode::kNormal; + Pos pos = Pos(CardGui::BigWidth / 2, CardGui::BigHeight / 2 - 10, 0.90f, 0.0, 220); + int drawMode = DrawMode::kNormal;//scale card display from 1.0f to 0.90f if (observer) { - pos.actY = 145; + pos.actY = 142;//reduce y a little if (x < (CardGui::BigWidth / 2)) pos.actX = SCREEN_WIDTH - 10 - CardGui::BigWidth / 2; drawMode = observer->getCardSelector()->GetDrawMode(); } diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 63de518ab..d0021a34b 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -111,17 +111,17 @@ void CardGui::Update(float dt) PlayGuiObject::Update(dt); } -void CardGui::DrawCard(const Pos& inPosition, int inMode, bool thumb, bool noborder) +void CardGui::DrawCard(const Pos& inPosition, int inMode, bool thumb, bool noborder, bool smallerscale) { - DrawCard(card, inPosition, inMode, thumb, noborder); + DrawCard(card, inPosition, inMode, thumb, noborder, smallerscale); } -void CardGui::DrawCard(MTGCard* inCard, const Pos& inPosition, int inMode, bool thumb, bool noborder) +void CardGui::DrawCard(MTGCard* inCard, const Pos& inPosition, int inMode, bool thumb, bool noborder, bool smallerscale) { switch (inMode) { case DrawMode::kNormal: - RenderBig(inCard, inPosition, thumb, noborder); + RenderBig(inCard, inPosition, thumb, noborder, smallerscale); break; case DrawMode::kText: AlternateRender(inCard, inPosition); @@ -1114,7 +1114,7 @@ void CardGui::TinyCropRender(MTGCard * card, const Pos& pos, JQuad * quad) } //Renders a big card on screen. Defaults to the "alternate" rendering if no image is found -void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder) +void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder, bool smallerscale) { JRenderer * renderer = JRenderer::GetInstance(); //GameObserver * game = GameObserver::GetInstance(); @@ -1145,7 +1145,7 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder if(!noborder) { if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") - { + {//Draw white border renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,248,248,255)); renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(150,20,20,20)); } @@ -1153,27 +1153,35 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder { if(cardsetname == "LEA"||cardsetname == "LEB") { + //force smaller scale + smallerscale = true; + //Draw more rounder black border renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(255,5,5,5)); renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(50,240,240,240)); } else - { + {//draw black border renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,5,5,5)); renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(50,240,240,240)); } } - if(cardsetname == "LEA"||cardsetname == "LEB") - { - if(alphabeta.get()) - renderer->RenderQuad(alphabeta.get(),(pos.actX - (pos.actZ * 100.f))+12.f,(pos.actY - (pos.actZ * 142.5f))+17.5f, pos.actT, 0.88f, 0.88f); - renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale-0.01f, scale-0.01f); - } - else - renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale, scale); } + //draw inner border + if(cardsetname == "LEA"||cardsetname == "LEB") + { + if(alphabeta.get()) + { + alphabeta->SetHotSpot(static_cast (alphabeta->mWidth / 2), static_cast (alphabeta->mHeight / 2)); + float myscale = pos.actZ * 250 / alphabeta->mHeight; + alphabeta->SetColor(ARGB((int)pos.actA,255,255,255)); + renderer->RenderQuad(alphabeta.get(), x, pos.actY, pos.actT, myscale, myscale); + } + } + //Draw card + if(smallerscale) + renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale-0.01f, scale-0.01f); else - renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale, scale); - + renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale, scale); RenderCountersBig(card, pos); return; } diff --git a/projects/mtg/src/DeckView.cpp b/projects/mtg/src/DeckView.cpp index a18424a9a..18e6247b3 100644 --- a/projects/mtg/src/DeckView.cpp +++ b/projects/mtg/src/DeckView.cpp @@ -147,6 +147,7 @@ void DeckView::renderCard(int index, int alpha, bool asThumbnail, bool addWHbord {//NORMAL VIEW WITH IMAGES int mode = !options[Options::DISABLECARDS].number ? DrawMode::kNormal : DrawMode::kText; float modx = addWHborder ? 2.0f:0.0f; + bool smallerscale = modx > 0.0f ? true:false; //border for editor && others??? string cardsetname = setlist[cardPosition.card->setId].c_str(); if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") @@ -156,11 +157,19 @@ void DeckView::renderCard(int index, int alpha, bool asThumbnail, bool addWHbord } else { - JRenderer::GetInstance()->FillRoundRect((cardPosition.x - cardPosition.scale * 100.0f)-(5.f+modx),(cardPosition.y - cardPosition.scale * 142.5f)-(5.f+modx),cardPosition.scale * 200.0f,cardPosition.scale * 285.0f,5.f+modx,ARGB(255,10,10,10)); - JRenderer::GetInstance()->DrawRoundRect((cardPosition.x - cardPosition.scale * 100.0f)-(5.f+modx),(cardPosition.y - cardPosition.scale * 142.5f)-(5.f+modx),cardPosition.scale * 200.0f,cardPosition.scale * 285.0f,5.f+modx,ARGB(50,240,240,240)); + if (cardsetname == "LEA" || cardsetname == "LEB") + { + JRenderer::GetInstance()->FillRoundRect((cardPosition.x - cardPosition.scale * 96.75f)-(7.f+modx),(cardPosition.y - cardPosition.scale * 139.25f)-(7.f+modx),cardPosition.scale * 193.5f,cardPosition.scale * 278.5f,7.f+modx,ARGB(255,10,10,10)); + JRenderer::GetInstance()->DrawRoundRect((cardPosition.x - cardPosition.scale * 96.75f)-(7.f+modx),(cardPosition.y - cardPosition.scale * 139.25f)-(7.f+modx),cardPosition.scale * 193.5f,cardPosition.scale * 278.5f,7.f+modx,ARGB(50,240,240,240)); + } + else + { + JRenderer::GetInstance()->FillRoundRect((cardPosition.x - cardPosition.scale * 100.0f)-(5.f+modx),(cardPosition.y - cardPosition.scale * 142.5f)-(5.f+modx),cardPosition.scale * 200.0f,cardPosition.scale * 285.0f,5.f+modx,ARGB(255,10,10,10)); + JRenderer::GetInstance()->DrawRoundRect((cardPosition.x - cardPosition.scale * 100.0f)-(5.f+modx),(cardPosition.y - cardPosition.scale * 142.5f)-(5.f+modx),cardPosition.scale * 200.0f,cardPosition.scale * 285.0f,5.f+modx,ARGB(50,240,240,240)); + } } Pos pos = Pos(cardPosition.x, cardPosition.y, cardPosition.scale * 285 / 250, 0.0, 255); - CardGui::DrawCard(cardPosition.card, pos, mode, asThumbnail, true); + CardGui::DrawCard(cardPosition.card, pos, mode, asThumbnail, true, smallerscale); } int quadAlpha = alpha; if (!deck()->count(cardPosition.card)) quadAlpha /= 2; diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 91f5404fc..2c3775dc3 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -227,6 +227,7 @@ void MTGCardInstance::initMTGCI() myPair = NULL; shackled = NULL; miracle = false; + hasCopiedToken = false; countTrini = 0; imprintedCards.clear(); attackCost = 0; From a56e77310dc8ba54068696296c22948d53ed0536 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 29 Jul 2016 23:10:01 +0800 Subject: [PATCH 5/6] Border Corrections Removed other border render, and use the one in cardgui::drawcard... --- projects/mtg/include/CardGui.h | 2 +- projects/mtg/src/ActionStack.cpp | 22 ++------ projects/mtg/src/CardGui.cpp | 85 +++++++++++++++++-------------- projects/mtg/src/CardSelector.cpp | 23 +-------- projects/mtg/src/DeckView.cpp | 4 +- 5 files changed, 54 insertions(+), 82 deletions(-) diff --git a/projects/mtg/include/CardGui.h b/projects/mtg/include/CardGui.h index 7a8bca284..0060d79db 100644 --- a/projects/mtg/include/CardGui.h +++ b/projects/mtg/include/CardGui.h @@ -57,7 +57,7 @@ public: void DrawCard(const Pos& inPosition, int inMode = DrawMode::kNormal, bool thumb = false, bool noborder = false, bool smallscale = false); static void DrawCard(MTGCard* inCard, const Pos& inPosition, int inMode = DrawMode::kNormal, bool thumb = false, bool noborder = false, bool smallscale = false); - + static void DrawBorder(string setname, const Pos& inPosition, float x, bool noborder = false, bool smallscale = false); static JQuadPtr AlternateThumbQuad(MTGCard * card); virtual ostream& toString(ostream&) const; }; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 7dc7e14d7..aecf87ddc 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -130,25 +130,9 @@ void Interruptible::Render(MTGCardInstance * source, JQuad * targetQuad, string if (bigQuad) { - //Pos pos = Pos(CardGui::BigWidth / 2, CardGui::BigHeight / 2 - 10, 1.0, 0.0, 220); - Pos npos = Pos(CardGui::BigWidth / 2 + 8.f, CardGui::BigHeight / 2 - 2.f, 1.0f - (1.0f/10), 0.0, 220); - //border - if(observer->getCardSelector()->GetDrawMode() < 2) - { - string cardsetname = setlist[source->setId].c_str(); - if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") - { - JRenderer::GetInstance()->FillRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(255,248,248,255)); - JRenderer::GetInstance()->DrawRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(150,20,20,20)); - } - else - { - JRenderer::GetInstance()->FillRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(255,5,5,5)); - JRenderer::GetInstance()->DrawRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(50,240,240,240)); - } - } - //render card - CardGui::DrawCard(source, npos, observer->getCardSelector()->GetDrawMode(),false,true); + Pos pos = Pos(CardGui::BigWidth / 2, CardGui::BigHeight / 2 - 10, 0.90f, 0.0, 220); + pos.actY = 142;//adjust y a little bit + CardGui::DrawCard(source, pos, observer->getCardSelector()->GetDrawMode()); } if (targetQuad) diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index d0021a34b..b9b17ee3c 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1122,10 +1122,10 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder // card = (MTGCard*)game->mLayers->actionLayer()->currentActionCard; //i want this but ai targets cards so quickly that it can crash the game. float x = pos.actX; - + //init setname + string cardsetname = setlist[card->setId].c_str(); JQuadPtr quad = thumb ? WResourceManager::Instance()->RetrieveCard(card, RETRIEVE_THUMB) : WResourceManager::Instance()->RetrieveCard(card); - JQuadPtr alphabeta = WResourceManager::Instance()->RetrieveTempQuad("alphabeta.png"); MTGCardInstance * kcard = dynamic_cast(card); if(kcard && !kcard->isToken && kcard->name != kcard->model->data->name) { @@ -1140,43 +1140,10 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder } quad->SetColor(ARGB(255,255,255,255)); float scale = pos.actZ * 250.f / quad->mHeight; - //init setname - string cardsetname = setlist[card->setId].c_str(); - if(!noborder) - { - if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") - {//Draw white border - renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,248,248,255)); - renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(150,20,20,20)); - } - else - { - if(cardsetname == "LEA"||cardsetname == "LEB") - { - //force smaller scale - smallerscale = true; - //Draw more rounder black border - renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(255,5,5,5)); - renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(50,240,240,240)); - } - else - {//draw black border - renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,5,5,5)); - renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(50,240,240,240)); - } - } - } - //draw inner border - if(cardsetname == "LEA"||cardsetname == "LEB") - { - if(alphabeta.get()) - { - alphabeta->SetHotSpot(static_cast (alphabeta->mWidth / 2), static_cast (alphabeta->mHeight / 2)); - float myscale = pos.actZ * 250 / alphabeta->mHeight; - alphabeta->SetColor(ARGB((int)pos.actA,255,255,255)); - renderer->RenderQuad(alphabeta.get(), x, pos.actY, pos.actT, myscale, myscale); - } - } + //Draw border + DrawBorder(cardsetname, pos, x, noborder, smallerscale); + //force smaller scale on alpha beta + smallerscale = cardsetname=="LEA"||cardsetname=="LEB"?true:smallerscale; //Draw card if(smallerscale) renderer->RenderQuad(quad.get(), x, pos.actY, pos.actT, scale-0.01f, scale-0.01f); @@ -1192,6 +1159,46 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder AlternateRender(card, pos); } +void CardGui::DrawBorder(string cardsetname, const Pos& pos, float x, bool noborder, bool smallerscale) +{ + JRenderer * renderer = JRenderer::GetInstance(); + JQuadPtr alphabeta = WResourceManager::Instance()->RetrieveTempQuad("alphabeta.png"); + + if(!noborder) + { + if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") + {//Draw white border + renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,248,248,255)); + renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(150,20,20,20)); + } + else + { + if(cardsetname == "LEA") + {//BETA HAS REGULAR BORDER + //Draw more rounder black border + renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(255,5,5,5)); + renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-10.5f,(pos.actY - (pos.actZ * 119.7f))-11.5f,pos.actZ * 168.f + 0.5f,pos.actZ * 239.4f + 4.f,10.f,ARGB(50,240,240,240)); + } + else + {//draw black border + renderer->FillRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(255,5,5,5)); + renderer->DrawRoundRect((pos.actX - (pos.actZ * 84.f))-11.5f,(pos.actY - (pos.actZ * 119.7f))-14.f,pos.actZ * 168.f + 6.5f,pos.actZ * 239.4f + 12.f,8.f,ARGB(50,240,240,240)); + } + } + } + //draw inner border + if(cardsetname == "LEA"||cardsetname == "LEB") + { + if(alphabeta.get()) + { + alphabeta->SetHotSpot(static_cast (alphabeta->mWidth / 2), static_cast (alphabeta->mHeight / 2)); + float myscale = pos.actZ * 250 / alphabeta->mHeight; + alphabeta->SetColor(ARGB((int)pos.actA,255,255,255)); + renderer->RenderQuad(alphabeta.get(), x, pos.actY, pos.actT, myscale, myscale); + } + } +} + string CardGui::FormattedData(string data, string replace, string value) { size_t found = data.find(replace.c_str()); diff --git a/projects/mtg/src/CardSelector.cpp b/projects/mtg/src/CardSelector.cpp index 0e478f288..cb698d7a6 100644 --- a/projects/mtg/src/CardSelector.cpp +++ b/projects/mtg/src/CardSelector.cpp @@ -341,28 +341,9 @@ void CardSelector::Render() { if(timer > 0) { - float modx = 0.f; - //if(card->mHasFocus && observer->isInHand(card->getCard()) && !card->getCard()->owner->isAI()) - //modx -= 1.8f;//todo small adjustment - //new npos for smaller bigquad - Pos npos = Pos(bigpos.x+7.f+modx,bigpos.y-4.f,bigpos.zoom-(bigpos.zoom/10),bigpos.t,bigpos.alpha); - //border - if(mDrawMode < 2) - { - string cardsetname = setlist[card->getCard()->setId].c_str(); - if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") - { - JRenderer::GetInstance()->FillRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(255,248,248,255)); - JRenderer::GetInstance()->DrawRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(150,20,20,20)); - } - else - { - JRenderer::GetInstance()->FillRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(255,5,5,5)); - JRenderer::GetInstance()->DrawRoundRect((npos.actX - (npos.actZ * 84.f))-11.5f,(npos.actY - (npos.actZ * 119.7f))-14.f,npos.actZ * 168.f + 6.5f,npos.actZ * 239.4f + 12.f,8.f,ARGB(50,240,240,240)); - } - } + Pos npos = Pos(bigpos.x+7.f,bigpos.y-4.f,bigpos.zoom-(bigpos.zoom/10),bigpos.t,bigpos.alpha); //render card - card->DrawCard(npos, mDrawMode, false, true); + card->DrawCard(npos, mDrawMode); } } } diff --git a/projects/mtg/src/DeckView.cpp b/projects/mtg/src/DeckView.cpp index 18e6247b3..9fbdb8c21 100644 --- a/projects/mtg/src/DeckView.cpp +++ b/projects/mtg/src/DeckView.cpp @@ -148,7 +148,7 @@ void DeckView::renderCard(int index, int alpha, bool asThumbnail, bool addWHbord int mode = !options[Options::DISABLECARDS].number ? DrawMode::kNormal : DrawMode::kText; float modx = addWHborder ? 2.0f:0.0f; bool smallerscale = modx > 0.0f ? true:false; - //border for editor && others??? + //border for editor && others since the border in cardgui:drawcard scales larger... string cardsetname = setlist[cardPosition.card->setId].c_str(); if(cardsetname == "2ED"||cardsetname == "RV"||cardsetname == "4ED"||cardsetname == "5ED"||cardsetname == "6ED"||cardsetname == "7ED"||cardsetname == "8ED"||cardsetname == "9ED"||cardsetname == "CHR"||cardsetname == "DM") { @@ -157,7 +157,7 @@ void DeckView::renderCard(int index, int alpha, bool asThumbnail, bool addWHbord } else { - if (cardsetname == "LEA" || cardsetname == "LEB") + if (cardsetname == "LEA") { JRenderer::GetInstance()->FillRoundRect((cardPosition.x - cardPosition.scale * 96.75f)-(7.f+modx),(cardPosition.y - cardPosition.scale * 139.25f)-(7.f+modx),cardPosition.scale * 193.5f,cardPosition.scale * 278.5f,7.f+modx,ARGB(255,10,10,10)); JRenderer::GetInstance()->DrawRoundRect((cardPosition.x - cardPosition.scale * 96.75f)-(7.f+modx),(cardPosition.y - cardPosition.scale * 139.25f)-(7.f+modx),cardPosition.scale * 193.5f,cardPosition.scale * 278.5f,7.f+modx,ARGB(50,240,240,240)); From ffdc8cd9ff81c4d88f5ab165a00ae59576a342e4 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 30 Jul 2016 03:05:24 +0800 Subject: [PATCH 6/6] meld card size --- projects/mtg/src/CardGui.cpp | 89 ++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index b9b17ee3c..7de73603b 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -157,9 +157,14 @@ void CardGui::Render() //I want the below for melded cards but I dont know how to adjust everything else //to look neat and clean. leaving this here incase someone else wants to pretty up the p/t box //and line up the position. - /* if (card->MeldedFrom.size()) - cardScale = cardScale + (10 / quad->mHeight);*/ - float scale = actZ * cardScale; + float zz = 1.0f; + float yy = 0.0f; + if (card->MeldedFrom.size()) + { + zz = 1.15f; + yy = 2.0f; + } + float scale = (actZ*zz) * cardScale; JQuadPtr shadow; if (actZ > 1) @@ -168,7 +173,7 @@ void CardGui::Render() if (shadow) { shadow->SetColor(ARGB(static_cast(actA)/2,255,255,255)); - renderer->RenderQuad(shadow.get(), actX + (actZ - 1) * 15, actY + (actZ - 1) * 15, actT, 28 * actZ / 16, 40 * actZ / 16); + renderer->RenderQuad(shadow.get(), actX + ((actZ*zz) - 1) * 15, (actY-yy) + ((actZ*zz) - 1) * 15, actT, 28 * (actZ*zz) / 16, 40 * (actZ*zz) / 16); } } @@ -179,7 +184,7 @@ void CardGui::Render() if (extracostshadow) { extracostshadow->SetColor(ARGB(static_cast(actA)/2,100,0,0)); - renderer->RenderQuad(extracostshadow.get(), actX + (actZ - 1) * 15, actY + (actZ - 1) * 15, actT, 28 * actZ / 16, 40 * actZ / 16); + renderer->RenderQuad(extracostshadow.get(), actX + ((actZ*zz) - 1) * 15, (actY-yy) + ((actZ*zz) - 1) * 15, actT, 28 * (actZ*zz) / 16, 40 * (actZ*zz) / 16); } } @@ -208,7 +213,7 @@ void CardGui::Render() if(white) { white->SetColor(ARGB(255,230,50,50)); - renderer->RenderQuad(white.get(), actX, actY, actT, 30 * actZ / 16, 42 * actZ / 16); + renderer->RenderQuad(white.get(), actX, (actY-yy), actT, 30 * (actZ*zz) / 16, 42 * (actZ*zz) / 16); } } @@ -235,7 +240,7 @@ void CardGui::Render() if(white) { white->SetColor(ARGB(255,0,0,255)); - renderer->RenderQuad(white.get(), actX, actY, actT, 30 * actZ / 16, 42 * actZ / 16); + renderer->RenderQuad(white.get(), actX, (actY-yy), actT, 30 * (actZ*zz) / 16, 42 * (actZ*zz) / 16); } } } @@ -253,7 +258,7 @@ void CardGui::Render() fakeborder->SetColor(ARGB((int)(actA),7,235,7));//green border else fakeborder->SetColor(ARGB((int)(actA),15,15,15)); - renderer->RenderQuad(fakeborder.get(), actX, actY, actT, (29 * actZ + 1) / 16, 42 * actZ / 16); + renderer->RenderQuad(fakeborder.get(), actX, (actY-yy), actT, (29 * (actZ*zz) + 1) / 16, 42 * (actZ*zz) / 16); } //draw border for highlighting if (game) @@ -261,26 +266,26 @@ void CardGui::Render() if (card && card->isTargetted() && highlightborder) { highlightborder->SetColor(ARGB(95,255,0,0)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } if (card && card->isTargetter() && highlightborder) { highlightborder->SetColor(ARGB(95,0,245,0)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } if(card->myPair && card->myPair->isInPlay(game) && highlightborder) { if(mHasFocus) { highlightborder->SetColor(ARGB(200,7,98,248)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } if(CardView* cv = dynamic_cast(card->myPair->view)) { if(cv->mHasFocus) { highlightborder->SetColor(ARGB(200,57,28,248)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } } } @@ -293,7 +298,7 @@ void CardGui::Render() else highlightborder->SetColor(ARGB(200,57,28,248)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } if(CardView* cv = dynamic_cast(card->shackled->view)) { @@ -304,20 +309,20 @@ void CardGui::Render() else highlightborder->SetColor(ARGB(200,57,28,248)); - renderer->RenderQuad(highlightborder.get(), actX, actY, actT, (30 * actZ + 1) / 16, 43 * actZ / 16); + renderer->RenderQuad(highlightborder.get(), actX, (actY-yy), actT, (30 * (actZ*zz) + 1) / 16, 43 * (actZ*zz) / 16); } } } } //draw the card image - renderer->RenderQuad(quad.get(), actX, actY, actT, scale, scale); + renderer->RenderQuad(quad.get(), actX, (actY-yy), actT, scale, scale); } if (alternate) { mFont->SetColor(ARGB(static_cast(actA), 0, 0, 0)); - mFont->SetScale(DEFAULT_MAIN_FONT_SCALE * 0.5f * actZ); - mFont->DrawString(_(card->getName()), actX - actZ * Width / 2 + 1, actY - actZ * Height / 2 + 1); + mFont->SetScale(DEFAULT_MAIN_FONT_SCALE * 0.5f * (actZ*zz)); + mFont->DrawString(_(card->getName()), actX - (actZ*zz) * Width / 2 + 1, (actY-yy) - (actZ*zz) * Height / 2 + 1); mFont->SetScale(DEFAULT_MAIN_FONT_SCALE); JQuadPtr icon; @@ -334,7 +339,7 @@ void CardGui::Render() if (icon.get()) { icon->SetColor(ARGB(static_cast(actA),255,255,255)); - renderer->RenderQuad(icon.get(), actX, actY, actT); + renderer->RenderQuad(icon.get(), actX, (actY-yy), actT); icon->SetColor(ARGB(255,255,255,255)); //Putting color back as this quad is shared } @@ -346,7 +351,7 @@ void CardGui::Render() if (mor && mor->mTex) { mor->SetHotSpot(static_cast (mor->mTex->mWidth / 2), static_cast (mor->mTex->mHeight / 2)); mor->SetColor(ARGB(255,255,255,255)); - renderer->RenderQuad(mor.get(), actX, actY, actT,scale, scale); + renderer->RenderQuad(mor.get(), actX, (actY-yy), actT,scale, scale); } } @@ -358,24 +363,24 @@ void CardGui::Render() if(card->isTapped()) { if(mHasFocus) - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-10,actY - (scale * quad->mHeight / 2)+6.5f, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,255,0,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-10,(actY-yy) - (scale * quad->mHeight / 2)+6.5f, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,255,0,0)); else - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-8,actY - (scale * quad->mHeight / 2)+4, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,255,0,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-8,(actY-yy) - (scale * quad->mHeight / 2)+4, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,255,0,0)); } else - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-2,actY - (scale * quad->mHeight / 2)-2, (scale * quad->mWidth)-0.02f, (scale * quad->mHeight)-0.02f, 1.8f,ARGB(250,255,0,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-2,(actY-yy) - (scale * quad->mHeight / 2)-2, (scale * quad->mWidth)-0.02f, (scale * quad->mHeight)-0.02f, 1.8f,ARGB(250,255,0,0)); } if (card && card->isTargetter()) { if(card->isTapped()) { if(mHasFocus) - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-10,actY - (scale * quad->mHeight / 2)+6.5f, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,0,255,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-10,(actY-yy) - (scale * quad->mHeight / 2)+6.5f, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,0,255,0)); else - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-8,actY - (scale * quad->mHeight / 2)+4, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,0,255,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-8,(actY-yy) - (scale * quad->mHeight / 2)+4, (scale * quad->mHeight)-0.02f, (scale * quad->mWidth)-0.02f, 1.8f,ARGB(250,0,255,0)); } else - renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-2,actY - (scale * quad->mHeight / 2)-2, (scale * quad->mWidth)-0.02f, (scale * quad->mHeight)-0.02f, 1.8f,ARGB(250,0,255,0)); + renderer->DrawRoundRect(actX - (scale * quad->mWidth / 2)-2,(actY-yy) - (scale * quad->mHeight / 2)-2, (scale * quad->mWidth)-0.02f, (scale * quad->mHeight)-0.02f, 1.8f,ARGB(250,0,255,0)); } } @@ -385,9 +390,9 @@ void CardGui::Render() mFont->SetScale(DEFAULT_MAIN_FONT_SCALE); char buffer[200]; sprintf(buffer, "%i/%i", card->power, card->life); - renderer->FillRect(actX - (13 * actZ), actY + 4 * actZ, 25.5f * actZ, 14 * actZ, + renderer->FillRect(actX - (13 * (actZ*zz)), (actY-yy) + 4 * (actZ*zz), 25.5f * (actZ*zz), 14 * (actZ*zz), ARGB(((static_cast(actA))/2),0,0,0)); - renderer->DrawRect(actX - (13 * actZ), actY + 4 * actZ, 25.5f * actZ, 14 * actZ, + renderer->DrawRect(actX - (13 * (actZ*zz)), (actY-yy) + 4 * (actZ*zz), 25.5f * (actZ*zz), 14 * (actZ*zz), ARGB(((static_cast(actA))),20,20,20)); //damaged or buffed or powered down if(card->wasDealtDamage && card->life <= 2) @@ -400,9 +405,9 @@ void CardGui::Render() mFont->SetColor(ARGB(static_cast(actA),238,130,238));//violet legendary eldrazi else mFont->SetColor(ARGB(static_cast(actA),255,255,255));//white default - mFont->SetScale(actZ); - mFont->SetScale(actZ); - mFont->DrawString(buffer, actX - 10 * actZ, actY + 7 * actZ); + mFont->SetScale((actZ*zz)); + mFont->SetScale((actZ*zz)); + mFont->DrawString(buffer, actX - 10 * (actZ*zz), (actY-yy) + 7 * (actZ*zz)); mFont->SetScale(1); } @@ -435,7 +440,7 @@ void CardGui::Render() sprintf(buffer, "%s", buff.c_str()); mFont->SetColor(ARGB(static_cast(actA),255,215,0));//Gold indicator mFont->SetScale(0.8f); - mFont->DrawString(buffer, actX - 10 * actZ, actY - (16 * actZ)); + mFont->DrawString(buffer, actX - 10 * (actZ*zz), (actY-yy) - (16 * (actZ*zz))); mFont->SetScale(1); } @@ -454,8 +459,8 @@ void CardGui::Render() char buffer[200]; sprintf(buffer, "%i", card->counters->counters[0]->nb); mFont->SetColor(ARGB(static_cast(actA),255,255,255)); - mFont->SetScale(actZ); - mFont->DrawString(buffer, actX - 10 * actZ, actY - (12 * actZ)); + mFont->SetScale((actZ*zz)); + mFont->DrawString(buffer, actX - 10 * (actZ*zz), (actY-yy) - (12 * (actZ*zz))); mFont->SetScale(1); } } @@ -467,34 +472,38 @@ void CardGui::Render() if (shadow) { shadow->SetColor(ARGB(200,255,255,255)); - renderer->RenderQuad(shadow.get(), actX, actY, actT, (28 * actZ + 1) / 16, 40 * actZ / 16); + renderer->RenderQuad(shadow.get(), actX, (actY-yy), actT, (28 * (actZ*zz) + 1) / 16, 40 * (actZ*zz) / 16); } } // Render a mask over the card, if set if (mask && quad) - JRenderer::GetInstance()->FillRect(actX - (scale * quad->mWidth / 2),actY - (scale * quad->mHeight / 2), scale * quad->mWidth, scale* quad->mHeight, mask); + JRenderer::GetInstance()->FillRect(actX - (scale * quad->mWidth / 2),(actY-yy) - (scale * quad->mHeight / 2), scale * quad->mWidth, scale* quad->mHeight, mask); if ((tc && tc->alreadyHasTarget(card)) || (game && card == game->mLayers->actionLayer()->currentActionCard))//paint targets red. { + float xy = yy>0.0f?2.0f:1.0f; + float modx = mHasFocus?xy:0.0f; if (card->isTapped()) { - renderer->FillRect(actX - (scale * quad->mWidth / 2)-7,actY - (scale * quad->mHeight / 2)+7,scale* quad->mHeight,scale * quad->mWidth, ARGB(128,255,0,0)); + renderer->FillRect(actX - (scale * quad->mWidth / 2)-(7+modx),(actY-yy) - (scale * quad->mHeight / 2)+(7+modx),scale* quad->mHeight,scale * quad->mWidth, ARGB(128,255,0,0)); } else { - renderer->FillRect(actX - (scale * quad->mWidth / 2),actY - (scale * quad->mHeight / 2), scale * quad->mWidth, scale* quad->mHeight, ARGB(128,255,0,0)); + renderer->FillRect(actX - (scale * quad->mWidth / 2),(actY-yy) - (scale * quad->mHeight / 2), scale * quad->mWidth, scale* quad->mHeight, ARGB(128,255,0,0)); } } - if(tc && tc->source && tc->source->view && tc->source->view->actZ >= 1.3 && card == tc->source)//paint the source green while infocus. + if(tc && tc->source && tc->source->view && tc->source->view->actY >= 1.3 && card == tc->source)//paint the source green while infocus. { + float xy = yy>0.0f?2.0f:1.0f; + float modx = mHasFocus?xy:0.0f; if (tc->source->isTapped()) { - renderer->FillRect(actX - (scale * quad->mWidth / 2)-7,actY - (scale * quad->mHeight / 2)+7,scale* quad->mHeight,scale * quad->mWidth, ARGB(128,0,255,0)); + renderer->FillRect(actX - (scale * quad->mWidth / 2)-(7+modx),(actY-yy) - (scale * quad->mHeight / 2)+(7+modx),scale* quad->mHeight,scale * quad->mWidth, ARGB(128,0,255,0)); } else { - renderer->FillRect(tc->source->view->actX - (scale * quad->mWidth / 2),tc->source->view->actY - (scale * quad->mHeight / 2), scale*quad->mWidth, scale*quad->mHeight, ARGB(128,0,255,0)); + renderer->FillRect(tc->source->view->actX - (scale * quad->mWidth / 2),(tc->source->view->actY-yy) - (scale * quad->mHeight / 2), scale*quad->mWidth, scale*quad->mHeight, ARGB(128,0,255,0)); } }