fix copier token image
This commit is contained in:
@@ -148,6 +148,11 @@ void CardGui::Render()
|
||||
MTGCard * fcard = MTGCollection()->getCardByName(card->name);
|
||||
quad = game->getResourceManager()->RetrieveCard(fcard, CACHE_THUMB);
|
||||
}
|
||||
if (game && card->hasCopiedToken && !quad.get())
|
||||
{
|
||||
MTGCard * tcard = MTGCollection()->getCardById(abs(card->copiedID));
|
||||
quad = game->getResourceManager()->RetrieveCardToken(tcard, CACHE_THUMB, 1, abs(card->copiedID));
|
||||
}
|
||||
if (quad.get())
|
||||
alternate = false;
|
||||
else
|
||||
@@ -1144,6 +1149,12 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder
|
||||
MTGCard * fcard = MTGCollection()->getCardByName(kcard->name);
|
||||
quad = WResourceManager::Instance()->RetrieveCard(fcard);
|
||||
}
|
||||
if (kcard->getObserver() && kcard->hasCopiedToken && !quad.get())
|
||||
{
|
||||
MTGCard * tcard = MTGCollection()->getCardById(abs(kcard->copiedID));
|
||||
quad = thumb ? WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_THUMB, 1, abs(kcard->copiedID))
|
||||
: WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_NORMAL, 1, abs(kcard->copiedID));
|
||||
}
|
||||
if (quad.get())
|
||||
{
|
||||
if (quad->mHeight < quad->mWidth)
|
||||
|
||||
@@ -261,6 +261,7 @@ int Damage::resolve()
|
||||
if ( typeOfDamage == 1 && target == source->controller()->opponent() )//add vector prowledtypes.
|
||||
{
|
||||
source->controller()->dealsdamagebycombat = 1; // for restriction check
|
||||
((MTGCardInstance*)source)->combatdamageToOpponent = true; //check
|
||||
vector<string> values = MTGAllCards::getCreatureValuesById();//getting a weird crash here. rarely.
|
||||
for (size_t i = 0; i < values.size(); ++i)
|
||||
{
|
||||
|
||||
@@ -968,6 +968,7 @@ void GameObserver::gameStateBasedEffects()
|
||||
c->wasDealtDamage = false;
|
||||
c->damageToController = false;
|
||||
c->damageToOpponent = false;
|
||||
c->combatdamageToOpponent = false;
|
||||
c->damageToCreature = false;
|
||||
c->isAttacking = NULL;
|
||||
}
|
||||
|
||||
@@ -577,6 +577,13 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe
|
||||
if(card->didattacked)
|
||||
return 0;
|
||||
}
|
||||
|
||||
check = restriction[i].find("didcombatdamagetofoe");
|
||||
if(check != string::npos)
|
||||
{
|
||||
if(!card->combatdamageToOpponent)
|
||||
return 0;
|
||||
}
|
||||
|
||||
check = restriction[i].find("ownerscontrol");
|
||||
if(check != string::npos)
|
||||
|
||||
@@ -218,6 +218,7 @@ void MTGCardInstance::initMTGCI()
|
||||
sunburst = 0;
|
||||
equipment = 0;
|
||||
auras = 0;
|
||||
combatdamageToOpponent = false;
|
||||
damageToOpponent = false;
|
||||
damageToController = false;
|
||||
damageToCreature = false;
|
||||
|
||||
@@ -263,6 +263,46 @@ JQuadPtr ResourceManagerImpl::RetrieveCard(MTGCard * card, int style, int submod
|
||||
return JQuadPtr();
|
||||
}
|
||||
|
||||
JQuadPtr ResourceManagerImpl::RetrieveCardToken(MTGCard * card, int style, int submode, int tId)
|
||||
{
|
||||
//Cards are never, ever resource managed, so just check cache.
|
||||
if (!card || options[Options::DISABLECARDS].number) return JQuadPtr();
|
||||
|
||||
submode = submode | TEXTURE_SUB_CARD;
|
||||
|
||||
//static std::ostringstream filename;
|
||||
//filename.str("");
|
||||
string filename;
|
||||
filename.reserve(4096);
|
||||
//filename << setlist[card->setId] << "/" << card->getImageName();
|
||||
filename.append(setlist[card->setId]);
|
||||
filename.append("/");
|
||||
int id = -card->getMTGId();
|
||||
if(tId)
|
||||
id = -tId;
|
||||
ostringstream imagename;
|
||||
imagename << "-" << id << "t.jpg";
|
||||
filename.append(imagename.str());
|
||||
|
||||
//Aliases.
|
||||
if (style == RETRIEVE_THUMB)
|
||||
{
|
||||
submode = submode | TEXTURE_SUB_THUMB;
|
||||
style = RETRIEVE_NORMAL;
|
||||
}
|
||||
|
||||
JQuadPtr jq = RetrieveQuad(filename, 0, 0, 0, 0, "", style, submode | TEXTURE_SUB_5551, id);
|
||||
|
||||
lastError = textureWCache.mError;
|
||||
if (jq)
|
||||
{
|
||||
jq->SetHotSpot(static_cast<float> (jq->mTex->mWidth / 2), static_cast<float> (jq->mTex->mHeight / 2));
|
||||
return jq;
|
||||
}
|
||||
|
||||
return JQuadPtr();
|
||||
}
|
||||
|
||||
int ResourceManagerImpl::AddQuadToManaged(const WManagedQuad& inQuad)
|
||||
{
|
||||
int id = mIDLookupMap.size();
|
||||
|
||||
Reference in New Issue
Block a user