Sets the take-off point and other information for each airbase type
The header in bytes 0-3: "0B 00 00 00" tells us there are eleven records (0B hex = 11 decimal), which must be 24 bytes each to fit the total size of the file. So we have starting at byte 4 eleven lines @ 24 bytes each.
[runways.dat loaded into AXE , with line length set to 24, and starting at byte 4 after the header, in order to see the structure of the records]
Disregard the first line, line zero. This is unused in the default file, though can be used to set up an airfld00.3dz
The remaining ten lines tell us about each of the ten default airbase file types.
With the file setup like this, line one starts with "0A".
Byte 0 and 1 is the airbase file number ("model number"). Thus 0A is airfld10.3dz, and the lines deal with the bases in this order
Line nine=05=airfld 05
Line ten=07=airfld 07
These line numbers are the key (just as the target groups in tardata.dat use as the group code, the line or record number in targets.dat).
Bytes 2 and 3 are the "runway type". This calls the appropriate takeoff/landing sounds for grass, concrete, or steel matting.
01=grass, 02=concrete, 04=steel matting - but EAW only uses the grass and concrete settings
Bytes 4 to 7 determine the maximum damage required to destroy the airfield
Bytes 8 to 11 determine runway "length"
This effectively controls the aircraft starting point on the runway (forwards or backward) from 0000 to FFFF and all points in between).
Bytes 12 to 15 determine runway "width", though it is yet unclear how we would use this.
The use of the remaining bytes in each is unclear or possibly simply unused
Determines whether an airbase appears at each airfield location in each of the four EAW years, if so the type of airbase and the orientation
This is a file with a header in bytes 0-3: "A2 00 00 00" which tells us there are 162 records, which excluding the header must each be 44 bytes long to fit the size of the file.
[the first few lines of airfield.dat set up in AXE, with line length set to 44 bytes and starting at byte 4 after the header, again showing the structure of the records]
The records again start at byte 4, "00 00 DC 78 ....".
Bytes 0 and 1 are always null.
Like bytes 4 to 19 they are used in the career.sve version of this file for apparently code data as yet undeciphered.
Bytes 2 and 3 control the orientation of the airbase 3dz. There is also a section in tardata.dat which controls orientation for ground objects, but that appears to have no effect for type 5 Tmods, airbases. Their orientation is controlled here. You can spin the airbase around the marker placed by targets.dat. 0000 points the takeoff runway north/south, and by 90 degree increments 0040 is east/west, 0080 north/south the other way and 00C0 is east/west the other way. You can have all increments inbetween.
Bytes 4 to 19 are null.
These are used in the version of airfield.dat which is saved as part of a pilot career file "career*.sve" which appears in the savedata folder. Bytes 4/5 and 6/7 contain the airbase type, and side/aircraft data contained in bytes 20/27 and 28/35 for the year of the ongoing career, bytes 8/15 contain the exact EAW world coordinates for the airbase object. Bytes 16/19 contain other yet undeciphered career data.
Bytes 20 to 27 of the form "FF FF 09 00 09 00 09 00" ontain the airbase line numbers from runways dat and therefore determine the airbase type respectively for each the four EAW years, 1940, 1943, 1944, 1945. Those "09" bytes refer to line 9 in runways.dat and the airbase type is therefore airfld05.3dz - change those 09 bytes to any of the other line numbers to change the type of airbase for that target. "FF FF" means the base doesn't appear on the map in that year. I used the FF FF setting to remove most of the airbases from the map for the Midway addon.
Bytes 28 to 35 have been cracked by Alatriste (see his excellent document on this file). These contain bit-coded bytes for each of the four EAW years designating the side and an associated aircraft.
Byte 36 and 37 in the line contain DOM's T-code, and therefore relate the airbase record to targets.dat.
Bytes 38 and 39 are always null.
Bytes 40 and 41 are not yet fully understood. Alatriste (see his notes) believes they relate to the airbases designated as Advance Landing Grounds (ALGs). The only empirical knowledge I can add to this is that by changing often null values here to "02 09" I was able to take airfields previously located in Germany, or occupied countries and dedicated to the German side, move them to France and have them used by the Allies.
Bytes 42 and 43 were cracked by Pilot Officer Prune, and relate to the nationality string in the text file "briefing.str". The data is with one exception either 00, 01, 02, 03, or 04, which relates to British, French, German, Belgian, and Durch bases. The single 06 seems to have been intended to relate to Czechoslovakia, but there is no text string for that value.
Return to RAF Chattenden