)]}'
{
  "commit": "71ab91aaa053f9648b766f225a3ea25d9fe3159f",
  "tree": "70c971f11b162288a7cdc797fa9d21a67d072042",
  "parents": [
    "8be08bbf3b1f0096af0679df8ba29bcbcc48f440"
  ],
  "author": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Tue Feb 28 11:52:38 2023 +0000"
  },
  "committer": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Tue Feb 28 11:52:38 2023 +0000"
  },
  "message": "Fix negative speeds in state machines\n\nlook commit by commit potentially, last couple of commits are running core generator\n\n\u0026 its quite a small change code wise, so it\u0027d be good to get feedback on the actual change sooner rather than later\n\nthere are at least a couple of changes in there that should make you question if this is a good idea so i expect some feedback.\n\nadd to cpp: (i just got it working in the viewer, probably broke some things)\n- [x] negative time fix\n- [x] combine state speed to determine time for state\n- [x] no longer carry spilled time into new advances\n\nadd test\n- [x] negative time fix to state machines\n- [x] negative combined time state fix to state machines\n- [ ] no longer carry spilled time into new advances @luigi-rosso i tried adding tests for this, but i was not really able to construct a state machine instance (with an animations, an animation state and the right transition) in tests I had to add a bunch of public methods all over the place, can you show me the way? probably not a blocker for merging this)\n\napply changes to rive_flutter\n- [x] run script (ran both core generator and core generator runtime, the runtime one wanted to remove a load of comments so i didnt let those bits be committed. but still.. annoying)\n\nDiffs\u003d\nbc6c6f467 Fix negative speeds in state machines (#4887)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c2ac20572482f191faa710d05041b3a9e6c79fab",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "3727ac5622bc6711921506e13ff05e3a98e24474",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "379f5d3a87ded0c610f074a3db204eb511f70286",
      "old_mode": 33188,
      "old_path": "include/rive/animation/animation_state_instance.hpp",
      "new_id": "689b8cef2746e3e10405b91aba78b720dffff8b6",
      "new_mode": 33188,
      "new_path": "include/rive/animation/animation_state_instance.hpp"
    },
    {
      "type": "modify",
      "old_id": "309c6d7cec4469194576e651c5b5af3c1bd2b6e1",
      "old_mode": 33188,
      "old_path": "include/rive/animation/linear_animation.hpp",
      "new_id": "6d8aeb5204060456ada7101dc2ae17a670159361",
      "new_mode": 33188,
      "new_path": "include/rive/animation/linear_animation.hpp"
    },
    {
      "type": "modify",
      "old_id": "e43099567783c564bd9a1037fac526cbea3c40f0",
      "old_mode": 33188,
      "old_path": "include/rive/animation/linear_animation_instance.hpp",
      "new_id": "3e645abb80bbeeca498adf1f2380ad84bcb4ed31",
      "new_mode": 33188,
      "new_path": "include/rive/animation/linear_animation_instance.hpp"
    },
    {
      "type": "modify",
      "old_id": "3465a439402258418f2351181d248f33c386245c",
      "old_mode": 33188,
      "old_path": "include/rive/animation/state_instance.hpp",
      "new_id": "549555d9bec34cf5b40ff4a4b71a90ab66e9aada",
      "new_mode": 33188,
      "new_path": "include/rive/animation/state_instance.hpp"
    },
    {
      "type": "modify",
      "old_id": "1c4063ec5e82bbfa1ed70027023999c7f92ec9a3",
      "old_mode": 33188,
      "old_path": "src/animation/animation_state_instance.cpp",
      "new_id": "a2ed1ed631a62ad21cb5b141136eccb7e9d9db61",
      "new_mode": 33188,
      "new_path": "src/animation/animation_state_instance.cpp"
    },
    {
      "type": "modify",
      "old_id": "3bbdc4a3036dc749c83cee3d0b8138ea3e45606d",
      "old_mode": 33188,
      "old_path": "src/animation/linear_animation.cpp",
      "new_id": "f9ecb399760b5373dd86f8c56e38618901ee1855",
      "new_mode": 33188,
      "new_path": "src/animation/linear_animation.cpp"
    },
    {
      "type": "modify",
      "old_id": "2e4b0f19b92762dde3d4003e9a252e41baad332f",
      "old_mode": 33188,
      "old_path": "src/animation/linear_animation_instance.cpp",
      "new_id": "0e9ea177f9484fdf5c263abad2cc60fc81912191",
      "new_mode": 33188,
      "new_path": "src/animation/linear_animation_instance.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef706274da00642af74e10093b5e1b4b83ffee71",
      "old_mode": 33188,
      "old_path": "src/animation/state_machine_instance.cpp",
      "new_id": "544aa9aa67db624dad67a5bde9664e74865e1645",
      "new_mode": 33188,
      "new_path": "src/animation/state_machine_instance.cpp"
    },
    {
      "type": "modify",
      "old_id": "caffa41586f19b5c2ccc0ac6cbbe16ed061543d6",
      "old_mode": 33188,
      "old_path": "src/animation/state_transition.cpp",
      "new_id": "5efa228ed31bd90fffd00f85128abc9ec2250120",
      "new_mode": 33188,
      "new_path": "src/animation/state_transition.cpp"
    },
    {
      "type": "modify",
      "old_id": "cdced6444120beb1ec953186626213eab3b643b8",
      "old_mode": 33188,
      "old_path": "test/animation_state_instance_test.cpp",
      "new_id": "af648d4578fde40a6f4b44a8c6c7bb7305290ad4",
      "new_mode": 33188,
      "new_path": "test/animation_state_instance_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5d61c8f466098c235ef0dedd5085af5efb227dad",
      "new_mode": 33188,
      "new_path": "test/linear_animation_test.cpp"
    }
  ]
}
