diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 5db57f168..fd66464a4 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -823,8 +823,17 @@ void ActionStack::Update(float dt) // game will wait for ever for the user to make a selection. if (options[Options::INTERRUPT_SECONDS].number > 0) { + int extraTime = 0; + //extraTime is a multiplier, it counts the number of unresolved stack actions + //then is used to extend the time you have to interupt. + //this prevents you from "running out of time" while deciding. + //before this int was added, it was possible to run out of time if you had 10 stack actions + //and set the timer to 4 secs. BUG FIX //http://code.google.com/p/wagic/issues/detail?id=464 + extraTime = count(NULL,NOT_RESOLVED,NULL); + if(extraTime == 0) + extraTime = 1;//we never want this int to be 0. if (timer < 0) - timer = options[Options::INTERRUPT_SECONDS].number; + timer = options[Options::INTERRUPT_SECONDS].number * extraTime; timer -= dt; if (timer < 0) cancelInterruptOffer();