close library, exile, or graveyard after we "move" cards from it.
This commit is contained in:
@@ -81,6 +81,7 @@ class GameObserver{
|
||||
int oldGamePhase;
|
||||
TargetChooser * targetChooser;
|
||||
CardDisplay * OpenedDisplay;
|
||||
GuiGameZone * guiOpenDisplay;
|
||||
DuelLayers * mLayers;
|
||||
ReplacementEffects *replacementEffects;
|
||||
vector<Player *> players; //created outside
|
||||
|
||||
@@ -98,6 +98,7 @@ GameObserver::GameObserver(WResourceManager *output, JGE* input)
|
||||
cardWaitingForTargets = NULL;
|
||||
mExtraPayment = NULL;
|
||||
OpenedDisplay = NULL;
|
||||
guiOpenDisplay = NULL;
|
||||
gameOver = NULL;
|
||||
phaseRing = NULL;
|
||||
replacementEffects = NEW ReplacementEffects();
|
||||
|
||||
@@ -151,11 +151,13 @@ void GuiGameZone::toggleDisplay()
|
||||
{
|
||||
if (showCards)
|
||||
{
|
||||
cd->zone->owner->getObserver()->guiOpenDisplay = NULL;
|
||||
showCards = 0;
|
||||
cd->zone->owner->getObserver()->OpenedDisplay = NULL;
|
||||
}
|
||||
else if(!cd->zone->owner->getObserver()->OpenedDisplay)//one display at a time please.
|
||||
{
|
||||
cd->zone->owner->getObserver()->guiOpenDisplay = this;
|
||||
showCards = 1;
|
||||
cd->init(zone);
|
||||
cd->zone->owner->getObserver()->OpenedDisplay = cd;
|
||||
|
||||
@@ -363,6 +363,16 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
|
||||
if (!card->isToken)
|
||||
to = g->players[i]->game->exile;
|
||||
}
|
||||
|
||||
|
||||
if (from == g->players[i]->game->library || from == g->players[i]->game->graveyard || from == g->players[i]->game->exile)
|
||||
{
|
||||
if (g->guiOpenDisplay)
|
||||
{
|
||||
g->ButtonPressed(g->guiOpenDisplay);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//all cards that go from the hand to the graveyard is ALWAYS a discard.
|
||||
if ((to == g->players[0]->game->graveyard || to == g->players[1]->game->graveyard) && (from == g->players[0]->game->hand || from
|
||||
@@ -370,6 +380,7 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
|
||||
{
|
||||
card->discarded = true;
|
||||
}
|
||||
|
||||
//When a card is moved from inPlay to inPlay (controller change, for example), it is still the same object
|
||||
if ((to == g->players[0]->game->inPlay || to == g->players[1]->game->inPlay) && (from == g->players[0]->game->inPlay || from
|
||||
== g->players[1]->game->inPlay))
|
||||
|
||||
Reference in New Issue
Block a user