Added the Free French nationality.

master
Pacman Ghost 5 years ago
parent 62f30bb40e
commit 3690cc06cb
  1. 2
      vasl_templates/tools/make_chapter_h_placeholders.py
  2. 4
      vasl_templates/webapp/data/default-template-pack/nationalities.json
  3. 107
      vasl_templates/webapp/data/ordnance/free-french.json
  4. 258
      vasl_templates/webapp/data/vehicles/free-french.json
  5. 10
      vasl_templates/webapp/data/vehicles/russian.lend-lease.json
  6. BIN
      vasl_templates/webapp/static/images/flags/free-french.png
  7. 3
      vasl_templates/webapp/static/main.js
  8. 4
      vasl_templates/webapp/static/snippets.js
  9. 3
      vasl_templates/webapp/templates/vo-report.html
  10. 3
      vasl_templates/webapp/tests/fixtures/vasl-pieces.txt
  11. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1940.txt
  12. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1941.txt
  13. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1942.txt
  14. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1943.txt
  15. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1944.txt
  16. 26
      vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/free-french/1945.txt
  17. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1940.txt
  18. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1941.txt
  19. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1942.txt
  20. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1943.txt
  21. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1944.txt
  22. 56
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/free-french/1945.txt
  23. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1940.txt
  24. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1941.txt
  25. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1942.txt
  26. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1943.txt
  27. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt
  28. 10
      vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt
  29. 39
      vasl_templates/webapp/vo.py

@ -59,7 +59,7 @@ def make_chapter_h_placeholders( output_fname, log=None \
nat = os.path.splitext( fname2 )[0]
if nat == "common":
nat = os.path.split( dname2 )[1]
if nat in ("british-commonwealth-forces-korea","cvpa","kpa","us-rok-ounc","un-forces"):
if nat in ("free-french","british-commonwealth-forces-korea","cvpa","kpa","us-rok-ounc","un-forces"):
continue
notes, ma_notes = load_vo_data( fname, nat )
if nat not in results:

@ -24,6 +24,10 @@
"display_name": "French",
"ob_colors": [ "#a2ddff","#41a5ff", "#41a5ff" ]
},
"free-french": {
"display_name": "Free French",
"ob_colors": [ "#a2ddff","#41a5ff", "#41a5ff" ]
},
"italian": {
"display_name": "Italian",

@ -0,0 +1,107 @@
[
{ "id": "ff/o:000",
"copy_from": "fr/o:000"
},
{ "id": "ff/o:001",
"copy_from": "br/o:000",
"note_number": "Fr 22\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:002",
"copy_from": "fr/o:001",
"name": "Mortier de 60 mle 35(f)"
},
{ "id": "ff/o:003",
"copy_from": "am/o:000",
"note_number": "Fr 22",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:004",
"copy_from": "br/o:002",
"note_number": "Fr 22\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:005",
"copy_from": "fr/o:002",
"name": "Mortier de 81 mle 27/31(f)"
},
{ "id": "ff/o:006",
"copy_from": "am/o:002",
"note_number": "Fr 22",
"notes": [ "Fr D", "Fr Y\u2020" ]
},
{ "id": "ff/o:007",
"copy_from": "fr/o:003",
"name": "Boys ATR"
},
{ "id": "ff/o:008",
"copy_from": "br/o:004",
"note_number": "Fr 23\u2020<sup>1</sup>",
"notes": [ "Fr V", "Fr W\u2020" ]
},
{ "id": "ff/o:009",
"copy_from": "fr/o:005",
"name": "Canon AC de 47 SA 37 APX(f)"
},
{ "id": "ff/o:010",
"copy_from": "br/o:006",
"note_number": "Fr 24",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:011",
"copy_from": "am/o:006",
"note_number": "Fr 24",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/o:012",
"copy_from": "br/o:010",
"note_number": "Fr 25\u2020<sup>1</sup>",
"notes": [ "Fr V", "Fr W\u2020" ]
},
{ "id": "ff/o:013",
"copy_from": "br/o:013",
"note_number": "Fr 26\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:014",
"copy_from": "am/o:013",
"note_number": "Fr 27",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/o:015",
"copy_from": "am/o:014",
"note_number": "Fr 27",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/o:016",
"copy_from": "br/o:017",
"note_number": "Fr 28\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:017",
"copy_from": "am/o:017",
"note_number": "Fr 29",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/o:018",
"copy_from": "am/o:018",
"note_number": "Fr 29",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/o:019",
"copy_from": "fr/o:017",
"name": "Mitrailleuse de 13.2 CAJ"
},
{ "id": "ff/o:020",
"copy_from": "br/o:022",
"note_number": "Fr 30",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/o:021",
"copy_from": "am/o:023",
"note_number": "Fr 30",
"notes": [ "Fr Y\u2020" ]
}
]

@ -0,0 +1,258 @@
[
{ "id": "ff/v:000",
"name": "H39(f)",
"copy_from": "fr/v:009"
},
{ "id": "ff/v:002",
"copy_from": "am/v:004",
"note_number": "Fr 37\u2020<sup>1</sup>",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:003",
"copy_from": "fr/v:010",
"name": "H39(L)(f)"
},
{ "id": "ff/v:004",
"copy_from": "fr/v:012",
"name": "R35(L)(f)"
},
{ "id": "ff/v:005",
"copy_from": "br/v:017",
"note_number": "Fr 38",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:006",
"copy_from": "br/v:019",
"note_number": "Fr 38",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:007",
"copy_from": "am/v:007",
"note_number": "Fr 39",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:008",
"copy_from": "am/v:008",
"note_number": "Fr 39\u2020",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:009",
"copy_from": "am/v:009",
"note_number": "Fr 39\u2020<sup>1</sup>",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:010",
"copy_from": "am/v:012",
"note_number": "Fr 40",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:011",
"copy_from": "am/v:016",
"note_number": "Fr 40",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:012",
"copy_from": "am/v:018",
"note_number": "Fr 40",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:013",
"copy_from": "am/v:019",
"note_number": "Fr 40",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:014",
"copy_from": "fr/v:017",
"name": "S35(f)"
},
{ "id": "ff/v:015",
"copy_from": "fr/v:018",
"name": "B1-bis(f)"
},
{ "id": "ff/v:016",
"copy_from": "am/v:024",
"note_number": "Fr 41",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:017",
"copy_from": "br/v:059",
"note_number": "Fr 42\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:018",
"copy_from": "fr/v:020"
},
{ "id": "ff/v:019",
"copy_from": "am/v:041",
"note_number": "Fr 43\u2020<sup>1</sup>",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:020",
"copy_from": "am/v:042",
"note_number": "Fr 43\u2020<sup>1</sup>",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:021",
"copy_from": "br/v:070",
"note_number": "Fr 44",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:022",
"copy_from": "br/v:071",
"note_number": "Fr 44",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:023",
"copy_from": "br/v:072",
"note_number": "Fr 45",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:024",
"copy_from": "am/v:044",
"note_number": "Fr 43",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:025",
"copy_from": "am/v:045",
"note_number": "Fr 46",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:026",
"copy_from": "am/v:046",
"note_number": "Fr 46",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:027",
"copy_from": "am/v:037",
"note_number": "Fr 47",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:028",
"copy_from": "am/v:028",
"note_number": "Fr 47",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:029",
"copy_from": "am/v:029",
"note_number": "Fr 47",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:030",
"copy_from": "br/v:090",
"name": "M5",
"note_number": "Fr 47\u2020",
"notes": [ "Fr U" ],
"gpid": [ 1895 ]
},
{ "id": "ff/v:031",
"copy_from": "br/v:092",
"name": "M5A1",
"note_number": "Fr 47\u2020",
"notes": [ "Fr U" ],
"gpid": [ 1897 ]
},
{ "id": "ff/v:032",
"copy_from": "br/v:091",
"name": "M9",
"note_number": "Fr 47\u2020",
"notes": [ "Fr U" ],
"gpid": [ 1903 ]
},
{ "id": "ff/v:036",
"copy_from": "br/v:094",
"note_number": "Fr 48\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:037",
"copy_from": "br/v:095",
"note_number": "Fr 48\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:038",
"copy_from": "br/v:096",
"note_number": "Fr 48\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:039",
"copy_from": "br/v:097",
"note_number": "Fr 48\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:040",
"copy_from": "fr/v:042"
},
{ "id": "ff/v:041",
"copy_from": "fr/v:031",
"name": "Ac de 25 CA(f)"
},
{ "id": "ff/v:042",
"copy_from": "fr/v:026"
},
{ "id": "ff/v:043",
"copy_from": "fr/v:032"
},
{ "id": "ff/v:044",
"copy_from": "fr/v:033",
"name": "Ac de 75 mle 13/34(f)"
},
{ "id": "ff/v:045",
"copy_from": "br/v:118",
"note_number": "Fr 49",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:046",
"copy_from": "br/v:122",
"name": "Jeep(a)",
"note_number": "Fr 50\u2020<sup>1</sup>",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:047",
"copy_from": "br/v:119",
"note_number": "Fr 50",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:048",
"copy_from": "br/v:120",
"note_number": "Fr 50",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:049",
"copy_from": "br/v:121",
"note_number": "Fr 50",
"notes": [ "Fr W\u2020" ]
},
{ "id": "ff/v:050",
"copy_from": "am/v:058",
"name": "Jeep",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:051",
"copy_from": "am/v:057",
"name": "Jeep GPA",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:052",
"copy_from": "am/v:059",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:053",
"copy_from": "am/v:060",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:054",
"copy_from": "am/v:061",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
},
{ "id": "ff/v:055",
"copy_from": "am/v:062",
"note_number": "Fr 51",
"notes": [ "Fr Y\u2020" ]
}
]

@ -138,27 +138,27 @@
},
{ "id": "ru/v:094",
"copy_from": "br/v:123",
"note_number": "Br 85",
"note_number": null,
"extra_notes": [ "LL" ]
},
{ "id": "ru/v:095",
"copy_from": "br/v:124",
"note_number": "Br 85",
"note_number": null,
"extra_notes": [ "LL" ]
},
{ "id": "ru/v:096",
"copy_from": "br/v:125",
"note_number": "Br 85",
"note_number": null,
"extra_notes": [ "LL" ]
},
{ "id": "ru/v:097",
"copy_from": "br/v:126",
"note_number": "Br 85",
"note_number": null,
"extra_notes": [ "LL" ]
},
{ "id": "ru/v:084",
"copy_from": "am/v:056",
"note_number": "US 52\u2020",
"note_number": null,
"extra_notes": [ "LL" ],
"gpid": 7120
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

@ -657,7 +657,8 @@ function on_player_change( player_no )
// show/hide the vehicle/ordnance multi-applicable notes controls
function update_ma_notes_controls( vo_type ) {
var show = ( gVehicleOrdnanceNotes[vo_type] && gVehicleOrdnanceNotes[vo_type][player_nat] ) ||
["allied-minor","axis-minor"].indexOf( gTemplatePack.nationalities[ player_nat ].type ) !== -1 ;
["allied-minor","axis-minor"].indexOf( gTemplatePack.nationalities[ player_nat ].type ) !== -1 ||
player_nat === "free-french" ;
var $fieldset = $( "#tabs-ob" + player_no + " fieldset[name='ob_" + vo_type + "_" + player_no ) ;
$fieldset.find( ".snippets-notes" ).css( "display", show?"block":"none" ) ;
$fieldset.find( "label[for='ob']" ).css( "display", show?"inline-block":"none" ) ;

@ -392,7 +392,7 @@ function get_vo_note_key( vo_entry )
if ( ! vo_entry.note_number )
return null ;
// NOTE: There are some note numbers of the form "1.2" :-/ We also need to handle redirects.
var match = vo_entry.note_number.match( new RegExp( "^((Br|US) )?([0-9]+(.\\d)?)" ) ) ;
var match = vo_entry.note_number.match( new RegExp( "^((Br|US|Fr) )?([0-9]+(.\\d)?)" ) ) ;
if ( ! match )
return null ;
var key = match[0] ;
@ -407,7 +407,7 @@ function make_vo_note_key_url( vo_type, nat, key )
return null ;
// check for redirects
var match = key.match( /^(Br|US) (.+)$/ ) ;
var match = key.match( /^(Br|US|Fr) (.+)$/ ) ;
if ( match ) {
nat = MA_NOTE_REDIRECTS[ match[1] ] ;
key = match[2] ;

@ -71,7 +71,8 @@ function load_vo_listings( objs )
buf.push( "<td>", listval(capabilities) ) ;
var capabilities = make_capabilities( false, obj, nat, false, theater, year, month, true ) ;
buf.push( "<td>", listval(capabilities) ) ;
buf.push( "<td>", "<span class='val'>" + fmtval(obj.note_number) + "</span>" ) ;
var note_number = obj.note_number ? "<span class='val'>" + fmtval(obj.note_number) + "</span>" : fmtval("") ;
buf.push( "<td>", note_number ) ;
buf.push( "<td>", listval(obj.notes) ) ;
buf.push( "<td>", obj.comments ? listval(obj.comments) : "" ) ;
}

@ -497,6 +497,9 @@
1836 Peugeot 202 fr/veh/peugeot
1837 Citroen 23 fr/veh/citroen
1839 Renault AGR2 fr/veh/renagr
1895 M5 ht fr/veh/m5
1897 M5A1 ht fr/veh/m5a1
1903 M9 ht fr/veh/m9
1982 40 MTR ch/chM40 ch/chM40b
1983 45* MTR(i) <41 ch/chM45 ch/chM45b
1984 45* MTR(i) ch/chM452 ch/chM45b

@ -0,0 +1,26 @@
=== ordnance/free-french/1940 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,26 @@
=== ordnance/free-french/1941 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 s8† Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,26 @@
=== ordnance/free-french/1942 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† IR† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,26 @@
=== ordnance/free-french/1943 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† IR† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,26 @@
=== ordnance/free-french/1944 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† IR† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU HE8† Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,26 @@
=== ordnance/free-french/1945 ===
Name Capabilities (effective) # Notes Comments
--------------------------- ------------------------------ ------------------ --------- -------------------- ----------------------
LG de 50 mle 37(f) 2PP 2PP Fr 1 Fr A Fr B Fr C† Fr E crewed†
OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 Fr 22†[1] Fr W†
Mortier de 60 mle 35(f) 5PP no OBA† IR[2+]† 5PP no OBA† IR† Fr 2† Fr A Fr B Fr V
M2 60mm Mortar IR WP7[5] 5PP OBA† IR WP7 5PP OBA† Fr 22 Fr W†
OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† Fr 22†[1] Fr W†
Mortier de 81 mle 27/31(f) QSU s8 QSU s8 Fr 3† Fr A Fr B Fr D Fr V
M1 81mm Mortar QSU WP8 QSU WP8 Fr 22 Fr D Fr Y†
Boys ATR 1PP 1PP Fr 4† Fr B
OQF 25mm Hotchkiss QSU QSU Fr 23†[1] Fr V Fr W†
Canon AC de 47 SA 37 APX(f) QSU APCR only†[1] QSU APCR only†[1] Fr 6†[1] Fr B Fr G† Fr P Fr V
OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU D7† HE8† Fr 24 Fr W†
M1 57mm AT Gun QSU D4[J4+E]† HE7[J4E]7[5]† QSU D4† HE7† Fr 24 Fr Y†
Canon de 75 mle 1897 QSU s8 QSU s8 Fr 25†[1] Fr V Fr W†
OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 Fr 26†[1] Fr W†
M2A1 105mm Howitzer C7[4+P]†[1] H6 WP8 s7 H6 WP8 s7 Fr 27 Fr Y†
M3 105mm Howitzer C7[P]†[1] H7 WP8 s7 H7 WP8 s7 Fr 27 Fr Y†
OBL 5.5-in. Gun-Howitzer Fr 28†[1] Fr W†
M1 155mm Howitzer WP8 s7 WP8 s7 Fr 29 Fr Y†
M1918M1 155mm Gun RFNM AP4†[1] WP8 RFNM AP4†[1] WP8 Fr 29 Fr Y† No IF.
Mitrailleuse de 13.2 CAJ 2 TK DR†[1] 2 TK DR†[1] Fr 18†[1] Fr B Fr G† Fr V Towing NA†<sup>1</sup>
OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr W†
M1 40mm AA Gun LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] Fr 30 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1940 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1941 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1942 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1943 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1944 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] sM5 CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] sM5 CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] sM5 CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 sD4† CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 C4†[1] H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -0,0 +1,56 @@
=== vehicles/free-french/1945 ===
Name Capabilities (effective) # Notes Comments
------------------------ ----------------------------------------- --------------------------------------- --------- -------------------------------------------------------------------------------------- ----------
H39(f) ® AP10 CS 2 ® AP10 CS 2 Fr 7† Fr A†<sup>1</sup> Fr C Fr F
M5A1 C7†[2] CS 4 C7†[2] CS 4 Fr 37†[1] Fr Y†
H39(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
R35(L)(f) ® AP10 CS 2 ® AP10 CS 2 Fr 8† Fr A†<sup>1</sup> Fr C Fr E Fr F
Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] Fr 38 Fr W†
Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] HE7†[1] sD7 sM8†[2] CS 3[brewup] Fr 38 Fr W†
M4 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] WP7†[3] s5 sM5 CS 5[brewup] Fr 39 Fr Y†
M4A1 WP7[J4+]†[3] s5[J4+] sM5[4+] CS 5[brewup] WP7†[3] s5 sM5 CS 5[brewup] Fr 39† Fr Y†
M4A2 WP7[J4+]†[2] s5[J4+] sM5[4+] CS 5[brewup] WP7†[2] s5 sM5 CS 5[brewup] Fr 39†[1] Fr Y†
M4A3(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 A5†[2] s5 sM8 CS 6 Fr 40 Fr Y†
M4A3(105) C7[P]†[1] H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 Fr 40 Fr Y†
M4 Tankdozer WP7 s5 sM6 CS 5[brewup] WP7 s5 sM6 CS 5[brewup] Fr 40 Fr Y†
S35(f) ®9†[1] CS 4 ®9†[1] CS 4 Fr 12† Fr A†<sup>3</sup> Fr C Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
B1-bis(f) ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] ®9†[1] no IF[75]† AP9[75]† CS 5[brewup] Fr 13† Fr A†<sup>4</sup> Fr B†<sup>3</sup> Fr C Fr E Fr F Fr I†<sup>2</sup> Fr R†<sup>1</sup>
M10 GMC A5[A4E]6[5E]†[1] s5[5] sP5 CS 7 A6†[1] s5 sP5 CS 7 Fr 41 Fr Y†
Daimler sD4[4+]† CS 2 sD4† CS 2 Fr 42†[1] Fr W†
AM Dodge(a) AP10 CS 6† AP10 CS 6† Fr 15† Fr F
M3A1 CS 4 CS 4 Fr 43†[1] Fr Y†
M20 sP5 CS 4 sP5 CS 4 Fr 43†[1] Fr Y†
Marmon-Herrington III ME CS 4 CS 4 Fr 44 Fr W†
Marmon-Herrington IIIv CS 4 CS 4 Fr 44 Fr W†
Humber II sD6 CS 3 sD6 CS 3 Fr 45 Fr W†
M8 C7†[2] sP5 CS 4 C7†[2] sP5 CS 4 Fr 43 Fr Y†
M8 HMC C4[4+]†[1] H9 WP9 CS 5 C4†[1] H9 WP9 CS 5 Fr 46 Fr Y†
M7 HMC C7[P]†[1] H7 WP8 s7 CS 7 H7 WP8 s7 CS 7 Fr 46 Fr Y†
T30 HMC AP7 H5 WP9 CS 4 AP7 H5 WP9 CS 4 Fr 47 Fr Y†
M2 CS 4 CS 4 Fr 47 Fr Y†
M3 CS 5 CS 5 Fr 47 Fr Y†
M5 cs 5†[1] cs 5†[1] Fr 47† Fr U
M5A1 cs 5† cs 5† Fr 47† Fr U
M9 cs 4†[1] cs 4†[1] Fr 47† Fr U
Carrier A sD5[4+]†[1] CS 3 sD5†[1] CS 3 Fr 48†[1] Fr W†
Carrier B sD5[4+]†[2] CS 3 sD5†[2] CS 3 Fr 48†[1] Fr W†
Carrier C sD5[4+]†[1] CS 3 sD5†[1] CS 3 Fr 48†[1] Fr W†
Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 Fr 48†[1] Fr W†
Carrier AC(b) CS 3 CS 3 Fr 31† Fr F Fr M†<sup>1</sup>
Ac de 25 CA(f) CS 4 CS 4 Fr 21† Fr F Fr AA†<sup>1</sup>
Ac de 75 Conus(b) s8 CS 5 s8 CS 5 Fr 20† Fr F Fr M†<sup>1</sup>
Ac de 40 CA(a) CS 4 CS 4 Fr 22 Fr E Fr F Fr M† Fr AA†<sup>1</sup>
Ac de 75 mle 13/34(f) CS 7 CS 7 Fr 23† Fr D†<sup>1</sup> Fr F Fr AA†<sup>2</sup>
Quad FAT CS 5[brewup]† CS 5[brewup]† Fr 49 Fr W†
Jeep(a) cs 2†[1] cs 2†[1] Fr 50†[1] Fr W†
15-cwt Truck cs 5 cs 5 Fr 50 Fr W†
30-cwt Lorry cs 6 cs 6 Fr 50 Fr W†
3-Ton Lorry cs 7 cs 7 Fr 50 Fr W†
Jeep cs 2†[1] cs 2†[1] Fr 51 Fr Y†
Jeep GPA cs 2 cs 2 Fr 51 Fr Y†
&#190;-Ton cs 4 cs 4 Fr 51 Fr Y†
1&#189;-Ton cs 6 cs 6 Fr 51 Fr Y†
2&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†
7&#189;-Ton cs 7 cs 7 Fr 51 Fr Y†

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 CS 3
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 CS 3
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 CS 3
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 CS 3
Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 sD5†[1] C
Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -95,11 +95,11 @@ Carrier C sD5[4+]†[1] CS 3 sD5†[1] C
Carrier, MMG A sD5[4+]†[2] CS 3 sD5†[2] CS 3 57 Br N Br P Br Q†<sup>1</sup> Br U†<sup>2</sup> LL
Carrier, MMG B sD5[4+]†[2] CS 4 sD5†[2] CS 4 57 Br U†<sup>2</sup> Br BB†<sup>1</sup> LL
Jeep(a) cs 2 cs 2 58 H† L†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 Br 85 Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 Br 85 Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 Br 85 Br A Br N LL
DUKW cs 7†[1] cs 7†[1] US 52† US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
&#190;-Ton Truck(a) cs 4 cs 4 n/a Br A Br N LL
1&#189;-Ton Truck(a) cs 6 cs 6 n/a Br A Br N LL
2&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
7&#189;-Ton Truck(a) cs 7 cs 7 n/a Br A Br N LL
DUKW cs 7†[1] cs 7†[1] n/a US D†<sup>3</sup> US O†<sup>2</sup> US CC†<sup>1</sup> LL
BT-2A ® C5†[2] CS 3 ® C5†[2] CS 3 1† C†<sup>2</sup> Ru M†<sup>1</sup> CMG 2:00 from MA
BT-2A(L) ® C6†[2] CS 3 ® C6†[2] CS 3 2† C†<sup>2</sup> Ru M†<sup>1</sup>
BT-2B ® CS 3 ® CS 3 3† Ru M†<sup>1</sup> 2 TK DR (MG)

@ -121,14 +121,13 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too-
return listings
def _copy_vo_entry( placeholder_vo_entry, src_vo_entry ):
def _copy_vo_entry( placeholder_vo_entry, src_vo_entry ): #pylint: disable=too-many-branches
"""Create a new vehicle/ordnance entry by copying an existing one."""
# Anjuna, India (FEB/19)
# create the new vehicle/ordnance entry
new_vo_entry = copy.deepcopy( src_vo_entry )
new_vo_entry["id"] = placeholder_vo_entry["id"]
if "note_number" in placeholder_vo_entry:
new_vo_entry["note_number"] = placeholder_vo_entry["note_number"]
if "name" in placeholder_vo_entry:
new_vo_entry["name"] = placeholder_vo_entry["name"]
if "gpid" in placeholder_vo_entry:
@ -137,19 +136,33 @@ def _copy_vo_entry( placeholder_vo_entry, src_vo_entry ):
if not isinstance( new_vo_entry["gpid"], list ):
new_vo_entry["gpid"] = [ new_vo_entry["gpid"] ]
new_vo_entry["gpid"].extend( placeholder_vo_entry["extra_gpids"] )
# fixup any multi-applicable notes
if "notes" in new_vo_entry:
vo_id = placeholder_vo_entry[ "copy_from" ]
if vo_id.startswith( "br/" ):
prefix = "Br"
elif vo_id.startswith( "am/" ):
prefix = "US"
else:
logging.warning( "Unexpected vehicle/ordnance reference nationality: %s", vo_id )
prefix = ""
# fixup any note numbers and multi-applicable notes
vo_id = placeholder_vo_entry[ "copy_from" ]
if vo_id.startswith( "br/" ):
prefix = "Br"
elif vo_id.startswith( "am/" ):
prefix = "US"
elif vo_id.startswith( "fr/" ):
prefix = "Fr"
else:
logging.warning( "Unexpected vehicle/ordnance reference nationality: %s", vo_id )
prefix = ""
if "note_number" in placeholder_vo_entry:
# replace the note# with the explicitly-defined one
new_vo_entry["note_number"] = placeholder_vo_entry["note_number"]
else:
# fixup the note# from the original vehicle/ordnance
new_vo_entry["note_number"] = "{} {}".format( prefix, new_vo_entry["note_number"] )
if "notes" in placeholder_vo_entry:
# replace the multi-applicable notes with the explicitly-defined ones
new_vo_entry["notes"] = placeholder_vo_entry["notes"]
elif "notes" in new_vo_entry:
# fixup the multi-applicable notes from the original vehicle/ordnance
new_vo_entry["notes"] = [ "{} {}".format( prefix, n ) for n in new_vo_entry["notes"] ]
if "extra_notes" in placeholder_vo_entry:
new_vo_entry["notes"].extend( placeholder_vo_entry["extra_notes"] )
return new_vo_entry
def _apply_extn_info( listings, extn_fname, extn_info, vo_index, vo_type ):

Loading…
Cancel
Save