::::::::::::::::::::::::::::::::::: :: Mad Source File Documentation :: ::::::::::::::::::::::::::::::::::: :: ANMGEN :: ::::::::::::::::::::::::::::::::::: :: Animation (.anm) Generator :: ::::::::::::::::::::::::::::::::::: /* Description */ anmgen.exe creates animations based on information in an animation creation script (.asr) file. /* How to Use */ To generate an animation file: anmgen.exe sprite.asr sprite.anm sprite.asr is the animation creation script. sprite.anm is the generated animation. /* Creating an Animation Script */ Here is an example of an *.asr file: walk1.bmp walk2.bmp walk3.bmp climb1.bmp climb2.bmp climb3.bmp %%% walk(25) 0 1 2 climb(30, 0) 3 4 5 Each asr file has two sections separated by "%%%" The first section is for listing all the frames' filenames to be used in the sub animations. The second section is for specifying the frames in sub animations. First is the name of the sub anm, in parenthesis is the time to display each of the frames then optionally a comma and flip flags, (a value of 0 indicates no flipping, 1 = vertical flip, 2 = horizontal flip 3 = vert and horiz flip) which control how the frame is displayed, then a space, then the frame numbers separated by a space. Since sub animations referance the frame rather than copy it an animation with: walk(25) 1 2 3 4 would be the almost exactly the same size as: walk(25) 1 1 1 2 2 2 3 3 3 4 4 4 3 3 3 2 2 2 1 1 1 The first number in parenthesis after the subanm name is the approximate millisecond delay for frames in that subanm. But be aware that MAD isn't able to switch frames with a great deal of accuracy. So most likely you wouldn't notice the difference between 25 and 30. /* Note */ Each animation is made up of Frames and Sub-Animations. A sub-animation is one action that an animated sprite can perform, stored in the form of a list of frame numbers.