.rof

From Jedi Knight Wiki | JKHub
Revision as of 09:53, 22 June 2024 by NumberWan (talk | contribs) (Undo revision 8587 by 75.84.116.145 (talk))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

ROFF files (.rof) contain scripted (pre-defined) 3D transformations for entities. They are binary files. A ROFF changes the position and angles of an entity in a series of frames.

A ROFF can be used on models, brush entities, and even the camera (as at the beginning of the Nar Shaddaa Streets level in Jedi Outcast).

ROFF header

The header of a ROFF file is as follows.

char[4]  Header       // "ROFF"
int      Version      // always 2
int      Count        // number of frames in ROFF
int      FrameRate    // Frame rate (usually 0x32)
int      NumNotes

ROFF frames

The header is followed by the frames of the ROFF. Each frame defines a vector by which to transform the origin (position) of the entity, and a vector by which to transform the angles (rotation) of the entity.

float   x_delta
float   y_delta
float   z_delta
float   pitch_delta
float   yaw_delta
float   roll_delta   
int     StartNote      // always -1
int     NumNotes       // always 0