From e6aafbc8a657113685ecd59c2cbe330aace03149 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 30 Jun 2016 14:06:21 +0800 Subject: [PATCH] lastController defined when creating copies of itself --- projects/mtg/src/AllAbilities.cpp | 2 +- projects/mtg/src/MTGAbility.cpp | 1 - projects/mtg/src/MTGCardInstance.cpp | 2 -- projects/mtg/src/MTGGameZones.cpp | 1 + 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 10a17d831..7bc44bb90 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -1208,7 +1208,7 @@ AACascade::AACascade(GameObserver* observer, int _id, MTGCardInstance * _source, void AACascade::toCastCard(MTGCardInstance * thisCard) { MTGAbility *ac = NEW AACastCard(game, game->mLayers->actionLayer()->getMaxId(), thisCard, thisCard,false,false,true,"","",false,false); - MayAbility *ma1 = NEW MayAbility(game, game->mLayers->actionLayer()->getMaxId(), ac->clone(), thisCard->clone(),true); + MayAbility *ma1 = NEW MayAbility(game, game->mLayers->actionLayer()->getMaxId(), ac->clone(), thisCard,true); MTGAbility *ga1 = NEW GenericAddToGame(game, game->mLayers->actionLayer()->getMaxId(), thisCard,NULL,ma1->clone()); SAFE_DELETE(ac); SAFE_DELETE(ma1); diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 2650ea1b3..dd6c500ea 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -2802,7 +2802,6 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG vector splitCascade = parseBetween(s, "cascade:", " ", false); if (splitCascade.size()) { - Targetable * t = spell ? spell->getNextTarget() : NULL; MTGAbility * a = NEW AACascade(observer, id, card, target, splitCascade[1], NULL); a->oneShot = 1; return a; diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 2958a009c..eb20e1bb3 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -611,8 +611,6 @@ MTGCardInstance * MTGCardInstance::changeController(Player * newController,bool Player * MTGCardInstance::controller() { - if(!lastController)//if null then set the owner as the lastcontroller, prevents crashes... - lastController = owner; return lastController; } diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index ab34c5f57..421d79df4 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -564,6 +564,7 @@ MTGCardInstance * MTGGameZone::removeCard(MTGCardInstance * card, int createCopy copy->kicked = card->kicked; copy->storedCard = card->storedCard; copy->storedSourceCard = card->storedSourceCard; + copy->lastController = card->controller(); for (int i = 0; i < ManaCost::MANA_PAID_WITH_OVERLOAD +1; i++) copy->alternateCostPaid[i] = card->alternateCostPaid[i];