runways+dat

Runways.dat

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. The remaining ten lines tell us about each of the ten airbase file types. Line one starts with "0A", and indeed

Byte 0 and 1 is the airbase file number. Thus 0A is airfld10.3dz, and the lines deal with the bases in this order

Line 0ne=0A=airfld10

Line two=09=airfld09

Line three=06=airfld06

Line four=02=airfld02

Line five=0B=airfld11

Line six=01=airfld01

Line seven=03=airfld03

Line eight=04=airfld04

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 as yet undeciphered

Bytes 4 and 5 control the aircraft starting point on the runway (forwards or backward) from 0000 to FFFF and all points in between).

Bytes 6 and 7 are as yet undeciphered

Bytes 8 and 9 are as yet undeciphered

Airfields.dat

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.