Merge pull request #951 from kevlahnota/master

Show large images on grid deck view user option
This commit is contained in:
Anthony Calosa
2017-03-06 06:25:03 +08:00
committed by GitHub
12 changed files with 62 additions and 26 deletions
+5 -6
View File
@@ -7995,7 +7995,7 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Awe for the Guilds name=Awe for the Guilds
auto=all(creature[-multicolor]) cantblock ueot auto=all(creature[-multicolor;-colorless]) cantblock ueot
text=Monocolored creatures can't block this turn. text=Monocolored creatures can't block this turn.
mana={2}{R} mana={2}{R}
type=Sorcery type=Sorcery
@@ -51183,7 +51183,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Guardian of the Guildpact name=Guardian of the Guildpact
auto=protection from(*[-multicolor]) auto=protection from(*[-multicolor;-colorless])
text=Protection from monocolored text=Protection from monocolored
mana={3}{W} mana={3}{W}
type=Creature type=Creature
@@ -61893,8 +61893,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Kavu Runner name=Kavu Runner
abilities=haste auto=aslongas(creature[blue;white]|opponentBattlefield) haste <1
auto=aslongas(creature[blue;white]|opponentBattlefield) -haste
text=Kavu Runner has haste as long as no opponent controls a white or blue creature. text=Kavu Runner has haste as long as no opponent controls a white or blue creature.
mana={3}{R} mana={3}{R}
type=Creature type=Creature
@@ -115127,7 +115126,7 @@ type=Artifact
[/card] [/card]
[card] [card]
name=Sultai Charm name=Sultai Charm
auto=choice name(Destroy monocolored) destroy target(creature[-multicolor]) auto=choice name(Destroy monocolored) destroy target(creature[-multicolor;-colorless])
auto=choice name(destroy artifact or enchantment) destroy target(artifact,enchantment) auto=choice name(destroy artifact or enchantment) destroy target(artifact,enchantment)
auto=choice name(Draw 2 and discard 1) draw:2 && transforms((,newability[target(*|myhand) reject])) forever auto=choice name(Draw 2 and discard 1) draw:2 && transforms((,newability[target(*|myhand) reject])) forever
text=Choose one: -- Destroy target monocolored creature. -- Destroy target artifact or enchantment. -- Draw two cards, then discard a card. text=Choose one: -- Destroy target monocolored creature. -- Destroy target artifact or enchantment. -- Draw two cards, then discard a card.
@@ -125144,7 +125143,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Ultimate Price name=Ultimate Price
target=creature[-multicolor] target=creature[-multicolor;-colorless]
auto=destroy auto=destroy
text=Destroy target monocolored creature. text=Destroy target monocolored creature.
mana={1}{B} mana={1}{B}
+2 -1
View File
@@ -44,9 +44,10 @@ public:
CHEATMODE, CHEATMODE,
OPTIMIZE_HAND, OPTIMIZE_HAND,
CHEATMODEAIDECK, CHEATMODEAIDECK,
OSD,
BLKBORDER, BLKBORDER,
SHOWTOKENS, SHOWTOKENS,
GDVLARGEIMAGE,
OSD,
CLOSEDHAND, CLOSEDHAND,
HANDDIRECTION, HANDDIRECTION,
MANADISPLAY, MANADISPLAY,
+2
View File
@@ -273,6 +273,8 @@ public:
int cardistargetted; int cardistargetted;
bool isTargetter(); bool isTargetter();
int cardistargetter; int cardistargetter;
int forcedBorderA;
int forcedBorderB;
int myconvertedcost; int myconvertedcost;
ManaCost * computeNewCost(MTGCardInstance * card,ManaCost * oldCost, ManaCost * refCost,bool noTrinisphere = false); ManaCost * computeNewCost(MTGCardInstance * card,ManaCost * oldCost, ManaCost * refCost,bool noTrinisphere = false);
int countTrini; int countTrini;
+9
View File
@@ -2543,6 +2543,9 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name)) if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name))
continue; continue;
if (card->has(Constants::TREASON) && observer->getCurrentGamePhase() != MTG_PHASE_FIRSTMAIN)
continue;
if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1])) if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1]))
continue; continue;
@@ -2691,6 +2694,9 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name)) if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name))
continue; continue;
if (card->has(Constants::TREASON) && observer->getCurrentGamePhase() != MTG_PHASE_FIRSTMAIN)
continue;
if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1])) if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1]))
continue; continue;
@@ -2838,6 +2844,9 @@ MTGCardInstance * AIPlayerBaka::FindCardToPlay(ManaCost * pMana, const char * ty
if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name)) if (card->hasType(Subtypes::TYPE_LEGENDARY) && game->inPlay->findByName(card->name))
continue; continue;
if (card->has(Constants::TREASON) && observer->getCurrentGamePhase() != MTG_PHASE_FIRSTMAIN)
continue;
if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1])) if (card->hasType(Subtypes::TYPE_PLANESWALKER) && card->types.size() > 0 && game->inPlay->hasTypeSpecificInt(Subtypes::TYPE_PLANESWALKER,card->types[1]))
continue; continue;
+19
View File
@@ -241,6 +241,8 @@ void StackAbility::Render()
MTGCardInstance * source = ability->source; MTGCardInstance * source = ability->source;
string alt1 = source->getName(); string alt1 = source->getName();
vector<JQuadPtr> mytargetQuads; vector<JQuadPtr> mytargetQuads;
vector<MTGCardInstance*> myClones;
int fmLibrary = 0; int fmLibrary = 0;
int force = 0; int force = 0;
@@ -262,6 +264,9 @@ void StackAbility::Render()
{ {
if( ((Damageable *)(tt))->type_as_damageable == Damageable::DAMAGEABLE_MTGCARDINSTANCE ) if( ((Damageable *)(tt))->type_as_damageable == Damageable::DAMAGEABLE_MTGCARDINSTANCE )
{ {
//fill vector
myClones.push_back(((MTGCardInstance*)(tt)));
if( source->has(Constants::HIDDENFACE) && !observer->isInLibrary(((MTGCardInstance *)(tt))) ) if( source->has(Constants::HIDDENFACE) && !observer->isInLibrary(((MTGCardInstance *)(tt))) )
mytargetQuads.push_back( ((Damageable *)(tt))->getIcon() ); mytargetQuads.push_back( ((Damageable *)(tt))->getIcon() );
else if ( !source->has(Constants::HIDDENFACE) ) else if ( !source->has(Constants::HIDDENFACE) )
@@ -293,6 +298,20 @@ void StackAbility::Render()
} }
} }
//setborder test
if(myClones.size())
{
source->forcedBorderB = 1;
for(unsigned int kk = 0; kk < myClones.size(); kk++)
{
if(myClones[kk])
{
myClones[kk]->forcedBorderA = 1;
//JRenderer::GetInstance()->DrawLine(myClones[kk]->view->actX,myClones[kk]->view->actY,source->view->actX,source->view->actY,0.5f,ARGB(120, 255, 0, 0));
}
}
}
if(source->has(Constants::HIDDENFACE) && fmLibrary) if(source->has(Constants::HIDDENFACE) && fmLibrary)
force = MTGAbility::HIDDENVIEW; force = MTGAbility::HIDDENVIEW;
+4 -4
View File
@@ -270,12 +270,12 @@ void CardGui::Render()
//draw border for highlighting //draw border for highlighting
if (game) if (game)
{ {
if (card && card->isTargetted() && highlightborder) if (card && card->forcedBorderA && highlightborder)
{ {
highlightborder->SetColor(ARGB(95,255,0,0)); 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, actT, (30 * actZ + 1) / 16, 43 * actZ / 16);
} }
if (card && card->isTargetter() && highlightborder) if (card && card->forcedBorderB && highlightborder)
{ {
highlightborder->SetColor(ARGB(95,0,245,0)); 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, actT, (30 * actZ + 1) / 16, 43 * actZ / 16);
@@ -387,7 +387,7 @@ void CardGui::Render()
} }
} }
if (card && card->isTargetted()) if (card && card->forcedBorderA)
{ {
if(card->isTapped()) if(card->isTapped())
{ {
@@ -399,7 +399,7 @@ void CardGui::Render()
else 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 - (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 && card->forcedBorderB)
{ {
if(card->isTapped()) if(card->isTapped())
{ {
+2
View File
@@ -654,6 +654,8 @@ void GameObserver::gameStateBasedEffects()
{ {
zone->cards[c]->cardistargetted = 0; zone->cards[c]->cardistargetted = 0;
zone->cards[c]->cardistargetter = 0; zone->cards[c]->cardistargetter = 0;
zone->cards[c]->forcedBorderA = 0;
zone->cards[c]->forcedBorderB = 0;
} }
} }
+2 -1
View File
@@ -20,9 +20,10 @@ const string Options::optionNames[] = {
"cheatmode", "cheatmode",
"optimizedhand", "optimizedhand",
"cheatmodedecks", "cheatmodedecks",
"displayOSD",
"BlackBorder", "BlackBorder",
"ShowTokens", "ShowTokens",
"GDVLargeImages",
"displayOSD",
"closed_hand", "closed_hand",
"hand_direction", "hand_direction",
"mana_display", "mana_display",
+10 -3
View File
@@ -51,13 +51,21 @@ void GameStateOptions::Start()
// optionsList->Add(NEW OptionInteger(Options::INTERRUPTMYABILITIES, "Interrupt my abilities")); // optionsList->Add(NEW OptionInteger(Options::INTERRUPTMYABILITIES, "Interrupt my abilities"));
//this is a dev option, not meant for standard play. uncomment if you need to see abilities you own hitting the stack. //this is a dev option, not meant for standard play. uncomment if you need to see abilities you own hitting the stack.
optionsList->Add(NEW OptionInteger(Options::INTERRUPT_SECONDMAIN, "Interrupt opponent's end of turn")); optionsList->Add(NEW OptionInteger(Options::INTERRUPT_SECONDMAIN, "Interrupt opponent's end of turn"));
optionsList->Add(NEW OptionInteger(Options::SHOWTOKENS, "Show Tokens in Editor"));
optionsTabs = NEW WGuiTabMenu(); optionsTabs = NEW WGuiTabMenu();
optionsTabs->Add(optionsList); optionsTabs->Add(optionsList);
optionsList = NEW WGuiList("Misc");
optionsList->Add(NEW WGuiHeader("Card Display Options"));
//black border
optionsList->Add(NEW OptionInteger(Options::BLKBORDER, "All Black Border"));
//show tokens in editor
optionsList->Add(NEW OptionInteger(Options::SHOWTOKENS, "Show Tokens in Editor"));
//show large images
optionsList->Add(NEW OptionInteger(Options::GDVLARGEIMAGE, "Show Large Images in Grid Deck View (could crash PSP!)"));
optionsTabs->Add(optionsList);
optionsList = NEW WGuiList("Game"); optionsList = NEW WGuiList("Game");
optionsList->Add(NEW WGuiHeader("Interface Options")); optionsList->Add(NEW WGuiHeader("Interface Options"));
optionsList->Add(NEW OptionInteger(Options::BLKBORDER, "All Black Border"));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::CLOSEDHAND, "Closed hand", 1, 1, 0))); optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::CLOSEDHAND, "Closed hand", 1, 1, 0)));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::HANDDIRECTION, "Hand direction", 1, 1, 0))); optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::HANDDIRECTION, "Hand direction", 1, 1, 0)));
optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::MANADISPLAY, "Mana display", 3, 1, 0))); optionsList->Add(NEW WDecoEnum(NEW OptionInteger(Options::MANADISPLAY, "Mana display", 3, 1, 0)));
@@ -82,7 +90,6 @@ void GameStateOptions::Start()
optionsList->Add(NEW WGuiSplit(cPrf, cThm)); optionsList->Add(NEW WGuiSplit(cPrf, cThm));
optionsList->Add(cStyle); optionsList->Add(cStyle);
optionsList->Add(NEW WGuiButton(NEW WGuiHeader("New Profile"), -102, GameStateOptionsConst::kNewProfileID, this)); optionsList->Add(NEW WGuiButton(NEW WGuiHeader("New Profile"), -102, GameStateOptionsConst::kNewProfileID, this));
optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::CHEATMODE, "Enable Cheat Mode"))); optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::CHEATMODE, "Enable Cheat Mode")));
optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::OPTIMIZE_HAND, "Optimize Starting Hand"))); optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::OPTIMIZE_HAND, "Optimize Starting Hand")));
optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::CHEATMODEAIDECK, "Unlock All Ai Decks"))); optionsList->Add(NEW WDecoCheat(NEW OptionInteger(Options::CHEATMODEAIDECK, "Unlock All Ai Decks")));
+3 -9
View File
@@ -1,3 +1,4 @@
#include "PrecompiledHeader.h"
#include "GridDeckView.h" #include "GridDeckView.h"
const float GridDeckView::scroll_animation_duration = 0.3f; const float GridDeckView::scroll_animation_duration = 0.3f;
@@ -125,17 +126,10 @@ void GridDeckView::Render()
{ {
if (WResourceManager::Instance()->IsThreaded()) if (WResourceManager::Instance()->IsThreaded())
{ {
#if !defined (PSP)
WResourceManager::Instance()->RetrieveCard(mCards[i].card, RETRIEVE_NORMAL); WResourceManager::Instance()->RetrieveCard(mCards[i].card, RETRIEVE_NORMAL);
#else
WResourceManager::Instance()->RetrieveCard(mCards[i].card, RETRIEVE_THUMB);
#endif
} }
#if !defined (PSP) bool mode = options[Options::GDVLARGEIMAGE].number?false:true;
renderCard(i, 255, false, true);//for psp, use lowres images if you can. renderCard(i, 255, mode);//WARNING FOR PSP!!!
#else
renderCard(i, 255, true, true);
#endif
} }
else else
{ {
+2 -2
View File
@@ -123,7 +123,7 @@ void GuiPlay::BattleField::reset(float x, float y)
} }
void GuiPlay::BattleField::EnstackAttacker(CardView* card) void GuiPlay::BattleField::EnstackAttacker(CardView* card)
{ {
if(card->card->getObserver() && card->card->getObserver()->getCurrentGamePhase() == MTG_PHASE_COMBATDAMAGE) if(card->card->getObserver() && ((card->card->getObserver()->getCurrentGamePhase() >= MTG_PHASE_COMBATDAMAGE) && (card->card->getObserver()->getCurrentGamePhase() < MTG_PHASE_ENDOFTURN)))
return; return;
//card->x = CARD_WIDTH + 20 + (currentAttacker * (HORZWIDTH) / (attackers+1)); //card->x = CARD_WIDTH + 20 + (currentAttacker * (HORZWIDTH) / (attackers+1));
card->x = x + (CARD_WIDTH/2.5f) + baseX; card->x = x + (CARD_WIDTH/2.5f) + baseX;
@@ -140,7 +140,7 @@ void GuiPlay::BattleField::EnstackAttacker(CardView* card)
} }
void GuiPlay::BattleField::EnstackBlocker(CardView* card) void GuiPlay::BattleField::EnstackBlocker(CardView* card)
{ {
if(card->card->getObserver() && card->card->getObserver()->getCurrentGamePhase() == MTG_PHASE_COMBATDAMAGE) if(card->card->getObserver() && ((card->card->getObserver()->getCurrentGamePhase() >= MTG_PHASE_COMBATDAMAGE) && (card->card->getObserver()->getCurrentGamePhase() < MTG_PHASE_ENDOFTURN)))
return; return;
MTGCardInstance * c = card->card; MTGCardInstance * c = card->card;
if (!c) if (!c)
+2
View File
@@ -71,6 +71,8 @@ MTGCardInstance::MTGCardInstance(MTGCard * card, MTGPlayerCards * arg_belongs_to
LKItoughness = toughness; LKItoughness = toughness;
cardistargetted = 0; cardistargetted = 0;
cardistargetter = 0; cardistargetter = 0;
forcedBorderA = 0;
forcedBorderB = 0;
myconvertedcost = getManaCost()->getConvertedCost(); myconvertedcost = getManaCost()->getConvertedCost();
revealedLast = NULL; revealedLast = NULL;
MadnessPlay = false; MadnessPlay = false;