Fixed an issue in the PonyEditor where renaming an item in a grid would replace the cell value with a String rather than a CaseInsensitiveString, leading to casting problems later.
Added a check in PonyBase.MoveOrReplace to ensure source file is readable and destination file is writable. If not a better exception message is generated.
Improve handling when returning to the screen area:

- The moving or stationary behavior will be chosen as random behaviors are, trying to use suitable candidate behaviors where possible before progressively falling back to using any behavior.
- If a pony is following a target, they are exempt from checks to ensure they are within bounds and may move outside the area if required.
- When a pony returns to the area, the setting of the movement now that they have no destination takes a flag to allow the new movement vector to preserve the magnitude of both components. This prevents the pony switching direction when they get back in bounds and immediately going back out of zone and thus getting stuck in a nasty visual loop at the boundary.
Fix some calls in Effect to Options.ScaleFactor that should've been Context.ScaleFactor.
Changed starting of effects to occur after state for location and facing was updated and the region field refreshed. This ensures the first deployed effect uses the correct pony image size when determining position and that it is deployed in the correct direction according to the facing.

Wrapped up the updating of state after a behavior change into the UpdateState method so it can be called uniformly from all interested callsites.
Fixed Pony.SetMovementWithoutDestination to ensure movement vector was zeroed if there were no allowed movement directions.
Added some general config changes from Bot-chan.
Added Fili-Second gallop animation by Bot-chan.
Added total duration for an image to information displayed in GifFramesForm.
Fixed Fili-Seconds gallop trail to only last 0.35 seconds instead of 50, as this meant the transparent images would stay around for far too long and kill performance.
Since Pony.UpdateDestination can now be called from the Start method since all state gets updated, needed to add a check to ensure the pony being targeted has a location set, otherwise it has not yet been started and so cannot be followed. Not checking this leads to NaN spreading around and causing overflows.
Version to 1.46.
Added more config changes from Bot-chan.
Added check to prevent calling CleanupSounds when finishing if DirectX is not available.
Changed PonyAnimator.PlaySounds to be extra careful when starting a new sound to ensure it is disposed immediately if an exception occurs.
Explicitly exit at the end of Main once the windowing system shuts down. This is to ensure the program exits even if another thread is keeping the process alive. This is to speculatively fix a problem where sounds would keep playing for some users even after they "close the program".
Fixed credits for Doctor Whooves' hourglass animation, which was actually done by BaldDumboRat.