XibalbaStudios/Spriter — pull request #1 by Felixyz (2013-04-22 15:47:44+00:00)
Title: Basic bone support + code comments.

Sorry this is one pretty big commit, and it mixes comments with new functionality and some minor clean-up.

Also, this is not by far the cleanest way to add bone support, but rather my attempt to add it to the existing code with as little code as possible. The xml format is still evolving and poorly documented and I just wanted to get things working. In short, this commit add the following:

* mainline.lua – extract bone_ref-data and save separately from object_refs.
* timeline.lua – load bones exactly the same way as objects
* entity.lua – during the Process step, build a bone_table which maps bone_ref ids to timeline ids (where the actual bone data is stored)
* object.lua – set z to 0 if it's nil (which it will be for bones); during interpolation, store the interpolated values for each bone, and apply to each bone or object farther down in the hierarchy. In other words, for each bone/object, first calculate its interpolated properties, then apply the (accumulated) transform from its parent bone, using the bone_table from the previous point.