sev wrote:Yes, there are some struggles on VMD format.
To be more specific, I already figured out that VMDs are stuffed into objects when the playVMD()-Opcode gets a negative lastFrame-variable (for -3 and a few others, at least), so that the individual frames are played/drawn by the Scenery::updateAnim() during Mult::animate() (yes, I do consider that to be really hacky
).
The problem I have right now is that drawing position isn't exactly right. It's directly aligned with the tile the object is resting upon, ignoring the "feet"/anchor position of the sprite. For normal image based sprites, that anchor is stored in the sprite information structs, but they are obviously not available when doing the thing from VMDs. I suspect it has something to do with one of the unknown frame part types (0, 3, 4, 5. 1 and 2 being audio and video, respectively), but haven't yet found a clue in the disassembly (the functions are lots and not at all nice to follow).