Falcon 4 .TEA file
Falcon 4.0 Forum, Falcon 4 Home, Falcon 4 Campaign, Falcon 4 Cockpits, Falcon 4 Database, Falcon 4 File Formats, Falcon 4 SRTM Terrain, Falcon 4 Terrain, Falcon 4 Textures, Falcon 4 Tools
The .TEA file is one of the files embedded within a .CAM/.TRN/.TAC file. The TEA file holds information about the teams.
Unlike some other embedded files, it is not compressed.
Field | Data Type | Width (in bytes) | Description | Versions |
numTeams | Signed 16-bit integer | 2 | if numTeams >8, set it to 8 | All |
teamRecord[] | TeamRecord[numTeams] | | | All |
Structures used
TeamRecord structure
Field | Data Type | Width (in bytes) | Description | Versions |
team | Team | | | All |
atm | AirTaskingManager | | | All |
gtm | GroundTaskingManager | | | All |
ntm | NavalTaskingManager | | | All |
Team structure
Field | Data Type | Width (in bytes) | Description | Versions |
id | VU_ID | 8 | | All |
entityType | unsigned 16-bit integer | 2 | | All |
who | byte | 1 | | All |
cteam | byte | 1 | | All |
flags | Signed 16-bit integer | 2 | | All |
member[] | byte[8] | 8 | | > 2 |
member[] | byte[7] | 7 | | < = 2 |
stance[] | array of Signed 16-bit integer * 8 | 2 * 8= 16 bytes | | > 2 |
stance[] | array of Signed 16-bit integer * 7 | 2 * 7= 14 bytes | | < = 2 |
firstColonel | Signed 16-bit integer | 2 | | All |
firstCommander | Signed 16-bit integer | 2 | | All |
firstWingman | Signed 16-bit integer | 2 | | All |
lastWingman | Signed 16-bit integer | 2 | | All |
airExperience | byte | 1 | set to 80 for earlier versions (not present in the file) | > 11 |
airDefenseExperience | byte | 1 | set to 80 for earlier versions (not present in the file) | > 11 |
groundExperience | byte | 1 | set to 80 for earlier versions (not present in the file) | > 11 |
navalExperience | byte | 1 | set to 80 for earlier versions (not present in the file) | > 11 |
junk | byte[4] | 4 | covers ignoring the airExperience, airDefenseExperience, groundExperience, and navalExperience fields in earlier versions | < = 11 |
initiative | Signed 16-bit integer | 2 | | All |
supplyAvail | unsigned 16-bit integer | 2 | | All |
fuelAvail | unsigned 16-bit integer | 2 | | All |
replacementsAvail | unsigned 16-bit integer | 2 | | >53 |
playerRating | single-precision 32-bit floating point | 4 | | >53 |
lastPlayerMission | unsigned 32-bit integer | 4 | | >53 |
junk2 | byte[4] | 4 | | < 40 |
currentStats | TeamStatus | | | All |
startStats | TeamStatus | | | All |
reinforcement | Signed 16-bit integer | 2 | | All |
bonusObjs[] | VU_ID[20] | 20 * 8 = 160 bytes | | All |
bonusTime[] | array of unsigned 32-bit integer * 20 | 20 * 4 = 80 bytes | | All |
objtype_priority[] | byte[36] | 36 | | All |
unittype_priority[] | byte[20] | 20 | | All |
mission_priority[] | byte[40] | 40 | | < 30 |
mission_priority[] | byte[41] | 41 | | > = 30 |
attackTime | unsigned 32-bit integer | 4 | | < 34 |
offensiveLoss | byte | 1 | | < 34 |
max_vehicle[] | byte[4] | 4 | | All |
teamFlag | byte | 1 | | > 4 |
teamColor | byte | 1 | | > 32 |
equipment | byte | 1 | | > 4 |
name | _TCHAR[20] | 20 | | > 4 |
teamMotto | _TCHAR[200] | 200 | | > 32 |
groundAction | TeamGndAction | | | > 50 |
junk[] | byte[27] | 27 | | 42 thru 50 (inclusive) |
junk[] | byte[23] | 23 | | 34 thru 41 (inclusive) |
defensiveAirAction | TeamAirAction | | | > 33 |
offensiveAirAction | TeamAirAction | | | > 33 |
TeamAirAction structure
Field | Data Type | Width (in bytes) | Description | Versions |
actionStartTime | unsigned 32-bit integer | 4 | | All |
actionStopTime | unsigned 32-bit integer | 4 | | All |
actionObjective | VU_ID | 8 | | All |
lastActionObjective | VU_ID | 8 | | All |
actionType | byte | 1 | | All |
padding[] | byte[3] | 3 | necessary for aligning on int32 boundary | All |
TeamGndAction structure
Field | Data Type | Width (in bytes) | Description | Versions |
actionTime | unsigned 32-bit integer | 4 | | All |
actionTimeout | unsigned 32-bit integer | 4 | | All |
actionObjective | VU_ID | 8 | | All |
actionType | byte | 1 | | All |
actionTempo | byte | 1 | | All |
actionPoints | byte | 1 | | All |
TeamStatus structure
Field | Data Type | Width (in bytes) | Description | Versions |
airDefenseVehs | unsigned 16-bit integer | 2 | | All |
aircraft | unsigned 16-bit integer | 2 | | All |
groundVehs | unsigned 16-bit integer | 2 | | All |
ships | unsigned 16-bit integer | 2 | | All |
supply | unsigned 16-bit integer | 2 | | All |
fuel | unsigned 16-bit integer | 2 | | All |
airbases | unsigned 16-bit integer | 2 | | All |
supplyLevel | byte | 1 | | All |
fuelLevel | byte | 1 | | All |
AirTaskingManager structure
Field | Data Type | Width (in bytes) | Description | Versions |
id | VU_ID | 8 | | All |
entityType | unsigned 16-bit integer | 2 | | All |
managerFlags | Signed 16-bit integer | 2 | | All |
owner | byte | 1 | | All |
flags | Signed 16-bit integer | 2 | | All |
averageCAStrength | Signed 16-bit integer | 2 | if version < 63 set this to 500, not present in file | > = 63 |
averageCAMissions | Signed 16-bit integer | 2 | if version <63 set this to 500, not present in file | > = 28 |
sampleCycles | byte | 1 | if version <63 set this to 10, not present in file | > = 28 |
numAirbases | byte | 1 | | All |
airbase[] | ATMAirbase[numAirbases] | | | All |
cycle | byte | 1 | | All |
numMissionRequests | Signed 16-bit integer | 2 | | All |
junk[][] | byte[numMissionRequests][64] | (64 * numMissionRequests) bytes | | < 35 |
missionRequests[] | MissionRequest[numMissionRequests] | | | > = 35 |
MissionRequest structure
Field | Data Type | Width (in bytes) | Description | Versions |
requesterID | VU_ID | 8 | | All |
targetID | VU_ID | 8 | | All |
secondaryID | VU_ID | 8 | | All |
pakID | VU_ID | 8 | | All |
who | byte | 1 | | All |
vs | byte | 1 | | All |
padding[] | byte[2] | 2 | necessary so data lands on an Int32 boundary | All |
tot | unsigned 32-bit integer | 4 | | All |
tx | Signed 16-bit integer | 2 | | All |
ty | Signed 16-bit integer | 2 | | All |
flags | unsigned 32-bit integer | 4 | | All |
caps | Signed 16-bit integer | 2 | | All |
target_num | Signed 16-bit integer | 2 | | All |
speed | Signed 16-bit integer | 2 | | All |
match_strength | Signed 16-bit integer | 2 | | All |
priority | Signed 16-bit integer | 2 | | All |
tot_type | byte | 1 | | All |
action_type | byte | 1 | | All |
mission | byte | 1 | | All |
aircraft | byte | 1 | | All |
context | byte | 1 | | All |
roe_check | byte | 1 | | All |
delayed | byte | 1 | | > = 35 |
start_block | byte | 1 | | > = 35 |
final_block | byte | 1 | | > = 35 |
slots[] | byte[4] | 4 | | > = 35 |
min_to | byte | 1 | | > = 35 |
max_to | byte | 1 | | > = 35 |
morepadding[] | byte[3] | 3 | necessary so data lands on an Int32 boundary | > = 35 |
ATMAirbase structure
Field | Data Type | Width (in bytes) | Description | Versions |
id | VU_ID | 8 | | All |
schedule[] | byte[32] | 32 | | All |
GroundTaskingManager structure
Field | Data Type | Width (in bytes) | Description | Versions |
id | VU_ID | 8 | | All |
entityType | unsigned 16-bit integer | 2 | | All |
managerFlags | Signed 16-bit integer | 2 | | All |
owner | byte | 1 | | All |
flags | Signed 16-bit integer | 2 | | All |
NavalTaskingManager structure
Field | Data Type | Width (in bytes) | Description | Versions |
id | VU_ID | 8 | | All |
entityType | unsigned 16-bit integer | 2 | | All |
managerFlags | Signed 16-bit integer | 2 | | All |
owner | byte | 1 | | All |
flags | Signed 16-bit integer | 2 | | All |
VU_ID structure
Field | Data Type | Width (in bytes) | Description |
num_ | unsigned 32-bit integer | 4 | |
creator_ | unsigned 32-bit integer | 4 | |