Skip to content

v1.0.3

Choose a tag to compare

@rawframe-release rawframe-release released this 04 Nov 19:27
aec1d5b

1.0.3 (2026-11-04)

Fixed

  • Restore refuses a sleeping dynamic body that moves. The engine
    never writes a dynamic body that is asleep with a linear or angular
    velocity other than +0.0, but m3World_Restore used to accept one
    in a forged or damaged snapshot. The restored body then reported its
    velocity while asleep and resumed it when woken, where a body put to
    sleep through the API starts from rest. Restore now refuses such a
    snapshot with m3_errorFormat and leaves the world as it was,
    comparing each component bit for bit, so a -0.0 is refused too.
    Every snapshot the engine writes restores as before, and the check
    leaves stepping as it was.
    (#380)
  • Restore refuses a static or kinematic body that sleeps. Only a
    dynamic body falls asleep: create and every type change wake a body,
    and m3Body_SetAwake refuses any other type. m3World_Restore used
    to accept a forged or damaged snapshot with a sleeping static or
    kinematic body. It now refuses one with m3_errorFormat and leaves
    the world as it was. Every snapshot the engine writes restores as
    before, and the check leaves stepping as it was. A 1.0.2 snapshot
    steps to the same bits, so 1.0.3 restores it.
    (#392)