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
(although the kernel doesn't care, the display might end up looking
screwy when detonations happen in just-vacated cells.)
schedule_movie(side, movie_type, args...)
The kernel calls this to request that the given type of movie be
displayed to the given side, with the given args to describe it. If the
interfaces supports this, it must arrange its own storage and handling
of movie data.
play_movies(sidemask)
The kernel calls to request that all previously-scheduled movies be run,
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.