In addition to basic imaging, you can also support requests for the playing of animations or movies.
The kernel just calls schedule_movie
to create one,
and then play_movies
when it is time to run all the
movies that have been scheduled. It is up to the interface
to do something useful. Note that the kernel is not aware
of the movies' timing, so it is better not to call run_game
until all the movies have finished playing. (Yes, this would
be a good future enhancement!)
schedule_movie(side, movie_type, args...)
play_movies(sidemask)
Run all of the animations, sounds, etc that were scheduled
previously, for the sides enabled in the side mask.
It is allowable for the interface not to act on any user input
while these are playing.
Several types of movies are predefined, so your interface can
recognize them specially. These include movie_miss
,
movie_hit
, movie_death
, which are scheduled
for the appropriate outcomes of combat.