- Modified DeckManager class to not use a global instance anymore when used within the game engine

- Modified DuelLayers to not use a global MTGPhaseGame instance anymore
- Moved the reset of currentActionCard out of the ActionLayer render function : that fixes the remaing problematic tests in the multithreaded testsuite
- Added a method in ActionLayer converting a card ability into a menu index
- Used this new method in the game observer to log correctly AI ability actions
- Added a DumpAssert method in the game observer, it can be used to dump the game and assert in order to easy crash reproduction
- Cleaned up TargetList properties access
- Added an optimisation in GuiMana to not compute update code if the rendering is not used (multi-threaded mode)
- Added a deadlock detection in the test AI vs AI multithreaded mode
- Fixed minor bugs in test AI vs AI multithreaded mode
- Added a games/second counter in the test AI vs AI rendering
This commit is contained in:
Xawotihs
2011-11-23 19:11:48 +00:00
parent dca6d3ad38
commit 29132073de
20 changed files with 153 additions and 73 deletions
+7 -3
View File
@@ -216,8 +216,12 @@ Interruptible(observer, id), tc(tc), cost(_cost), payResult(payResult)
_source->backupTargets.clear();
if (tc)
{
for(size_t i = 0;i < tc->targets.size();i++)
_source->backupTargets.push_back(tc->targets[i]);
Targetable* t = NULL;
for(size_t i = 0;i < tc->getNbTargets();i++)
{
t = tc->getNextTarget(t);
_source->backupTargets.push_back(t);
}
}
// fill information on how the card came into this zone. Right now the quickest way is to do it here, based on how the mana was paid...
@@ -356,7 +360,7 @@ int Spell::getNbTargets()
{
if (!tc)
return 0;
return (int) (tc->targets.size());
return (int) (tc->getNbTargets());
}
void Spell::Render()