3do File Structure.

The 3DO file format is used by Papyrus' racing simulators to hold information about 3D objects. These files have changed in N2, so this description is only valid for ICR, ICR2 and N1.

If you want to understand how 3DOs work, you must imagine how the SIM is reading the file, that is, if you can reproduce the steps and understand what's expected to happen, you will be able to create 3DOs from scratch.

***************************************** STRUCTURE ******************************************

Each 3DO has the same structure: Header and Body.

Before starting to explain them I must introduce the "tree" data structure, because you need to imagine the whole file. The tree is created meanwhile the SIM is reading the file, so if you draw the sequence of calls to flavors you'll have something like this:

    [16]                  1) The SIM calls the F#16
     |-[11]               2) The F#16 calls one F#11 and two F#15
     |  |-[4]             3) The F#11 calls one F#4
     |     |-[2]          4) The F#4 calls one F#2
     |        |-[0]       5) The F#2 calls three F#0
     |        |-[0]
     |        |-[0]      [16] is the "root" of the tree