> > +                if(timeRemaining != -1.0f)
> 
>    Regarding the -1: The issue with floating point numbers and equality
>    comparison is a myth. You can and most likely will get into
>    precision/rounding issues, if you are using the result of calculations
>    or numeric literals that can not be represented exactly by the floating
>    number types involved. In all other cases using == is perfectly safe.

That is most definitely incorrect. To assure you, please observe this
example I've written http://ideone.com/8fTBlO -- notice that we're
approaching -1.0f using time decrements (we're using time decrements
here in MW as well), but we never quite hit it and thus loop forever.

-0.999981
-1.00098
-1.00198

That's the transition beyond our escape condition, which is most
definitely not safe. I would agree with rainChu here that a bool or
other form of flag should be used. To clarify, *the only time* the float
will *reliably* be -1.0f is if it's explicitly set to it. If this is the
case, we are using a float as both float and a bool; we should just add
a bool.