{"push_id":662950225,"size":1,"distinct_size":1,"ref":"refs/heads/emi-chore-fixes","head":"f3ffc7e3e1c7814a7f7e87a265877657701b936f","before":"dda9f990c843bff9867f5c700788a0ec5f95597a","commits":[{"sha":"f3ffc7e3e1c7814a7f7e87a265877657701b936f","author":{"email":"9cb9952b7b1b4470e05352861c17a87a125c8c6d@plauener.de","name":"Christian Krause"},"message":"EMI: Keep time of chores and animations in sync\n\nBoth the animation components/tracks and the chores itself keep track of\nthe current time independently:\n\nanimation component:\n- AnimationStateEmi::_time\n- initialized with 0\n- after the first update() call, _time is advanced by the frametime\n\nchores:\n- Costume::_currTime\n- initialized with -1\n- during the first update() call, _currTime is set first to 0\n- during the next update() call, _currTime is advanced by the frametime\n\nEMICostume::update() updates first the chore and then all components\nwith the same frame time. This has the effect, that the internal time\nbase of the chore and the animation has always an initial offset (the\nvalue of the frametime of the first update() call).\n\nFor some costumes, the chore will pause the animation by setting the\naccording key for that animation at the end of the animation. However,\nsince the animation component has a different time base, it has already\nreached that point and may have already disabled itself entirely\n(instead of just being paused by the chore).\n\nThis bug fix let the animation set _time to 0 in the first update() call, too.\nAny consecutive update() call will advance the time by the frametime.\nThis will keep the two time bases of the chore and the animation component\nin sync.","distinct":true,"url":"https://api.github.com/repos/chkr-private/residualvm/commits/f3ffc7e3e1c7814a7f7e87a265877657701b936f"}]}