Gamedata TDF Information

Last updated: 09/29/98 19:38

 ALLSOUND.TDF

The ALLSOUND.TDF file contains a list of sound mappings for certain conditions that occur during the game. These are the sounds such as the sound that is played when a button is pushed, the sound that is played when an Allied Victory is awarded, and so on. An excerpt of this file follows:

[ActivateAllStatBars]
    {
    sound=explode.wav;
    }
    [ENDGAMESTATBAR]
    {
    sound=beep6;
    }

 BUILDINFO.TDF

The BUILDINFO.TDF file contains simple information from the Total Annihilation programmers that indicates when the program itself was built. Its contents should not have any meaning to anyone outside of Cavedog.

[BuiltFor]
    {
    UserName=Kevin John Smith;
    Company=Cavedog Entertainment;
    Date= July 14, 1997;
    }

 CATEGORY.TDF

The CATEGORY.TDF does not appear to have any important significance. The contents of the file seem to indicate that this is where a list of unit categories were defined (such as "kbot", "tank", "ship", etc.), which would have meaning in the FBI file for a given unit as part of the "Category" variable definition. However, it appears that categories need not be defined in this TDF file to be used, and the lack of meaningful content in this file seems to back up this theory. Here is an exerpt from this file:

[Generic Unit]
    {
    description = Just Plain 'ol boring units;
    }
[Plant]
    {
    description = Unit Creation plant;
    }
[Vtol]
    {
    description = Some type of units;
    }

 HELP.TDF

The HELP.TDF file contains the information that is displayed to the user when he or she requests help. It contains a line-by-line description of the keyboard commands used during a game. Each line of text is specified individually, and the following segment shows:

[Help]
    {
    Line0 = CTRL+A|Select all units;
    Line1 = CTRL+C|Select the Commander;
    Line2 = CTRL+D|Destruct selected unit(s);
    Line3 = CTRL+S|Select all units currently on the screen;
    Line4 = CTRL+Z|Select all units of same type;
    .....
    }

Each line describes the keyboard sequence, and a description of what the keyboard sequence does.

 LOS.TDF

The LOS.TDF file is as big a puzzle as anything else in Total Annihilation. The contents can best be described if you look at a piece of this file:

// Line of sight tables
[TABLEINFO]
    {
    numtables=9;
    }

.....

[TABLE2]
    {
    numlines=4; // Radius of 2
    line1= 2, 0, 1, 0, 2;
    line2= 2, 0, 1, 1, 2;
    line3= 1, 1, 1;
    line4= 2, 1, 0, 2, 1;
    }

The file contains 12 tables (even though the "numtables=9;" statement seems to contradict it) that seem to describe the visible "circle" that surrounds a unit that is defined by the unit's SightDistance. The larger the sight radius, the more "lines" on the screen that are seen, and so on. However, we haven't quite figured out what all the values mean. In addition, we are curious as to whether or not these tables are helping to contribute to the current maximum allowable unit SightDistance of 400 (i.e. maybe if we can figure out how to add to this table, we can figure out how to expand the SightDistance of units).

 METEOR.TDF

The METEOR.TDF file simply describes the default settings for a meteor storm. If a map and/or mission contains settings to initiate meteor storms periodically during a game, these are the default values that are used in the event that the settings are not specified.

[Default]
    {
    MeteorWeapon = Meteor;
    MeteorRadius = 300; 	// A bit under a screen in size
    MeteorDensity = 2; 	// About two strikes per second
    MeteorDuration = 5; 	// Five seconds per strike
    MeteorInterval = 60; 	// One minute between strikes
    }

 MOVEINFO.TDF

The movement properties of many units are not defined individually. Instead, their movement properties are specified in terms of "it moves like a unit of this type). The MOVEINFO.TDF file defines these "movement classes" as the following exerpt shows:

[CLASS0]
    {
    Name=KBOTSS2;
    FootprintX=2;
    FootprintZ=2;
    MaxWaterDepth=12;
    MaxSlope=32;
    }
[CLASS1]
    {
    Name=KBOTSF2;
    FootprintX=2;
    FootprintZ=2;
    MaxWaterDepth=12;
    MaxSlope=11;
    }

Within a unit's FBI file, the movement class is specified through the use of the "MovementClass" variable (for example, the CORE Hellfire Tank specifies "MovementClass=TANKBH3;").

 SIDEDATA.TDF

The SIDEDATA.TDF file is the main description file that describes what the screen looks like for the two sides (ARM vs. CORE), and most importantly, what units can build what other units at the beginning of the game. This is notably different than the way new downloadable units are added to the build menus of existing factories and construction units.

The information in this file can be broken down into two parts: Side Information, and Can-Build Information:

Side Information

The "side information" describes what the screen looks like for each of the two sides in Total Annihilation. That is, very simply, it defines what logos are placed on the screen, where all of the other information (such as the energy bars, metal levels, names, damage bars, etc.) is placed on the screen, what colors are used, and so on. An excerpt from the first section of SIDEDATA.TDF is shown below:

[SIDE0]
    {
    name=ARM;
    nameprefix=ARM;
    commander=ARMCOM;
    intgaf=ARMINT;
    font=console;
    fontgui=armbutt;
    energycolor=208;
    metalcolor=224;

    [LOGO]
        { x1=132; y1=5; x2=152; y2=25; }

    [ENERGYBAR]
        { x1=471; y1=11; x2=592; y2=13; }
    .....
    }

This information was most likely pulled out into a text file like this by the developers for rapid repositioning and testing without the need to recompile. Other similar information for the game is found in the GUI files within the guis directory.

Canbuild Information

When a new unit is added to the game by either Cavedog, or some other 3rd party unit developer, a TDF file is typically created in a download directory that specifies what unit or factory can create the new unit, and which particular build menu does the unit appear on. This is not the case for units that were originally part of the game.

The initial build menus for the game are best described by first showing an exerpt from this file:

[CANBUILD]
    {
    [ARMCOM]
        {
        canbuild1=ARMSOLAR;
        canbuild2=ARMWIN;
        canbuild3=ARMESTOR;
        canbuild4=ARMMSTOR;
        canbuild5=ARMMEX;
        canbuild6=ARMMAKR;
        canbuild7=ARMLAB;
        .....
        }
    [ARMLAB]
        {
        canbuild1=ARMCK;
        canbuild2=ARMPW;
        canbuild3=ARMROCK;
        canbuild4=ARMHAM;
        canbuild5=ARMJETH;
        }
    .....
    }

Within the [CANBUILD] section, each unit is listed by its short name (for example, the ARM Commander is "ARMCOM"), followed by an ennumerated list of what units it can build. Each build menu item is numbered and represents one of the 6 buttons on each build menu page. Thus, items 1 through 6 are on the first build menu page, 7 through 12 are on the second build menu page, and so on.

All initial build menus for both ARM and CORE are found in this section of the SIDEDATA.TDF file.

It is not required for a unit entry to be in the CANBUILD section for a unit to be built. Therefore, the usage of this section is unknown. It may have been the method used before the current system, or just a reference for some development program used by Cavedog.

 SOUND.TDF

Just as unit movement classes are defined by the MOVEINFO.TDF file, sound catagories are defined in a similar manner in the SOUND.TDF file. A unit is assigned a particular sound category in its FBI file using the "SoundCategory" variable. For example, the CORE Hellfire Tank's FBI file contains the statement "SoundCategory=CORE_TANK;".

[CORE_TANK]
    {
    select1=tcorsel;
    ok1=tcormove;
    arrived1=tcorst0p;
    cant1=cantdo4;
    underattack=warning1;
    count5=count1;
    count4=count2;
    count3=count3;
    count2=count4;
    count1=count5;
    count0=count6;
    canceldestruct=cancel2;
    }

Each variable within the SOUND.TDF file represents a different sound that the unit makes when it is selected, when it arrives at its destination, when it can't do something, etc. The value that is assigned to each sound variable represents a WAV in the sounds directory.

 TRANSLATE.TDF

Not everybody who plays Total Annihilation reads and speaks English, so a method was needed to make foreign-language translations easy for the game developers. TRANSLATE.TDF is the key to foreign-language translation. How does it work, you ask? Quite simple! Each section in this file contains a word or phrase in English, and contains the foreign-language translations, as the following example shows:

[3d]
    {
    piglatin=d3ay;
    German = 3D;
    French = 3-D;
    }
[Sound Effects Volume]
    {
    //looks like they automated pig-latin translations... poorly
    piglatin=ound Effects VolumeSay;
    German = Lautstärke der Soundeffekte;
    French = Volume effets sonores;
    }

 UNITVIEW.TDF

The UNITVIEW.TDF file is another one of those files that falls into the "we're not sure if it really does anything" category. The comment at the top of the file indicates that it is "resource data for the Total Annihilation Unit Viewer", but who knows exactly what that means. Here is the contents of the file so you can form your own opinion:

[RESOURCES]
    {
    website=www.cavedog.com/;
    logo=bitmaps\small_cavedog_logo.pcx;
    armbackground=bitmaps\armbkg.pcx;
    corebackground=bitmaps\corebkg.pcx;
    }