Flight Unlimited III high resolution terrain processing workshop

noncommercial FU3 support page - just to keep FU3 flying !

Moving Ground Object Viewer/Editor for Flight Unlimited III

managing moving ground objects

Moving Ground Objects in FU3 are independent of the Megatile name and just defined using the UTM coordinates. So far it must be possible to go even outside the region rectangle. The models are moving on the surface but can go in the air or underground also. All moving objects are defined in movgrobj.dat files placed in the model subfolder of each scenery package or for the hard coded objects in the /models folder of the region.

FLED moving ground objects orted by Index

Ordering by Model shows how often the same model has been used.

FLED moving ground objects orted by Model

Ordering by the unique Object Name let's you find it quicker.

FLED moving ground objects orted by Object Name

You can download Moving Ground Object Viewer/Editor v1.2 (234KB) right here.

You are using this freeware tool at your own responsibility !

Backup your movgrobj.dat before using this tool !

All load and save operations are using a file dialog box. You can work outside of the fu3 area.

Moving Ground Objects management inside FLED is rather poor, but using this utility you can
  1. Load and view the FLED movgrobj.dat as tree view.
  2. Sort the Objects by Object name, Model name or Index
  3. Clone the selected Object, then edit to modify the Object Name
  4. Edit the Parameter on the selected Object as inside FLED
  5. Move the Object Path to another location
  6. Generate a simple long distance path or spiral path
  7. Selecting by check mark the Objects you want save in the movgrobj.dat file
  8. Save the result back to movgrobj.dat or another file as binary backup
  9. Export a tab separated list of the entries usable in MS-EXCEL or MS-Access
  10. Export a single Object in a .mgo file for an Import into another movgrobj.dat file
  11. Now you can create a collection of single moving ground objects stored in .mgo files

The Object Name must be unique in the modgrobj.dat file! Take care of this. The Model Name is not unique and will specify the model to use as stored in the /gen folder and the modelmip.tag file, It is the Name of the .bin file of the model without the last 0 character.

Edit Object

For a new entry just select a model and click on clone button. A copy of the selected Object is then appended at the end of the tree. Now rename the Object using the edit button and move the path using the Move to button.

Path of Object

To move the path just enter the new location in the new Start line (x - UTM Longitude, y - UTM Latitude and z elevation in meters). Entering data in the x fields of the simple path or in the Radius field of the spiral path will replace the current path by this new values. You can't have more than 100 path points in this program. The number of Object Entries are also restricted to 100. Until now this limit has never been reached. The real limit set by FU3 is unknown.

spiral path in FLED

Soaring path of a Blanik Model over the airport generated using Radius 300, Pitch 400, Turns 8.


The Structure of the movgrobj.dat file
0x0000 Header: 4 bytes integer, value 5 as file type ?
0x0004 Header: 4 bytes integer, Number of object entries in this file
for each Object Entry:

  typedef struct _MovModel
        int            ModelNameLen;   // Length of the model name including 0x00 termination byte
        CString        ModelName;      // Model Name
        int            ObjectNameLen;  // Length of the object name including 0x00 termination byte
        CString        ObjectName;     // Unique Name of the Object
        double         Speed;          // Speed in m/s
        double         Pause;          // seconds between turns
        int            Faced;          // Model is faced toward moving direction
        int            AutoStart;      // Will stat automatically
        int            Grounded;       // Object is grounded or not
        int            MotionType;     // Predefined path is the only working selection
        int            Repetition;     // one-way-ticket, oscillate or loop
        int            SoundNameLen;   // Length of the sound name including 0x00 termination byte
        CString        SoundName;      // Name of the attached sound waw file
        int            atDay;          // play sound at day
        int            atNight;        // play sound at night
        int            atRainy;        // play sound when rainy
        int            atFoggy;        // play sound when foggy
        double         SoundRadius;    // Distance to player to start the sound
        int            TriggerNameLen; // Length of the Trigger name including 0x00 termination byte
        CString        TriggerName;    // Model name that will trigger the move sequence.
        double         TriggerRadius;  // Trigger distance of both models
        int            Points;         // Number of Path Points
        Point          Pt[100];        // Path with a reserved space for 100 path points
                         typedef struct _Point
                           float Px;   // UTM x coordinates
                           float Py;   // UTM y coordinates
                           float Pz;   // Height above sea level in meters
                         } Point;
  } MovModel;

under construction last update 26.jul.2004

Information: André Meystre
back to FU3 Terrain Workshop      next to Managing behavior of AI Planes