fixed a bug where CHANGELING was not giving all creature subtypes. Changelings now set creature types in MTGCardInstance::initMTGCI

moved removed it from the setType function of cardprimitive.
Issue: 501
This commit is contained in:
omegablast2002@yahoo.com
2010-10-31 16:55:05 +00:00
parent 4cfb266d14
commit 777098f763
4 changed files with 17 additions and 20 deletions
+1 -1
View File
@@ -306,7 +306,7 @@ void CardGui::alternateRender(MTGCard * card, const Pos& pos){
string s = ""; string s = "";
for (int i = card->data->types.size() - 1; i > 0; --i) for (int i = card->data->types.size() - 1; i > 0; --i)
{ {
if(card->data->basicAbilities[55]){// this avoids drawing the list of subtypes on changeling cards. if(card->data->basicAbilities[Constants::CHANGELING]){// this avoids drawing the list of subtypes on changeling cards.
s += _("Shapeshifter - "); s += _("Shapeshifter - ");
break; break;
}else{ }else{
-18
View File
@@ -186,24 +186,6 @@ void CardPrimitive::addType(char * _type_text){
void CardPrimitive::setSubtype(const string& value){ void CardPrimitive::setSubtype(const string& value){
int id = Subtypes::subtypesList->find(value); int id = Subtypes::subtypesList->find(value);
addType(id); addType(id);
if(basicAbilities[55]){//if the card is a changeling.
for(int i=Subtypes::LAST_TYPE+1;;i++){
string s = Subtypes::subtypesList->find(i);
if(!hasSubtype(i))
{
if(s == "") break;
if(s.find(" ") != string::npos) continue;
if(s == "Nothing" || s == "Swamp" || s == "Plains" || s == "Mountain" || s == "Forest" || s == "Island" || s == "Shrine" || s == "Basic" || s == "Colony" || s == "Desert" || s == "Dismiss" || s == "Equipment"
|| s == "Everglades" || s == "Grasslands" || s == "Lair" || s == "Level" || s == "Levelup" || s == "Mine" || s == "Oasis" || s == "World" || s == "Aura")
{//dont add "nothing" or land type to this card.
}else{
addType(i);
}
}
}
}
} }
void CardPrimitive::addType(int id){ void CardPrimitive::addType(int id){
+15
View File
@@ -128,6 +128,21 @@ void MTGCardInstance::initMTGCI(){
blocked = false; blocked = false;
currentZone = NULL; currentZone = NULL;
data = this; //an MTGCardInstance point to itself for data, allows to update it without killing the underlying database item data = this; //an MTGCardInstance point to itself for data, allows to update it without killing the underlying database item
if(basicAbilities[Constants::CHANGELING]){//if the card is a changeling.
for(int i=Subtypes::LAST_TYPE+1;;i++){
string s = Subtypes::subtypesList->find(i);
if(!hasSubtype(i))
{
if(s == "") break;
if(s.find(" ") != string::npos) continue;
if(s == "Nothing" || s == "Swamp" || s == "Plains" || s == "Mountain" || s == "Forest" || s == "Island" || s == "Shrine" || s == "Basic" || s == "Colony" || s == "Desert" || s == "Dismiss" || s == "Equipment"
|| s == "Everglades" || s == "Grasslands" || s == "Lair" || s == "Level" || s == "Levelup" || s == "Mine" || s == "Oasis" || s == "World" || s == "Aura") continue;
addType(i);
}
}
}
} }
+1 -1
View File
@@ -1,4 +1,4 @@
#include "PrecompiledHeader.h" #include "PrecompiledHeader.h"
#include "WFont.h" #include "WFont.h"
#include "WResourceManager.h" #include "WResourceManager.h"