Filetype:BOB

The BOB files are used for storing multiple frames in a single file. Sometimes used for animation, sometimes the frames are used individually.

Frame data
For each frame in the file there is a 7 byte header:

Data
After the headers ( bytes) is the data. The size of each frame is frame_width * frame_height. The data is simple pixel data, so a color that has to be looked up in a palette.

typeX.bob
These are the character heads. They have 5 states that are used during talking.

States
The states are:


 * Normal
 * Talking 1
 * Talking 2
 * Happy
 * Angry

In game the animation for talking is Normal -> Talking 1 -> Talking 2 -> Talking 1 -> repeat

Blinking eye frame
The final frame shows only the characters eyes while blinking. The offset of where the eyes should be rendered relative to the head is not encoded in this file. The following table shows the X and Y offsets of where to render the blinking-eye-frame relative to the picture (assuming the picture is rendered at double size (ie. in 640x400, not 320x200 mode). This list was composed manually, I have not found this in the data files anywhere.

It should be noted that only the characters called through the terminal blink their eyes; suppliers do not. I'm guessing this is a bug.

Background offsets
For each background that is used for characters (see below) an offset is needed to correctly place the character head over the body seen in the background image. The offset here is to the middle of where the head is supposed to go, so to get the top-left X and Y from these coordinates, simply subtract the head width divided by two from the X and the head height divided by two from the Y. This list was created manually so might be of by a few pixels.