In this point I'll detail my findings, all of this is thanks to the open nature of Raze and the source port where exhumed support was based on.
Code: Select all
short identifier | Always DS for weapons?
short gPosX | Global x position
short gPosY | Global y position
short seqNum | Number of sequences
short*seqNum seqBegin | Starting frame of sequences
short*seqNum seqLength | Duration for each sequences
short*seqNum seqFlags | Flags for each sequences
short frameNum | Number of frames
short*frameNum frameChunk | Which chunk to use for this frame
short*frameNum frameLen | Duration of the frame on screen (new frames draw over)
short*frameNum frameFlags | 4 = Light, 128 = Weapon Action (Fire Bullet)
short chunkNum | Number of chunks
short*chunkNum chunkX | X position of chunk
short*chunkNum chunkY | Y position of chunk
short*chunkNum chunkPic | ID of sprite inside .art file
short*chunkNum chunkFlags | Flags of each chunks
short soundNum | Number of sounds
long*soundNum soundFile | Filename of the sound (8 characters each)
short svarNum | Number of sound variables
short*svarNum svarValue1 | Sound variable 1 (Unknown, may be related to volume or frame/chunk to play in)
short*svarNum svarValue2 | See Above
Chunks, Frames and Sequences:
The SEQ file is segmented into 3 major pieces, Chunks, Frames and Sequences.
Chunks are the sprites themselves, think of them as the frames in a decorate/zscript actor definition, they point to the image file and have two values that work similarly to the offset keyword.
Frames define an additional parameter for chunks and are laid out in sequence, they have a length parameter but this does not impact the duration of the whole sequence, instead, it dictates how long the frame is displayed on screen, with the following frames rendering on top, creating an overlay effect.
Sequences have a starting frame and a duration, when the sequence is called, it calls the first frame and starts playing all the subsequent frames at a constant and unmodifiable speed (seemingly 1 frame per tic), until the amount of frames played is equal to the duration of the sequence.
Bitflags are available for all 3 sections, but I have only seen Frame flags have any use, with 4 displaying the frame in full brightness and 128 calling the weapon's firing action, like firing a pistol bullet or shooting a serpent projectile, which action happens isn't defined in the seq.