Added the ability to draw a map wrapped horizontally or vertically. If you are on the edge of a map, the draw function will loop back to the other edge. This doesn’t cover the logic to wrap actors as well, but it would be suitable for a looping a background over and over, say, during a cutscene.
Added tile animations! I’ve wanted this for a long time, but I felt like I needed a new tile / cell definition structure before I could go forward with it. (In Hibernator, there was a terrain definition list, and then just a big array of integers to indicate what the terrain of each tile was supposed to be.) What I’ve opted to do instead is include the animation info in the tileset structure. The array is mostly nil, except for the offsets of tiles that should be animated. In those offsets, a table is added with the playback speed, number of frames, and a boolean to control whether the animation should play forwards, or play and then reverse back. The frames of animation start at the defined tile and step right, wrapping around to the left and down one row, and back to the very first quad if it gets that far. Each tile in the tileset can have its own parameters, but tiles of the same ID in the same scene will show the same animation frames, because the frame state is determined by a modulo of the scene’s elapsed logic ticks.
Okay, so I just noticed that GraphicsGale’s alpha transparency is working. For me, it’s been broken when running through Wine for a while. Years. Not that I’m complaining, but… what changed? Have I just been doing something wrong the whole time, maybe confusing layer transparency with frame transparency? I swear it used to not save the alpha channel.