This is an old revision of the document!
.TEA file
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 | |