ok, spent a bit of time adding some idiot proofing, but it isn't perfict, you want to avoid haveing an animation starting while another one is in progress (though it should handel it especaly if you give good animation values)
you also want to try to give good timeing values, the +delay: is the time after the triggering event happens (in millisecond) that the animation will start, +time:4000 is how long you want the game to consiter the animation active, this is for things that will be dependent on the positions of the subobjects (for example gun banks, you don't want to be able to fire untill the models are in position). you can specify an angle in either relitive or absolute coordanants, (though I have been only useing relitive thus far, absolute probly doesn't work right now, it will by the time I get done) for convenience you specify all angle related data in degrees, this all gets converted to radians internaly however, so any code I give will be in radians
+relitive_angle: this is were the subobject is going to end at the end of the animation (unless it gets hijacked by another animation)
+velocity: this is the fastest the subobject will be rotateing, it is in degrees per second
+acceleration: this is how fast velocity will change
now you need to be carefull what you use, they realy should fit this inequality
velocity^2/acceleration > ending angle
if they don't you run the risk of over shooting the end angle and when it reaches the end of it's motion it will snap into position unrealisticly. now I have some code for catching this, if you make your velocity too high it will change it to something that will work in a simple animation (though I'm thinking I should alow people to specify invalid data to alow complex animations that on there own wouldn't work).
I'm going to commit this soon (and I got the thing you wanted goob) after I do some final checking of stuff.