diff --git a/chapter-h/chapter-h-placeholders.zip b/chapter-h/chapter-h-placeholders.zip index 10e359a..ad2f132 100644 Binary files a/chapter-h/chapter-h-placeholders.zip and b/chapter-h/chapter-h-placeholders.zip differ diff --git a/tools/build_file.py b/tools/build_file.py index 3e49078..670081f 100755 --- a/tools/build_file.py +++ b/tools/build_file.py @@ -102,6 +102,7 @@ def _get_pieceslot_images( node, opts ): # identify fields that look like an image path valid_prefixes = ( "ru/", "ge/", "am/", "br/", "it/", "ja/", "ch/", "sh/", "fr/", "al/", "ax/", "hu/", "fi/", "po/", "ss/", # nb: for BFP + "nk/", # nb: for K:FW ) def is_image_path( val ): """Check if a value looks like an image path.""" diff --git a/vasl_templates/main_window.py b/vasl_templates/main_window.py index 03f8dde..2919aff 100644 --- a/vasl_templates/main_window.py +++ b/vasl_templates/main_window.py @@ -87,7 +87,7 @@ class MainWindow( QWidget ): self.restoreGeometry( val ) else : self.resize( 1000, 600 ) - self.setMinimumSize( 980, 520 ) + self.setMinimumSize( 1000, 520 ) # initialize the layout layout = QVBoxLayout( self ) diff --git a/vasl_templates/tools/make_chapter_h_placeholders.py b/vasl_templates/tools/make_chapter_h_placeholders.py index 429399f..c501a19 100755 --- a/vasl_templates/tools/make_chapter_h_placeholders.py +++ b/vasl_templates/tools/make_chapter_h_placeholders.py @@ -56,10 +56,12 @@ def make_chapter_h_placeholders( output_fname, log=None \ # (instead of being copied from an existing piece), but we can live with that... :-/ continue dname2, fname2 = os.path.split( fname ) + if os.path.split( dname2 )[1] == "kfw": + continue # nb: we do these files later nat = os.path.splitext( fname2 )[0] if nat == "common": nat = os.path.split( dname2 )[1] - if nat in ("free-french","british-commonwealth-forces-korea","cvpa","kpa","us-rok-ounc","un-forces"): + if nat == "free-french" or nat.startswith("kfw-"): continue notes, ma_notes = load_vo_data( fname, nat ) if nat not in results: @@ -69,6 +71,29 @@ def make_chapter_h_placeholders( output_fname, log=None \ else: results[ nat ][ vo_type ] = { "notes": notes, "ma_notes": ma_notes } + # insert the K:FW vehicles/ordnance + kfw_vo_data = load_kfw_vo_data() + results["kfw-un"] = { + "vehicles": { + "notes": kfw_vo_data["kfw-un"]["vehicles"][0], + "ma_notes": kfw_vo_data["kfw-un"]["vehicles"][1] + }, + "ordnance": { + "notes": kfw_vo_data["kfw-un"]["ordnance"][0], + "ma_notes": kfw_vo_data["kfw-un"]["ordnance"][1] + } + } + results["kfw-comm"] = { + "vehicles": { + "notes": kfw_vo_data["kfw-comm"]["vehicles"][0], + "ma_notes": kfw_vo_data["kfw-comm"]["vehicles"][1] + }, + "ordnance": { + "notes": kfw_vo_data["kfw-comm"]["ordnance"][0], + "ma_notes": kfw_vo_data["kfw-comm"]["ordnance"][1] + } + } + # load the extensions base_dir = os.path.join( os.path.split(__file__)[0], "../webapp/data/extensions" ) for fname in glob.glob( os.path.join( base_dir, "*.json" ) ): @@ -142,6 +167,48 @@ def load_vo_data( fname, nat ): # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +def load_kfw_vo_data(): + """Load the K:FW vehicle/ordnance data files.""" + + # load the K:FW vehicles + un_veh_notes, un_veh_ma_notes = set(), set() + dname = os.path.join( os.path.split(__file__)[0], "../webapp/data/vehicles/kfw" ) + for fname in ( "us-rok-ounc.json", "bcfk.json", "un-common.json" ): + notes, ma_notes = load_vo_data( os.path.join(dname,fname), None ) + un_veh_notes.update( notes ) + un_veh_ma_notes.update( ma_notes ) + comm_veh_notes, comm_veh_ma_notes = set(), set() + for fname in ( "kpa.json", ): + notes, ma_notes = load_vo_data( os.path.join(dname,"kpa.json"), None ) + comm_veh_notes.update( notes ) + comm_veh_ma_notes.update( ma_notes ) + + # load the K:FW ordnance + un_ord_notes, un_ord_ma_notes = set(), set() + dname = os.path.join( os.path.split(__file__)[0], "../webapp/data/ordnance/kfw" ) + for fname in ( "us-rok-ounc.json", "bcfk.json", "un-common.json" ): + notes, ma_notes = load_vo_data( os.path.join(dname,fname), None ) + un_ord_notes.update( notes ) + un_ord_ma_notes.update( ma_notes ) + comm_ord_notes, comm_ord_ma_notes = set(), set() + for fname in ( "kpa.json", "cpva.json" ): + notes, ma_notes = load_vo_data( os.path.join(dname,fname), None ) + comm_ord_notes.update( notes ) + comm_ord_ma_notes.update( ma_notes ) + + return { + "kfw-un": { + "vehicles": ( un_veh_notes, un_veh_ma_notes ), + "ordnance": ( un_ord_notes, un_ord_ma_notes ) + }, + "kfw-comm": { + "vehicles": ( comm_veh_notes, comm_veh_ma_notes ), + "ordnance": ( comm_ord_notes, comm_ord_ma_notes ) + } + } + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + def load_vo_data_from_extension( fname ): """Load a vehicle/ordnance extension data file.""" diff --git a/vasl_templates/tools/tests/fixtures/chapter-h-placeholders.txt b/vasl_templates/tools/tests/fixtures/chapter-h-placeholders.txt index 60e7488..d1c4e2f 100644 --- a/vasl_templates/tools/tests/fixtures/chapter-h-placeholders.txt +++ b/vasl_templates/tools/tests/fixtures/chapter-h-placeholders.txt @@ -1049,6 +1049,171 @@ japanese/vehicles/adf-bj/b.html japanese/vehicles/adf-bj/c.html japanese/vehicles/b.html japanese/vehicles/c.html +kfw-comm/ordnance/1.png +kfw-comm/ordnance/10.png +kfw-comm/ordnance/11.png +kfw-comm/ordnance/12.png +kfw-comm/ordnance/13.png +kfw-comm/ordnance/14.png +kfw-comm/ordnance/15.png +kfw-comm/ordnance/18.png +kfw-comm/ordnance/19.png +kfw-comm/ordnance/2.png +kfw-comm/ordnance/20.png +kfw-comm/ordnance/21.png +kfw-comm/ordnance/22.png +kfw-comm/ordnance/23.png +kfw-comm/ordnance/24.png +kfw-comm/ordnance/25.png +kfw-comm/ordnance/26.png +kfw-comm/ordnance/27.png +kfw-comm/ordnance/28.png +kfw-comm/ordnance/29.png +kfw-comm/ordnance/3.png +kfw-comm/ordnance/30.png +kfw-comm/ordnance/31.png +kfw-comm/ordnance/32.png +kfw-comm/ordnance/4.png +kfw-comm/ordnance/5.png +kfw-comm/ordnance/6.png +kfw-comm/ordnance/7.png +kfw-comm/ordnance/8.png +kfw-comm/ordnance/9.png +kfw-comm/ordnance/a.html +kfw-comm/ordnance/b.html +kfw-comm/ordnance/r.html +kfw-comm/vehicles/1.png +kfw-comm/vehicles/2.png +kfw-comm/vehicles/3.png +kfw-comm/vehicles/4.png +kfw-comm/vehicles/5.png +kfw-comm/vehicles/6.png +kfw-comm/vehicles/b.html +kfw-un/ordnance/1.png +kfw-un/ordnance/10.png +kfw-un/ordnance/11.png +kfw-un/ordnance/12.png +kfw-un/ordnance/13.png +kfw-un/ordnance/14.png +kfw-un/ordnance/15.png +kfw-un/ordnance/16.png +kfw-un/ordnance/17.png +kfw-un/ordnance/18.png +kfw-un/ordnance/19.png +kfw-un/ordnance/2.png +kfw-un/ordnance/20.png +kfw-un/ordnance/23.png +kfw-un/ordnance/24.png +kfw-un/ordnance/25.png +kfw-un/ordnance/3.png +kfw-un/ordnance/4.png +kfw-un/ordnance/5.png +kfw-un/ordnance/6.png +kfw-un/ordnance/7.png +kfw-un/ordnance/8.png +kfw-un/ordnance/9.png +kfw-un/ordnance/a.html +kfw-un/ordnance/b.html +kfw-un/ordnance/c.html +kfw-un/ordnance/k.html +kfw-un/ordnance/m.html +kfw-un/ordnance/n.html +kfw-un/ordnance/o.html +kfw-un/ordnance/p.html +kfw-un/ordnance/r.html +kfw-un/ordnance/y.html +kfw-un/vehicles/1.png +kfw-un/vehicles/10.png +kfw-un/vehicles/11.png +kfw-un/vehicles/12.png +kfw-un/vehicles/13.png +kfw-un/vehicles/14.png +kfw-un/vehicles/15.png +kfw-un/vehicles/16.png +kfw-un/vehicles/17.png +kfw-un/vehicles/18.png +kfw-un/vehicles/19.png +kfw-un/vehicles/2.png +kfw-un/vehicles/20.png +kfw-un/vehicles/21.png +kfw-un/vehicles/22.png +kfw-un/vehicles/23.png +kfw-un/vehicles/24.png +kfw-un/vehicles/25.png +kfw-un/vehicles/26.png +kfw-un/vehicles/27.png +kfw-un/vehicles/28.png +kfw-un/vehicles/29.png +kfw-un/vehicles/3.png +kfw-un/vehicles/30.png +kfw-un/vehicles/31.png +kfw-un/vehicles/32.png +kfw-un/vehicles/33.png +kfw-un/vehicles/34.png +kfw-un/vehicles/35.png +kfw-un/vehicles/36.png +kfw-un/vehicles/37.png +kfw-un/vehicles/38.png +kfw-un/vehicles/39.png +kfw-un/vehicles/4.png +kfw-un/vehicles/40.png +kfw-un/vehicles/41.png +kfw-un/vehicles/42.png +kfw-un/vehicles/43.png +kfw-un/vehicles/44.png +kfw-un/vehicles/45.png +kfw-un/vehicles/46.png +kfw-un/vehicles/47.png +kfw-un/vehicles/48.png +kfw-un/vehicles/49.png +kfw-un/vehicles/5.png +kfw-un/vehicles/50.png +kfw-un/vehicles/51.png +kfw-un/vehicles/52.png +kfw-un/vehicles/53.png +kfw-un/vehicles/54.png +kfw-un/vehicles/55.png +kfw-un/vehicles/56.png +kfw-un/vehicles/57.png +kfw-un/vehicles/6.png +kfw-un/vehicles/7.png +kfw-un/vehicles/8.png +kfw-un/vehicles/9.png +kfw-un/vehicles/a.html +kfw-un/vehicles/aa.html +kfw-un/vehicles/b.html +kfw-un/vehicles/bb.html +kfw-un/vehicles/c.html +kfw-un/vehicles/cc.html +kfw-un/vehicles/d.html +kfw-un/vehicles/dd.html +kfw-un/vehicles/e.html +kfw-un/vehicles/ee.html +kfw-un/vehicles/f.html +kfw-un/vehicles/ff.html +kfw-un/vehicles/g.html +kfw-un/vehicles/h.html +kfw-un/vehicles/j.html +kfw-un/vehicles/k.html +kfw-un/vehicles/l.html +kfw-un/vehicles/m.html +kfw-un/vehicles/mm.html +kfw-un/vehicles/n.html +kfw-un/vehicles/nn.html +kfw-un/vehicles/o.html +kfw-un/vehicles/p.html +kfw-un/vehicles/q.html +kfw-un/vehicles/s.html +kfw-un/vehicles/t.html +kfw-un/vehicles/tt.html +kfw-un/vehicles/u.html +kfw-un/vehicles/uu.html +kfw-un/vehicles/v.html +kfw-un/vehicles/w.html +kfw-un/vehicles/x.html +kfw-un/vehicles/y.html +kfw-un/vehicles/z.html +kfw-un/vehicles/zz.html landing-craft/1.png landing-craft/2.png landing-craft/3.png diff --git a/vasl_templates/webapp/data/default-template-pack/baz-cpva16.j2 b/vasl_templates/webapp/data/default-template-pack/baz-cpva16.j2 new file mode 100644 index 0000000..bd408e4 --- /dev/null +++ b/vasl_templates/webapp/data/default-template-pack/baz-cpva16.j2 @@ -0,0 +1,53 @@ + + + + + + + + + + + + +
+ {{INCLUDE:player_flag}}Bazooka '44 + +
+ + + + + + + +
Range TH# +
0 10 +
1 8 +
2 7 +
3 6 +
4 3 +
+ +
+ + + + +
X#: + 11 +
TK#: + 16 +
8-4 +
+ +
+ + diff --git a/vasl_templates/webapp/data/default-template-pack/baz-cpva17.j2 b/vasl_templates/webapp/data/default-template-pack/baz-cpva17.j2 new file mode 100644 index 0000000..6b9c807 --- /dev/null +++ b/vasl_templates/webapp/data/default-template-pack/baz-cpva17.j2 @@ -0,0 +1,55 @@ + + + + + + + + + + + + +
+ {{INCLUDE:player_flag}}Bazooka Type 51 + +
+ + + + + + + + +
Range TH# +
0 10 +
1 9 +
2 8 +
3 7 +
4 5 +
5 3 +
+ +
+ + + + +
X#: + 10 +
TK#: + 22 +
12-5 +
+ +
+ + diff --git a/vasl_templates/webapp/data/default-template-pack/baz.j2 b/vasl_templates/webapp/data/default-template-pack/baz.j2 index 78342b1..f907dc5 100644 --- a/vasl_templates/webapp/data/default-template-pack/baz.j2 +++ b/vasl_templates/webapp/data/default-template-pack/baz.j2 @@ -53,26 +53,21 @@ -{%if BAZ_BREAKDOWN%}
X#: {{BAZ_BREAKDOWN}} -{%endif%} {%if BAZ_WP%}
WP#: {{BAZ_WP}} {%endif%} -{%if BAZ_TOKILL%}
TK#: - {{BAZ_TOKILL}} -{%endif%} -{%if BAZ_RANGE%} + {{BAZ_TK}}
8-{{BAZ_RANGE}} -{%endif%}
+ diff --git a/vasl_templates/webapp/data/default-template-pack/baz45.j2 b/vasl_templates/webapp/data/default-template-pack/baz45.j2 new file mode 100644 index 0000000..5ce3f2b --- /dev/null +++ b/vasl_templates/webapp/data/default-template-pack/baz45.j2 @@ -0,0 +1,58 @@ + + + + + + + + + + + + +
+ {{INCLUDE:player_flag}}Bazooka '45 + +
+ + + + + + + + +
Range TH# +
0 11 +
1 10 +
2 9 +
3 8 +
4 6 +
5 4 +
+ +
+ + + + + +
X#: + 11 +
WP#: + 6 +
TK#: + 16 +
8-5 +
+ +
+ + diff --git a/vasl_templates/webapp/data/default-template-pack/baz50.j2 b/vasl_templates/webapp/data/default-template-pack/baz50.j2 new file mode 100644 index 0000000..3ed3469 --- /dev/null +++ b/vasl_templates/webapp/data/default-template-pack/baz50.j2 @@ -0,0 +1,60 @@ + + + + + + + + + + + + +
+ {{INCLUDE:player_flag}}Bazooka '50 + +
+ + + + + + + + +
Range TH# +
0 11 +
1 10 +
2 9 +
3 8 +
4 6 +
5 4 +
+ +
+ + + + + +
X#: + 11 +{%if SCENARIO_YEAR >= 1952%} +
WP#: + 6 +{%endif%} +
TK#: + 32 +
12-5 +
+ +
+ + diff --git a/vasl_templates/webapp/data/default-template-pack/mol-p.j2 b/vasl_templates/webapp/data/default-template-pack/mol-p.j2 index f4128cb..c0b7358 100644 --- a/vasl_templates/webapp/data/default-template-pack/mol-p.j2 +++ b/vasl_templates/webapp/data/default-template-pack/mol-p.j2 @@ -57,4 +57,5 @@ + diff --git a/vasl_templates/webapp/data/default-template-pack/mol.j2 b/vasl_templates/webapp/data/default-template-pack/mol.j2 index 1195ebb..cd16b85 100644 --- a/vasl_templates/webapp/data/default-template-pack/mol.j2 +++ b/vasl_templates/webapp/data/default-template-pack/mol.j2 @@ -39,4 +39,5 @@ Kindling Attempt: +2 DRM + diff --git a/vasl_templates/webapp/data/default-template-pack/nationalities.json b/vasl_templates/webapp/data/default-template-pack/nationalities.json index 5465915..5681ae7 100644 --- a/vasl_templates/webapp/data/default-template-pack/nationalities.json +++ b/vasl_templates/webapp/data/default-template-pack/nationalities.json @@ -137,6 +137,23 @@ "filipino": { "display_name": "Filipino", "ob_colors": [ "#3ceb7c","#1de256", "#0ed93c" ] +}, + +"kfw-rok": { + "display_name": "South Korean", + "ob_colors": [ "#e5cea0","#d2ac5b", "#cdf000" ] +}, +"kfw-ounc": { + "display_name": "OUNC", + "ob_colors": [ "#55aeff","#118eff", "#b8e527" ] +}, +"kfw-kpa": { + "display_name": "North Korean", + "ob_colors": [ "#eabe51","#d68d1a", "#d68d1a" ] +}, +"kfw-cpva": { + "display_name": "Communist Chinese", + "ob_colors": [ "#e5cea0","#d2ac5b", "#d3870e" ] } } diff --git a/vasl_templates/webapp/data/default-template-pack/piat.j2 b/vasl_templates/webapp/data/default-template-pack/piat.j2 index 145e974..619bd33 100644 --- a/vasl_templates/webapp/data/default-template-pack/piat.j2 +++ b/vasl_templates/webapp/data/default-template-pack/piat.j2 @@ -45,4 +45,5 @@ + diff --git a/vasl_templates/webapp/data/default-template-pack/psk.j2 b/vasl_templates/webapp/data/default-template-pack/psk.j2 index 48b9d96..f1652c4 100644 --- a/vasl_templates/webapp/data/default-template-pack/psk.j2 +++ b/vasl_templates/webapp/data/default-template-pack/psk.j2 @@ -47,4 +47,5 @@ + diff --git a/vasl_templates/webapp/data/expected-multiple-images.json b/vasl_templates/webapp/data/expected-multiple-images.json index 63294c8..6ab97c4 100644 --- a/vasl_templates/webapp/data/expected-multiple-images.json +++ b/vasl_templates/webapp/data/expected-multiple-images.json @@ -26,6 +26,12 @@ "name": "155 ART wz.17", "front_images": "po/gun/poARTwz17-BFP.png", "back_images": [ "po/gun/poARTwz17-BFP.png", "po/gun/poARTwz17-BFPb.png" ] +}, + +"3b5:3676": { + "name": "M19A1 MGMC", + "front_images": [ "us/veh/usM19A1MGMC(trailer)KFW.png", "us/veh/usM19A1MGMC(KFW).png" ], + "back_images": null } } diff --git a/vasl_templates/webapp/data/ordnance/axis-minor/common.json b/vasl_templates/webapp/data/ordnance/axis-minor/common.json index 4ae99ca..19b36d4 100644 --- a/vasl_templates/webapp/data/ordnance/axis-minor/common.json +++ b/vasl_templates/webapp/data/ordnance/axis-minor/common.json @@ -4,7 +4,7 @@ "type": "MTR", "capabilities_other": [ "5PP" ], "note_number": "44", - "notes": [ "A", "H", "S", "C", "B" ], + "notes": [ "A", "B", "C", "H", "S" ], "id": "axc/o:000", "gpid": 3680 }, @@ -12,7 +12,7 @@ "type": "MTR", "capabilities_other": [ "4PP" ], "note_number": "45", - "notes": [ "A", "R", "H", "S", "C" ], + "notes": [ "A", "C", "H", "R", "S" ], "id": "axc/o:001", "gpid": 3681 }, @@ -21,7 +21,7 @@ "capabilities": [ "NT", "QSU", "IR" ], "capabilities2": { "s": 7 }, "note_number": "46\u2020", - "notes": [ "A", "C", "B" ], + "notes": [ "A", "B", "C" ], "id": "axc/o:002", "gpid": 3709 }, @@ -30,7 +30,7 @@ "capabilities": [ "NT", "QSU" ], "capabilities2": { "s": 7 }, "note_number": "47\u2020", - "notes": [ "A", "R", "H", "S" ], + "notes": [ "A", "H", "R", "S" ], "id": "axc/o:003", "gpid": 3711 }, @@ -39,7 +39,7 @@ "capabilities": [ "NT", "QSU", "h-d" ], "capabilities2": { "s": 8 }, "note_number": "48\u2020", - "notes": [ "R", "H" ], + "notes": [ "H", "R" ], "id": "axc/o:004", "gpid": 3713 }, @@ -47,7 +47,7 @@ "type": "ATR", "capabilities_other": [ "1PP" ], "note_number": "49", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/o:005", "gpid": null }, @@ -55,16 +55,16 @@ "type": "ATR", "capabilities_other": [ "5PP" ], "note_number": "50", - "notes": [ "A", "R", "H" ], + "notes": [ "A", "H", "R" ], "id": "axc/o:006", "gpid": null }, { "name": "Kanon PUV vz. 37(t)", "type": "AT", "capabilities": [ "NT", "QSU" ], - "capabilities2": { "A": [ [4,"1S"] ] }, + "capabilities2": { "A": [ [4,"1S"], "\u2020" ] }, "note_number": "51\u2020", - "notes": [ "E", "H", "S", "B" ], + "notes": [ "B", "E", "H", "S" ], "id": "axc/o:007", "gpid": 3714 }, @@ -73,7 +73,7 @@ "capabilities": [ "NT", "QSU" ], "comments": [ "No Gunshield." ], "note_number": "52\u2020", - "notes": [ "A", "R", "H", "S" ], + "notes": [ "A", "H", "R", "S" ], "id": "axc/o:008", "gpid": 3715 }, @@ -82,7 +82,7 @@ "capabilities": [ "NT", "QSU" ], "capabilities2": { "A": [ [4,3], [3,4] ] }, "note_number": "53\u2020", - "notes": [ "E", "R", "H", "S", "B" ], + "notes": [ "B", "E", "H", "R", "S" ], "id": "axc/o:009", "gpid": 3716 }, @@ -91,7 +91,7 @@ "capabilities": [ "NT", "QSU" ], "capabilities2": { "H": [ [5,"3+"] ], "s": 6 }, "note_number": "54\u2020", - "notes": [ "E", "R", "B" ], + "notes": [ "B", "E", "R" ], "id": "axc/o:010", "gpid": 3717 }, @@ -100,7 +100,7 @@ "capabilities": [ "NT", "QSU" ], "capabilities2": { "A": [ [4,3], [3,4] ] }, "note_number": "55\u2020", - "notes": [ "E", "R", "H", "S", "B" ], + "notes": [ "B", "E", "H", "R", "S" ], "id": "axc/o:011", "gpid": 3718 }, @@ -108,7 +108,7 @@ "type": "ART", "capabilities": [ "NT", "QSU" ], "note_number": "56\u2020", - "notes": [ "A", "R", "H", "S", "C", "B" ], + "notes": [ "A", "B", "C", "H", "R", "S" ], "id": "axc/o:012", "gpid": 3719 }, @@ -117,7 +117,7 @@ "capabilities": [ "NT", "QSU" ], "capabilities2": { "s": 7 }, "note_number": "57", - "notes": [ "R", "B" ], + "notes": [ "B", "R" ], "id": "axc/o:013", "gpid": 3720 }, @@ -134,7 +134,7 @@ "type": "ART", "capabilities": [ "NT", "QSU" ], "note_number": "59\u2020", - "notes": [ "A", "R", "S", "C" ], + "notes": [ "A", "C", "R", "S" ], "id": "axc/o:015", "gpid": 3722 }, @@ -142,7 +142,7 @@ "type": "ART", "capabilities": [ "T" ], "note_number": "60\u2020", - "notes": [ "S", "C" ], + "notes": [ "C", "S" ], "id": "axc/o:016", "gpid": 3723 }, @@ -151,7 +151,7 @@ "capabilities": [ "NT" ], "capabilities2": { "s": 8 }, "note_number": "61\u2020", - "notes": [ "A\u2020", "R", "H", "S", "C" ], + "notes": [ "A\u2020", "C", "H", "R", "S" ], "id": "axc/o:017", "gpid": 3724 }, @@ -160,7 +160,7 @@ "capabilities": [ "NT" ], "capabilities2": { "H": [ [4,"3+"] ], "s": 5 }, "note_number": "62\u2020", - "notes": [ "E", "H", "S", "B" ], + "notes": [ "B", "E", "H", "S" ], "id": "axc/o:018", "gpid": 3725 }, @@ -169,7 +169,7 @@ "capabilities": [ "NT" ], "capabilities2": { "AP": 7, "C": [ [7,"CS"], "\u2020" ] }, "note_number": "63\u2020", - "notes": [ "R", "S", "C" ], + "notes": [ "C", "R", "S" ], "id": "axc/o:019", "gpid": 3726 }, @@ -178,7 +178,7 @@ "capabilities": [ "NT", "h-d" ], "capabilities2": { "s": 7 }, "note_number": "64\u2020", - "notes": [ "R", "B" ], + "notes": [ "B", "R" ], "id": "axc/o:020", "gpid": 3727 }, @@ -187,7 +187,7 @@ "capabilities": [ "NT" ], "capabilities2": { "s": [ [5,"1-2R"], "\u2020" ] }, "note_number": "65", - "notes": [ "R", "B" ], + "notes": [ "B", "R" ], "id": "axc/o:021", "gpid": 3728 }, @@ -195,7 +195,7 @@ "type": "ART", "capabilities": [ "NT" ], "note_number": "66\u2020", - "notes": [ "R", "H", "S" ], + "notes": [ "H", "R", "S" ], "id": "axc/o:022", "gpid": 3729 }, @@ -205,7 +205,7 @@ "capabilities2": { "s": 6 }, "comments": [ "No IF." ], "note_number": "67\u2020", - "notes": [ "S", "C" ], + "notes": [ "C", "S" ], "id": "axc/o:023", "gpid": 3730 }, @@ -214,7 +214,7 @@ "capabilities": [ "NT" ], "capabilities2": { "s": 7 }, "note_number": "68\u2020", - "notes": [ "R", "B" ], + "notes": [ "B", "R" ], "id": "axc/o:024", "gpid": 3731 }, @@ -223,7 +223,7 @@ "capabilities": [ "T" ], "capabilities_other": [ "2 TK DR\u2020" ], "note_number": "69\u2020", - "notes": [ "T\u20201", "R", "B" ], + "notes": [ "B", "R", "T\u20201" ], "id": "axc/o:025", "gpid": 3732 }, @@ -232,7 +232,7 @@ "capabilities": [ "T" ], "capabilities2": { "LF": [ "NT", "20\u2020", "2 ROF", "B11" ] }, "note_number": "70", - "notes": [ "G\u2020", "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "G\u2020", "H", "R", "S" ], "id": "axc/o:026", "gpid": 3733 }, @@ -241,7 +241,7 @@ "capabilities": [ "T" ], "capabilities2": { "LF": [ "NT", "20\u20201", "2 ROF", "B9" ] }, "note_number": "71\u2020", - "notes": [ "E", "G\u20201", "R", "B" ], + "notes": [ "B", "E", "G\u20201", "R" ], "id": "axc/o:027", "gpid": 3734 }, @@ -250,7 +250,7 @@ "capabilities": [ "T" ], "capabilities2": { "LF": [ "NT", "20\u20201", "2 ROF", "B10" ] }, "note_number": "72\u2020", - "notes": [ "E", "G\u20201", "R", "B" ], + "notes": [ "B", "E", "G\u20201", "R" ], "id": "axc/o:028", "gpid": 3735 }, @@ -258,7 +258,7 @@ "type": "AA", "capabilities": [ "T" ], "note_number": "73\u2020", - "notes": [ "E", "R", "B" ], + "notes": [ "B", "E", "R" ], "id": "axc/o:029", "gpid": 3736 }, @@ -267,15 +267,15 @@ "capabilities": [ "T" ], "capabilities2": { "LF": [ "40\u20201", "2 ROF" ] }, "note_number": "74\u2020", - "notes": [ "G\u20201", "R", "H", "S", "C" ], + "notes": [ "C", "G\u20201", "H", "R", "S" ], "id": "axc/o:030", "gpid": 3737 }, { "name": "Skoda M33", "type": "AA", "capabilities": [ "T" ], - "note_number": "75R", - "notes": [ "S" ], + "note_number": "75", + "notes": [ "R", "S" ], "id": "axc/o:031", "gpid": 3738 }, @@ -284,7 +284,7 @@ "capabilities": [ "T" ], "capabilities2": { "LF": [ "88\u20201", "1 ROF", "B11" ] }, "note_number": "76\u2020", - "notes": [ "E", "G\u20201", "R", "S", "B" ], + "notes": [ "B", "E", "G\u20201", "R", "S" ], "id": "axc/o:032", "gpid": 3739 } diff --git a/vasl_templates/webapp/data/ordnance/axis-minor/croatian.json b/vasl_templates/webapp/data/ordnance/axis-minor/croatian.json index 5219b73..ec1978a 100644 --- a/vasl_templates/webapp/data/ordnance/axis-minor/croatian.json +++ b/vasl_templates/webapp/data/ordnance/axis-minor/croatian.json @@ -1,6 +1,6 @@ [ -{ "name": "Canonne da 65/17", +{ "name": "Cannone da 65/17", "type": "INF", "capabilities": [ "NT" ], "comments": [ "No Gunshield." ], diff --git a/vasl_templates/webapp/data/ordnance/axis-minor/romanian.json b/vasl_templates/webapp/data/ordnance/axis-minor/romanian.json index 5681662..9e7e54b 100644 --- a/vasl_templates/webapp/data/ordnance/axis-minor/romanian.json +++ b/vasl_templates/webapp/data/ordnance/axis-minor/romanian.json @@ -74,7 +74,7 @@ "capabilities": [ "NT" ], "capabilities2": { "AP": 6 }, "note_number": "9\u2020", - "notes": [ "A" ], + "notes": [ "A\u2020" ], "id": "ro/o:008", "gpid": 3747 }, diff --git a/vasl_templates/webapp/data/ordnance/kfw-cpva.json b/vasl_templates/webapp/data/ordnance/kfw-cpva.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/kfw-cpva.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/ordnance/kfw-kpa.json b/vasl_templates/webapp/data/ordnance/kfw-kpa.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/kfw-kpa.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/ordnance/kfw-ounc.json b/vasl_templates/webapp/data/ordnance/kfw-ounc.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/kfw-ounc.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/ordnance/kfw-rok.json b/vasl_templates/webapp/data/ordnance/kfw-rok.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/ordnance/kfw-rok.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/ordnance/un-forces/british-commonwealth-forces-korea.json b/vasl_templates/webapp/data/ordnance/kfw/bcfk.json similarity index 81% rename from vasl_templates/webapp/data/ordnance/un-forces/british-commonwealth-forces-korea.json rename to vasl_templates/webapp/data/ordnance/kfw/bcfk.json index 1725bc4..9a8af9b 100644 --- a/vasl_templates/webapp/data/ordnance/un-forces/british-commonwealth-forces-korea.json +++ b/vasl_templates/webapp/data/ordnance/kfw/bcfk.json @@ -7,8 +7,8 @@ "capabilities_other": [ "4PP" ], "note_number": "14", "notes": [ "A", "N" ], - "id": "bcfk/o:000", - "gpid": null + "id": "kfw-bcfk/o:000", + "gpid": 12687 }, { "name": "M19 60mm Mortar", "type": "MTR", @@ -17,8 +17,8 @@ "capabilities_other": [ "4PP" ], "note_number": "15", "notes": [ "A", "R" ], - "id": "bcfk/o:001", - "gpid": null + "id": "kfw-bcfk/o:001", + "gpid": "3b5:7613" }, { "name": "OML 3-in. Mortar", "type": "MTR", @@ -26,8 +26,8 @@ "capabilities2": { "s": 8, "WP": 7 }, "note_number": "16", "notes": [ "A" ], - "id": "bcfk/o:002", - "gpid": null + "id": "kfw-bcfk/o:002", + "gpid": 5944 }, { "name": "OSB 4.2-in. Mortar", "type": "MTR", @@ -36,8 +36,8 @@ "comments": [ "Towed\u2020" ], "note_number": "17\u2020", "notes": [ "N" ], - "id": "bcfk/o:003", - "gpid": null + "id": "kfw-bcfk/o:003", + "gpid": 1181 }, { "name": "OQF 17-Pounder", "type": "AT", @@ -45,8 +45,8 @@ "capabilities2": { "HE": 8, "D": 6 }, "note_number": "18", "notes": [ "N" ], - "id": "bcfk/o:004", - "gpid": null + "id": "kfw-bcfk/o:004", + "gpid": 12439 }, { "name": "OQF 25-Pounder", "type": "ART", @@ -54,8 +54,8 @@ "capabilities_other": [ "ST" ], "note_number": "19\u2020", "notes": [ "N" ], - "id": "bcfk/o:005", - "gpid": null + "id": "kfw-bcfk/o:005", + "gpid": 1194 }, { "name": "OQF 40mm AA", "type": "AA", @@ -63,8 +63,8 @@ "capabilities2": { "LF": [ "40\u2020", "2 ROF" ] }, "note_number": "20", "notes": [ "B\u2020", "N" ], - "id": "bcfk/o:006", - "gpid": null + "id": "kfw-bcfk/o:006", + "gpid": 1204 } ] diff --git a/vasl_templates/webapp/data/ordnance/communist-forces/cvpa.json b/vasl_templates/webapp/data/ordnance/kfw/cpva.json similarity index 74% rename from vasl_templates/webapp/data/ordnance/communist-forces/cvpa.json rename to vasl_templates/webapp/data/ordnance/kfw/cpva.json index 27d40ad..9677fee 100644 --- a/vasl_templates/webapp/data/ordnance/communist-forces/cvpa.json +++ b/vasl_templates/webapp/data/ordnance/kfw/cpva.json @@ -1,42 +1,28 @@ [ -{ "name": "M1A1 Rocket Launcher", - "type": null, - "capabilities_other": [ "1PP" ], - "note_number": "16", - "id": "cvpa/o:000", - "gpid": null -}, -{ "name": "Type 51 Rocket Launcher", - "type": null, - "capabilities_other": [ "1PP" ], - "note_number": "17", - "id": "cvpa/o:001", - "gpid": null -}, { "name": "50mm Type 89 Heavy Grenade Launcher", "type": "MTR", "capabilities_other": [ "4PP" ], "note_number": "18\u2020", "notes": [ "A" ], - "id": "cvpa/o:002", - "gpid": null + "id": "kfw-cpva/o:002", + "gpid": 11558 }, { "name": "60mm Type 31 Mortar", "type": "MTR", "capabilities_other": [ "5PP" ], "note_number": "19", "notes": [ "A" ], - "id": "cvpa/o:003", - "gpid": null + "id": "kfw-cpva/o:003", + "gpid": 11559 }, { "name": "82mm Type 20 Mortar", "type": "MTR", "capabilities": [ "NT", "QSU" ], "note_number": "20\u2020", "notes": [ "A" ], - "id": "cvpa/o:004", - "gpid": null + "id": "kfw-cpva/o:004", + "gpid": 11579 }, { "name": "82mm Type 53 Mortar", "type": "MTR", @@ -44,39 +30,39 @@ "capabilities2": { "s": 6 }, "note_number": "21\u2020", "notes": [ "A" ], - "id": "cvpa/o:005", - "gpid": null + "id": "kfw-cpva/o:005", + "gpid": 11581 }, { "name": "120mm PM obr. 38", "type": "MTR", "capabilities": [ "NT", "QSU" ], "capabilities2": { "s": 6 }, "note_number": "22\u2020", - "id": "cvpa/o:006", - "gpid": null + "id": "kfw-cpva/o:006", + "gpid": 11583 }, { "name": "45mm PTP obr. 42", "type": "AT", "capabilities": [ "NT", "QSU" ], "capabilities2": { "A": 7 }, "note_number": "23\u2020", - "id": "cvpa/o:007", - "gpid": null + "id": "kfw-cpva/o:007", + "gpid": 11584 }, { "name": "47mm Type 1 Machine-Moved Gun", "type": "AT", "capabilities": [ "NT", "QSU" ], "note_number": "24\u2020", - "id": "cvpa/o:008", - "gpid": null + "id": "kfw-cpva/o:008", + "gpid": 11585 }, { "name": "57mm PTP obr. 43", "type": "AT", "capabilities": [ "NT", "QSU" ], "capabilities2": { "A": 6 }, "note_number": "25\u2020", - "id": "cvpa/o:009", - "gpid": null + "id": "kfw-cpva/o:009", + "gpid": "3b5:10114" }, { "name": "57mm Type 36 Recoilless Rifle", "type": "RCL", @@ -85,8 +71,8 @@ "comments": [ "crewed\u2020" ], "note_number": "26\u20201", "notes": [ "R\u2020" ], - "id": "cvpa/o:010", - "gpid": null + "id": "kfw-cpva/o:010", + "gpid": "3b5:10150" }, { "name": "75mm Type 52 Recoilless Rifle", "type": "RCL", @@ -95,8 +81,8 @@ "comments": [ "crewed\u2020" ], "note_number": "27", "notes": [ "R\u2020" ], - "id": "cvpa/o:011", - "gpid": null + "id": "kfw-cpva/o:011", + "gpid": "3b5:10151" }, { "name": "70mm Type 92 Infantry Gun", "type": "INF", @@ -104,8 +90,8 @@ "capabilities2": { "AP": 3, "H": 3 }, "note_number": "28\u2020", "notes": [ "A" ], - "id": "cvpa/o:012", - "gpid": null + "id": "kfw-cpva/o:012", + "gpid": "3b5:10115" }, { "name": "76.2mm PP obr. 27", "type": "INF", @@ -113,24 +99,24 @@ "capabilities2": { "H": 6, "s": 6 }, "note_number": "29\u2020", "notes": [ "A" ], - "id": "cvpa/o:013", - "gpid": null + "id": "kfw-cpva/o:013", + "gpid": "3b5:10118" }, { "name": "Year-38 Type Field Gun (Improved)", "type": "ART", "capabilities": [ "NT", "QSU", "h-d" ], "capabilities_other": [ "\"12\" AP TK#\u2020" ], "note_number": "30\u2020", - "id": "cvpa/o:014", - "gpid": null + "id": "kfw-cpva/o:014", + "gpid": 11586 }, { "name": "76.2mm obr. 42", "type": "ART", "capabilities": [ "NT", "QSU" ], "capabilities2": { "A": 7, "s": 6 }, "note_number": "31\u2020", - "id": "cvpa/o:015", - "gpid": null + "id": "kfw-cpva/o:015", + "gpid": "3b5:10119" }, { "name": "Type 93 Twin-Mount High-Angle Machine Gun", "type": "AA", @@ -139,8 +125,8 @@ "comments": [ "Towing NA\u2020" ], "note_number": "32\u2020", "notes": [ "A" ], - "id": "cvpa/o:016", - "gpid": null + "id": "kfw-cpva/o:016", + "gpid": 11587 } ] diff --git a/vasl_templates/webapp/data/ordnance/communist-forces/kpa.json b/vasl_templates/webapp/data/ordnance/kfw/kpa.json similarity index 78% rename from vasl_templates/webapp/data/ordnance/communist-forces/kpa.json rename to vasl_templates/webapp/data/ordnance/kfw/kpa.json index b77af28..21b8229 100644 --- a/vasl_templates/webapp/data/ordnance/communist-forces/kpa.json +++ b/vasl_templates/webapp/data/ordnance/kfw/kpa.json @@ -5,8 +5,8 @@ "capabilities_other": [ "4PP" ], "note_number": "1", "notes": [ "A", "B" ], - "id": "kpa/o:000", - "gpid": null + "id": "kfw-kpa/o:000", + "gpid": 11600 }, { "name": "82mm BM obr. 37", "type": "MTR", @@ -14,8 +14,8 @@ "capabilities2": { "s": 8 }, "note_number": "2\u2020", "notes": [ "A", "B" ], - "id": "kpa/o:001", - "gpid": null + "id": "kfw-kpa/o:001", + "gpid": 11621 }, { "name": "120mm PM obr. 38", "type": "MTR", @@ -23,23 +23,23 @@ "capabilities2": { "s": 8 }, "note_number": "3\u2020", "notes": [ "B" ], - "id": "kpa/o:002", - "gpid": null + "id": "kfw-kpa/o:002", + "gpid": 11623 }, { "name": "14.5mm PTRD-41", "type": "ATR", "capabilities_other": [ "1PP" ], "note_number": "4", "notes": [ "B" ], - "id": "kpa/o:003", - "gpid": null + "id": "kfw-kpa/o:003", + "gpid": 11604 }, { "name": "14.5mm PTRS-41", "type": "ATR", "capabilities_other": [ "2PP", "TK#: 6\u2020" ], "note_number": "5\u2020", - "id": "kpa/o:004", - "gpid": null + "id": "kfw-kpa/o:004", + "gpid": "3b5:7871" }, { "name": "45mm PTP obr. 37", "type": "AT", @@ -47,8 +47,8 @@ "capabilities2": { "A": 7 }, "note_number": "6\u2020", "notes": [ "B" ], - "id": "kpa/o:005", - "gpid": null + "id": "kfw-kpa/o:005", + "gpid": 11624 }, { "name": "45mm PTP obr. 42", "type": "AT", @@ -56,8 +56,8 @@ "capabilities2": { "A": 7 }, "note_number": "6\u2020", "notes": [ "B" ], - "id": "kpa/o:006", - "gpid": null + "id": "kfw-kpa/o:006", + "gpid": 11625 }, { "name": "76.2mm PP obr. 27", "type": "INF", @@ -65,8 +65,8 @@ "capabilities2": { "H": 6, "s": 8 }, "note_number": "7\u2020", "notes": [ "A", "B" ], - "id": "kpa/o:007", - "gpid": null + "id": "kfw-kpa/o:007", + "gpid": 11626 }, { "name": "76.2mm obr. 02/30", "type": "ART", @@ -74,8 +74,8 @@ "capabilities2": { "s": 8 }, "note_number": "8\u2020", "notes": [ "B" ], - "id": "kpa/o:008", - "gpid": null + "id": "kfw-kpa/o:008", + "gpid": 11627 }, { "name": "76.2mm obr. 42", "type": "ART", @@ -83,8 +83,8 @@ "capabilities2": { "A": 7, "s": 8 }, "note_number": "9\u2020", "notes": [ "B" ], - "id": "kpa/o:009", - "gpid": null + "id": "kfw-kpa/o:009", + "gpid": 11628 }, { "name": "107mm P obr. 10/30", "type": "ART", @@ -92,8 +92,8 @@ "capabilities2": { "s": 8 }, "note_number": "10", "notes": [ "B" ], - "id": "kpa/o:010", - "gpid": null + "id": "kfw-kpa/o:010", + "gpid": 11629 }, { "name": "122mm G obr. 38", "type": "ART", @@ -101,8 +101,8 @@ "capabilities2": { "H": 6, "s": 8 }, "note_number": "11\u2020", "notes": [ "B" ], - "id": "kpa/o:011", - "gpid": null + "id": "kfw-kpa/o:011", + "gpid": "3b5:2047" }, { "name": "122mm obr. 31", "type": "ART", @@ -110,32 +110,32 @@ "capabilities2": { "s": 8 }, "note_number": "12", "notes": [ "B" ], - "id": "kpa/o:012", - "gpid": null + "id": "kfw-kpa/o:012", + "gpid": 11630 }, { "name": "152mm GP obr. 37", "type": "ART", "capabilities": [ "NT" ], "note_number": "13", "notes": [ "B" ], - "id": "kpa/o:013", - "gpid": null + "id": "kfw-kpa/o:013", + "gpid": 11631 }, { "name": "37mm ZP obr. 39", "type": "AA", "capabilities": [ "T" ], "note_number": "14\u2020", "notes": [ "B" ], - "id": "kpa/o:014", - "gpid": null + "id": "kfw-kpa/o:014", + "gpid": 11632 }, { "name": "85mm ZP obr. 39", "type": "AA", "capabilities": [ "T" ], "note_number": "15", "notes": [ "B" ], - "id": "kpa/o:015", - "gpid": null + "id": "kfw-kpa/o:015", + "gpid": 11633 } ] diff --git a/vasl_templates/webapp/data/ordnance/un-forces/common.json b/vasl_templates/webapp/data/ordnance/kfw/un-common.json similarity index 54% rename from vasl_templates/webapp/data/ordnance/un-forces/common.json rename to vasl_templates/webapp/data/ordnance/kfw/un-common.json index afbce56..e5d65f9 100644 --- a/vasl_templates/webapp/data/ordnance/un-forces/common.json +++ b/vasl_templates/webapp/data/ordnance/kfw/un-common.json @@ -1,23 +1,5 @@ [ -{ "name": "M9A1 Rocket Launcher", - "type": null, - "capabilities2": { "WP": 6 }, - "capabilities_other": [ "1PP" ], - "note_number": "21", - "notes": [ "K", "R", "Y" ], - "id": "unc/o:000", - "gpid": null -}, -{ "name": "M20 Rocket Launcher", - "type": null, - "capabilities2": { "WP": [ [6,"2+"], "\u2020" ] }, - "capabilities_other": [ "1PP" ], - "note_number": "22\u2020", - "notes": [ "K", "M", "O", "P", "R" ], - "id": "unc/o:001", - "gpid": null -}, { "name": "M2 60mm Mortar", "type": "MTR", "capabilities": [ "IR" ], @@ -25,8 +7,8 @@ "capabilities_other": [ "5PP", "OBA\u2020" ], "note_number": "23\u2020", "notes": [ "A", "K", "M", "O", "P", "Y" ], - "id": "unc/o:002", - "gpid": null + "id": "kfw-un-common/o:002", + "gpid": [ 12689, 11391, 11359, 11440, 849 ] }, { "name": "M1(L) 81mm Mortar", "type": "MTR", @@ -34,8 +16,8 @@ "capabilities2": { "WP": 8 }, "note_number": "24\u2020", "notes": [ "A", "K", "M", "O", "P", "R" ], - "id": "unc/o:003", - "gpid": null + "id": "kfw-un-common/o:003", + "gpid": [ 11416, "3b5:2460", 11363, "3b5:8410" ] }, { "name": "M20(L) 75mm Recoilless Rifle", "type": "RCL", @@ -44,8 +26,8 @@ "comments": [ "crewed\u2020" ], "note_number": "25\u2020", "notes": [ "K", "M", "O", "P", "R" ], - "id": "unc/o:004", - "gpid": null + "id": "kfw-un-common/o:004", + "gpid": [ 11396, 11337, "3b5:11259", "3b5:8402" ] } ] diff --git a/vasl_templates/webapp/data/ordnance/un-forces/us-rok-ounc.json b/vasl_templates/webapp/data/ordnance/kfw/us-rok-ounc.json similarity index 80% rename from vasl_templates/webapp/data/ordnance/un-forces/us-rok-ounc.json rename to vasl_templates/webapp/data/ordnance/kfw/us-rok-ounc.json index 69e33a1..ec81a9b 100644 --- a/vasl_templates/webapp/data/ordnance/un-forces/us-rok-ounc.json +++ b/vasl_templates/webapp/data/ordnance/kfw/us-rok-ounc.json @@ -5,8 +5,8 @@ "capabilities_other": [ "4PP" ], "note_number": "1\u2020", "notes": [ "A", "P" ], - "id": "uro/o:000", - "gpid": null + "id": "kfw-uro/o:000", + "gpid": 11392 }, { "name": "M2 4.2-in. Mortar", "type": "MTR", @@ -14,8 +14,8 @@ "capabilities2": { "WP": 10 }, "note_number": "2\u2020", "notes": [ "K", "M", "O", "P", "Y" ], - "id": "uro/o:001", - "gpid": null + "id": "kfw-uro/o:001", + "gpid": [ 11418, 881, "3b5:8412" ] }, { "name": "M3A1 37mm AT Gun", "type": "AT", @@ -23,8 +23,8 @@ "capabilities2": { "C": 7 }, "note_number": "3\u2020", "notes": [ "C", "K", "P" ], - "id": "uro/o:002", - "gpid": null + "id": "kfw-uro/o:002", + "gpid": 11419 }, { "name": "M1 57mm AT Gun", "type": "AT", @@ -32,8 +32,8 @@ "capabilities2": { "HE": 7, "D": 4 }, "note_number": "4\u2020", "notes": [ "K" ], - "id": "uro/o:003", - "gpid": null + "id": "kfw-uro/o:003", + "gpid": 11420 }, { "name": "M18(L) 57mm Recoilless Rifle", "type": "RCL", @@ -42,8 +42,8 @@ "comments": [ "non-crewed\u2020" ], "note_number": "5\u2020", "notes": [ "C", "K", "O" ], - "id": "uro/o:004", - "gpid": null + "id": "kfw-uro/o:004", + "gpid": [ 11395, 11336, "3b5:8401" ] }, { "name": "M2A1 105mm Howitzer", "type": "ART", @@ -51,8 +51,8 @@ "capabilities2": { "H": 6, "s": 7, "WP": 8, "C": 7 }, "note_number": "6\u2020", "notes": [ "C", "K", "M", "O", "P", "Y" ], - "id": "uro/o:005", - "gpid": null + "id": "kfw-uro/o:005", + "gpid": [ 11421, 891, "3b5:8417" ] }, { "name": "M3 105mm Howitzer", "type": "ART", @@ -60,8 +60,8 @@ "capabilities2": { "H": 7, "s": 7, "WP": 8, "C": 7 }, "note_number": "7\u2020", "notes": [ "C", "K" ], - "id": "uro/o:006", - "gpid": null + "id": "kfw-uro/o:006", + "gpid": 11422 }, { "name": "M1 155mm Howitzer", "type": "ART", @@ -69,8 +69,8 @@ "capabilities2": { "s": 7, "WP": 8 }, "note_number": "8\u2020", "notes": [ "K", "M", "P", "Y" ], - "id": "uro/o:007", - "gpid": null + "id": "kfw-uro/o:007", + "gpid": [ 11423, 895 ] }, { "name": "M1A1 155mm Gun", "type": "ART", @@ -79,8 +79,8 @@ "comments": [ "No IF." ], "note_number": "9", "notes": [ "Y" ], - "id": "uro/o:008", - "gpid": null + "id": "kfw-uro/o:008", + "gpid": 897 }, { "name": "M1 8-in. Howitzer", "type": "ART", @@ -88,8 +88,8 @@ "comments": [ "No IF." ], "note_number": "10\u2020", "notes": [ "Y" ], - "id": "uro/o:009", - "gpid": null + "id": "kfw-uro/o:009", + "gpid": 898 }, { "name": "M51 Multiple .50-cal MG Carriage", "type": "AA", @@ -98,8 +98,8 @@ "capabilities_other": [ "4 TK DR\u2020" ], "note_number": "11\u2020", "notes": [ "M", "Y" ], - "id": "uro/o:010", - "gpid": null + "id": "kfw-uro/o:010", + "gpid": "3b5:3741" }, { "name": "M1 40mm AA Gun", "type": "AA", @@ -107,8 +107,8 @@ "capabilities2": { "LF": [ "40\u2020", "2 ROF" ] }, "note_number": "12", "notes": [ "B\u2020", "Y" ], - "id": "uro/o:011", - "gpid": null + "id": "kfw-uro/o:011", + "gpid": 902 }, { "name": "M2 90mm AA Gun", "type": "AA", @@ -116,8 +116,8 @@ "capabilities2": { "LF": [ "90\u20201", "1 ROF", "B11" ] }, "note_number": "13\u2020", "notes": [ "B\u20201", "M", "Y" ], - "id": "uro/o:012", - "gpid": null + "id": "kfw-uro/o:012", + "gpid": 905 } ] diff --git a/vasl_templates/webapp/data/vasl-overrides.json b/vasl_templates/webapp/data/vasl-overrides.json index bb073ef..9a51f1b 100644 --- a/vasl_templates/webapp/data/vasl-overrides.json +++ b/vasl_templates/webapp/data/vasl-overrides.json @@ -130,6 +130,18 @@ "updated": { "front_images": "ru/gun/ru76PPobr27.png" } +}, + +"3b5:10093": { + "expected": { + "name": "SL truck", + "front_images": [ "sh/SL3b(KFW).png", "sh/SL4b(KFW).png", "sh/SL5b(KFW).png", "sh/SL6b(KFW).png", "sh/SL1b(KFW).png", "sh/SL2b(KFW).png" ], + "back_images": [ "sh/SL3(KFW).png", "sh/SL4(KFW).png", "sh/SL5(KFW).png", "sh/SL6(KFW).png", "sh/SL1(KFW).png", "sh/SL2(KFW).png" ] + }, + "updated": { + "front_images": "us/veh/usSearchlight(KFW).png", + "back_images": null + } } } diff --git a/vasl_templates/webapp/data/vehicles/american.json b/vasl_templates/webapp/data/vehicles/american.json index d90ef3c..aacf8de 100644 --- a/vasl_templates/webapp/data/vehicles/american.json +++ b/vasl_templates/webapp/data/vehicles/american.json @@ -497,7 +497,7 @@ "id": "am/v:056", "gpid": 1032 }, -{ "name": "\u00bc-Ton Jeep GPA", +{ "name": "¼-Ton Jeep GPA", "type": "atr", "cs#": 2, "note_number": "53\u2020", @@ -505,7 +505,7 @@ "id": "am/v:057", "gpid": 1036 }, -{ "name": "\u00bc-Ton Jeep", +{ "name": "¼-Ton Jeep", "type": "tr", "cs#": "2\u20201", "note_number": "54\u2020", @@ -513,7 +513,7 @@ "id": "am/v:058", "gpid": [ 1039, 1040, 1041 ] }, -{ "name": "\u00be-Ton", +{ "name": "¾-Ton", "type": "tr", "cs#": 4, "note_number": "55\u2020", @@ -521,7 +521,7 @@ "id": "am/v:059", "gpid": 1042 }, -{ "name": "1\u00bd-Ton", +{ "name": "1½-Ton", "type": "tr", "cs#": 6, "note_number": "56\u2020", @@ -529,7 +529,7 @@ "id": "am/v:060", "gpid": 1044 }, -{ "name": "2\u00bd-Ton", +{ "name": "2½-Ton", "type": "tr", "cs#": 7, "note_number": "57\u2020", @@ -537,7 +537,7 @@ "id": "am/v:061", "gpid": 1046 }, -{ "name": "7\u00bd-Ton", +{ "name": "7½-Ton", "type": "tr", "cs#": 7, "note_number": "58\u2020", diff --git a/vasl_templates/webapp/data/vehicles/axis-minor/common.json b/vasl_templates/webapp/data/vehicles/axis-minor/common.json index 8f0921c..70dadd4 100644 --- a/vasl_templates/webapp/data/vehicles/axis-minor/common.json +++ b/vasl_templates/webapp/data/vehicles/axis-minor/common.json @@ -5,7 +5,7 @@ "no_radio": "\u00ae", "CS#": 2, "note_number": "29\u2020", - "notes": [ "K\u20201", "E", "F", "G\u20202", "H", "C", "B" ], + "notes": [ "B", "C", "E", "F", "G\u20202", "H", "K\u20201" ], "id": "axc/v:000", "gpid": 3787 }, @@ -15,7 +15,7 @@ "CS#": 2, "no_if": true, "note_number": "30\u2020", - "notes": [ "D", "R", "C" ], + "notes": [ "C", "D", "R" ], "id": "axc/v:001", "gpid": 3789 }, @@ -25,7 +25,7 @@ "CS#": 2, "capabilities2": { "AP": 9 }, "note_number": "30\u2020", - "notes": [ "D", "R", "C" ], + "notes": [ "C", "D", "R" ], "id": "axc/v:002", "gpid": 3791 }, @@ -34,7 +34,7 @@ "CS#": 2, "capabilities2": { "sD": 6 }, "note_number": "31\u2020", - "notes": [ "K\u20201", "E", "H", "C" ], + "notes": [ "C", "E", "H", "K\u20201" ], "id": "axc/v:003", "gpid": 3827 }, @@ -44,7 +44,7 @@ "CS#": 2, "capabilities2": { "AP": 10 }, "note_number": "32\u2020", - "notes": [ "A\u20201", "D", "E", "R", "H", "B" ], + "notes": [ "A\u20201", "B", "D", "E", "H", "R" ], "id": "axc/v:004", "gpid": [ 3795, 3906 ] }, @@ -54,7 +54,7 @@ "CS#": 2, "capabilities2": { "AP": 10 }, "note_number": "33\u2020", - "notes": [ "A\u20201", "D", "E", "H", "C", "B" ], + "notes": [ "A\u20201", "B", "C", "D", "E", "H" ], "id": "axc/v:005", "gpid": 3793 }, @@ -63,7 +63,7 @@ "CS#": 4, "capabilities2": { "sD": 5 }, "note_number": "34\u2020", - "notes": [ "E", "R", "S", "B" ], + "notes": [ "B", "E", "R", "S" ], "id": "axc/v:006", "gpid": 3825 }, @@ -72,7 +72,7 @@ "CS#": 4, "capabilities2": { "A": [ [3,1], [4,2], [3,3] ], "sD": 6 }, "note_number": "35\u2020", - "notes": [ "E", "R", "H", "S" ], + "notes": [ "E", "H", "R", "S" ], "id": "axc/v:007", "gpid": 3799 }, @@ -81,11 +81,11 @@ "CS#": 4, "capabilities2": { "A": [ [4,2], [3,3] ], "sD": 7 }, "note_number": "35\u2020", - "notes": [ "E", "H", "S", "B" ], + "notes": [ "B", "E", "H", "S" ], "id": "axc/v:008", "gpid": 3801 }, -{ "name": "S-35(f)", +{ "name": "S35(f)", "type": "MT", "CS#": 4, "note_number": "36\u2020", @@ -98,7 +98,7 @@ "CS#": 5, "capabilities2": { "A": [ [5,2], [4,3], [3,4] ], "sD": 5 }, "note_number": "37\u2020", - "notes": [ "E", "O\u20201", "Q", "R", "H", "C" ], + "notes": [ "C", "E", "H", "O\u20201", "Q", "R" ], "id": "axc/v:010", "gpid": [ 3829, 3831 ] }, @@ -125,7 +125,7 @@ "CS#": 6, "capabilities2": { "AP": 7, "H": [ [5,"3+"] ], "s": 8, "sD": 7 }, "note_number": "39\u2020", - "notes": [ "E", "Q", "R", "H", "B" ], + "notes": [ "B", "E", "H", "Q", "R" ], "id": "axc/v:013", "gpid": 3839 }, @@ -134,7 +134,7 @@ "CS#": 6, "capabilities2": { "A": [ [4,2], [3,3] ], "s": 7, "sD": 5 }, "note_number": "39\u2020", - "notes": [ "E", "O\u20201", "Q", "R", "H", "B" ], + "notes": [ "B", "E", "H", "O\u20201", "Q", "R" ], "id": "axc/v:014", "gpid": [ 3841, 3843 ] }, @@ -143,7 +143,7 @@ "CS#": 4, "capabilities2": { "A": [ [3,4] ], "s": 8, "sD": 7 }, "note_number": "40\u2020", - "notes": [ "E", "Q", "R", "H", "B" ], + "notes": [ "B", "E", "H", "Q", "R" ], "id": "axc/v:015", "gpid": 3845 }, @@ -152,14 +152,14 @@ "CS#": 4, "capabilities2": { "A": [ [3,4] ], "HE": 7 }, "note_number": "41\u2020", - "notes": [ "E", "H", "B" ], + "notes": [ "B", "E", "H" ], "id": "axc/v:016", "gpid": 3803 }, { "name": "SPW 250/1(g)", "type": "ht", "CS#": 4, - "note_number": "42\u2020", + "note_number": "42", "notes": [ "E", "R" ], "id": "axc/v:017", "gpid": 3847 @@ -168,7 +168,7 @@ "type": "ht", "CS#": 5, "note_number": "42\u2020", - "notes": [ "E", "R", "C" ], + "notes": [ "C", "E", "R" ], "id": "axc/v:018", "gpid": 3849 }, @@ -194,7 +194,7 @@ "type": "AC", "CS#": 4, "note_number": "44\u2020", - "notes": [ "E", "R", "C" ], + "notes": [ "C", "E", "R" ], "id": "axc/v:021", "gpid": 3807 }, @@ -203,7 +203,7 @@ "CS#": 3, "capabilities2": { "sD": 6 }, "note_number": "45\u2020", - "notes": [ "P\u20201", "E", "M\u20202", "R", "B" ], + "notes": [ "B", "E", "M\u20202", "P\u20201", "R" ], "id": "axc/v:022", "gpid": 3853 }, @@ -212,7 +212,7 @@ "CS#": 3, "capabilities2": { "sD": 6 }, "note_number": "45\u2020", - "notes": [ "P\u20201", "E", "M\u20202", "R", "B" ], + "notes": [ "B", "E", "M\u20202", "P\u20201", "R" ], "id": "axc/v:023", "gpid": 3855 }, @@ -221,7 +221,7 @@ "CS#": 3, "capabilities2": { "sD": 6 }, "note_number": "46\u2020", - "notes": [ "E", "M\u20201", "P\u20202", "R", "B" ], + "notes": [ "B", "E", "M\u20201", "P\u20202", "R" ], "id": "axc/v:024", "gpid": 3857 }, @@ -229,7 +229,7 @@ "type": "APC", "cs#": "2\u20201", "note_number": "47\u2020", - "notes": [ "E", "F", "I\u20201", "J", "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "E", "F", "H", "I\u20201", "J", "R", "S" ], "id": "axc/v:025", "gpid": [ 3809, 3811 ] }, @@ -237,7 +237,7 @@ "type": "PC", "cs#": 5, "note_number": "48", - "notes": [ "S", "B" ], + "notes": [ "B", "S" ], "id": "axc/v:026", "gpid": 3859 }, @@ -245,7 +245,7 @@ "type": "PC", "cs#": 4, "note_number": "49", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:027", "gpid": 3813 }, @@ -253,7 +253,7 @@ "type": "PC", "cs#": 5, "note_number": "49", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:028", "gpid": 3815 }, @@ -261,7 +261,7 @@ "type": "PC", "cs#": 6, "note_number": "49", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:029", "gpid": 3817 }, @@ -269,7 +269,7 @@ "type": "tr", "cs#": 4, "note_number": "50", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:030", "gpid": 3819 }, @@ -277,7 +277,7 @@ "type": "tr", "cs#": 5, "note_number": "50", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:031", "gpid": 3821 }, @@ -285,7 +285,7 @@ "type": "tr", "cs#": 7, "note_number": "50", - "notes": [ "R", "H", "S", "C", "B" ], + "notes": [ "B", "C", "H", "R", "S" ], "id": "axc/v:032", "gpid": 3823 } diff --git a/vasl_templates/webapp/data/vehicles/axis-minor/slovakian.json b/vasl_templates/webapp/data/vehicles/axis-minor/slovakian.json index d034454..888846c 100644 --- a/vasl_templates/webapp/data/vehicles/axis-minor/slovakian.json +++ b/vasl_templates/webapp/data/vehicles/axis-minor/slovakian.json @@ -5,7 +5,7 @@ "no_radio": "\u00ae", "CS#": 2, "note_number": "17\u2020", - "notes": [ "K\u20201", "E", "F", "G\u20202" ], + "notes": [ "E", "F", "G\u20202", "K\u20201" ], "id": "sl/v:000", "gpid": 3879 }, @@ -31,7 +31,7 @@ "CS#": 4, "capabilities2": { "sD": 6 }, "note_number": "20\u2020", - "notes": [ "K\u20201", "E" ], + "notes": [ "E", "K\u20201" ], "id": "sl/v:003", "gpid": 3885 }, @@ -48,7 +48,7 @@ "type": "tr", "cs#": "2\u20201", "note_number": "22\u2020", - "notes": [ "E", "L\u20202", "I\u20201" ], + "notes": [ "E", "I\u20201", "L\u20202" ], "id": "sl/v:005", "gpid": 3889 }, diff --git a/vasl_templates/webapp/data/vehicles/british.json b/vasl_templates/webapp/data/vehicles/british.json index f60b3b3..3eb206d 100644 --- a/vasl_templates/webapp/data/vehicles/british.json +++ b/vasl_templates/webapp/data/vehicles/british.json @@ -1068,7 +1068,7 @@ "id": "br/v:121", "gpid": 1567 }, -{ "name": "\u00bc-Ton Jeep(a)", +{ "name": "¼-Ton Jeep(a)", "type": "tr", "cs#": "2\u20201", "note_number": "84\u2020", @@ -1076,7 +1076,7 @@ "id": "br/v:122", "gpid": [ 1569, 1570 ] }, -{ "name": "\u00be-Ton Truck(a)", +{ "name": "¾-Ton Truck(a)", "type": "tr", "cs#": 4, "note_number": "85", @@ -1084,7 +1084,7 @@ "id": "br/v:123", "gpid": 1571 }, -{ "name": "1\u00bd-Ton Truck(a)", +{ "name": "1½-Ton Truck(a)", "type": "tr", "cs#": 6, "note_number": "85", @@ -1092,7 +1092,7 @@ "id": "br/v:124", "gpid": 1573 }, -{ "name": "2\u00bd-Ton Truck(a)", +{ "name": "2½-Ton Truck(a)", "type": "tr", "cs#": 7, "note_number": "85", @@ -1100,7 +1100,7 @@ "id": "br/v:125", "gpid": 1575 }, -{ "name": "7\u00bd-Ton Truck(a)", +{ "name": "7½-Ton Truck(a)", "type": "tr", "cs#": 7, "note_number": "85\u2020", diff --git a/vasl_templates/webapp/data/vehicles/chinese.json b/vasl_templates/webapp/data/vehicles/chinese.json index 6745dff..ce94ba3 100644 --- a/vasl_templates/webapp/data/vehicles/chinese.json +++ b/vasl_templates/webapp/data/vehicles/chinese.json @@ -170,7 +170,7 @@ "id": "ch/v:019", "gpid": 2113 }, -{ "name": "2\u00bd-Ton(a)", +{ "name": "2½-Ton(a)", "type": "tr", "cs#": 7, "note_number": "16\u2020", diff --git a/vasl_templates/webapp/data/vehicles/kfw-kpa.json b/vasl_templates/webapp/data/vehicles/kfw-kpa.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw-kpa.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/vehicles/kfw-ounc.json b/vasl_templates/webapp/data/vehicles/kfw-ounc.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw-ounc.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/vehicles/kfw-rok.json b/vasl_templates/webapp/data/vehicles/kfw-rok.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw-rok.json @@ -0,0 +1 @@ +[] diff --git a/vasl_templates/webapp/data/vehicles/kfw/bcfk.json b/vasl_templates/webapp/data/vehicles/kfw/bcfk.json new file mode 100644 index 0000000..0699a65 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw/bcfk.json @@ -0,0 +1,219 @@ +[ + +{ "name": "M4A3E8(a)", + "type": "MT", + "CS#": 6, + "capabilities2": { "A": [ "\u20201" ], "s": 5, "sM": 8 }, + "note_number": "34", + "notes": [ "A\u20201", "FF\u2020", "UU" ], + "id": "kfw-bcfk/v:000", + "gpid": "3b5:7685" +}, +{ "name": "M4A3E8 Dozer(a)", + "type": "MTv", + "CS#": 6, + "capabilities2": { "A": [ "\u20201" ], "s": 5, "sM": 8 }, + "note_number": "34", + "notes": [ "A\u20201", "TT\u2020", "UU" ], + "id": "kfw-bcfk/v:001", + "gpid": "3b5:7687" +}, +{ "name": "Cromwell VII", + "type": "MT", + "CS#": 6, + "capabilities2": { "s": "8\u2020", "sD": 7, "sM": "8\u20201" }, + "note_number": "35\u2020", + "notes": [ "N", "ZZ\u20201" ], + "id": "kfw-bcfk/v:002", + "gpid": 1320 +}, +{ "name": "Centaur Dozer", + "type": "MTv", + "CS#": "2\u20201", + "capabilities2": { "sD": 7 }, + "note_number": "36\u20201", + "notes": [ "TT\u2020" ], + "id": "kfw-bcfk/v:003", + "gpid": "3b5:7658" +}, +{ "name": "Churchill VII", + "type": "HT", + "CS#": 7, + "capabilities2": { "s": 8, "WP": 6, "sD": 7, "sM": "8\u20201" }, + "note_number": "37\u2020", + "notes": [ "N", "CC", "ZZ\u20201" ], + "id": "kfw-bcfk/v:004", + "gpid": 1372 +}, +{ "name": "Centurion III", + "type": "HT", + "CS#": 7, + "capabilities2": { "HE": 8, "D": [ "\u2020" ], "s": 8, "WP": 6, "sD": 7, "sM": "8\u20201" }, + "note_number": "38\u2020", + "notes": [ "CC", "ZZ\u20201" ], + "id": "kfw-bcfk/v:005", + "gpid": 11365 +}, +{ "name": "Centurion III(L)", + "type": "HT", + "CS#": 7, + "capabilities2": { "D": 8, "s": 8, "WP": 6, "sD": 7, "sM": "8\u20202" }, + "note_number": "38\u2020", + "notes": [ "CC", "FF\u20201", "ZZ\u20202" ], + "id": "kfw-bcfk/v:006", + "gpid": "3b5:7669" +}, +{ "name": "Churchill Bridgelayer", + "type": "HTv", + "CS#": 2, + "capabilities2": { "sD": 7 }, + "note_number": "39\u2020", + "notes": [ "N", "CC" ], + "id": "kfw-bcfk/v:007", + "gpid": "3b5:7681" +}, +{ "name": "M4A1 MC(a)", + "type": "ht", + "CS#": "4:brewup", + "capabilities": [ "IR" ], + "capabilities2": { "WP": 8 }, + "note_number": "40\u2020", + "notes": [ "Q\u20201", "NN", "UU" ], + "id": "kfw-bcfk/v:008", + "gpid": "3b5:7705" +}, +{ "name": "M9(a)", + "type": "ht", + "cs#": 4, + "note_number": "41", + "notes": [ "N", "UU" ], + "id": "kfw-bcfk/v:009", + "gpid": 1489 +}, +{ "name": "Daimler", + "type": "SC", + "CS#": 2, + "capabilities2": { "sD": 4 }, + "note_number": "42\u2020", + "notes": [ "N" ], + "id": "kfw-bcfk/v:010", + "gpid": 1401 +}, +{ "name": "Carrier A", + "type": "APC", + "CS#": 3, + "capabilities2": { "sD": 5 }, + "note_number": "43\u2020", + "notes": [ "N", "U\u20201" ], + "id": "kfw-bcfk/v:011", + "gpid": 1497 +}, +{ "name": "Carrier C", + "type": "APC", + "CS#": 3, + "capabilities2": { "sD": 5 }, + "note_number": "43\u2020", + "notes": [ "N", "U\u20202", "Z\u20201" ], + "id": "kfw-bcfk/v:012", + "gpid": 1501 +}, +{ "name": "Carrier, MMG A", + "type": "APC", + "CS#": 3, + "capabilities2": { "sD": 5 }, + "note_number": "44\u2020", + "notes": [ "N", "U\u20201" ], + "id": "kfw-bcfk/v:013", + "gpid": 1503 +}, +{ "name": "Carrier, 3-in. Mtr", + "type": "APC", + "CS#": "4:brewup", + "note_number": "45\u2020", + "notes": [ "U", "MM\u20201", "NN" ], + "id": "kfw-bcfk/v:014", + "gpid": 1511 +}, +{ "name": "Oxford Carrier", + "type": "APC", + "CS#": "5\u2020", + "note_number": "46\u2020", + "notes": [ "EE\u20201" ], + "id": "kfw-bcfk/v:015", + "gpid": "3b5:7735" +}, +{ "name": "Oxford Carrier, MMG", + "type": "APC", + "CS#": 5, + "note_number": "47\u2020", + "notes": [ "EE\u20201" ], + "id": "kfw-bcfk/v:016", + "gpid": "3b5:7731" +}, +{ "name": "Oxford Carrier, HMG", + "type": "APC", + "CS#": 5, + "note_number": "47\u2020", + "notes": [ "G\u20201", "EE\u20202" ], + "id": "kfw-bcfk/v:017", + "gpid": "3b5:7733" +}, +{ "name": "Oxford Carrier, 3-in Mtr", + "type": "APC", + "CS#": 5, + "note_number": "48\u2020", + "notes": [ "EE\u20202", "MM\u20201", "NN" ], + "id": "kfw-bcfk/v:018", + "gpid": "3b5:7719" +}, +{ "name": "IP Carrier AOV", + "type": "APC", + "CS#": 4, + "note_number": "49\u2020", + "notes": [ "N", "W\u20201" ], + "id": "kfw-bcfk/v:019", + "gpid": 1527 +}, +{ "name": "Wasp", + "type": "APCv", + "CS#": "3:brewup", + "capabilities2": { "sD": "5\u2020" }, + "note_number": "50\u2020", + "notes": [ "N", "U" ], + "id": "kfw-bcfk/v:020", + "gpid": 1533 +}, +{ "name": "Morris C9/B", + "type": "AAtr", + "CS#": 4, + "note_number": "51\u2020", + "notes": [ "N", "AA\u20201" ], + "id": "kfw-bcfk/v:021", + "gpid": 1557 +}, +{ "name": "Quad FAT", + "type": "tr", + "cs#": "5:brewup\u2020", + "note_number": "52\u2020", + "notes": [ "N" ], + "id": "kfw-bcfk/v:022", + "gpid": 1561 +}, +{ "name": "15-cwt", + "type": "tr", + "cs#": 5, + "note_number": "53\u2020", + "notes": [ "N" ], + "id": "kfw-bcfk/v:023", + "gpid": 1563 +}, +{ "name": "3-Ton Lorry", + "type": "tr", + "cs#": 7, + "note_number": "53\u2020", + "notes": [ "N" ], + "id": "kfw-bcfk/v:024", + "gpid": 1567 +} + +] diff --git a/vasl_templates/webapp/data/vehicles/kfw/kpa.json b/vasl_templates/webapp/data/vehicles/kfw/kpa.json new file mode 100644 index 0000000..2d1309b --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw/kpa.json @@ -0,0 +1,74 @@ +[ + +{ "name": "T-34/85", + "type": "MT", + "CS#": 6, + "capabilities2": { "A": 6, "sD": "6\u2020" }, + "note_number": "1\u2020", + "id": "kfw-kpa/v:000", + "gpid": "3b5:8212" +}, +{ "name": "SU-76M", + "type": "AG", + "CS#": "4:brewup", + "capabilities2": { "A": 7 }, + "note_number": "2\u2020", + "id": "kfw-kpa/v:001", + "gpid": "3b5:8214" +}, +{ "name": "BA-64B", + "type": "AC", + "CS#": 2, + "note_number": "3\u2020", + "notes": [ "B" ], + "id": "kfw-kpa/v:002", + "gpid": "3b5:8216" +}, +{ "name": "GAZ-67B", + "type": "tr", + "cs#": 2, + "note_number": "4\u2020", + "notes": [ "B" ], + "id": "kfw-kpa/v:003", + "gpid": "3b5:11102" +}, +{ "name": "GAZ-MM", + "type": "tr", + "cs#": 6, + "note_number": "4\u2020", + "notes": [ "B" ], + "id": "kfw-kpa/v:004", + "gpid": "3b5:11098" +}, +{ "name": "ZIS-5", + "type": "tr", + "cs#": 7, + "note_number": "4\u2020", + "notes": [ "B" ], + "id": "kfw-kpa/v:005", + "gpid": "3b5:11103" +}, +{ "name": "IAG-6", + "type": "tr", + "cs#": 7, + "note_number": "4\u2020", + "notes": [ "B" ], + "id": "kfw-kpa/v:006", + "gpid": "3b5:11107" +}, +{ "name": "GAZ-51", + "type": "tr", + "cs#": 6, + "note_number": "5\u2020", + "id": "kfw-kpa/v:007", + "gpid": "3b5:11100" +}, +{ "name": "ZIS-151", + "type": "tr", + "cs#": 7, + "note_number": "6\u2020", + "id": "kfw-kpa/v:008", + "gpid": "3b5:11105" +} + +] diff --git a/vasl_templates/webapp/data/vehicles/kfw/un-common.json b/vasl_templates/webapp/data/vehicles/kfw/un-common.json new file mode 100644 index 0000000..4eca4ed --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw/un-common.json @@ -0,0 +1,54 @@ +[ + +{ "name": "M3A1", + "type": "ht", + "CS#": 5, + "note_number": "54\u2020", + "notes": [ "E\u2020", "H", "K", "Y", "Z\u20201", "UU" ], + "id": "kfw-un-common/v:000", + "gpid": [ 969, "3b5:7703", "3b5:4019" ] +}, +{ "name": "M20", + "type": "SC", + "CS#": 4, + "capabilities2": { "sP": 5 }, + "note_number": "55\u2020", + "notes": [ "D\u20204", "K", "Q\u20202", "W\u20201", "Y", "Z\u20203", "UU" ], + "id": "kfw-un-common/v:001", + "gpid": [ 998, "3b5:7697", "3b5:4036" ] +}, +{ "name": "M8", + "type": "AC", + "CS#": 4, + "capabilities2": { "C": 7, "sP": 5 }, + "note_number": "56\u2020", + "notes": [ "C", "K", "W\u20201", "Y", "UU" ], + "id": "kfw-un-common/v:002", + "gpid": [ 1002, "3b5:7699", "3b5:4038" ] +}, +{ "name": "¼-Ton Jeep", + "type": "tr", + "cs#": "2\u20201", + "note_number": "57\u2020", + "notes": [ "K", "L\u20202", "M", "N", "O", "P", "Q\u20201", "Y", "UU" ], + "id": "kfw-un-common/v:003", + "gpid": [ 1039, 1569, "3b5:10746", "3b5:8423" ] +}, +{ "name": "¾-Ton", + "type": "tr", + "cs#": 4, + "note_number": "57\u2020", + "notes": [ "K", "N", "O", "Y", "UU" ], + "id": "kfw-un-common/v:004", + "gpid": [ 1042, 1571, "3b5:4050", "3b5:8425" ] +}, +{ "name": "2½-Ton", + "type": "tr", + "cs#": 7, + "note_number": "57\u2020", + "notes": [ "K", "M", "N", "O", "P", "Y", "UU" ], + "id": "kfw-un-common/v:005", + "gpid": [ 1046, 1575, "3b5:4052", "3b5:8427" ] +} + +] diff --git a/vasl_templates/webapp/data/vehicles/kfw/us-rok-ounc.json b/vasl_templates/webapp/data/vehicles/kfw/us-rok-ounc.json new file mode 100644 index 0000000..d6bc922 --- /dev/null +++ b/vasl_templates/webapp/data/vehicles/kfw/us-rok-ounc.json @@ -0,0 +1,332 @@ +[ + +{ "name": "M24", + "type": "LT", + "CS#": 5, + "capabilities2": { "s": 5, "WP": 7, "sM": 8 }, + "note_number": "1\u2020", + "notes": [ "O", "Y" ], + "id": "kfw-uro/v:000", + "gpid": [ 12652, "3b5:8419" ] +}, +{ "name": "M4A3E8", + "type": "MT", + "CS#": 6, + "capabilities2": { "A": [ "\u20201" ], "s": 5, "sM": 8 }, + "note_number": "2\u2020", + "notes": [ "A\u20201", "P" ], + "id": "kfw-uro/v:001", + "gpid": [ 11338, "3b5:3983" ] +}, +{ "name": "M4A3E8(105)", + "type": "MT", + "CS#": 6, + "capabilities2": { "H": 9, "C": 7, "s": 7, "WP": 9, "sM": 8 }, + "note_number": "3\u2020", + "notes": [ "C", "M" ], + "id": "kfw-uro/v:002", + "gpid": "3b5:3626" +}, +{ "name": "M4A3E8 Dozer", + "type": "MTv", + "CS#": 6, + "capabilities2": { "A": [ "\u20201" ], "s": 5, "sM": 8 }, + "note_number": "4", + "notes": [ "A\u20201", "TT\u2020" ], + "id": "kfw-uro/v:003", + "gpid": "3b5:3628" +}, +{ "name": "M4A3E8(105) Dozer", + "type": "MTv", + "CS#": 6, + "capabilities2": { "H": 9, "C": 7, "s": 7, "WP": 9, "sM": 8 }, + "note_number": "4\u2020", + "notes": [ "C", "M", "TT\u20201" ], + "id": "kfw-uro/v:004", + "gpid": "3b5:3630" +}, +{ "name": "POA-CWS-H5", + "type": "MTv", + "CS#": 6, + "capabilities2": { "C": 5, "sM": 8 }, + "note_number": "5\u2020", + "notes": [ "C", "M" ], + "id": "kfw-uro/v:005", + "gpid": "3b5:3632" +}, +{ "name": "M32A1B3 TRV", + "type": "MTv", + "CS#": 6, + "note_number": "6\u2020", + "notes": [ "K", "M", "P" ], + "id": "kfw-uro/v:006", + "gpid": "3b5:3634" +}, +{ "name": "M26A1", + "type": "MT", + "CS#": 6, + "capabilities2": { "A": [ "\u20201" ], "WP": [ [6,"M51+"], "\u20202" ] }, + "note_number": "7\u2020", + "notes": [ "A\u20201", "J\u20202", "M" ], + "id": "kfw-uro/v:007", + "gpid": "3b5:3636" +}, +{ "name": "M45", + "type": "MT", + "CS#": 6, + "capabilities2": { "H": 7, "s": 7, "WP": 9 }, + "note_number": "8", + "id": "kfw-uro/v:008", + "gpid": "3b5:3638" +}, +{ "name": "M46", + "type": "MT", + "CS#": 6, + "capabilities2": { "A": [ "\u20202" ], "WP": [ [6,"M51+"], "\u20203" ] }, + "note_number": "9\u2020", + "notes": [ "A\u20202", "J\u20203", "M", "FF\u20201" ], + "id": "kfw-uro/v:009", + "gpid": "3b5:3640" +}, +{ "name": "M36B2 GMC(a)", + "type": "TD", + "CS#": 7, + "capabilities2": { "A": [ "\u2020" ], "sP": 5 }, + "note_number": "10", + "notes": [ "A\u2020", "K", "UU" ], + "id": "kfw-uro/v:010", + "gpid": 11424 +}, +{ "name": "M38A1C Jeep", + "type": "TDtr", + "CS#": 2, + "capabilities2": { "H": [ "\u2020" ] }, + "note_number": "11\u2020", + "id": "kfw-uro/v:011", + "gpid": "3b5:3642" +}, +{ "name": "M3", + "type": "ht", + "CS#": 5, + "note_number": "12\u2020", + "notes": [ "K", "Y" ], + "id": "kfw-uro/v:012", + "gpid": [ 967, "3b5:4017" ] +}, +{ "name": "M3(MMG)", + "type": "ht", + "CS#": 5, + "note_number": "13\u2020", + "notes": [ "E\u2020", "H", "K", "Y" ], + "id": "kfw-uro/v:013", + "gpid": [ 971, "3b5:4021" ] +}, +{ "name": "M3(HMG)", + "type": "ht", + "CS#": 5, + "note_number": "13\u2020", + "notes": [ "E\u2020", "H", "K", "Y" ], + "id": "kfw-uro/v:014", + "gpid": [ 973, "3b5:4023" ] +}, +{ "name": "M19A1 MGMC", + "type": "SPAA", + "CS#": 4, + "note_number": "14\u2020", + "notes": [ "AA\u20201" ], + "id": "kfw-uro/v:015", + "gpid": "3b5:3676" +}, +{ "name": "M15A1 MGMC", + "type": "AAht", + "CS#": 4, + "note_number": "15\u2020", + "notes": [ "O", "V\u20201", "Y", "AA\u20202", "DD\u20201" ], + "id": "kfw-uro/v:016", + "gpid": [ 990, "3b5:8421" ] +}, +{ "name": "M15 Special", + "type": "AAht", + "CS#": 4, + "note_number": "16\u2020", + "notes": [ "AA\u20202", "DD\u20201" ], + "id": "kfw-uro/v:017", + "gpid": "3b5:3686" +}, +{ "name": "M16 MGMC", + "type": "AAht", + "CS#": 4, + "note_number": "17\u2020", + "notes": [ "F\u20201", "V\u20201", "Y", "AA\u20202", "DD\u20201" ], + "id": "kfw-uro/v:018", + "gpid": 992 +}, +{ "name": "M16A1 MGMC", + "type": "AAht", + "CS#": 5, + "note_number": "18\u2020", + "notes": [ "F\u20201", "V\u20201", "AA\u20202", "DD\u20201" ], + "id": "kfw-uro/v:019", + "gpid": "3b5:3688" +}, +{ "name": "M39 AUV", + "type": "APC", + "CS#": 6, + "note_number": "19\u2020", + "notes": [ "G\u20201", "M" ], + "id": "kfw-uro/v:020", + "gpid": 12277 +}, +{ "name": "M39 MC", + "type": "SPA", + "CS#": "5:brewup", + "capabilities2": { "WP": 8 }, + "note_number": "19\u2020", + "id": "kfw-uro/v:021", + "gpid": 12279 +}, +{ "name": "M7 HMC", + "type": "SPA", + "CS#": 7, + "capabilities2": { "H": 7, "C": 7, "s": 7, "WP": 8 }, + "note_number": "20\u2020", + "notes": [ "C", "Y" ], + "id": "kfw-uro/v:022", + "gpid": 1006 +}, +{ "name": "M37 HMC", + "type": "SPA", + "CS#": 7, + "capabilities2": { "H": 9, "s": 7, "WP": 9 }, + "note_number": "21", + "id": "kfw-uro/v:023", + "gpid": "3b5:3690" +}, +{ "name": "M41 HMC", + "type": "SPA", + "CS#": 9, + "no_if": true, + "capabilities2": { "s": 7, "WP": 8 }, + "note_number": "22\u2020", + "notes": [ "S\u20201" ], + "id": "kfw-uro/v:024", + "gpid": "3b5:10290" +}, +{ "name": "M40 GMC", + "type": "SPA", + "CS#": 9, + "no_if": true, + "capabilities2": { "AP": 4, "s": 7, "WP": 8 }, + "note_number": "23", + "notes": [ "S\u2020" ], + "id": "kfw-uro/v:025", + "gpid": "3b5:4148" +}, +{ "name": "M43 HMC", + "type": "SPA", + "CS#": 9, + "no_if": true, + "note_number": "23", + "notes": [ "S\u2020" ], + "id": "kfw-uro/v:026", + "gpid": "3b5:4154" +}, +{ "name": "LVT(A)5", + "type": "aLT", + "CS#": 6, + "capabilities2": { "H": 8, "C": 7, "WP": 8 }, + "note_number": "24\u2020", + "notes": [ "H", "T\u20201", "X\u20202" ], + "id": "kfw-uro/v:027", + "gpid": 11344 +}, +{ "name": "LVT(A)5m", + "type": "aLT", + "CS#": 6, + "capabilities2": { "H": 8, "C": 7, "WP": 8 }, + "note_number": "24", + "notes": [ "M", "T\u2020" ], + "id": "kfw-uro/v:028", + "gpid": 11346 +}, +{ "name": "LVT3", + "type": "aAPC", + "CS#": 7, + "note_number": "25\u2020", + "notes": [ "D\u2020", "H", "M", "T\u20201", "X\u20202" ], + "id": "kfw-uro/v:029", + "gpid": [ "3b5:3704", "3b5:3706" ] +}, +{ "name": "LVT3C", + "type": "aAPC", + "CS#": 7, + "note_number": "25\u2020", + "notes": [ "D\u2020", "M", "T\u20201", "X\u20202", "BB\u2020" ], + "id": "kfw-uro/v:030", + "gpid": 11348 +}, +{ "name": "M75", + "type": "APC", + "CS#": 6, + "note_number": "26", + "notes": [ "G\u2020", "BB\u20201" ], + "id": "kfw-uro/v:031", + "gpid": 11342 +}, +{ "name": "M29 Weasel", + "type": "PC", + "CS#": 3, + "note_number": "27\u2020", + "notes": [ "B\u20201", "M", "T\u20201" ], + "id": "kfw-uro/v:032", + "gpid": "3b5:3898" +}, +{ "name": "M29C Weasel", + "type": "aPC", + "CS#": 3, + "note_number": "28\u2020", + "notes": [ "B\u20201", "M", "T\u20201" ], + "id": "kfw-uro/v:033", + "gpid": "3b5:3896" +}, +{ "name": "M4 hst", + "type": "PC", + "CS#": 6, + "note_number": "29", + "notes": [ "G\u2020", "Y" ], + "id": "kfw-uro/v:034", + "gpid": 1050 +}, +{ "name": "DUKW", + "type": "atr", + "CS#": "7\u20201", + "note_number": "30\u2020", + "notes": [ "D\u20202", "M", "Q\u20201", "Y" ], + "id": "kfw-uro/v:035", + "gpid": 1032 +}, +{ "name": "TACP Jeep", + "type": "trv", + "CS#": "2\u2020", + "note_number": "31\u2020", + "notes": [ "L\u20201", "M" ], + "id": "kfw-uro/v:036", + "gpid": "3b5:3643" +}, +{ "name": "7½-Ton", + "type": "tr", + "CS#": 7, + "note_number": "32", + "notes": [ "Y" ], + "id": "kfw-uro/v:037", + "gpid": 1048 +}, +{ "name": "Searchlight Truck", + "type": "trv", + "CS#": "7\u2020", + "note_number": "33\u2020", + "id": "kfw-uro/v:038", + "gpid": "3b5:10093" +} + +] diff --git a/vasl_templates/webapp/static/css/tabs.css b/vasl_templates/webapp/static/css/tabs.css index 4317ba0..19c3454 100644 --- a/vasl_templates/webapp/static/css/tabs.css +++ b/vasl_templates/webapp/static/css/tabs.css @@ -19,7 +19,7 @@ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ #tabs-scenario { display: flex ; } -#tabs-scenario .left { width: 32em ; min-width: 32em ; } +#tabs-scenario .left { width: 33.5em ; min-width: 33.5em ; } #tabs-scenario .right { flex-grow: 1 ; min-width: 25em ; } #tabs-scenario .left { display: flex ; flex-direction: column ; } diff --git a/vasl_templates/webapp/static/extras.js b/vasl_templates/webapp/static/extras.js index e4dc942..8497848 100644 --- a/vasl_templates/webapp/static/extras.js +++ b/vasl_templates/webapp/static/extras.js @@ -93,7 +93,7 @@ function _show_extra_template( template_id ) buf.push( "" ) ; buf.push( "" ) ; } else if ( template_info.params[i].type.substr(0,22) === "player-color2-droplist" ) { - buf.push( "" ) ; if ( template_info.params[i].type === "player-color2-droplist-ex" ) buf.push( "", "" ) ; var nats = get_sorted_nats() ; diff --git a/vasl_templates/webapp/static/images/flags/kfw-cpva.png b/vasl_templates/webapp/static/images/flags/kfw-cpva.png new file mode 100644 index 0000000..f812a1e Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/kfw-cpva.png differ diff --git a/vasl_templates/webapp/static/images/flags/kfw-kpa.png b/vasl_templates/webapp/static/images/flags/kfw-kpa.png new file mode 100644 index 0000000..a485e65 Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/kfw-kpa.png differ diff --git a/vasl_templates/webapp/static/images/flags/kfw-ounc.png b/vasl_templates/webapp/static/images/flags/kfw-ounc.png new file mode 100644 index 0000000..70cf79e Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/kfw-ounc.png differ diff --git a/vasl_templates/webapp/static/images/flags/kfw-rok.png b/vasl_templates/webapp/static/images/flags/kfw-rok.png new file mode 100644 index 0000000..7001097 Binary files /dev/null and b/vasl_templates/webapp/static/images/flags/kfw-rok.png differ diff --git a/vasl_templates/webapp/static/main.js b/vasl_templates/webapp/static/main.js index 64cb4c7..9fa37f6 100644 --- a/vasl_templates/webapp/static/main.js +++ b/vasl_templates/webapp/static/main.js @@ -12,11 +12,18 @@ gWebChannelHandler = null ; gEmSize = null ; var NATIONALITY_SPECIFIC_BUTTONS = { - "russian": [ "mol", "mol-p" ], - "german": [ "pf", "psk", "atmm" ], - "american": [ "baz" ], - "british": [ "piat" ], - "japanese": [ "thh" ], + "pf": [ "german" ], + "atmm": [ "german" ], + "psk": [ "german" ], + "mol": [ "russian" ], + "mol-p": [ "russian" ], + "baz": [ "american!korea" ], + "baz45": [ "american@korea", "kfw-rok", "kfw-ounc" ], + "baz50": [ "american@korea", "kfw-rok", "kfw-ounc" ], + "baz-cpva16": [ "kfw-cpva" ], + "baz-cpva17": [ "kfw-cpva" ], + "piat": [ "british" ], + "thh": [ "japanese" ], } ; GENERATE_SNIPPET_HINT = "Generate an HTML snippet (shift-click to get an image)." ; @@ -202,14 +209,14 @@ $(document).ready( function () { "" ) ; } init_select2( $( "select[name='PLAYER_1']" ), - "10em", false, format_player_droplist_item + "12.5em", false, format_player_droplist_item ).on( "select2:open", function() { on_player_droplist_open( $(this) ) ; } ).on( "change", function() { on_player_change_with_confirm( 1 ) ; } ) ; init_select2( $( "select[name='PLAYER_2']" ), - "10em", false, format_player_droplist_item + "12.5em", false, format_player_droplist_item ).on( "select2:open", function() { on_player_droplist_open( $(this) ) ; } ).on( "change", function() { @@ -670,13 +677,7 @@ function on_player_change( player_no ) var player_nat = update_ob_tab_header( player_no ) ; // show/hide the nationality-specific buttons - for ( var nat in NATIONALITY_SPECIFIC_BUTTONS ) { - for ( var i=0 ; i < NATIONALITY_SPECIFIC_BUTTONS[nat].length ; ++i ) { - var button_id = NATIONALITY_SPECIFIC_BUTTONS[nat][i] ; - var $elem = $( "#panel-ob_notes_" + player_no + " div.snippet-control[data-id='" + button_id + "']" ) ; - $elem.css( "display", nat == player_nat ? "inline-block" : "none" ) ; - } - } + update_nationality_specific_buttons( player_no ) ; // show/hide the vehicle/ordnance multi-applicable notes controls function update_ma_notes_controls( vo_type ) { @@ -721,6 +722,34 @@ function update_ob_tab_header( player_no ) return player_nat ; } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +function update_nationality_specific_buttons( player_no ) +{ + // initialize + var player_nat = $( "select[name='PLAYER_" + player_no + "']" ).val() ; + var theater = $( "select.param[name='SCENARIO_THEATER']" ).val().toLowerCase() ; + + // hide/show each nationality-specific button + for ( var button_id in NATIONALITY_SPECIFIC_BUTTONS ) { + var show = false ; + for ( var i=0 ; i < NATIONALITY_SPECIFIC_BUTTONS[button_id].length ; ++i ) { + var nat = NATIONALITY_SPECIFIC_BUTTONS[button_id][i] ; + if ( nat == player_nat ) + show = true ; + else if ( nat == player_nat+"@"+theater ) + show = true ; + else { + var pos = nat.indexOf( "!" ) ; + if ( pos !== -1 ) + show = nat.substr(0,pos) == player_nat && nat.substr(pos+1) !== theater ; + } + } + var $elem = $( "#panel-ob_notes_" + player_no + " div.snippet-control[data-id='" + button_id + "']" ) ; + $elem.css( "display", show ? "inline-block" : "none" ) ; + } +} + // -------------------------------------------------------------------- function on_tab_activate( evt, ui ) diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js index b45e66b..77f1177 100644 --- a/vasl_templates/webapp/static/snippets.js +++ b/vasl_templates/webapp/static/snippets.js @@ -346,18 +346,18 @@ function make_snippet( $btn, params, extra_params, show_date_warnings ) if ( params.SCENARIO_YEAR >= 1945 ) { params.BAZ_TYPE = 45 ; params.BAZ_BREAKDOWN = 11 ; - params.BAZ_TOKILL = 16 ; + params.BAZ_TK = 16 ; params.BAZ_WP = 6 ; params.BAZ_RANGE = 5 ; } else if ( params.SCENARIO_YEAR >= 1944 ) { params.BAZ_TYPE = 44 ; params.BAZ_BREAKDOWN = 11 ; - params.BAZ_TOKILL = 16 ; + params.BAZ_TK = 16 ; params.BAZ_RANGE = 4 ; } else if ( params.SCENARIO_YEAR === 1943 || (params.SCENARIO_YEAR === 1942 && params.SCENARIO_MONTH >= 11) ) { params.BAZ_TYPE = 43 ; params.BAZ_BREAKDOWN = 10 ; - params.BAZ_TOKILL = 13 ; + params.BAZ_TK = 13 ; params.BAZ_RANGE = 4 ; } @@ -465,8 +465,13 @@ function get_vo_note_key( vo_entry ) if ( ! match ) return null ; var key = match[0] ; + // NOTE: The K:FW counters appear in the main VASL module, but we handle them as if they were an extension. if ( vo_entry.extn_id ) key = vo_entry.extn_id + ":" + key ; + else if ( vo_entry.id.match( /^kfw-(uro|bcfk|rok|ounc|un-common)\// ) ) + key = "kfw-un:" + key ; + else if ( vo_entry.id.match( /^kfw-(kpa|cpva)\// ) ) + key = "kfw-comm:" + key ; return key ; } @@ -501,6 +506,16 @@ function get_vo_note( vo_type, nat, key ) function get_ma_notes_keys( nat, vo_entries, vo_type ) { + function translate_kfw_key( vo_entry, notes_index, regex, extn_id ) { + if ( ! vo_entry.id.match( regex ) ) + return null ; + var key = extn_id + ":" + vo_entry.notes[notes_index] ; + var pos = key.indexOf( "\u2020" ) ; + if ( pos >= 0 ) + key = key.substr( 0, pos ) ; + return key ; + } + // figure out which multi-applicable notes are being referenced if ( ! vo_entries ) return null ; @@ -528,17 +543,33 @@ function get_ma_notes_keys( nat, vo_entries, vo_type ) if ( ! vo_entry.notes ) continue ; for ( j=0 ; j < vo_entry.notes.length ; ++j ) { - if ( vo_entry.notes[j] === "US P" ) { // nb: can't do this with a regex + + // NOTE: The K:FW counters appear in the main VASL module, but we handle them as if they were an extension. + var key = translate_kfw_key( vo_entry, j, /^kfw-(uro|bcfk|rok|ounc|un-common)\//, "kfw-un" ) ; + if ( key ) { + keys[0][ key ] = true ; + continue ; + } + key = translate_kfw_key( vo_entry, j, /^kfw-(kpa|cpva)\//, "kfw-comm" ) ; + if ( key ) { + keys[0][ key ] = true ; + continue ; + } + + // handle a special case we can't do with a regex + if ( vo_entry.notes[j] === "US P" ) { keys[0][ vo_entry.extn_id + ":US P" ] = true ; continue ; } + + // check all the regex's var rc = false ; for ( k=0 ; k < regexes.length ; ++k ) { var match = vo_entry.notes[j].match( regexes[k] ) ; if ( match ) { var vo_id = vo_entry.id.split( ":", 1 )[0] ; var is_extra = ( nat !== "landing-craft" && vo_id === "sh/v" ) ; - var key = match[1] ; + key = match[1] ; if ( vo_entry.extn_id && !( vo_entry.extn_id === "adf-bj" && nat === "american" && key.length === 1 ) ) { // NOTE: We include the extension ID as part of the key, except for BFP American vehicles, // whose multi-applicable notes refer to the main American multi-applicable notes, @@ -683,11 +714,12 @@ function get_ma_note( nat, vo_type, key ) function get_ma_notes_for_nat( nat, vo_type ) { // get the multi-applicable vehicle/ordnance notes for the specified nationality + var ma_notes ; if ( nat === "landing-craft" && nat in gVehicleOrdnanceNotes.vehicles ) - return gVehicleOrdnanceNotes.vehicles[ "landing-craft" ][ "multi-applicable" ] ; + ma_notes = gVehicleOrdnanceNotes.vehicles[ "landing-craft" ][ "multi-applicable" ] ; if ( vo_type in gVehicleOrdnanceNotes && nat in gVehicleOrdnanceNotes[vo_type] ) - return gVehicleOrdnanceNotes[ vo_type ][ nat ][ "multi-applicable" ] ; - return {} ; + ma_notes = gVehicleOrdnanceNotes[ vo_type ][ nat ][ "multi-applicable" ] ; + return ma_notes || {} ; } function _make_snippet_image_filename( snippet ) @@ -951,8 +983,12 @@ function make_capabilities( raw, vo_entry, vo_type, nat, elite, scenario_theater capabilities.push( crew_survival ) ; // do any special adjustments - if ( nat === "american" && vo_type === "ordnance" && scenario_theater === "PTO" ) + if ( vo_entry.id.substr(0,3) === "am/" && vo_type === "ordnance" && scenario_theater === "PTO" ) { + // NOTE: We used to do this if nat == "american" here, but the addition of K:FW broke that, + // since it contains counters (e.g. M3A1 37mm AT Gun) that has a Note C which is similar + // to the standard Note C, but doesn't have this special case. adjust_capabilities_for_us_ordnance_note_c( capabilities, vo_entry ) ; + } if ( elite ) adjust_capabilities_for_elite( capabilities, +1 ) ; @@ -1009,6 +1045,8 @@ function _select_capability_by_date( capabilities, nat, scenario_theater, scenar // initialize capabilities = capabilities.slice() ; var ref = has_ref( capabilities ) ; + if ( ref && capabilities.length === 0 ) + return ref ; // check all the capability timestamps var retval = "???" ; @@ -1030,7 +1068,7 @@ function _select_capability_by_date( capabilities, nat, scenario_theater, scenar function _check_capability_timestamp( capabilities, timestamp, nat, scenario_theater, scenario_year, scenario_month ) { - var MONTH_NAMES = { F:2, J:6, A:8, S:9, N:11 } ; + var MONTH_NAMES = { F:2, M:3, J:6, A:8, S:9, N:11 } ; // check for a theater flag THEATER_FLAGS = { E: "ETO", P: "PTO", B: "BURMA" } ; @@ -1074,10 +1112,12 @@ function _check_capability_timestamp( capabilities, timestamp, nat, scenario_the var month = MONTH_NAMES[ timestamp.substring(0,1) ] ; if ( month ) timestamp = timestamp.substring( 1 ) ; - if ( /^\d$/.test( timestamp ) ) { + if ( /^\d+$/.test( timestamp ) ) { // this is a single year timestamp = parseInt( timestamp ) ; // check if the capabilitity is available + if ( timestamp >= 50 ) + timestamp -= 40 ; if ( scenario_year > 1940 + timestamp ) return capabilities[0] ; else if ( scenario_year === 1940 + timestamp ) { @@ -2011,4 +2051,8 @@ function on_scenario_theater_change() { // update the vehicle/ordnance entries _update_vo_sortable2_entries() ; + + // show/hide the nationality-specific buttons + update_nationality_specific_buttons( 1 ) ; + update_nationality_specific_buttons( 2 ) ; } diff --git a/vasl_templates/webapp/static/user_settings.js b/vasl_templates/webapp/static/user_settings.js index 1be4484..4a72225 100644 --- a/vasl_templates/webapp/static/user_settings.js +++ b/vasl_templates/webapp/static/user_settings.js @@ -138,6 +138,7 @@ function apply_user_settings() $scenario_date.datepicker( "option", "defaultDate", $.datepicker.formatDate( date_format, new Date(1940,0,1) ) ) ; + $scenario_date.datepicker( "option", "yearRange", "c-10:c+15" ) ; if ( curr_date ) { $scenario_date.val( $.datepicker.formatDate( date_format, curr_date ) diff --git a/vasl_templates/webapp/static/vassal.js b/vasl_templates/webapp/static/vassal.js index 4d1b5ed..680d086 100644 --- a/vasl_templates/webapp/static/vassal.js +++ b/vasl_templates/webapp/static/vassal.js @@ -84,17 +84,14 @@ function _generate_snippets() // figure out which templates we don't want to auto-create labels for var no_autocreate = {} ; - for ( var nat in NATIONALITY_SPECIFIC_BUTTONS ) { - for ( var i=0 ; i < NATIONALITY_SPECIFIC_BUTTONS[nat].length ; ++i ) { - var template_id = NATIONALITY_SPECIFIC_BUTTONS[nat][i] ; - if ( ["pf","atmm","thh"].indexOf( template_id ) !== -1 ) { - // NOTE: PF, ATMM, THH are always available as an inherent part of a squad's capabilities - // (subject to date restrictions), so we always auto-create these labels, unlike, say MOL or BAZ, - // which are only present by SSR or OB counter). - continue ; - } - no_autocreate[template_id] = true ; + for ( var template_id in NATIONALITY_SPECIFIC_BUTTONS ) { + if ( ["pf","atmm","thh"].indexOf( template_id ) !== -1 ) { + // NOTE: PF, ATMM, THH are always available as an inherent part of a squad's capabilities + // (subject to date restrictions), so we always auto-create these labels, unlike, say MOL or BAZ, + // which are only present by SSR or OB counter). + continue ; } + no_autocreate[template_id] = true ; } function on_snippet_button( $btn, inactive ) { @@ -201,6 +198,8 @@ function _get_raw_content( snippet_id, $btn, params ) } // handle simple cases + // NOTE: These checks also have the side-effect of not deleting these labels if they are already in + // a scenario that is being updated. if ( snippet_id === "mol" ) return [ "Molotov Cocktail", "MOL check:", "IFT DR original colored dr:" ] ; if ( snippet_id === "mol-p" ) @@ -213,7 +212,7 @@ function _get_raw_content( snippet_id, $btn, params ) return [ "Anti-Tank Magnetic Mines", "ATMM check:", "vs. non-armored vehicle" ] ; if ( snippet_id === "piat" ) return [ "PIAT", "Range", "TH#", "B#", "TK#" ] ; - if ( snippet_id === "baz" ) + if ( snippet_id === "baz" || snippet_id === "baz45" || snippet_id === "baz50" || snippet_id.substr(0,8) === "baz-cpva" ) return [ "Bazooka", "Range", "TH#" ] ; if ( snippet_id === "thh" ) return [ "Tank-Hunter Heroes", "Banzai Charge" ] ; @@ -318,24 +317,62 @@ function _do_analyze_vsav( vsav_data, fname ) function _create_vo_entries_from_analysis( report ) { + // initialize + var theater = $( "select.param[name='SCENARIO_THEATER']" ).val() ; + function create_vo_entries( player_no, vo_type ) { + + var gpids, i ; + // clear the existing vehicles/ordnance $( "#ob_" + vo_type + "-sortable_" + player_no ).sortable2( "delete-all" ) ; // build an index of GPID's that belong to the specified player and V/O type var entries_index = {} ; var entries = gVehicleOrdnanceListings[ vo_type ][ get_player_nat(player_no) ] ; - var gpids, i ; - for ( i=0 ; i < entries.length ; ++i ) { - gpids = $.isArray( entries[i].gpid ) ? entries[i].gpid : [entries[i].gpid] ; - for ( var j=0 ; j < gpids.length ; ++j ) - entries_index[ gpids[j] ] = entries[i] ; + if ( entries ) { + for ( i=0 ; i < entries.length ; ++i ) { + gpids = $.isArray( entries[i].gpid ) ? entries[i].gpid : [entries[i].gpid] ; + for ( var j=0 ; j < gpids.length ; ++j ) { + if ( entries_index[ gpids[j] ] === undefined ) + entries_index[ gpids[j] ] = [ entries[i] ] ; + else + entries_index[ gpids[j] ].push( entries[i] ) ; + } + } + } + + // IMPORTANT: Adding support for the new K:FW counters in VASL 6.5.0 caused problems for + // the "analyze scenario" feature, since quite a few of the new counters use images + // from the old counter set e.g. the American "M2 60mm Mortar" has a K:FW variant (kfw-un-common/o:002) + // that has GPID 849 (as well as 11391, 11359, 11440 for the ROK, BCFK, OUNC variants), + // but GPID 849 is also used by the old American "M2 60mm Mortar" counter (am/o:000). + // So, if we find GPID 849 in a .vsav file, we don't know if we should create the K:FW entry + // or the normal American entry. To work around this, we added a new scenario theater for Korea, + // and use that to decide. + function chooseEntry( gpid ) { + var entries = entries_index[ gpid ] ; + if ( !entries || entries.length === 0 ) + return null ; + if ( entries.length === 1 ) + return entries[0] ; + var entries2 = [] ; + for ( var i=0 ; i < entries.length ; ++i ) { + var isKFW = entries[i].id.substr( 0, 4 ) === "kfw-" ; + if ( (theater == "Korea" && isKFW) || (theater != "Korea" && !isKFW) ) + entries2.push( entries[i] ) ; + } + if ( entries2.length === 1 ) + return entries2[0] ; + console.log( "WARNING: Found multiple entries for GPID " + gpid + " during analysis:", entries ) ; + return entries[0] ; } + // add a vehicle/ordnance for each relevant GPID var nCreated = 0 ; gpids = Object.keys( report ) ; for ( i=0 ; i < gpids.length ; ++i ) { var gpid = gpids[ i ] ; - var entry = entries_index[ gpid ] ; + var entry = chooseEntry( gpid ) ; if ( ! entry ) continue ; var image_id = $.isArray( entry.gpid ) ? [gpid,0] : null ; diff --git a/vasl_templates/webapp/static/vo.js b/vasl_templates/webapp/static/vo.js index 72e7d96..0c882cd 100644 --- a/vasl_templates/webapp/static/vo.js +++ b/vasl_templates/webapp/static/vo.js @@ -21,7 +21,9 @@ function add_vo( vo_type, player_no ) if ( is_small_vasl_piece( vo_entry ) ) div_class += " small-piece" ; var extn_name ; - if ( vo_entry.extn_id ) { + if ( vo_entry.id.substr(0,4) === "kfw-" ) + extn_name = "KFW" ; + else if ( vo_entry.extn_id ) { extn_name = gAppConfig.VASL_EXTENSIONS[ vo_entry.extn_id ].displayNameAbbrev ; if ( ! extn_name ) extn_name = gAppConfig.VASL_EXTENSIONS[ vo_entry.extn_id ].displayName ; @@ -447,7 +449,10 @@ function make_online_counter_image_url( gpid, index ) // check if we have a piece from the core VASL module or an extension var url, extn_id ; var pos = gpid.toString().indexOf( ":" ) ; - if ( pos === -1 ) + // FUDGE! K:FW was originally done as an extension, then moved into the main VASL module. + // One of the consequences of this is that a lot of the new counters have a GPID that + // looks like they come from an extension (3b5), but are actually in the main module. + if ( pos === -1 || gpid.substr(0,pos) === "3b5" ) url = gAppConfig.ONLINE_COUNTER_IMAGES_URL_TEMPLATE ; else { url = gAppConfig.ONLINE_EXTN_COUNTER_IMAGES_URL_TEMPLATE ; diff --git a/vasl_templates/webapp/templates/tabs-ob1.html b/vasl_templates/webapp/templates/tabs-ob1.html index ba9f0f8..0887900 100644 --- a/vasl_templates/webapp/templates/tabs-ob1.html +++ b/vasl_templates/webapp/templates/tabs-ob1.html @@ -34,6 +34,10 @@ + + + + diff --git a/vasl_templates/webapp/templates/tabs-scenario.html b/vasl_templates/webapp/templates/tabs-scenario.html index 7744ec7..a294121 100644 --- a/vasl_templates/webapp/templates/tabs-scenario.html +++ b/vasl_templates/webapp/templates/tabs-scenario.html @@ -16,6 +16,7 @@ @@ -31,7 +32,7 @@
- +
diff --git a/vasl_templates/webapp/tests/fixtures/analyze-vsav/vo-entry-selection-for-theater.vsav b/vasl_templates/webapp/tests/fixtures/analyze-vsav/vo-entry-selection-for-theater.vsav new file mode 100644 index 0000000..0e1b9be Binary files /dev/null and b/vasl_templates/webapp/tests/fixtures/analyze-vsav/vo-entry-selection-for-theater.vsav differ diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva16.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva16.j2 new file mode 100644 index 0000000..aed20eb --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva16.j2 @@ -0,0 +1 @@ +BAZ 44 (from K:FW) diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva17.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva17.j2 new file mode 100644 index 0000000..6c8b13e --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz-cpva17.j2 @@ -0,0 +1 @@ +BAZ Type 51 (from K:FW) diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz.j2 index c31dce9..3ccc9c9 100644 --- a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz.j2 +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz.j2 @@ -1 +1 @@ -BAZ: {%if BAZ_TYPE%}'{{BAZ_TYPE}} ; range=[{{BAZ_RANGE}}] ; X#=[{{BAZ_BREAKDOWN}}] ; TK#=[{{BAZ_TOKILL}}]{%if BAZ_WP%} ; WP#=[{{BAZ_WP}}]{%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]{%else%}none{%endif%} +BAZ: {%if BAZ_TYPE%}'{{BAZ_TYPE}} ; range=[{{BAZ_RANGE}}] ; X#=[{{BAZ_BREAKDOWN}}] ; TK#=[{{BAZ_TK}}]{%if BAZ_WP%} ; WP#=[{{BAZ_WP}}]{%endif%} ; col=[{{OB_COLOR}}]/[{{OB_COLOR_2}}]{%else%}none{%endif%} diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz45.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz45.j2 new file mode 100644 index 0000000..b7f1a00 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz45.j2 @@ -0,0 +1 @@ +BAZ 45 (from K:FW) diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz50.j2 b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz50.j2 new file mode 100644 index 0000000..70a91cd --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/baz50.j2 @@ -0,0 +1 @@ +BAZ 50 (from K:FW) diff --git a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/nationalities.json b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/nationalities.json index a02d4c7..2a78312 100644 --- a/vasl_templates/webapp/tests/fixtures/data/default-template-pack/nationalities.json +++ b/vasl_templates/webapp/tests/fixtures/data/default-template-pack/nationalities.json @@ -55,6 +55,11 @@ "display_name": "Romanian", "ob_colors": [ "OBCOL:romanian","OBCOL2:romanian", "OBCOL-BORDER:romanian" ], "type": "axis-minor" +}, + +"kfw-cpva": { + "display_name": "Communist Chinese", + "ob_colors": [ "OBCOL:kfw-cpva","OBCOL2:kfw-cpva", "OBCOL-BORDER:kfw-cpva" ] } } diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz45.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz45.j2 new file mode 100644 index 0000000..92cbb7d --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz45.j2 @@ -0,0 +1 @@ +Customized BAZ45. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz50.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz50.j2 new file mode 100644 index 0000000..e51fa45 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/full/american/baz50.j2 @@ -0,0 +1 @@ +Customized BAZ50. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva16.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva16.j2 new file mode 100644 index 0000000..43c5dcc --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva16.j2 @@ -0,0 +1 @@ +Customized BAZ-CPVA16. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva17.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva17.j2 new file mode 100644 index 0000000..19ae4e5 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/full/baz-cpva17.j2 @@ -0,0 +1 @@ +Customized BAZ-CPVA17. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz45.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz45.j2 new file mode 100644 index 0000000..0aa5952 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz45.j2 @@ -0,0 +1 @@ +New default BAZ45. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz50.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz50.j2 new file mode 100644 index 0000000..c2422d7 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/american/baz50.j2 @@ -0,0 +1 @@ +New default BAZ50. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva16.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva16.j2 new file mode 100644 index 0000000..6c04efa --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva16.j2 @@ -0,0 +1 @@ +New default BAZ-CPVA16. diff --git a/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva17.j2 b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva17.j2 new file mode 100644 index 0000000..0d8eba5 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/template-packs/new-default/kfw/baz-cpva17.j2 @@ -0,0 +1 @@ +New default BAZ-CPVA17. diff --git a/vasl_templates/webapp/tests/fixtures/vasl-pieces-6.5.0.txt b/vasl_templates/webapp/tests/fixtures/vasl-pieces-6.5.0.txt index c60fe08..92fd1b0 100644 --- a/vasl_templates/webapp/tests/fixtures/vasl-pieces-6.5.0.txt +++ b/vasl_templates/webapp/tests/fixtures/vasl-pieces-6.5.0.txt @@ -1,1219 +1,1346 @@ -GPID Name Front images Back images --------- ---------------------------- ----------------------------------------------------- -------------------------- -397 LCP(L)b sh/LCPL2.gif -399 LCP(L) sh/LCPL.gif -401 LCA sh/LCA.gif sh/lcrampdn.gif -403 LCVP <6/43 sh/LCVP2.gif sh/lcrampdn.gif -405 LCVP sh/LCVP.gif sh/lcrampdn.gif -407 LCM(3) <11/42 sh/LCM32.gif sh/lcrampdn.gif -409 LCM(3) sh/LCM3.gif sh/lcrampdn.gif -411 LCI(S) sh/LCIS.gif -413 LCT(4) <7/43 sh/LCT42.gif sh/lcrampdn.gif -415 LCT(4) sh/LCT4.gif sh/lcrampdn.gif -417 Daihatsu sh/LCdaihat.gif sh/lcrampdn.gif -419 Shohatsu sh/LCshohat.gif -485 50* MTR ru/ruMTR.gif ru/ruMTRb.gif -508 82* MTR BM obr. 37 ru/gun/ruMTR82s.gif ru/gun/ruMTR82sb.gif -510 107* MTR GVPM obr. 38 ru/gun/ruMTR107s.gif ru/gun/ruMTR107sb.gif -511 120* MTR PM obr. 38 ru/gun/ruMTR120s.gif ru/gun/ruMTR120sb.gif -512 160* MTR PM obr. 43 ru/gun/ruMTR160s.gif ru/gun/ruMTR160sb.gif -514 37L AT PTP obr. 30 ru/gun/ruAT37L.gif ru/gun/ruAT37Lb.gif -515 45L AT PTP obr. 32 ru/gun/ruAT45L.gif ru/gun/ruAT45Lb.gif -516 45LL AT PTP obr. 42 ru/gun/ruAT45LL.gif ru/gun/ruAT45LLb.gif -517 57LL AT PTP obr. 43 ru/gun/ruAT57LL.gif ru/gun/ruAT57LLb.gif -518 100L AT PTP obr. 44 ru/gun/ruAT100L.gif ru/gun/ruAT100Lb.gif -520 37* INF PP obr. 15R ru/gun/ruINF37s.gif ru/gun/ruINF37sb.gif -521 76* INF PP obr. 27 ru/gun/ruINF76s.gif ru/gun/ruINF76sb.gif -523 76* ART obr. 00/02P ru/gun/ruAR76s.gif ru/gun/ruAR76sb.gif -524 76 ART obr. 02/30 ru/gun/ruAR76.gif ru/gun/ruAR76b.gif -525 76L ART obr. 39 ru/gun/ruAR76L.gif ru/gun/ruAR76Lb.gif -526 76LL ART obr. 36 ru/gun/ruAR76LL.gif ru/gun/ruAR76LLb.gif -527 85L ART obr. 44 ru/gun/ruAR85L.gif ru/gun/ruAR85Lb.gif -528 107 ART obr. 10/30 ru/gun/ruAR107.gif ru/gun/ruAR107b.gif -529 122* ART G obr. 10/30 ru/gun/ruAR122s.gif ru/gun/ruAR122sb.gif -530 122 ART obr. 38 ru/gun/ruAR122.gif ru/gun/ruAR122l-b.gif -531 122L ART obr. 31 ru/gun/ruAR122-L.gif ru/gun/ruAR122Lb.gif -532 152* ART G obr. 38 ru/gun/ruAR152s.gif ru/gun/ruAR152sb.gif -533 152 ART GP obr. 37 ru/gun/ruAR152.gif ru/gun/ruAR152b.gif -536 25LL AA ZP obr. 40 ru/gun/ruAA25LL.gif ru/gun/ruAA25LLb.gif -537 37L AA ZP obr. 39 ru/gun/ruAA37L.gif ru/gun/ruAA37Lb.gif -538 76LL AA ZP obr. 38 ru/gun/ruAA76LL.gif ru/gun/ruAA76LLb.gif -539 85L AA ZP obr. 39 ru/gun/ruAA85L.gif ru/gun/ruAA85Lb.gif -541 T-37 ru/veh/T37.gif -543 T-40 ru/veh/T40.gif -545 T-50 ru/veh/T50.gif -547 T-60 M40 ru/veh/T60M40.gif -549 T-60 M42 ru/veh/T60M42.gif -551 T-70 ru/veh/T70.gif -553 T-26 M33 ru/veh/T26M33.gif -555 T-26 M33 ru/veh/T26M332.gif -557 T-26 M33 ru/veh/T26M333.gif -559 T-26 M33 ru/veh/T26M334.gif -561 T-26 M33 ru/veh/T26M335.gif -563 T-26S M37/39 ru/veh/T26M37.gif -565 T-26S M37/39 ru/veh/T26M372.gif -567 T-26S M37/39 ru/veh/T26M373.gif -569 T-26S M37/39 ru/veh/T26M374.gif -571 OT-133 ru/veh/OT133.gif -573 BT-2A ru/veh/bt2a.gif -575 BT-5 M34 ru/veh/BT5M34.gif -577 BT-7 M37 ru/veh/BT7M37.gif -579 BT-7 M37 ru/veh/BT7M372.gif -581 BT-7 M37 ru/veh/BT7M373.gif -583 BT-7 M37 ru/veh/BT7M374.gif -585 BT-7A ru/veh/BT7A.gif -587 T-28 M34 ru/veh/T28M34.gif -589 T-28E M40 ru/veh/T28EM40.gif -591 T-34 M40 ru/veh/T34M40.gif -593 T-34 M41 ru/veh/T34M41.gif -595 OT-34 ru/veh/OT34.gif -597 T-34 M43 ru/veh/T34M43.gif -599 T-43 ru/veh/T43.gif -601 T-34/85 ru/veh/T3485.gif -603 M4/76(a) ru/veh/M476.gif -605 T-44 ru/veh/T44.gif -607 T-35 ru/veh/T35.gif -609 KV-1 M39/40 ru/veh/KV1M39.gif -611 KV-1E ru/veh/KV1E.gif -613 KV-1E ru/veh/KV1E2.gif -615 KV-1 M41 ru/veh/KV1M41.gif -617 KV-1 M41 ru/veh/KV1M412.gif -619 KV-1 M42 ru/veh/KV1M42.gif -621 KV-1 M42 ru/veh/KV1M422.gif -623 KV-2 ru/veh/KV2.gif -625 KV-8 ru/veh/KV8.gif -627 KV-8 ru/veh/KV82.gif -629 KV-1S ru/veh/KV1S.gif -631 KV-85 ru/veh/KV85.gif -633 IS-2 ru/veh/IS2.gif -635 IS-2m ru/veh/IS2m.gif -637 IS-2m ru/veh/IS2m2.gif -639 IS-3 ru/veh/IS3.gif -641 IS-3 ru/veh/IS32.gif -645 SU-76M ru/veh/SU76M.gif -647 SU-76i(g) ru/veh/SU76i.gif -649 SU-122 ru/veh/SU122.gif -651 SU-152 ru/veh/SU152.gif -653 ISU-122 ru/veh/ISU122.gif -655 ISU-122 ru/veh/ISU1222.gif -657 ISU-152 ru/veh/ISU152.gif -659 ISU-152 ru/veh/ISU1522.gif -661 SU-85 ru/veh/SU85.gif -663 SU-100 ru/veh/SU100.gif -665 SU-57(a) ru/veh/SU57.gif -669 BA-20 ru/veh/ba20.gif -671 BA-6 ru/veh/ba6.gif -673 BA-64B ru/veh/BA64B.gif -677 ZSU-37 ru/veh/ZSU37.gif -679 SU-12 ru/veh/SU12.gif -681 GAZ-4M-AA ru/veh/GAZ4MM.gif -683 ZIS-42-AA ru/veh/ZIS42.gif -685 IAG-10-AA ru/veh/IAG10.gif -687 Komsomolets ru/veh/kom.gif -693 GAZ-67B ru/veh/GAZ67B.gif -694 GAZ-MM ru/veh/GAZMM.gif -696 ZIS-5 ru/veh/ZIS5.gif -698 IAG-6 ru/veh/IAG6.gif -704 Lee(a) br/vehicles/lee.gif -708 Sherman III(a) br/vehicles/sheriiia.gif -710 Sherman III(a) br/vehicles/sheriiia2.gif -712 Sherman III(L)(a) ru/veh/sheriiila.gif -724 Valentine II br/vehicles/valii.gif -726 Valentine V br/vehicles/valv.gif -728 Valentine V br/vehicles/valv2.gif -730 Valentine VIII br/vehicles/valviii.gif -732 Churchill III br/vehicles/churiv.gif -758 Jeep(a) br/vehicles/jeep.gif -759 Jeep(a) MMG br/vehicles/jeep2.gif -849 60* MTR M2 am/amMTR.gif am/amMTRb.gif -850 60* MTR M19 am/amMTRa.gif am/amMTRab.gif -881 107* MTR M2 am/gun/amMTR107.gif am/gun/amMTR107b.gif -882 155* MTR T25 am/gun/amMT155s.gif am/gun/amMT155sb.gif -884 37L AT M3A1 am/gun/amAT37LL.gif am/gun/amAT37LLb.gif -885 57L AT M1 am/gun/amAT57L.gif am/gun/amAT57Lb.gif -886 76L AT M5 am/gun/amAT76L.gif am/gun/amAT76Lb.gif -888 75* ART M1A1 am/gun/amAR75s.gif am/gun/amAR75sb.gif -890 75 ART M1897A2 am/gun/amAR75.gif am/gun/amAR75b.gif -891 105 ART M2A1 am/gun/amAR105.gif am/gun/amAR105b.gif -892 105* ART M3 am/gun/amAR105s.gif am/gun/amAR105sb.gif -893 114 ART M1 am/gun/amAR114.gif am/gun/amAR114b.gif -894 155* ART M1918 am/gun/amAR155s.gif am/gun/amAR155sb.gif -895 155 ART M1 am/gun/amAR155_.gif am/gun/amAR155_b.gif -896 155 ART M1918M1 am/gun/amAR155.gif am/gun/amAR155b.gif -897 155L ART M1A1 am/gun/amAR155L.gif am/gun/amAR155Lb.gif -898 203 ART M1 am/gun/amAR203.gif am/gun/amAR203b.gif -901 37L AA M1A2 am/gun/amAA37L.gif am/gun/amAA37Lb.gif -902 40L AA M1 am/gun/amAA40L.gif am/gun/amAA40Lb.gif -903 76L AA M3 am/gun/amAA76L.gif am/gun/amAA76Lb.gif -904 90L AA M1A1 am/gun/amAA90L.gif am/gun/amAA90Lb.gif -905 90L AA M2 am/gun/amAA90.gif am/gun/amAA90b.gif -907 M2A4 am/veh/M2A4.gif -909 M3 LT am/veh/M3LT.gif -913 M3A1 Satan am/veh/M3A1sat.gif -917 M24 am/veh/M24.gif -919 M3 MT am/veh/M3MT.gif -941 M4(105) am/veh/M4105.gif -943 M4A3(105) am/veh/M4A3105.gif -945 M4 Tankdozer am/veh/M4doz.gif -947 T1E3 am/veh/T1E3.gif -949 Sherman Crab am/veh/M4cra.gif -951 POA-CWS-H1 am/veh/M4poa.gif -955 M26 am/veh/M26.gif -957 M10 GMC am/veh/M10GMC.gif -959 M18 GMC am/veh/M18GMC.gif -961 M36 GMC am/veh/M36GMC.gif -963 M36B1 GMC am/veh/M36B1GMC.gif -965 M2 ht am/veh/M2ht.gif -967 M3 ht am/veh/M3ht.gif -969 M3A1 ht am/veh/M3A1ht.gif -971 M3(MMG) am/veh/M3htMMG.gif -973 M3(HMG) am/veh/M3htHMG.gif -975 M4 MC am/veh/M4MC.gif -977 M4A1 MC am/veh/M4A1MC.gif -979 M21 MC am/veh/M21MC.gif -981 M3 GMC am/veh/M3GMC.gif -983 M3 GMC am/veh/M3GMC2.gif -985 T30 HMC am/veh/T30HMC.gif -987 T19 HMC am/veh/T19HMC.gif -990 M15A1 am/veh/M15A1MGMC.gif -992 M16 am/veh/M16MGMC.gif -996 M3A1 SC am/veh/M3A1SC.gif -998 M20 am/veh/M20SC.gif -1000 T8 am/veh/T8SC.gif -1004 M8 HMC am/veh/M8HMC.gif -1006 M7 HMC am/veh/M7HMC.gif -1011 M12 GMC unlimbered am/veh/M12GMC2.gif -1014 LVT(A)1 am/veh/LVTA1.gif -1016 LVT(A)4 am/veh/LVTA4.gif -1018 LVT(A)4 am/veh/LVTA42.gif -1020 M4 DD am/veh/M4dd.gif -1022 LVT2 am/veh/LVT2.gif -1024 LVT2(m) am/veh/LVT2m.gif -1026 LVT(A)2 am/veh/LVTA2.gif -1028 LVT4 am/veh/LVT4.gif -1030 LVT4 am/veh/LVT42.gif -1032 DUKW am/veh/DUKW.gif -1036 Jeep GPA am/veh/JeepGPA.gif -1039 Jeep am/veh/Jeep.gif -1040 Jeep MMG am/veh/Jeep2.gif -1041 Jeep HMG am/veh/Jeep4.gif -1042 3/4 ton truck us/veh/usTruck(.75)KFW.png -1044 1-1/2 ton truck am/veh/ton112.gif -1046 2-1/2 ton truck us/veh/usTruck(2.5)KFW.png -1048 7-1/2 ton truck am/veh/ton712.gif -1050 M4 HST am/veh/M4hst.gif -1149 51 MTR abn br/brMTR2.gif br/brMTR2b.gif -1153 51 MTR br/brMTR.gif br/brMTRb.gif -1177 76* MTR OML 3" (pre 9/42) br/guns/brMTR76s.gif br/guns/brMTR76sb.gif -1179 76* MTR OML 3" br/guns/brMTR76.gif br/guns/brMTR76sb.gif -1181 107* MTR OSB 4.2" br/guns/brM107s.gif br/guns/brM107sb.gif -1183 25LL AT OQF Hotchkiss br/guns/brAT25LL.gif br/guns/brAT25LLb.gif -1184 40L AT OQF 2pdr br/guns/brAT40L.gif br/guns/brAT40Lb.gif -1185 57L AT OQF 6pdr 7cwt br/guns/brAT57L.gif br/guns/brAT57Lb.gif -1186 76LL AT OQF 17/25pdr br/guns/brAT7625.gif br/guns/brAT7625b.gif -1187 76LL AT OQF 17pdr br/guns/brAT76LL.gif br/guns/brAT76LLb.gif -1189 75* ART M1A1 br/guns/brAR75s.gif br/guns/brAR75sb.gif -1191 75 ART mle 1897 br/guns/brAR75.gif br/guns/brAR75b.gif -1192 84* ART OQF 18pdr br/guns/brAR84s.gif br/guns/brAR84sb.gif -1193 88* ART OQF 25pdr S br/guns/brAR88s.gif br/guns/brAR88sb.gif -1194 88 ART OQF 25pdr br/guns/brAR88.gif br/guns/brAR88b.gif -1195 94* ART OQF 3.7" br/guns/brAR94s.gif br/guns/brAR94sb.gif -1196 114* ART OQF 4.5" br/guns/brAR114s.gif br/guns/brAR114sb.gif -1197 114 ART OBL 4.5" br/guns/brAR114.gif br/guns/brAR114b.gif -1198 140 ART OBL 5.5" br/guns/brAR140.gif br/guns/brAR140b.gif -1199 152* ART OBL 6" br/guns/brAR152s.gif br/guns/brAR152sb.gif -1200 183* ART OBL 7.2" Mk I br/guns/brAR183s.gif br/guns/brAR183sb.gif -1201 183 ART OBL 7.2" Mk VI br/guns/brAR183.gif br/guns/brAR183b.gif -1203 20L AA OQF br/guns/brAA20L.gif br/guns/brAA20Lb.gif -1204 40L AA OQF br/guns/brAA40L.gif br/guns/brAA40Lb.gif -1205 76* AA OQF 3" 20cwt br/guns/brAA76s.gif br/guns/brAA76sb.gif -1206 94* AA OQF 3.7" br/guns/brAA94s.gif br/guns/brAA94sb.gif -1208 Mark VIB br/vehicles/mkvib.gif -1210 Mark VIC br/vehicles/mkvic.gif -1212 Tetrarch br/vehicles/tet.gif -1214 Tetrarch CS br/vehicles/tetcs.gif -1216 Stuart I(a) br/vehicles/stuia.gif -1218 Stuart III(a) br/vehicles/stuiiia.gif -1220 Stuart V(a) br/vehicles/stuva.gif -1222 Locust(a) br/vehicles/locust.gif -1224 A9 br/vehicles/a9.gif -1226 A9 br/vehicles/a92.gif -1228 A9 CS br/vehicles/a9cs.gif -1230 A9 CS br/vehicles/a9cs2.gif -1232 A10 Mk IA br/vehicles/a10ia.gif -1234 A10 Mk IA br/vehicles/a10ia2.gif -1236 A10 Mk IA br/vehicles/a10ia3.gif -1238 A10 Mk IA br/vehicles/a10ia4.gif -1240 A10 Mk IA br/vehicles/a10ia5.gif -1242 A10 Mk IA CS br/vehicles/a10iacs.gif -1244 A10 Mk IA CS br/vehicles/a10iacs2.gif -1246 A10 Mk IA CS br/vehicles/a10iacs3.gif -1248 A13 Mk I br/vehicles/a13i.gif -1250 A13 Mk I br/vehicles/a13i2.gif -1252 A13 Mk II br/vehicles/a13ii.gif -1254 A13 Mk II br/vehicles/a13ii2.gif -1256 A13 Mk II br/vehicles/a13ii3.gif -1258 A13 Mk II br/vehicles/a13ii4.gif -1260 A13 Mk II CS br/vehicles/a13iics.gif -1262 Crusader I br/vehicles/crusi.gif -1264 Crusader I br/vehicles/crusi2.gif -1266 Crusader I CS br/vehicles/crusics.gif -1268 Crusader I CS br/vehicles/crusics2.gif -1270 Crusader II br/vehicles/crusii.gif -1272 Crusader II br/vehicles/crusii2.gif -1274 Crusader II CS br/vehicles/crusiics.gif -1276 Crusader II CS br/vehicles/crusiics2.gif -1278 Crusader III br/vehicles/crusiii.gif -1280 Grant(a) br/vehicles/grant.gif -1282 Lee(a) br/vehicles/lee.gif -1284 Lee(a) br/vehicles/lee2.gif -1286 Sherman II(a) br/vehicles/sheriia.gif -1288 Sherman II(a) br/vehicles/sheriia2.gif -1290 Sherman III(a) br/vehicles/sheriiia.gif -1292 Sherman III(a) br/vehicles/sheriiia2.gif -1294 Sherman V(a) br/vehicles/sherva.gif -1296 Sherman V(a) br/vehicles/sherva2.gif -1298 Sherman IIA(a) br/vehicles/sheriiaa.gif -1300 Sherman IIA(a) br/vehicles/sheriiaa2.gif -1302 Sherman IIC(a) br/vehicles/sheriica.gif -1304 Sherman IIC(a) br/vehicles/sheriica2.gif -1306 Sherman VC(a) br/vehicles/shervca.gif -1308 Sherman VC(a) br/vehicles/shervca2.gif -1310 Sherman IB(a) br/vehicles/sheriba.gif -1312 Sherman IB(a) br/vehicles/sheriba2.gif -1314 Centaur IV br/vehicles/centiv.gif -1316 Cromwell IV br/vehicles/cromiv.gif -1318 Cromwell VI br/vehicles/cromvi.gif -1320 Cromwell VII br/vehicles/cromvii.gif -1322 Cromwell VIII br/vehicles/cromviii.gif -1324 Challenger br/vehicles/chall.gif -1326 Comet br/vehicles/comet.gif -1328 Sherman Dozer(a) br/vehicles/sherdoz.gif -1330 Sherman Dozer(a) br/vehicles/sherdoz2.gif -1332 Sherman Crab(a) br/vehicles/shercrab.gif -1334 Sherman Crab(a) br/vehicles/shercrab2.gif -1338 Matilda I br/vehicles/mati.gif -1340 Matilda I br/vehicles/mati2.gif -1342 Matilda II br/vehicles/matii.gif -1344 Matilda II br/vehicles/matii2.gif -1346 Matilda II br/vehicles/matii3.gif -1348 Matilda II br/vehicles/matii4.gif -1350 Matilda II CS br/vehicles/matiics.gif -1352 Matilda II CS br/vehicles/matiics2.gif -1354 Valentine II br/vehicles/valii.gif -1356 Valentine V br/vehicles/valv.gif -1358 Valentine V br/vehicles/valv2.gif -1360 Valentine VIII br/vehicles/valviii.gif -1362 Valentine XI br/vehicles/valxi.gif -1364 Churchill I br/vehicles/churi.gif -1366 Churchill IV br/vehicles/churiv.gif -1368 Churchill V br/vehicles/churv.gif -1370 Churchill VI br/vehicles/churvi.gif -1372 Churchill VII br/vehicles/churvii.gif -1374 Churchill VIII br/vehicles/churviii.gif -1376 Valentine Bridgelayer br/vehicles/valbrid.gif -1384 Churchill AVRE br/vehicles/churavre.gif -1386 Churchill AVRE br/vehicles/churavref.gif -1390 Churchill Crocodile br/vehicles/churcroc.gif -1393 Deacon br/vehicles/deacon.gif -1395 Wolverine(a) br/vehicles/wolv.gif -1397 Achilles(a) br/vehicles/achil.gif -1399 Archer br/vehicles/archer.gif -1401 Daimler SC br/vehicles/daimsc.gif -1403 Lynx SC br/vehicles/lynx.gif -1405 Humber SC br/vehicles/humber.gif -1407 Stuart Recce(a) br/vehicles/sturecce.gif -1409 Humber III LRC br/vehicles/humblrc.gif -1411 Otter SC br/vehicles/otter.gif -1413 Morris CS9 morris.gif -1415 Rolls Royce br/vehicles/rolls.gif -1417 Marmon-H II ME br/vehicles/marmii.gif -1419 Marmon-H IIv br/vehicles/marmiiv.gif -1421 Marmon-H III MFF br/vehicles/marmiiif.gif -1423 Marmon-H III ME br/vehicles/marmiiie.gif -1425 Marmon-H IIIv br/vehicles/marmiiiv.gif -1427 Marmon-H IIIv br/vehicles/marmiiiv2.gif -1429 Humber II AC br/vehicles/humbii.gif -1431 Humber III AC br/vehicles/humbiii.gif -1433 Humber III AC br/vehicles/humbiii2.gif -1435 Humber IV AC br/vehicles/humbiv.gif -1437 Daimler AC br/vehicles/daimac.gif -1439 Daimler AC br/vehicles/daimac2.gif -1441 AEC I AC br/vehicles/aeci.gif -1443 AEC II AC br/vehicles/aecii.gif -1445 AEC III AC br/vehicles/aeciii.gif -1447 Staghound I(a) br/vehicles/stagi.gif -1449 Staghound I(a) br/vehicles/stagi2.gif -1451 Staghound II(a) br/vehicles/stagii.gif -1453 Staghound II(a) br/vehicles/stagii2.gif -1457 Bishop br/vehicles/bishop.gif -1459 Bishop br/vehicles/bishop2.gif -1461 Priest(a) br/vehicles/priest.gif -1463 Sexton(a) br/vehicles/sexton.gif -1465 Sexton(a) br/vehicles/sexton2.gif -1467 M3 GMC(a) br/vehicles/m3gmc.gif -1469 Mark VI AA br/vehicles/markviaa.gif -1471 Crusader AA br/vehicles/crusaa.gif -1473 Crusader AA br/vehicles/crusaa2.gif -1475 M17 MGMC(a) br/vehicles/m17mgmc.gif -1477 Humber AA br/vehicles/humbaa.gif -1479 Staghound AA(a) br/vehicles/stagaa.gif -1481 M5(a) br/vehicles/m5a.gif -1483 M5(a) br/vehicles/m5a2.gif -1485 M5A1(a) br/vehicles/m5a1a.gif -1487 M5A1(a) br/vehicles/m5a1a2.gif -1489 M9(a) br/vehicles/m9a.gif -1491 M9(a) br/vehicles/m9a2.gif -1493 M9A1(a) br/vehicles/m9a1a.gif -1495 M9A1(a) br/vehicles/m9a1a2.gif -1497 Carrier A br/vehicles/carra.gif -1499 Carrier B br/vehicles/carrb.gif -1501 Carrier C br/vehicles/carrc.gif -1503 Carrier MMG A br/vehicles/carrmmga.gif -1505 Carrier MMG A br/vehicles/carrmmga2.gif -1507 Carrier MMG B br/vehicles/carrmmgb.gif -1509 Carrier 2-in MTR br/vehicles/carr2in.gif -1511 Carrier 3-in MTR br/vehicles/carr3in.gif -1513 Priest Kangaroo(a) br/vehicles/prkang.gif -1515 Ram Kangaroo(a) br/vehicles/ramkang.gif -1517 Ram Kangaroo(a) br/vehicles/ramkang2.gif -1519 White(a) SC br/vehicles/white.gif -1521 White(a) SC br/vehicles/white2.gif -1523 IP Carrier Mk IIS br/vehicles/ipciia.gif -1525 IP Carrier Mk IIB br/vehicles/ipciib.gif -1527 IP Carrier AOV br/vehicles/ipcaov.gif -1529 IP Carrier 3-in MTR br/vehicles/ipc3in.gif -1531 IP Carrier 3-in MTR br/vehicles/ipc3in2.gif -1533 Wasp br/vehicles/waspapc.gif -1535 Wasp br/vehicles/waspapc2.gif -1537 Badger(a) br/vehicles/badapc.gif -1539 Badger(a) br/vehicles/badapc2.gif -1541 Buffalo Mk II(a) br/vehicles/buffiia.gif -1543 Buffalo Mk IV(a) br/vehicles/buffiva.gif -1545 Sherman III DD(a) br/vehicles/sherdd.gif -1547 Sherman III DD(a) br/vehicles/sherdd2.gif -1549 DUKW(a) br/vehicles/dukw.gif -1553 Terrapin br/vehicles/terra.gif -1555 2pdr Portee ['br/vehicles/portee.gif', 'br/vehicles/portee0.gif'] -1557 Morris C9/B br/vehicles/morrc9b.gif -1559 Loyd Carrier br/vehicles/loyd.gif -1561 Quad FAT br/vehicles/quad.gif -1563 15-cwt Truck br/vehicles/cwt15.gif -1565 30-cwt Lorry br/vehicles/cwt30.gif -1567 3-ton Lorry br/vehicles/ton3.gif -1569 Jeep(a) br/vehicles/jeep.gif -1570 Jeep(a) MMG br/vehicles/jeep2.gif -1571 3/4 ton Truck(a) br/vehicles/ton34.gif -1573 1-1/2 ton Truck(a) br/vehicles/ton112.gif -1575 2-1/2 ton Truck(a) br/vehicles/ton212.gif -1577 7-1/2 ton Truck(a) br/vehicles/ton712.gif -1632 37* INF fr/frINF.gif fr/frINFb.gif -1636 50 MTR(f) fr/frMTR.gif fr/frMTRb.gif -1641 60* MTR(a) br/brMTRa.gif br/brMTRab.gif -1667 81* MTR(f) mle 27/31 fr/gun/frMTR81sf.gif fr/gun/frMTR81sfb.gif -1669 25LL AT SA-L mle 34 fr/gun/frAT25LL.gif fr/gun/frAT25LLb.gif -1670 47L AT SA mle 37 APX <41 fr/gun/frAT47L-40.gif fr/gun/frAT47Lb.gif -1671 47L AT SA mle 37 APX fr/gun/frAT47L.gif fr/gun/frAT47Lb.gif -1672 47L AT SA mle 37 APX fr/gun/frAT47Lf.gif fr/gun/frAT47Lfb.gif -1673 75 AT mle 97/35 fr/gun/frAT75.gif fr/gun/frAT75b.gif -1674 65* INF M mle 06 fr/gun/frINF65s.gif fr/gun/frINF65sb.gif -1678 75* ART M mle 28 fr/gun/frAR75s.gif fr/gun/frAR75sb.gif -1679 75 ART mle 1897 fr/gun/frAR75.gif fr/gun/frAR75b.gif -1680 105* ART M mle 28 fr/gun/frAR105.gif fr/gun/frAR105-b.gif -1681 105 ART C mle 35B fr/gun/frAR105B.gif fr/gun/frAR105Bb.gif -1682 105 ART M mle 13S fr/gun/frAR105S.gif fr/gun/frAR105Sb.gif -1683 105L ART L mle 36S fr/gun/frAR105L.gif fr/gun/frAR105Lb.gif -1684 155* ART C mle 17S fr/gun/frAR155s.gif fr/gun/frAR155sb.gif -1685 155 ART GPF fr/gun/frAR155.gif fr/gun/frAR155b.gif -1687 12.7 AA CAJ mle 30 <41 fr/gun/frAA12-40.gif fr/gun/frAA12b.gif -1688 12.7 AA CAJ mle 30 fr/gun/frAA12.gif fr/gun/frAA12b.gif -1689 12.7 AA CAJ mle 30 fr/gun/frAA12f.gif fr/gun/frAA12fb.gif -1690 20L AA CA mle 39 O fr/gun/frAA20L.gif fr/gun/frAA20Lb.gif -1691 25LL AA CA mle 38 <41 fr/gun/frAA25LL-40.gif fr/gun/frAA25LLb.gif -1692 25LL AA CA mle 38 fr/gun/frAA25LL.gif fr/gun/frAA25LLb.gif -1693 75L AA CA mle 32 fr/gun/frAA75L.gif fr/gun/frAA75Lb.gif -1704 75 ART mle 1897 br/guns/brAR75.gif br/guns/brAR75b.gif -1713 FT-17M fr/veh/ft17m.gif -1715 FT-17C fr/veh/ft17c.gif -1717 FT-17 75BS fr/veh/ft1775.gif -1719 AMR 33 fr/veh/amr33.gif -1721 AMR 35 fr/veh/amr35.gif -1723 AMR 35(L) fr/veh/amr35l.gif -1725 R35 fr/veh/r35.gif -1727 R35(L) fr/veh/r35l.gif -1729 R35(L) fr/veh/r35l-a.gif -1731 H35 fr/veh/h35.gif -1733 H35(L) fr/veh/h35l.gif -1735 FCM 36 fr/veh/fcm36.gif -1737 H39 fr/veh/h39.gif -1739 H39 fr/veh/h39-b.gif -1741 H39(L) fr/veh/h39l.gif -1743 H39(L) fr/veh/h39l-a.gif -1745 R40 fr/veh/r40.gif -1747 D1 fr/veh/d1.gif -1749 D2 fr/veh/d2.gif -1751 D2(L) fr/veh/d2l.gif -1753 S35 fr/veh/s35.gif -1755 S35 fr/veh/s35-a.gif -1757 B1-bis fr/veh/b1bis.gif -1759 B1-bis fr/veh/b1bis-a.gif -1761 Valentine V(b) fr/veh/valv.gif -1763 Valentine V(b) fr/veh/valv2.gif -1767 AM Dodge(a) fr/veh/amd.gif -1769 AM Dodge(a) fr/veh/amd-b.gif -1771 AM Dodge(a) fr/veh/amd-b2.gif -1773 AMD 20 cv TOE fr/veh/amd20.gif -1775 AMD 50 AM fr/veh/amd50.gif -1777 AMD 80 AM fr/veh/amd80.gif -1779 AMD 35 fr/veh/amd35.gif -1781 AMD 35 fr/veh/amd352.gif -1785 Laffly W15T fr/veh/laffw15.gif -1787 Ac de 75 Conus(b) fr/veh/ac75con.gif -1789 Ac de 75 mle 97 fr/veh/ac7597.gif -1791 Cam. de Mitr. CA fr/veh/cammitr.gif -1793 Cam. de 13.2 CAJ fr/veh/cam132.gif -1795 Cam. de 20 CA fr/veh/cam20.gif -1797 Ac de 25 CA fr/veh/ac25.gif -1801 Ac de 40 CA(a) fr/veh/ac40.gif -1803 Ac de 75 mle 13/34 fr/veh/ac75.gif -1807 AMC 29 fr/veh/amc29.gif -1809 C-K P17 fr/veh/ckp17.gif -1811 C-K P19 fr/veh/ckp19.gif -1813 SOMUA MCG fr/veh/somua.gif -1815 Unic P107 fr/veh/unic.gif -1817 Renault UE fr/veh/renaue.gif -1819 Renault UE MG fr/veh/renaue2.gif -1821 Lorraine 38L fr/veh/lorr38tr.gif -1824 Lorraine 37L 44 fr/veh/lorr37.gif -1826 Carrier AC(b) fr/veh/carrac.gif -1828 Latil TAR H2 fr/veh/latil.gif -1830 Laffly S15T fr/veh/laffs15.gif -1832 Laffly S20TL fr/veh/laffs20.gif -1834 Laffly V15T fr/veh/laffv15.gif -1836 Peugeot 202 fr/veh/peugeot.gif -1837 Citroen 23 fr/veh/citroen.gif -1839 Renault AGR2 fr/veh/renagr.gif -1895 M5 ht fr/veh/m5.gif -1897 M5A1 ht fr/veh/m5a1.gif -1903 M9 ht fr/veh/m9.gif -1982 40 MTR ch/chM40.gif ch/chM40b.gif -1983 45* MTR(i) <41 ch/chM45.gif ch/chM45b.gif -1984 45* MTR(i) ch/chM452.gif ch/chM45b.gif -1985 50* MTR(g) ch/chM50g.gif ch/chM50gb.gif -1986 50* MTR(r) ch/chM50r.gif ch/chM50rb.gif -1987 50* MTR(j) ch/chM50j.gif ch/chM50jb.gif -1988 60* MTR(a) ch/chM60.gif ch/chM60b.gif -2016 76* MTR Stokes ch/gun/chM76s.gif ch/gun/chM76sb.gif -2018 81* MTR GrW 34 ch/gun/chM81s.gif ch/gun/chM81sb.gif -2020 82* MTR BM obr. 37 ch/gun/chM82s.gif ch/gun/chM82sb.gif -2022 81* MTR M1 ch/gun/chM81M1.gif ch/gun/chM81M1b.gif -2024 107* MTR M2 ch/gun/chM107.gif ch/gun/chM107b.gif -2026 37L AT Pak 35/36 ch/gun/chAT37L.gif ch/gun/chAT37Lb.gif -2027 37LL AT M3A1 ch/gun/chAT37LL.gif ch/gun/chAT37LLb.gif -2029 37* ART PP obr. 15R ch/gun/chAR37s.gif ch/gun/chAR37sb.gif -2030 70* ART 70/15 ch/gun/chAR70s.gif ch/gun/chAR70sb.gif -2031 75* ART Krupp M08 ch/gun/chAR75K.gif ch/gun/chAR75Kb.gif -2032 75* ART 75/13 <41 ch/gun/chAR75O.gif ch/gun/chAR75Ob.gif -2033 75* ART 75/13 ch/gun/chAR75O2.gif ch/gun/chAR75Ob.gif -2034 75* ART leIG 18 ch/gun/chAR75I.gif ch/gun/chAR75Ib.gif -2035 76* ART PP obr. 27 <41 ch/gun/chAR76s.gif ch/gun/chAR76sb.gif -2036 76* ART PP obr. 27 ch/gun/chAR76s2.gif ch/gun/chAR76sb.gif -2037 75* ART M1A1 ch/gun/chAR75M.gif ch/gun/chAR75Mb.gif -2039 75 ART FK 16 ch/gun/chAR75F.gif ch/gun/chAR75Fb.gif -2040 76 ART P obr. 02/30 <41 ch/gun/chAR76.gif ch/gun/chAR76b.gif -2041 76 ART P obr. 02/30 ch/gun/chAR762.gif ch/gun/chAR76b.gif -2042 84* ART 18-lber ch/gun/chAR84s.gif ch/gun/chAR84sb.gif -2043 105* ART leFH 16 ch/gun/chAR105s.gif ch/gun/chAR105sb.gif -2044 105 ART 105/28 ch/gun/chAR105.gif ch/gun/chAR105b.gif -2045 105 ART M2A1 ch/gun/chAR105_.gif ch/gun/chAR105_b.gif -2046 122* ART obr. 10/30 <41 ch/gun/chAR122s.gif ch/gun/chAR122sb.gif -2048 122 ART G obr. 38 <41 ch/gun/chAR122.gif ch/gun/chAR122b.gif -2050 150* ART 149/13 ch/gun/chAR150s.gif ch/gun/chAR150sb.gif -2052 20L AA Oerlikon FF ch/gun/chAA20LO.gif ch/gun/chAA20LOb.gif -2053 20L AA 20/65 <41 ch/gun/chAA20LC.gif ch/gun/chAA20LCb.gif -2055 20L AA FlaK 30 ch/gun/chAA20LF.gif ch/gun/chAA20LFb.gif -2056 37L AA FlaK 36/37 ch/gun/chAA37L.gif ch/gun/chAA37Lb.gif -2057 40L AA Bofors L/60 ch/gun/chAA40L.gif ch/gun/chAA40Lb.gif -2058 75L AA Bofors M29 <41 ch/gun/chAA75L.gif ch/gun/chAA75Lb.gif -2060 88L AA FlaK 18 <41 ch/gun/chAA88L.gif ch/gun/chAA88Lb.gif -2063 VCL M1931(b) ch/veh/vclm1931.gif -2065 L3/35(i) ch/veh/chl335.gif -2067 PzKw IA(g) ch/veh/chpzia.gif -2069 Vickers 6t Mk E(b) ch/veh/chvick.gif -2071 T-26TU M33(r) ch/veh/cht26.gif -2073 T-26TU M33(r) ch/veh/cht262.gif -2075 M3A3(a) ch/veh/chm3a3.gif -2077 M3A3(a) ch/veh/chm3a32.gif -2079 M4A4(a) ch/veh/chm4a4.gif -2081 M4A4(a) ch/veh/chm4a42.gif -2085 M3A1(a) SC ch/veh/chm3a1.gif -2087 Stuart Recon(a) ch/veh/chstuart.gif -2089 Type 22 AC ch/veh/ch22ac.gif -2091 PSW 221(g) ch/veh/chpsw221.gif -2093 PSW 222(g) ch/veh/chpsw222.gif -2095 BA-20(r) ch/veh/chba20.gif -2097 BA-6(r) ch/veh/chba6.gif -2101 VCL Mk VI Carrier(b) ch/veh/chvcl.gif -2103 VCL Mk VI Carrier(b) ch/veh/chvcl2.gif -2105 Carrier A(b) ch/veh/chcarra.gif -2107 Carrier B(b) ch/veh/chcarrb.gif -2109 Carrier C(b) ch/veh/chcarrc.gif -2111 Henschel 33(g) ch/veh/chhensch.gif -2113 Jeep(a) ch/veh/chjeep.gif -2116 2-1/2 ton truck(a) ch/veh/chton212.gif -2172 46* MTR al/alMTR46.gif al/alMTR46B.gif -2173 50* MTR al/alMTR50.gif al/alMTR50B.gif -2176 ATR al/alATR.gif al/alATRb.gif -2179 20L ATR al/alATR20.gif al/alATR20b.gif -2193 81* MTR Brandt al/gun/alMTR81.gif al/gun/alMTR81b.gif -2195 37L AT Bofors al/gun/alAT37.gif al/gun/alAT37b.gif -2196 37L AT PaK 35/36 al/gun/alAT37L.gif al/gun/alAT37Lb.gif -2197 47 AT Bohler M35 al/gun/alAT47.gif al/gun/alAT47b.gif -2198 65* INF wz. 06 al/gun/alINF65.gif al/gun/alINF65b.gif -2199 75 ART wz. 97 al/gun/alART75fr.gif al/gun/alART75frb.gif -2200 75* ART Bofors M34 al/gun/alART75.gif al/gun/alART75b.gif -2201 75* ART 75M 19S al/gun/alART75s.gif al/gun/alART75sb.gif -2202 105 ART C105 L 13 S al/gun/alART105.gif al/gun/alART105b.gif -2203 120* ART wz. 09/31 al/gun/alART120.gif al/gun/alART120b.gif -2204 155* ART 17S al/gun/alART155.gif al/gun/alART155b.gif -2205 12.7 AA CAJ al/gun/alAA127.gif al/gun/alAA127b.gif -2206 20L AA Oerlikon al/gun/alAA20.gif al/gun/alAA20b.gif -2207 40L AA Bofors al/gun/alAA40.gif al/gun/alAA40b.gif -2208 75 ART wz. 02/26 al/gun/alART75p.gif al/gun/alART75pb.gif -2209 100* ART wz. 14/19 al/gun/alART100p.gif al/gun/alART100pb.gif -2210 75L AA wz. 97/25 al/gun/alAA75p.gif al/gun/alAA75pb.gif -2211 76* MTR M76 A al/gun/alMTR76.gif al/gun/alMTR76b.gif -2212 76* INF FRC ['al/gun/alINF76.gif', 'al/gun/alINF76u.gif'] al/gun/alINF76b.gif -2213 47 AT C47 FRC M 32 al/gun/alATb47.gif al/gun/alATb47b.gif -2214 75 ART C75 TR al/gun/alARTb75.gif al/gun/alARTb75b.gif -2215 75 ART C75 GP al/gun/alART75gp.gif al/gun/alART75gpb.gif -2216 105 ART Ob 105 GP al/gun/alARTb105.gif al/gun/alARTb105b.gif -2217 120 ART C120 M31 al/gun/alARTb120.gif al/gun/alARTb120b.gif -2218 75L AA M27 FRC al/gun/alAA75.gif al/gun/alAA75b.gif -2219 85 ART Vari 85/24 M al/gun/alART85.gif al/gun/alART85b.gif -2220 105* ART OR 105/19 al/gun/alART105g.gif al/gun/alART105gb.gif -2221 37L AA Bofors al/gun/alAA37.gif al/gun/alAA37b.gif -2222 20L AT M-35 al/gun/alAT20.gif al/gun/alAT20b.gif -2223 37* INF al/gun/alINF37.gif al/gun/alINF37b.gif -2224 80* ART M28/M33 al/gun/alART80.gif al/gun/alART80b.gif -2225 100* ART M14/19 al/gun/alART100.gif al/gun/alART100b.gif -2231 L5/30(i) al/veh/L530.gif -2233 L3/35(i) al/veh/L335.gif -2235 L6/40(i) al/veh/L640.gif -2237 M13/40(i) al/veh/M1340.gif -2239 FT-17M(f) al/veh/FT17M.gif -2241 FT-17C(f) FT17C.gif -2243 R-35(f) al/veh/R35.gif -2245 M3A1 SC(a) al/veh/M3A1sc.gif -2247 C-K P17(f) al/veh/CKP17.gif -2249 C-K P19(f) al/veh/CKP19.gif -2251 VCL Utility(b) al/veh/VCL.gif -2253 Lt truck al/veh/allttruck.gif -2255 Md truck al/veh/almdtruck.gif -2257 Hv truck al/veh/alhvytruck.gif -2259 TKS al/veh/TKS.gif -2261 TKS(L) al/veh/TKSL.gif -2263 Vickers Edw(b) al/veh/Edwb.gif -2265 Vickers Ejw(b) al/veh/Ejwb.gif -2267 7TPdw al/veh/7TPdw.gif -2269 7TPjw al/veh/7TPjw.gif -2271 H35(f) al/veh/H35f.gif -2273 Peugeot 1918(f) al/veh/1918f.gif -2275 wz. 29 Ursus al/veh/wz29.gif -2277 wz. 34-I al/veh/wz34i.gif -2279 wz. 34-II al/veh/wz34ii.gif -2281 De Dion-Bouton wz. 24(f) al/veh/dion.gif -2283 PF 621L al/veh/PF621.gif -2285 302T al/veh/302T.gif -2287 C2P al/veh/C2P.gif -2289 C4P al/veh/C4P.gif -2291 Taczanka al/veh/Tacz.gif -2292 VCL Mk VI/c47(b) al/veh/VCLmkVI.gif -2294 T-13 II(b) al/veh/T13ii.gif -2296 T-13 III(b) al/veh/T13iii.gif -2298 T-15(b) al/veh/T15.gif -2300 ACG1(f) al/veh/ACG.gif -2302 T32 al/veh/T32.gif -2304 M3A1(a) al/veh/M3A1.gif -2306 M3A3(a) al/veh/M3A3.gif -2308 M3A3(a) PaK 40 al/veh/M3A3pak.gif -2310 M3A3(a) FlaK 38 al/veh/M3A3flak.gif -2312 AEC II(b) al/veh/alaecii.gif -2314 Nimbus al/veh/Nimbus.gif -2315 VCL M1936(b) al/veh/VCLM1936.gif -2317 CTLS-4(a) al/veh/CTLS4.gif -2319 M.36 al/veh/M36.gif -2321 M.38 al/veh/M38.gif -2323 M.39 Lynx al/veh/M39.gif -2325 Marm-Herr III(b) al/veh/almarmherr.gif -2327 Jeep(a) al/veh/aljeep.gif -2328 Jeep(a) MMG al/veh/aljeep2.gif -2329 L5/30(i) al/veh/L530y.gif -2331 L3/35(i) al/veh/L335y.gif -2333 L6/40(i) al/veh/L640y.gif -2335 M13/40(i) al/veh/M1340y.gif -2465 50* MTR ge/geMTR.gif ge/geMTRb.gif -2474 Goliath ge/gegol.gif -2488 81* MTR GrW 34 ge/gun/geMTR81s.gif ge/gun/geMTR81sb.gif -2490 105* MTR NbW 35 ge/gun/geMT105s.gif ge/gun/geMT105sb.gif -2491 120* MTR GrW 42 ge/gun/geMT120s.gif ge/gun/geMT120sb.gif -2493 28LL AT sPzB 41 ge/gun/geAT28LL.gif ge/gun/geAT28LLb.gif -2494 37L AT PaK 35/36 ge/gun/geAT37L.gif ge/gun/geAT37Lb.gif -2495 40LL AT lePaK 41 ge/gun/geAT40LL.gif ge/gun/geAT40LLb.gif -2496 50L AT PaK 38 ge/gun/geAT50L.gif ge/gun/geAT50Lb.gif -2497 75 AT PaK 97/38 ge/gun/geAT75.gif ge/gun/geAT75b.gif -2498 75L AT PaK 40 ge/gun/geAT75L.gif ge/gun/geAT75Lb.gif -2499 76L AT PaK 36r ge/gun/geAT76L.gif ge/gun/geAT76Lb.gif -2500 88LL AT PaK 43 ge/gun/geAT88LL.gif ge/gun/geAT88LLb.gif -2501 88LL AT PaK 43/41 ge/gun/geAT88NT.gif ge/gun/geAT88NTb.gif -2502 128L AT K 81/1 ge/gun/geAT128L.gif ge/gun/geAT128Lb.gif -2504 75* INF leIG 18 ge/gun/geINF75.gif ge/gun/geINF75b.gif -2505 150* INF sIG 33 ge/gun/geIN150s.gif ge/gun/geIN150sb.gif -2506 75* RCL LG 40 ge/gun/geRCL75s.gif ge/gun/geRCL75sb.gif -2507 105* RCL LG 42 ge/gun/geRCL105.gif ge/gun/geRCL105b.gif -2509 75 ART leFK 16nA ge/gun/geAR75.gif ge/gun/geAR75b.gif -2510 105 ART leFH 18 ge/gun/geAR105.gif ge/gun/geAR105b.gif -2511 105L ART sK 18 ge/gun/geAR105L.gif ge/gun/geAR105Lb.gif -2512 150 ART sFH 18 ge/gun/geAR150.gif ge/gun/geAR150b.gif -2513 150L ART K 18 ge/gun/geAR150L.gif ge/gun/geAR150Lb.gif -2514 170L ART K 18 ge/gun/geAR170L.gif ge/gun/geAR170Lb.gif -2516 20L AA FlaK 30 ge/gun/geAA20L4.gif ge/gun/geAA20L4b.gif -2517 20L AA FlaK 38 ge/gun/geAA20L6.gif ge/gun/geAA20L6b.gif -2518 20L AA FlaKvierling 38 ge/gun/geAA2020.gif ge/gun/geAA2020b.gif -2519 37L AA FlaK 36 o. 37 ge/gun/geAA37L8.gif ge/gun/geAA37L8b.gif -2520 37L AA FlaK 43 ge/gun/geAA3712.gif ge/gun/geAA3712b.gif -2521 88L AA FlaK 18 o. 36 ge/gun/geAA88L.gif ge/gun/geAA88Lb.gif -2524 PzKw IB ge/veh/pzib.gif -2526 PzKw IIA ge/veh/pziia.gif -2528 PzKw IIF ge/veh/pziif.gif -2530 PzKw II(Fl) ge/veh/pziifl.gif -2532 PzKw IIL ge/veh/pziil.gif -2534 PzKw 35t ge/veh/pz35t.gif -2536 PzKw 38(t)A ge/veh/pz38ta.gif -2538 PzKw 38(t)E ge/veh/pz38te.gif -2540 Aufklaerer 38(t) ge/veh/auf38t.gif -2542 FT-17 730m(f) ge/veh/ft17mf.gif -2544 FT-17 730(f) ge/veh/ft17f.gif -2546 38H 735(f) ge/veh/38hf.gif -2548 35-S 739(f) ge/veh/35sf.gif -2550 Pz 35R 731(f) ge/veh/pz35rf.gif -2552 PzKw IIID ge/veh/pziiid.gif -2554 PzKw IIIF ge/veh/pziiif.gif -2556 PzKw IIIG ge/veh/pziiig.gif -2558 PzKw IIIH ge/veh/pziiih.gif -2560 PzKw IIIJ ge/veh/pziiij.gif -2562 PzKw IIIL ge/veh/pziiil.gif -2564 PzKw IIIL ge/veh/pziiil2.gif -2566 PzKw IIIN ge/veh/pziiin.gif -2568 PzKw IIIN ge/veh/pziiin2.gif -2570 PzKw III(Fl) ge/veh/pziiifl.gif -2572 PzKw IVA ge/veh/pziva.gif -2574 PzKw IVC ge/veh/pzivc.gif -2576 PzKw IVD ge/veh/pzivd.gif -2578 PzKw IVE ge/veh/pzive.gif -2580 PzKw IVF1 ge/veh/pzivf1.gif -2582 PzKw IVF2 ge/veh/pzivf2.gif -2584 PzKw IVH ge/veh/pzivh.gif -2586 PzKw IVH ge/veh/pzivh2.gif -2588 PzKw IVJ ge/veh/pzivj.gif -2590 PzKw VD ge/veh/pzvd.gif -2592 PzKw VG ge/veh/pzvg.gif -2594 PzKw M15/42(i) ge/veh/pzm1542.gif -2596 PzKw P26/40(i) ge/veh/pzp2640.gif -2598 PzKw VIE ge/veh/pzvie.gif -2600 PzKw VIE (L) ge/veh/pzviel.gif -2602 PzKw VIB ge/veh/pzvib.gif -2608 StuG IIIB ge/veh/stgiiib.gif -2610 StuG IIIG ge/veh/stgiiig.gif -2612 StuG IIIG (L) ge/veh/stgiiigl.gif -2614 StuH 42 ge/veh/stuh42.gif -2616 StuH 42 (L) ge/veh/stuh42l.gif -2618 StuPz IV ge/veh/stupziv.gif -2620 StuPz IV ge/veh/stupziv2.gif -2622 PzJg Tiger ge/veh/pzjg.gif -2624 PzJg Tiger ge/veh/pzjg2.gif -2626 StuG 75/18(i) ge/veh/stg7518.gif -2628 StuG 75/34(i) ge/veh/stg7534.gif -2630 StuG 105/25(i) ge/veh/stg10525.gif -2632 StuG 75/46(i) ge/veh/stg7546.gif -2634 PzJg I ge/veh/pzjgi.gif -2636 PzJg 35R(f) ge/veh/pzjg35rf.gif -2638 GSW 39H(f) PaK ge/veh/gsw39hp.gif -2640 Marder I(f) ge/veh/mardi.gif -2642 Marder II ge/veh/mardii.gif -2644 Marder II ge/veh/mardii2.gif -2646 Marder III(t)H ge/veh/mardiiih.gif -2648 Marder III(t)M ge/veh/mardiiim.gif -2650 PzJg III/IV ge/veh/pzjgiii.gif -2652 PzJg III/IV ge/veh/pzjgiii2.gif -2654 JgdPz 38(t) ge/veh/jgpz38.gif -2656 JgdPz 38(t) (Fl) ge/veh/jgpz38fl.gif -2658 JgdPz IV ge/veh/jgpziv.gif -2660 JgdPz IV (L) ge/veh/jgpzivl.gif -2662 JgPz IV/70 ge/veh/jgpziv70.gif -2664 JgdPz V ge/veh/jgpzv.gif -2666 JgdPz VI ge/veh/jgpzvi.gif -2668 StuIG 33B ge/veh/sig33b.gif -2674 SPW 250/1 ge/veh/spw2501.gif -2676 SPW 250/sMG ge/veh/spw250mg.gif -2678 SPW 250/7 ge/veh/spw2507.gif -2680 SPW 250/8 ge/veh/spw2508.gif -2682 SPW 250/8 ge/veh/spw25082.gif -2684 SPW 250/9 ge/veh/spw2509.gif -2686 SPW 250/10 ge/veh/spw25010.gif -2688 SPW 251/1 ge/veh/spw2511.gif -2690 SPW 251/sMG ge/veh/spw251mg.gif -2692 SPW 251/2 ge/veh/spw2512.gif -2694 SPW 251/9 ge/veh/spw2519.gif -2696 SPW 251/9 ge/veh/spw25192.gif -2698 SPW 251/10 ge/veh/spw25110.gif -2700 SPW 251/16 ge/veh/spw25116.gif -2702 SPW 251/21 ge/veh/spw25121.gif -2704 SPW 251/22 ge/veh/spw25122.gif -2706 SPW S307(f) ge/veh/spws307.gif -2708 mSPW S307(f) ge/veh/mspws307.gif -2710 SdKfz 2 ge/veh/sdkfz2.gif -2711 SdKfz 11 ge/veh/sdkfz11.gif -2713 SdKfz 7 ge/veh/sdkfz7.gif -2717 Kfz 13 ge/veh/kfz13.gif -2719 PSW 221 ge/veh/psw221.gif -2721 PSW 222 ge/veh/psw222.gif -2723 PSW 222 (L) ge/veh/psw222l.gif -2725 PSW 231 (6 rad) ge/veh/psw2316.gif -2727 PSW 231 (6 rad) ge/veh/psw23162.gif -2729 PSW 231 (8 rad) ge/veh/psw2318.gif -2731 PSW 232 (8 rad) ge/veh/psw2328.gif -2733 PSW 233 ge/veh/psw233.gif -2735 PSW 234/1 ge/veh/psw2341.gif -2737 PSW 234/2 ge/veh/psw2342.gif -2739 PSW 234/3 ge/veh/psw2343.gif -2741 PSW 234/3 ge/veh/psw23432.gif -2743 PSW 234/4 ge/veh/psw2344.gif -2747 sIG IB ge/veh/sigib.gif -2749 sIG II ge/veh/sigii.gif -2751 sIG 38(t)M ge/veh/sig38m.gif -2753 PzA II ge/veh/pzaii.gif -2755 PzA II ge/veh/pzaii2.gif -2757 PzA LrS(f) ge/veh/pzalrs.gif -2759 GSW 39H(f) ge/veh/gsw39hf.gif -2761 PzA III/IV ge/veh/pzaiii.gif -2763 FlaKPz 38(t) ge/veh/flakpz38.gif -2765 37 FlaK/Pz IV [move] ge/veh/flakpz37.gif -2768 FlaKPz IV/20 ge/veh/flakiv20.gif -2770 FlaKPz IV/37 ge/veh/flakiv37.gif -2772 SdKfz 10/4 ge/veh/sdkfz104.gif -2775 SdKfz 10/5 ge/veh/sdkfz105.gif -2778 SdKfz 6/2 ge/veh/sdkfz62.gif -2781 SdKfz 7/1 ge/veh/sdkfz71.gif -2784 Kfz 4 ge/veh/kfz4.gif -2785 2cm FlaK LKW ge/veh/lkw2cm.gif -2787 3.7cm FlaK LKW ge/veh/lkw37cm.gif -2791 Kfz 1 ge/veh/kfz1.gif -2793 Kfz 1/20 ge/veh/kfz120.gif -2794 Opel 6700 ge/veh/opel.gif -2796 NAG 4500 ge/veh/nag4500.gif -2798 SdKfz 2 ge/veh/sdkfz2.gif -2799 SdKfz 11 ge/veh/sdkfz11.gif -2801 SdKfz 7 ge/veh/sdkfz7.gif -2805 SPW 251/1 ge/veh/spw2511.gif -2807 PzKw IVH ge/veh/pzivh.gif -2809 PzKw IVH ge/veh/pzivh2.gif -2811 PzKw IVJ ge/veh/pzivj.gif -2813 PzKw VG ge/veh/pzvg.gif -2815 JgdPz V ge/veh/jgpzv.gif -2817 FlaKPz IV/20 ge/veh/flakiv20.gif -3252 37* INF ja/jaINF37.gif ja/jaINF37b.gif -3253 50* MTR ja/jaMTR.gif ja/jaMTRB.gif -3263 20L ATR ja/jaATR20.gif ja/jaATR20b.gif -3277 70* MTR ja/gun/jaMTR70s.gif ja/gun/jaMTR70sb.gif -3279 81* MTR ja/gun/jaMTR81s.gif ja/gun/jaMTR81sb.gif -3281 90* MTR ja/gun/jaMTR90s.gif ja/gun/jaMTR90sb.gif -3283 150* MTR ja/gun/jaMTR150s.gif ja/gun/jaMTR150sb.gif -3285 37L AT ja/gun/jaAT37L.gif ja/gun/jaAT37Lb.gif -3286 47L AT ja/gun/jaAT47L.gif ja/gun/jaAT47Lb.gif -3287 70* INF ja/gun/jaINF70s.gif ja/gun/jaINF70sb.gif -3288 75* INF ja/gun/jaINF75s.gif ja/gun/jaINF75sb.gif -3291 75* ART ja/gun/jaAR75s.gif ja/gun/jaAR75sb.gif -3292 75 ART ja/gun/jaAR75.gif ja/gun/jaAR75b.gif -3293 105 ART ja/gun/jaAR105.gif ja/gun/jaAR105b.gif -3294 105L ART ja/gun/jaAR105L.gif ja/gun/jaAR105Lb.gif -3295 120* ART ja/gun/jaAR120s.gif ja/gun/jaAR120sb.gif -3296 140L ART ja/gun/jaAR140L.gif ja/gun/jaAR140Lb.gif -3297 150* ART ja/gun/jaAR150s.gif ja/gun/jaAR150sb.gif -3298 150 ART ja/gun/jaAR150.gif ja/gun/jaAR150b.gif -3301 12.7 AA Twin ja/gun/jaAA127.gif ja/gun/jaAA127b.gif -3302 20L AA ja/gun/jaAA20L.gif ja/gun/jaAA20Lb.gif -3303 25LL AA ja/gun/jaAA25LL.gif ja/gun/jaAA25LLb.gif -3304 25LL AA Twin ja/gun/jaAA25L2.gif ja/gun/jaAA25L2b.gif -3305 25LL AA Triple ja/gun/jaAA25L3.gif ja/gun/jaAA25L3b.gif -3306 75 AA ja/gun/jaAA75.gif ja/gun/jaAA75b.gif -3307 76L AA ja/gun/jaAA76L.gif ja/gun/jaAA76Lb.gif -3308 120L AA ja/gun/jaAA120L.gif ja/gun/jaAA120Lb.gif -3310 Type 92A ja/veh/ty92A.gif -3312 Type 92B ja/veh/ty92B.gif -3314 Type 94 ja/veh/ty94.gif -3316 Type 95 SO-KI ja/veh/ty95soki.gif -3318 Type 97A TE-KE ja/veh/ty97Ateke.gif -3320 Type 97B TE-KE ja/veh/ty97Bteke.gif -3322 Type 95 HA-GO ja/veh/ty95hago.gif -3324 Type 2 KA-MI ja/veh/ty2kami.gif -3326 Type 2 KA-MI amph ja/veh/ty2kamip.gif -3329 Type 89A CHI-RO ja/veh/ty89Achiro.gif -3331 Type 89B CHI-RO ja/veh/ty89Bchiro.gif -3333 Type 97A CHI-HA ja/veh/ty97Achiha.gif -3335 Type 97B CHI-HA ja/veh/ty97Bchiha.gif -3337 Type 1 CHI-HE ja/veh/ty1chihe.gif -3341 Type 91 AC ja/veh/ty91ac.gif -3343 Type 91 AC ja/veh/ty91ac2.gif -3345 Type 91 AC ja/veh/ty91ac3.gif -3347 Type 92 AC ja/veh/ty92ac.gif -3349 Type 92 AC ja/veh/ty92ac2.gif -3353 Type 1 HO-NI ja/veh/ty1honi.gif -3355 Type 4 HO-RO ja/veh/ty4horo.gif -3357 Type 1 HO-KI ja/veh/ty1hoki.gif -3359 Type 98 SHI-KE ja/veh/ty98shike.gif -3361 Type 92 I-KE ja/veh/ty92ike.gif -3363 Type 95 tr ja/veh/ty95tr.gif -3364 Type 94 tr ja/veh/ty94tr.gif -3366 Type 97 tr ja/veh/ty97tr.gif -3422 45* MTR it/itMTR.gif it/itMTRb.gif -3428 20L ATR it/itATR20.gif it/itATR20b.gif -3442 81* MTR 81/14 it/gun/itMTR81s.gif it/gun/itMTR81sb.gif -3444 37L AT 37/45 it/gun/itAT37L.gif it/gun/itAT37Lb.gif -3445 47 AT 47/32 it/gun/itAT47.gif it/gun/itAT47b.gif -3446 65* INF 65/17 it/gun/itINF65s.gif it/gun/itINF65sb.gif -3447 70* INF 70/15 it/gun/itINF70s.gif it/gun/itINF70sb.gif -3451 75* ART 75/13 it/gun/itAR75s_.gif it/gun/itAR75s_b.gif -3452 75* ART 75/27 it/gun/itAR75s.gif it/gun/itAR75sb.gif -3453 75* ART 75/18 it/gun/itAR75sO.gif it/gun/itAR75sOb.gif -3454 75 ART 75/32 it/gun/itAR75_.gif it/gun/itAR75_b.gif -3455 100* ART 100/17 it/gun/itAR100s.gif it/gun/itAR100sb.gif -3456 105 ART 105/28 it/gun/itAR105.gif it/gun/itAR105b.gif -3457 150* ART 149/13 it/gun/itAR150s.gif it/gun/itAR150sb.gif -3458 150 ART 149/35 it/gun/itAR150.gif it/gun/itAR150b.gif -3459 150L ART 149/40 it/gun/itAR150L.gif it/gun/itAR150Lb.gif -3461 20L AA 20/65 it/gun/itAA20L.gif it/gun/itAA20Lb.gif -3462 75L AA 75/39 it/gun/itAA75L.gif it/gun/itAA75Lb.gif -3463 75L AA 75/46 it/gun/itAA7546.gif it/gun/itAA7546b.gif -3464 90L AA 90/53 it/gun/itAA90L.gif it/gun/itAA90Lb.gif -3466 L5/21 it/veh/l521.gif -3468 L5/30 it/veh/l530.gif -3470 L3/35 it/veh/l335.gif -3472 L3 aa it/veh/l3aa.gif -3474 L3 cc it/veh/l3cc.gif -3476 L3 Lf it/veh/l3lf.gif -3479 L6/40 it/veh/l640.gif -3481 M11/39 it/veh/m1139.gif -3483 M13/40 it/veh/m1340.gif -3485 M13/40 it/veh/m13402.gif -3487 M14/41 it/veh/m1441.gif -3489 M14/41 it/veh/m14412.gif -3491 M15/42 it/veh/m1542.gif -3493 M15/42 it/veh/m15422.gif -3495 MR/35(f) it/veh/mr35.gif -3499 Semovente M40 75/18 it/veh/semm40.gif -3501 Semovente M40 75/18 it/veh/semm402.gif -3503 Semovente M41 75/18 it/veh/semm41.gif -3505 Semovente M41 75/18 it/veh/semm412.gif -3507 Semovente M42 75/18 it/veh/semm4218.gif -3509 Semovente M42 75/32 it/veh/semm4232.gif -3511 Semovente M43 105/25 it/veh/semm43.gif -3513 Semovente L40 47/32 it/veh/seml40.gif -3515 Semovente M41M 90/53 it/veh/semm41m.gif -3519 AS 42 it/veh/as42.gif -3521 AS 42 aa it/veh/as42aa.gif -3523 AS 42 cc it/veh/as42cc.gif -3525 Lince it/veh/lince.gif -3527 Lancia 1ZM it/veh/lancia.gif -3529 Fiat 611A it/veh/fiat611a.gif -3531 Fiat 611B it/veh/fiat611b.gif -3533 AB 40 it/veh/ab40.gif -3535 AB 41 it/veh/ab41.gif -3539 Autoprotetto S37 it/veh/auts37.gif -3541 Autocannone 65/17(b) it/veh/aut6517.gif -3545 Autocannone 20/65(b) it/veh/aut2065.gif -3547 Autocanonne 75/27 CK it/veh/aut7527.gif -3549 Autocanonne 90/53 it/veh/aut9053.gif -3551 TL 37 it/veh/tl37.gif -3553 TM 40 it/veh/tm40.gif -3555 TP 32 it/veh/tp32.gif -3557 Autocarretta it/veh/autocarr.gif -3559 Autocarretta MG it/veh/autocarr2.gif -3561 Fiat 508 MC it/veh/fiat508.gif it/veh/fiat508.gif -3562 Fiat 508 MC Furgone it/veh/fiat508f.gif it/veh/fiat508f.gif -3563 Autocarro Leggero it/veh/autleg.gif -3565 Autocarro Medio it/veh/autmed.gif -3567 Autocarro Pesante it/veh/autpes.gif -3605 50* MTR (g) fi/fiMTR.gif fi/fiMTRb.gif -3608 20L ATR fi/fiATR.gif fi/fiATRb.gif -3679 50 MTR(f) ax/axMTRf.gif ax/axMTRfb.gif -3680 50* MTR ax/axMTR.gif ax/axMTRb.gif -3681 50* MTR(r) ax/axMTRr.gif ax/axMTRrb.gif -3682 60* MTR(f) ax/axMTR60f.gif ax/axMTR60fb.gif -3709 81* MTR GrW 34 ax/gun/axMT81sg.gif ax/gun/axMT81sgb.gif -3711 81* MTR Brandt M27/31 ax/gun/axMT81s.gif ax/gun/axMT81sb.gif -3713 120* MTR PM obr. 38 ax/gun/axMT120s.gif ax/gun/axMT120sb.gif -3714 37L AT Kanon PUV vz. 37(t) ax/gun/axAT37L.gif ax/gun/axAT37Lb.gif -3715 47 AT Bohler M35 ax/gun/axAT47.gif ax/gun/axAT47b.gif -3716 50L AT PaK 38(g) ax/gun/axAT50L.gif ax/gun/axAT50Lb.gif -3717 75 AT PaK 97/38(g) ax/gun/axAT75.gif ax/gun/axAT75b.gif -3718 75L AT PaK 40(g) ax/gun/axAT75L.gif ax/gun/axAT75Lb.gif -3719 75* ART Skoda Model 15 ax/gun/axAR75s.gif ax/gun/axAR75sb.gif -3720 75 ART Canon mle 1897 ax/gun/axAR75.gif ax/gun/axAR75b.gif -3721 75 ART Skoda M29 ax/gun/axAR752.gif ax/gun/axAR752b.gif -3722 76* ART Skoda M17 ax/gun/axAR76s.gif ax/gun/axAR76sb.gif -3723 80* ART Skoda M28(80) ax/gun/axAR80s.gif ax/gun/axAR80sb.gif -3724 100* ART Skoda M14/19 ax/gun/axAR100s.gif ax/gun/axAR100sl.gif -3725 105 ART leFH 18(g) ax/gun/axAR105.gif ax/gun/axAR105b.gif -3726 105L ART Skoda M35 ax/gun/axAR105L.gif ax/gun/axAR105Lb.gif -3727 122* ART G obr. 10/30 ax/gun/axAR122s.gif ax/gun/axAR122sb.gif -3728 122 ART G obr. 38 ax/gun/axAR122.gif ax/gun/axAR122b.gif -3729 150* ART Skoda M14 ax/gun/axAR150s.gif ax/gun/axAR150sb.gif -3730 152 ART Skoda M15/16 ax/gun/axAR152.gif ax/gun/axAR152b.gif -3731 155* ART C mle 17 S ax/gun/axAR155s.gif ax/gun/axAR155sb.gif -3732 12.7 AA CAJ mle 30 ax/gun/axAA127.gif ax/gun/axAA127b.gif -3733 20L AA Oerlikon FF ax/gun/axAA20L.gif ax/gun/axAA20Lb.gif -3734 20L AA FlaK 30(g) ax/gun/axAA20Lg1.gif ax/gun/axAA20Lg1b.gif -3735 20L AA FlaK 38(g) ax/gun/axAA20Lg2.gif ax/gun/axAA20Lg2b.gif -3736 37L AA FlaK 36(g) ax/gun/axAA37L.gif ax/gun/axAA37Lb.gif -3737 40L AA Bofors ax/gun/axAA40L.gif ax/gun/axAA40Lb.gif -3738 76L AA Skoda M33 ax/gun/axAA76L.gif ax/gun/axAA76Lb.gif -3739 88L AA FlaK 18 o. 36 ax/gun/axAA88L.gif ax/gun/axAA88Lb.gif -3740 37L AT Bofors ax/gun/roAT37L.gif ax/gun/roAT37Lb.gif -3742 75L AT Resita M43 ax/gun/roAT75L.gif ax/gun/roAT75Lb.gif -3743 76LL AT PaK 36(r) ax/gun/roAT76LL.gif ax/gun/roAT76LLb.gif -3744 47 INF Breda ax/gun/roINF47.gif ax/gun/roINF47b.gif -3745 75* INF PP obr. 27 ax/gun/roINF75s.gif ax/gun/roINF75sb.gif -3746 75* ART 75 M mle 28 ax/gun/roAR75s1.gif ax/gun/roAR75s1b.gif -3747 75* ART Skoda M14/34 ax/gun/roAR75s2.gif ax/gun/roAR75s2b.gif -3748 76* ART P obr. 00/02 ax/gun/roAR76s.gif ax/gun/roAR76sb.gif -3749 76 ART P obr. 02/30 ax/gun/roAR76.gif ax/gun/roAR76b.gif -3750 76L ART P obr. 39(r) ax/gun/roAR76L.gif ax/gun/roAR76Lb.gif -3751 105L ART s 10cm K 18(g) ax/gun/roAR105L1.gif ax/gun/roAR105L1b.gif -3752 105 ART Skoda M39(D9) ax/gun/roAR105.gif ax/gun/roAR105b.gif -3753 105L ART mle 36 S ax/gun/roAR105L2.gif ax/gun/roAR105L2b.gif -3754 107 ART mle 10/12 ax/gun/roAR107.gif ax/gun/roAR107b.gif -3755 114* ART OQF 4.5" Howitzer ax/gun/roAR114s.gif ax/gun/roAR114sb.gif -3757 150 ART Skoda Model 33(K1) ax/gun/roAR150.gif ax/gun/roAR150b.gif -3758 25L AA CA mle 38 ax/gun/roAA25LL.gif ax/gun/roAA25LLb.gif -3759 75L AA Vickers/Resita M36/39 ax/gun/roAA75L.gif ax/gun/roAA75Lb.gif -3760 90L AA Kanon PL vz. 12/20 ax/gun/roAA90L.gif ax/gun/roAA90Lb.gif -3761 81* MTR Minomet vz. 36 ax/gun/slMT81s.gif ax/gun/slMT81sb.gif -3763 47L AT Kanon PUV vz. 36(t) ax/gun/slAT47L.gif ax/gun/slAT47Lb.gif -3764 75* INF leIG 18(g) ax/gun/slIN75s.gif ax/gun/slIN75sb.gif -3765 150L ART Skoda M37(K4) ax/gun/slAR150L.gif ax/gun/slAR150Lb.gif -3767 75L AA Skoda PL vz. 37(t) ax/gun/slAA75L.gif ax/gun/slAA75Lb.gif -3768 83L AA Kanon PL vz. 22/24 ax/gun/slAA83L.gif ax/gun/slAA83Lb.gif -3774 100* ART Skoda Model 28(FE) ax/gun/crAR100s.gif ax/gun/crAR100sb.gif -3775 20L AT Madsen M-35 ax/gun/buAT20L.gif ax/gun/buAT20Lb.gif -3776 37* INF Skoda IG ax/gun/buIN37s.gif ax/gun/buIN37sb.gif -3777 70* INF Skoda IG ax/gun/buIN37s2.gif ax/gun/buIN37sb.gif -3778 75* ART Bofors M36 ax/gun/buAR75s.gif ax/gun/buAR75sb.gif -3779 75 ART K-S ax/gun/buAR75.gif ax/gun/buAR75b.gif -3780 105 ART Ob GP ax/gun/buAR105.gif ax/gun/buAR105b.gif -3781 150* ART D/30 Krupp ax/gun/buAR150s.gif ax/gun/buAR150sb.gif -3787 L3/35(i) ax/veh/axL335.gif -3789 FT-17M(f) ax/veh/axFT17M.gif -3791 FT-17C(f) ax/veh/axFT17C.gif -3793 H39(f) ax/veh/axH39.gif -3795 R-35(f) ax/veh/axR35.gif -3797 S-35(f) ax/veh/axS35.gif -3799 LT vz 38(t)A ax/veh/axLT38A.gif -3801 LT vz 38(t)E ax/veh/axLT38E.gif -3803 JgdPz 38(t) ax/veh/axJgPz38.gif -3805 OA vz 30(t) ax/veh/axOA30.gif -3807 AB 41(i) ax/veh/axAB41.gif -3809 Komsomolets(r) ax/veh/axKom.gif -3811 Komsomolets(r) MG ax/veh/axKom2.gif -3813 Lt Tractor ax/veh/axTracL.gif -3815 Md Tractor ax/veh/axTracM.gif -3817 Hv Tractor ax/veh/axTracH.gif -3819 Lt Truck ax/veh/axTrkL.gif -3821 Md Truck ax/veh/axTrkM.gif -3823 Hv Truck ax/veh/axTrkH.gif -3825 LT vz 35(g) ax/veh/axLT35.gif -3827 PzKw IB(g) ax/veh/axPziB.gif -3829 PzKw IIIL(g) ax/veh/axPziiiL.gif -3831 PzKw IIIL(g) ax/veh/axPziiiL2.gif -3833 PzKw IIIN(g) ax/veh/axPziiiN.gif -3835 PzKw IIIN(g) ax/veh/axPziiiN2.gif -3837 PzKw IVD(g) ax/veh/axPzivD.gif -3839 PzKw IVF1(g) ax/veh/axPzivF.gif -3841 PzKw IVH(g) ax/veh/axPzivH.gif -3843 PzKw IVH(g) ax/veh/axPzivH2.gif -3845 StuG IIIG(g) ax/veh/axSGiiiG.gif -3847 SPW 250/1(g) ax/veh/axSPW2501.gif -3849 SPW 251/1(g) ax/veh/axSPW2511.gif -3851 SPW 251/9(g) ax/veh/axSPW2519.gif -3853 PSW 222(g) ax/veh/axPSW222.gif -3855 PSW 222(L)(g) ax/veh/axPSW222L.gif -3857 PSW 223(g) ax/veh/axPSW223.gif -3859 RSO(g) ax/veh/axRSO.gif -3861 R-1(t) ax/veh/roR1.gif -3863 R-35/45(f) ax/veh/roR35.gif -3865 TACAM T-60(r) ax/veh/roT60.gif -3867 TACAM T-60A(r) ax/veh/roT60A.gif -3869 TACAM R-2(r) ax/veh/roR2.gif -3871 BA-6(r) ax/veh/roBA6.gif -3873 BA-20(r) ax/veh/roBA20.gif -3875 Malaxa UE2 ax/veh/roUE.gif -3877 Malaxa UE2 MG ax/veh/roUE2.gif -3879 T vz 33(t) ax/veh/slT33.gif -3881 LT vz 34 ax/veh/slLT34.gif -3883 PzKw IIA(g) ax/veh/slPziiA.gif -3885 LT vz 40(t) ax/veh/slLT40.gif -3887 Marder III(t)H ax/veh/slMiiiH.gif -3889 Kfz 1(g) ax/veh/slKfz1.gif -3891 SdKfz 2(g) ax/veh/slSdKfz2.gif -3892 TKS ax/veh/crTKS.gif -3894 TKS(L) ax/veh/crTKSL.gif -3900 wz. 34-II ax/veh/cr34ii.gif -3902 Semovente L40(i) ax/veh/crSemL40.gif -3904 Vickers 6t Mk E ax/veh/buV6E.gif -3906 R-35(f) ax/veh/buR35.gif -3993 40L AT MAVAG 40 M hu/gun/huAT40L.gif hu/gun/huAT40Lb.gif -3999 76 ART Skoda M05/08 hu/gun/huAR76.gif hu/gun/huAR76b.gif -4001 105 ART MAVAG M40 hu/gun/huAR1052.gif hu/gun/huAR1052b.gif -4007 80L AA Bofors M29/38 hu/gun/huAA80L.gif hu/gun/huAA80Lb.gif -4009 38M Toldi I hu/veh/hu38MTi.gif -4011 38M Toldi IIA hu/veh/hu38MTiiA.gif -4013 40M Turan I(r) hu/veh/hu40MTi.gif -4015 41M Turan II(r) hu/veh/hu41MTii.gif -4043 PzKw VG(g) hu/veh/huPzvG.gif -4045 PzKw VIE(L)(g) hu/veh/huPzviE.gif -4055 43M Zrinyi II hu/veh/hu43MZii.gif -4057 Marder II(g) hu/veh/huMii.gif -4067 40M Csaba hu/veh/hu40MC.gif -5723 M3A1 am/veh/M3A1.gif -5728 M5A1 am/veh/M5A1.gif -5733 M4 am/veh/M4.gif -5738 M4A1 am/veh/M4A1.gif -5743 M4A2 am/veh/M4A2.gif -5748 M4A2(L) am/veh/M4A2L.gif -5753 M4A3 am/veh/M4A3.gif -5758 M4A3(75)W am/veh/M4A375W.gif -5763 M4A3E2 am/veh/M4A3E2.gif -5768 M4A3E2(L) am/veh/M4A3E2L.gif -5773 M4A1(76)W am/veh/M4A176W.gif -5778 M4A3(76)W am/veh/M4A376W.gif -5852 122* ART obr. 10/30 ch/gun/chAR122s2.gif ch/gun/chAR122sb.gif -5853 122 ART G obr. 38 ch/gun/chAR1222.gif ch/gun/chAR122b.gif -5854 20L AA 20/65 ch/gun/chAA20LC2.gif ch/gun/chAA20LCb.gif -5855 75L AA Bofors M29 ch/gun/chAA75L2.gif ch/gun/chAA75Lb.gif -5856 88L AA FlaK 18 ch/gun/chAA88L2.gif ch/gun/chAA88Lb.gif -6364 Stuart III(a) ru/veh/ruM3A1.gif -6730 47 MTR fi/fi47mtr.png fi/fi47mtrB.png -6765 81* MTR Krh/32 fi81mmMTR.png fi/gun/fi81mmMTRB.png -6782 81* MTR Savu M42 fi81mmMTR Savu.png fi/gun/fi81mmMTR SavuB.png -6796 7.62 AA fi7.62AA.png fi/gun/fi7.62AAB.png -6797 20L (4) AA (g) fi20L4.png -6801 20L (6) AA (g) fi20L6.png -6802 20L (4) AA fi/gun/fi20L4 _2.png -6803 20L VKT (12) AA fi/gun/fi20L12.png -6804 40L Bofors AA (s) fi/gun/fi40L.png -6805 76 ItK/31(r) fi/gun/fi76LLAA.png -6806 120* MTR Krh/40 fi120MTR.png fi/gun/fi120MTRB.png -6808 20L AT PstK/40 fi20LAT.gif fi/gun/fi20LATB.png -6810 25LL AT PstK/47 (f) fi25LLAT.png fi/gun/fi25LLATB.png -6811 37L AT PstK/36 (s) fi37LAT.png fi/gun/fi37LAT B.png -6812 37L AT PstK/37 (g) fi37LAT H.png fi/gun/fi37LAT HB.png -6813 45L AT PstK/32 (r) fi45LAT.png fi/gun/fi45LATB.png -6814 50L AT PstK/38 (g) fi50LAT.png fi/gun/fi50LATB.png -6815 75 AT PstK/97-38 (g) fi/gun/fi75AT.png fi/gun/fi75ATB.png -6816 75L AT PstK/40 (g) fi75LAT.png fi/gun/fi75LATB.png -6818 76 INF RK/27 (r) fi76INF.png fi/gun/fi76INFB.png -6819 75 ART K/02 fi/gun/fi75ART.png fi/gun/fi75ARTB.png -6820 76* ART LK/13 fi76ART.png fi/gun/fi76ARTB.png -6821 76* ART K/02 (r) fi/gun/fi76ART2.png fi/gun/fi76ART2B.png -6822 76LL ART K/36 (r) fi/gun/fi76LLART.png fi/gun/fi76LLARTB.png -6823 87* ART K/95 fi/gun/fi87ART.png fi/gun/fi87ARTB.png -6824 90* ART K/77 fi/gun/fi90ART.png fi/gun/fi76INFB.png -6826 105 ART H/33 (g) fi/gun/fi105ART.png -6827 105 ART H/37 fi/gun/fi105ART2.png -6828 105L ART H/41 (t) fi/gun/fi105LART.png -6829 107 ART 10/13 fi/gun/fi107ART.png -6830 107 ART K/77 (r) fi/gun/fi107ART2.png -6831 114* ART H/18 (b) fi/gun/fi114ART.png -6832 122* ART H/10 (r) fi/gun/fi122ART.png -6833 150 ART H/40 (g) fi/gun/fi150ART.png fi/gun/fi150ARTB.png -6834 155 ART H/17 (f) fi/gun/fi155ART.png -6841 T-37 (r) fi/veh/fiT-37r.png -6849 T-50 (r) fiT-50r.png -6853 Vikkers (b) fi/veh/fiVikkers.png -6861 T-26E (b) fi/veh/fiT-26e(b).png -6865 T-26A (r) fi/veh/fiT-26a(r).png -6869 T-26B (r) fi/veh/fiT-26b(r).png -6877 OT-133 (r) fi/veh/fiOT-133(r).png -6881 BT-5 (r) fi/veh/fiBT-5(r).png -6885 BT-7 (r) fi/veh/fiBT-7(r).png -6891 Postijuna (r) fi/veh/fiPostijuna.png -6895 Postijuna (L) (r) fi/veh/fiPostijunaL.png -6903 Sotka (r) fi/veh/fiSotka.png -6907 Sotka (L) (r) fi/veh/fiSotkaL.png -6911 Pitka Sotka (r) fi/veh/fiPitkaSotkaL.png -6917 KV-1E (r) fi/veh/fiKV1-E.png -6921 KV-1 M42 (r) fi/veh/fiKV1-M42.png -6925 BT-42 (r) fi/veh/fiBT-42.png -6929 Sturmi (g) fi/veh/fiStug.png -6933 Landsverk Anti II (s) fi/veh/fiAnti II.png -6937 L182 (s) fi/veh/fiL182.png -6941 L182L (s) fi/veh/fiL182L.png -6945 BA-20 (r) fi/veh/fiBA-20.png -6949 BA-6 (r) fi/veh/fiBA-6.png -6955 GAZ-4M-AA (r) fi/veh/fiGAZ4M AA.png -6959 T-20 (r) fi/veh/fiT20.png -6967 RSO (g) fi/veh/fiRSO.png -6975 STZ-3 (r) fi/veh/fiSTZ3.png -6979 Tempo G1200 fi/veh/fiTempo1200.png -6981 Light Truck fi/veh/fiLight Truck.png -6985 Medium Truck fi/veh/fiMediumTruck.png -6991 Heavy Truck fi/veh/fiHeavy Truck.png -6995 203 ART B-4 obr 1931 ru/gun/ru203ART.png ru/gun/ru203ARTbrk.png -6996 37 MTR ru/ru37MTR.png ru/ru37MTRbrk.png -7032 T-27 ru/veh/ruT-27.png -7036 T-26 M31 ru/veh/ruT-26 M31.png -7040 T-26 M32 ru/veh/ruT-26 M32.png -7042 OT-26 ru/veh/ruOT-26.png -7048 ST-26 ru/veh/ruST26.png ru/veh/ruST26B.png -7056 SMK ru/veh/ruSMK.png -7060 T-100 ru/veh/ruT100.png -7064 LANO AT ru/veh/ruLANO AT.png -7068 LANO AA ru/veh/ruLANO AA.png -7072 STZ-3 ru/veh/ruSTZ-3.png -7078 STZ-5 ru/veh/ruSTZ-5.png -7082 NKL-6 ru/veh/ruNKL-6.png -7084 NKL-16 ru/veh/ruNKL-16.png -7085 NKL-26 ru/veh/ruNKL-26.png -7089 RF-8-GAZ-98 ru/veh/ruRF8GAZ98.png -7091 Sherman III(a) ru/veh/ruShermanIII.png -7093 Sherman III(L) (a) ru/veh/ruShermanIIIL.png -7111 Valentine VIII ru/veh/ruValentineVIII.png -7115 Churchill III ru/veh/ruChurchilIII.png -7119 Jeep GPA(a) ru/veh/ruJeep GPA.png -7120 DUKW (a) ru/veh/ruDUKW.png -7128 FT-17 730(m) ge/veh/geFT-17 37.png -7132 38H 735(f) ge/veh/ge38H 735.png -7136 35-S 739(f) ge/veh/ge35S 739.png -7220 T-26B (r) fi/veh/fiT-26b2(r).png -7409 76 ItK/28 B(s) fiAA76L.png fiAA76LB.png -7418 T-28 M34(L) T28M34L.gif -7420 T-28E M40(L) T28EM40L.gif -7423 Lee(a) Lee(a)RU.gif -7426 M3A1 SC(a) ru/veh/ruM3A1 SC.png -7428 M3A1 SC(a) ruM3A1 SC UA.gif -7432 Valentine V RU VALVnoaa.gif -7434 Valentine V RU VALV.gif -7461 T-26C (r) fi/veh/fiT-26c(r).png -11340 M8 AC us/veh/usM8(KFW).png -11479 FT-17 730(f) ge/veh/geFT-17 CMG.png -11500 45L AT PTP obr. 32 ax/gun/roAT45L.gif ax/gun/roAT45Lb.gif -11501 150L ART Skoda M28(NOa) ax/gun/roAR150L.gif ax/gun/roAR150Lb.gif -11502 47L AA Skoda 47L40(t) ax/gun/slAA47L.gif ax/gun/slAA47Lb.gif -11503 65* INF Cannone da 65/17 ax/gun/crIN65s.gif ax/gun/crIN65sb.gif -11504 L6/40(i) ax/veh/crL640.gif -11506 wz. 34-I ax/veh/cr34i.gif -11524 40M Nimrod hu/veh/hu40MN.gif -11532 39M Csaba hu/veh/hu39MC.gif -12483 81* MTR M1 am/gun/amMTR81s.gif am/gun/amMTR81sb.gif -3b5:3741 12.7 AA M51 am/gun/amAA12.gif am/gun/amAA12b.gif -3b5:7681 Churchill Bridgelayer br/vehicles/churbrid.gif +GPID Name Front images Back images +--------- ---------------------------- --------------------------------------------------------------------- ---------------------------------- +397 LCP(L)b sh/LCPL2.gif +399 LCP(L) sh/LCPL.gif +401 LCA sh/LCA.gif sh/lcrampdn.gif +403 LCVP <6/43 sh/LCVP2.gif sh/lcrampdn.gif +405 LCVP sh/LCVP.gif sh/lcrampdn.gif +407 LCM(3) <11/42 sh/LCM32.gif sh/lcrampdn.gif +409 LCM(3) sh/LCM3.gif sh/lcrampdn.gif +411 LCI(S) sh/LCIS.gif +413 LCT(4) <7/43 sh/LCT42.gif sh/lcrampdn.gif +415 LCT(4) sh/LCT4.gif sh/lcrampdn.gif +417 Daihatsu sh/LCdaihat.gif sh/lcrampdn.gif +419 Shohatsu sh/LCshohat.gif +485 50* MTR ru/ruMTR.gif ru/ruMTRb.gif +508 82* MTR BM obr. 37 ru/gun/ruMTR82s.gif ru/gun/ruMTR82sb.gif +510 107* MTR GVPM obr. 38 ru/gun/ruMTR107s.gif ru/gun/ruMTR107sb.gif +511 120* MTR PM obr. 38 ru/gun/ruMTR120s.gif ru/gun/ruMTR120sb.gif +512 160* MTR PM obr. 43 ru/gun/ruMTR160s.gif ru/gun/ruMTR160sb.gif +514 37L AT PTP obr. 30 ru/gun/ruAT37L.gif ru/gun/ruAT37Lb.gif +515 45L AT PTP obr. 32 ru/gun/ruAT45L.gif ru/gun/ruAT45Lb.gif +516 45LL AT PTP obr. 42 ru/gun/ruAT45LL.gif ru/gun/ruAT45LLb.gif +517 57LL AT PTP obr. 43 ru/gun/ruAT57LL.gif ru/gun/ruAT57LLb.gif +518 100L AT PTP obr. 44 ru/gun/ruAT100L.gif ru/gun/ruAT100Lb.gif +520 37* INF PP obr. 15R ru/gun/ruINF37s.gif ru/gun/ruINF37sb.gif +521 76* INF PP obr. 27 ru/gun/ruINF76s.gif ru/gun/ruINF76sb.gif +523 76* ART obr. 00/02P ru/gun/ruAR76s.gif ru/gun/ruAR76sb.gif +524 76 ART obr. 02/30 ru/gun/ruAR76.gif ru/gun/ruAR76b.gif +525 76L ART obr. 39 ru/gun/ruAR76L.gif ru/gun/ruAR76Lb.gif +526 76LL ART obr. 36 ru/gun/ruAR76LL.gif ru/gun/ruAR76LLb.gif +527 85L ART obr. 44 ru/gun/ruAR85L.gif ru/gun/ruAR85Lb.gif +528 107 ART obr. 10/30 ru/gun/ruAR107.gif ru/gun/ruAR107b.gif +529 122* ART G obr. 10/30 ru/gun/ruAR122s.gif ru/gun/ruAR122sb.gif +530 122 ART obr. 38 ru/gun/ruAR122.gif ru/gun/ruAR122l-b.gif +531 122L ART obr. 31 ru/gun/ruAR122-L.gif ru/gun/ruAR122Lb.gif +532 152* ART G obr. 38 ru/gun/ruAR152s.gif ru/gun/ruAR152sb.gif +533 152 ART GP obr. 37 ru/gun/ruAR152.gif ru/gun/ruAR152b.gif +536 25LL AA ZP obr. 40 ru/gun/ruAA25LL.gif ru/gun/ruAA25LLb.gif +537 37L AA ZP obr. 39 ru/gun/ruAA37L.gif ru/gun/ruAA37Lb.gif +538 76LL AA ZP obr. 38 ru/gun/ruAA76LL.gif ru/gun/ruAA76LLb.gif +539 85L AA ZP obr. 39 ru/gun/ruAA85L.gif ru/gun/ruAA85Lb.gif +541 T-37 ru/veh/T37.gif +543 T-40 ru/veh/T40.gif +545 T-50 ru/veh/T50.gif +547 T-60 M40 ru/veh/T60M40.gif +549 T-60 M42 ru/veh/T60M42.gif +551 T-70 ru/veh/T70.gif +553 T-26 M33 ru/veh/T26M33.gif +555 T-26 M33 ru/veh/T26M332.gif +557 T-26 M33 ru/veh/T26M333.gif +559 T-26 M33 ru/veh/T26M334.gif +561 T-26 M33 ru/veh/T26M335.gif +563 T-26S M37/39 ru/veh/T26M37.gif +565 T-26S M37/39 ru/veh/T26M372.gif +567 T-26S M37/39 ru/veh/T26M373.gif +569 T-26S M37/39 ru/veh/T26M374.gif +571 OT-133 ru/veh/OT133.gif +573 BT-2A ru/veh/bt2a.gif +575 BT-5 M34 ru/veh/BT5M34.gif +577 BT-7 M37 ru/veh/BT7M37.gif +579 BT-7 M37 ru/veh/BT7M372.gif +581 BT-7 M37 ru/veh/BT7M373.gif +583 BT-7 M37 ru/veh/BT7M374.gif +585 BT-7A ru/veh/BT7A.gif +587 T-28 M34 ru/veh/T28M34.gif +589 T-28E M40 ru/veh/T28EM40.gif +591 T-34 M40 ru/veh/T34M40.gif +593 T-34 M41 ru/veh/T34M41.gif +595 OT-34 ru/veh/OT34.gif +597 T-34 M43 ru/veh/T34M43.gif +599 T-43 ru/veh/T43.gif +601 T-34/85 ru/veh/T3485.gif +603 M4/76(a) ru/veh/M476.gif +605 T-44 ru/veh/T44.gif +607 T-35 ru/veh/T35.gif +609 KV-1 M39/40 ru/veh/KV1M39.gif +611 KV-1E ru/veh/KV1E.gif +613 KV-1E ru/veh/KV1E2.gif +615 KV-1 M41 ru/veh/KV1M41.gif +617 KV-1 M41 ru/veh/KV1M412.gif +619 KV-1 M42 ru/veh/KV1M42.gif +621 KV-1 M42 ru/veh/KV1M422.gif +623 KV-2 ru/veh/KV2.gif +625 KV-8 ru/veh/KV8.gif +627 KV-8 ru/veh/KV82.gif +629 KV-1S ru/veh/KV1S.gif +631 KV-85 ru/veh/KV85.gif +633 IS-2 ru/veh/IS2.gif +635 IS-2m ru/veh/IS2m.gif +637 IS-2m ru/veh/IS2m2.gif +639 IS-3 ru/veh/IS3.gif +641 IS-3 ru/veh/IS32.gif +645 SU-76M ru/veh/SU76M.gif +647 SU-76i(g) ru/veh/SU76i.gif +649 SU-122 ru/veh/SU122.gif +651 SU-152 ru/veh/SU152.gif +653 ISU-122 ru/veh/ISU122.gif +655 ISU-122 ru/veh/ISU1222.gif +657 ISU-152 ru/veh/ISU152.gif +659 ISU-152 ru/veh/ISU1522.gif +661 SU-85 ru/veh/SU85.gif +663 SU-100 ru/veh/SU100.gif +665 SU-57(a) ru/veh/SU57.gif +669 BA-20 ru/veh/ba20.gif +671 BA-6 ru/veh/ba6.gif +673 BA-64B ru/veh/BA64B.gif +677 ZSU-37 ru/veh/ZSU37.gif +679 SU-12 ru/veh/SU12.gif +681 GAZ-4M-AA ru/veh/GAZ4MM.gif +683 ZIS-42-AA ru/veh/ZIS42.gif +685 IAG-10-AA ru/veh/IAG10.gif +687 Komsomolets ru/veh/kom.gif +693 GAZ-67B ru/veh/GAZ67B.gif +694 GAZ-MM ru/veh/GAZMM.gif +696 ZIS-5 ru/veh/ZIS5.gif +698 IAG-6 ru/veh/IAG6.gif +704 Lee(a) br/vehicles/lee.gif +708 Sherman III(a) br/vehicles/sheriiia.gif +710 Sherman III(a) br/vehicles/sheriiia2.gif +712 Sherman III(L)(a) ru/veh/sheriiila.gif +724 Valentine II br/vehicles/valii.gif +726 Valentine V br/vehicles/valv.gif +728 Valentine V br/vehicles/valv2.gif +730 Valentine VIII br/vehicles/valviii.gif +732 Churchill III br/vehicles/churiv.gif +758 Jeep(a) br/vehicles/jeep.gif +759 Jeep(a) MMG br/vehicles/jeep2.gif +849 60* MTR M2 am/amMTR.gif am/amMTRb.gif +850 60* MTR M19 am/amMTRa.gif am/amMTRab.gif +881 107* MTR M2 am/gun/amMTR107.gif am/gun/amMTR107b.gif +882 155* MTR T25 am/gun/amMT155s.gif am/gun/amMT155sb.gif +884 37L AT M3A1 am/gun/amAT37LL.gif am/gun/amAT37LLb.gif +885 57L AT M1 am/gun/amAT57L.gif am/gun/amAT57Lb.gif +886 76L AT M5 am/gun/amAT76L.gif am/gun/amAT76Lb.gif +888 75* ART M1A1 am/gun/amAR75s.gif am/gun/amAR75sb.gif +890 75 ART M1897A2 am/gun/amAR75.gif am/gun/amAR75b.gif +891 105 ART M2A1 am/gun/amAR105.gif am/gun/amAR105b.gif +892 105* ART M3 am/gun/amAR105s.gif am/gun/amAR105sb.gif +893 114 ART M1 am/gun/amAR114.gif am/gun/amAR114b.gif +894 155* ART M1918 am/gun/amAR155s.gif am/gun/amAR155sb.gif +895 155 ART M1 am/gun/amAR155_.gif am/gun/amAR155_b.gif +896 155 ART M1918M1 am/gun/amAR155.gif am/gun/amAR155b.gif +897 155L ART M1A1 am/gun/amAR155L.gif am/gun/amAR155Lb.gif +898 203 ART M1 am/gun/amAR203.gif am/gun/amAR203b.gif +901 37L AA M1A2 am/gun/amAA37L.gif am/gun/amAA37Lb.gif +902 40L AA M1 am/gun/amAA40L.gif am/gun/amAA40Lb.gif +903 76L AA M3 am/gun/amAA76L.gif am/gun/amAA76Lb.gif +904 90L AA M1A1 am/gun/amAA90L.gif am/gun/amAA90Lb.gif +905 90L AA M2 am/gun/amAA90.gif am/gun/amAA90b.gif +907 M2A4 am/veh/M2A4.gif +909 M3 LT am/veh/M3LT.gif +913 M3A1 Satan am/veh/M3A1sat.gif +917 M24 am/veh/M24.gif +919 M3 MT am/veh/M3MT.gif +941 M4(105) am/veh/M4105.gif +943 M4A3(105) am/veh/M4A3105.gif +945 M4 Tankdozer am/veh/M4doz.gif +947 T1E3 am/veh/T1E3.gif +949 Sherman Crab am/veh/M4cra.gif +951 POA-CWS-H1 am/veh/M4poa.gif +955 M26 am/veh/M26.gif +957 M10 GMC am/veh/M10GMC.gif +959 M18 GMC am/veh/M18GMC.gif +961 M36 GMC am/veh/M36GMC.gif +963 M36B1 GMC am/veh/M36B1GMC.gif +965 M2 ht am/veh/M2ht.gif +967 M3 ht am/veh/M3ht.gif +969 M3A1 ht am/veh/M3A1ht.gif +971 M3(MMG) am/veh/M3htMMG.gif +973 M3(HMG) am/veh/M3htHMG.gif +975 M4 MC am/veh/M4MC.gif +977 M4A1 MC am/veh/M4A1MC.gif +979 M21 MC am/veh/M21MC.gif +981 M3 GMC am/veh/M3GMC.gif +983 M3 GMC am/veh/M3GMC2.gif +985 T30 HMC am/veh/T30HMC.gif +987 T19 HMC am/veh/T19HMC.gif +990 M15A1 am/veh/M15A1MGMC.gif +992 M16 am/veh/M16MGMC.gif +996 M3A1 SC am/veh/M3A1SC.gif +998 M20 am/veh/M20SC.gif +1000 T8 am/veh/T8SC.gif +1004 M8 HMC am/veh/M8HMC.gif +1006 M7 HMC am/veh/M7HMC.gif +1011 M12 GMC unlimbered am/veh/M12GMC2.gif +1014 LVT(A)1 am/veh/LVTA1.gif +1016 LVT(A)4 am/veh/LVTA4.gif +1018 LVT(A)4 am/veh/LVTA42.gif +1020 M4 DD am/veh/M4dd.gif +1022 LVT2 am/veh/LVT2.gif +1024 LVT2(m) am/veh/LVT2m.gif +1026 LVT(A)2 am/veh/LVTA2.gif +1028 LVT4 am/veh/LVT4.gif +1030 LVT4 am/veh/LVT42.gif +1032 DUKW am/veh/DUKW.gif +1036 Jeep GPA am/veh/JeepGPA.gif +1039 Jeep am/veh/Jeep.gif +1040 Jeep MMG am/veh/Jeep2.gif +1041 Jeep HMG am/veh/Jeep4.gif +1042 3/4 ton truck us/veh/usTruck(.75)KFW.png +1044 1-1/2 ton truck am/veh/ton112.gif +1046 2-1/2 ton truck us/veh/usTruck(2.5)KFW.png +1048 7-1/2 ton truck am/veh/ton712.gif +1050 M4 HST am/veh/M4hst.gif +1149 51 MTR abn br/brMTR2.gif br/brMTR2b.gif +1153 51 MTR br/brMTR.gif br/brMTRb.gif +1177 76* MTR OML 3" (pre 9/42) br/guns/brMTR76s.gif br/guns/brMTR76sb.gif +1179 76* MTR OML 3" br/guns/brMTR76.gif br/guns/brMTR76sb.gif +1181 107* MTR OSB 4.2" br/guns/brM107s.gif br/guns/brM107sb.gif +1183 25LL AT OQF Hotchkiss br/guns/brAT25LL.gif br/guns/brAT25LLb.gif +1184 40L AT OQF 2pdr br/guns/brAT40L.gif br/guns/brAT40Lb.gif +1185 57L AT OQF 6pdr 7cwt br/guns/brAT57L.gif br/guns/brAT57Lb.gif +1186 76LL AT OQF 17/25pdr br/guns/brAT7625.gif br/guns/brAT7625b.gif +1187 76LL AT OQF 17pdr br/guns/brAT76LL.gif br/guns/brAT76LLb.gif +1189 75* ART M1A1 br/guns/brAR75s.gif br/guns/brAR75sb.gif +1191 75 ART mle 1897 br/guns/brAR75.gif br/guns/brAR75b.gif +1192 84* ART OQF 18pdr br/guns/brAR84s.gif br/guns/brAR84sb.gif +1193 88* ART OQF 25pdr S br/guns/brAR88s.gif br/guns/brAR88sb.gif +1194 88 ART OQF 25pdr br/guns/brAR88.gif br/guns/brAR88b.gif +1195 94* ART OQF 3.7" br/guns/brAR94s.gif br/guns/brAR94sb.gif +1196 114* ART OQF 4.5" br/guns/brAR114s.gif br/guns/brAR114sb.gif +1197 114 ART OBL 4.5" br/guns/brAR114.gif br/guns/brAR114b.gif +1198 140 ART OBL 5.5" br/guns/brAR140.gif br/guns/brAR140b.gif +1199 152* ART OBL 6" br/guns/brAR152s.gif br/guns/brAR152sb.gif +1200 183* ART OBL 7.2" Mk I br/guns/brAR183s.gif br/guns/brAR183sb.gif +1201 183 ART OBL 7.2" Mk VI br/guns/brAR183.gif br/guns/brAR183b.gif +1203 20L AA OQF br/guns/brAA20L.gif br/guns/brAA20Lb.gif +1204 40L AA OQF br/guns/brAA40L.gif br/guns/brAA40Lb.gif +1205 76* AA OQF 3" 20cwt br/guns/brAA76s.gif br/guns/brAA76sb.gif +1206 94* AA OQF 3.7" br/guns/brAA94s.gif br/guns/brAA94sb.gif +1208 Mark VIB br/vehicles/mkvib.gif +1210 Mark VIC br/vehicles/mkvic.gif +1212 Tetrarch br/vehicles/tet.gif +1214 Tetrarch CS br/vehicles/tetcs.gif +1216 Stuart I(a) br/vehicles/stuia.gif +1218 Stuart III(a) br/vehicles/stuiiia.gif +1220 Stuart V(a) br/vehicles/stuva.gif +1222 Locust(a) br/vehicles/locust.gif +1224 A9 br/vehicles/a9.gif +1226 A9 br/vehicles/a92.gif +1228 A9 CS br/vehicles/a9cs.gif +1230 A9 CS br/vehicles/a9cs2.gif +1232 A10 Mk IA br/vehicles/a10ia.gif +1234 A10 Mk IA br/vehicles/a10ia2.gif +1236 A10 Mk IA br/vehicles/a10ia3.gif +1238 A10 Mk IA br/vehicles/a10ia4.gif +1240 A10 Mk IA br/vehicles/a10ia5.gif +1242 A10 Mk IA CS br/vehicles/a10iacs.gif +1244 A10 Mk IA CS br/vehicles/a10iacs2.gif +1246 A10 Mk IA CS br/vehicles/a10iacs3.gif +1248 A13 Mk I br/vehicles/a13i.gif +1250 A13 Mk I br/vehicles/a13i2.gif +1252 A13 Mk II br/vehicles/a13ii.gif +1254 A13 Mk II br/vehicles/a13ii2.gif +1256 A13 Mk II br/vehicles/a13ii3.gif +1258 A13 Mk II br/vehicles/a13ii4.gif +1260 A13 Mk II CS br/vehicles/a13iics.gif +1262 Crusader I br/vehicles/crusi.gif +1264 Crusader I br/vehicles/crusi2.gif +1266 Crusader I CS br/vehicles/crusics.gif +1268 Crusader I CS br/vehicles/crusics2.gif +1270 Crusader II br/vehicles/crusii.gif +1272 Crusader II br/vehicles/crusii2.gif +1274 Crusader II CS br/vehicles/crusiics.gif +1276 Crusader II CS br/vehicles/crusiics2.gif +1278 Crusader III br/vehicles/crusiii.gif +1280 Grant(a) br/vehicles/grant.gif +1282 Lee(a) br/vehicles/lee.gif +1284 Lee(a) br/vehicles/lee2.gif +1286 Sherman II(a) br/vehicles/sheriia.gif +1288 Sherman II(a) br/vehicles/sheriia2.gif +1290 Sherman III(a) br/vehicles/sheriiia.gif +1292 Sherman III(a) br/vehicles/sheriiia2.gif +1294 Sherman V(a) br/vehicles/sherva.gif +1296 Sherman V(a) br/vehicles/sherva2.gif +1298 Sherman IIA(a) br/vehicles/sheriiaa.gif +1300 Sherman IIA(a) br/vehicles/sheriiaa2.gif +1302 Sherman IIC(a) br/vehicles/sheriica.gif +1304 Sherman IIC(a) br/vehicles/sheriica2.gif +1306 Sherman VC(a) br/vehicles/shervca.gif +1308 Sherman VC(a) br/vehicles/shervca2.gif +1310 Sherman IB(a) br/vehicles/sheriba.gif +1312 Sherman IB(a) br/vehicles/sheriba2.gif +1314 Centaur IV br/vehicles/centiv.gif +1316 Cromwell IV br/vehicles/cromiv.gif +1318 Cromwell VI br/vehicles/cromvi.gif +1320 Cromwell VII br/vehicles/cromvii.gif +1322 Cromwell VIII br/vehicles/cromviii.gif +1324 Challenger br/vehicles/chall.gif +1326 Comet br/vehicles/comet.gif +1328 Sherman Dozer(a) br/vehicles/sherdoz.gif +1330 Sherman Dozer(a) br/vehicles/sherdoz2.gif +1332 Sherman Crab(a) br/vehicles/shercrab.gif +1334 Sherman Crab(a) br/vehicles/shercrab2.gif +1338 Matilda I br/vehicles/mati.gif +1340 Matilda I br/vehicles/mati2.gif +1342 Matilda II br/vehicles/matii.gif +1344 Matilda II br/vehicles/matii2.gif +1346 Matilda II br/vehicles/matii3.gif +1348 Matilda II br/vehicles/matii4.gif +1350 Matilda II CS br/vehicles/matiics.gif +1352 Matilda II CS br/vehicles/matiics2.gif +1354 Valentine II br/vehicles/valii.gif +1356 Valentine V br/vehicles/valv.gif +1358 Valentine V br/vehicles/valv2.gif +1360 Valentine VIII br/vehicles/valviii.gif +1362 Valentine XI br/vehicles/valxi.gif +1364 Churchill I br/vehicles/churi.gif +1366 Churchill IV br/vehicles/churiv.gif +1368 Churchill V br/vehicles/churv.gif +1370 Churchill VI br/vehicles/churvi.gif +1372 Churchill VII br/vehicles/churvii.gif +1374 Churchill VIII br/vehicles/churviii.gif +1376 Valentine Bridgelayer br/vehicles/valbrid.gif +1384 Churchill AVRE br/vehicles/churavre.gif +1386 Churchill AVRE br/vehicles/churavref.gif +1390 Churchill Crocodile br/vehicles/churcroc.gif +1393 Deacon br/vehicles/deacon.gif +1395 Wolverine(a) br/vehicles/wolv.gif +1397 Achilles(a) br/vehicles/achil.gif +1399 Archer br/vehicles/archer.gif +1401 Daimler SC br/vehicles/daimsc.gif +1403 Lynx SC br/vehicles/lynx.gif +1405 Humber SC br/vehicles/humber.gif +1407 Stuart Recce(a) br/vehicles/sturecce.gif +1409 Humber III LRC br/vehicles/humblrc.gif +1411 Otter SC br/vehicles/otter.gif +1413 Morris CS9 morris.gif +1415 Rolls Royce br/vehicles/rolls.gif +1417 Marmon-H II ME br/vehicles/marmii.gif +1419 Marmon-H IIv br/vehicles/marmiiv.gif +1421 Marmon-H III MFF br/vehicles/marmiiif.gif +1423 Marmon-H III ME br/vehicles/marmiiie.gif +1425 Marmon-H IIIv br/vehicles/marmiiiv.gif +1427 Marmon-H IIIv br/vehicles/marmiiiv2.gif +1429 Humber II AC br/vehicles/humbii.gif +1431 Humber III AC br/vehicles/humbiii.gif +1433 Humber III AC br/vehicles/humbiii2.gif +1435 Humber IV AC br/vehicles/humbiv.gif +1437 Daimler AC br/vehicles/daimac.gif +1439 Daimler AC br/vehicles/daimac2.gif +1441 AEC I AC br/vehicles/aeci.gif +1443 AEC II AC br/vehicles/aecii.gif +1445 AEC III AC br/vehicles/aeciii.gif +1447 Staghound I(a) br/vehicles/stagi.gif +1449 Staghound I(a) br/vehicles/stagi2.gif +1451 Staghound II(a) br/vehicles/stagii.gif +1453 Staghound II(a) br/vehicles/stagii2.gif +1457 Bishop br/vehicles/bishop.gif +1459 Bishop br/vehicles/bishop2.gif +1461 Priest(a) br/vehicles/priest.gif +1463 Sexton(a) br/vehicles/sexton.gif +1465 Sexton(a) br/vehicles/sexton2.gif +1467 M3 GMC(a) br/vehicles/m3gmc.gif +1469 Mark VI AA br/vehicles/markviaa.gif +1471 Crusader AA br/vehicles/crusaa.gif +1473 Crusader AA br/vehicles/crusaa2.gif +1475 M17 MGMC(a) br/vehicles/m17mgmc.gif +1477 Humber AA br/vehicles/humbaa.gif +1479 Staghound AA(a) br/vehicles/stagaa.gif +1481 M5(a) br/vehicles/m5a.gif +1483 M5(a) br/vehicles/m5a2.gif +1485 M5A1(a) br/vehicles/m5a1a.gif +1487 M5A1(a) br/vehicles/m5a1a2.gif +1489 M9(a) br/vehicles/m9a.gif +1491 M9(a) br/vehicles/m9a2.gif +1493 M9A1(a) br/vehicles/m9a1a.gif +1495 M9A1(a) br/vehicles/m9a1a2.gif +1497 Carrier A br/vehicles/carra.gif +1499 Carrier B br/vehicles/carrb.gif +1501 Carrier C br/vehicles/carrc.gif +1503 Carrier MMG A br/vehicles/carrmmga.gif +1505 Carrier MMG A br/vehicles/carrmmga2.gif +1507 Carrier MMG B br/vehicles/carrmmgb.gif +1509 Carrier 2-in MTR br/vehicles/carr2in.gif +1511 Carrier 3-in MTR br/vehicles/carr3in.gif +1513 Priest Kangaroo(a) br/vehicles/prkang.gif +1515 Ram Kangaroo(a) br/vehicles/ramkang.gif +1517 Ram Kangaroo(a) br/vehicles/ramkang2.gif +1519 White(a) SC br/vehicles/white.gif +1521 White(a) SC br/vehicles/white2.gif +1523 IP Carrier Mk IIS br/vehicles/ipciia.gif +1525 IP Carrier Mk IIB br/vehicles/ipciib.gif +1527 IP Carrier AOV br/vehicles/ipcaov.gif +1529 IP Carrier 3-in MTR br/vehicles/ipc3in.gif +1531 IP Carrier 3-in MTR br/vehicles/ipc3in2.gif +1533 Wasp br/vehicles/waspapc.gif +1535 Wasp br/vehicles/waspapc2.gif +1537 Badger(a) br/vehicles/badapc.gif +1539 Badger(a) br/vehicles/badapc2.gif +1541 Buffalo Mk II(a) br/vehicles/buffiia.gif +1543 Buffalo Mk IV(a) br/vehicles/buffiva.gif +1545 Sherman III DD(a) br/vehicles/sherdd.gif +1547 Sherman III DD(a) br/vehicles/sherdd2.gif +1549 DUKW(a) br/vehicles/dukw.gif +1553 Terrapin br/vehicles/terra.gif +1555 2pdr Portee ['br/vehicles/portee.gif', 'br/vehicles/portee0.gif'] +1557 Morris C9/B br/vehicles/morrc9b.gif +1559 Loyd Carrier br/vehicles/loyd.gif +1561 Quad FAT br/vehicles/quad.gif +1563 15-cwt Truck br/vehicles/cwt15.gif +1565 30-cwt Lorry br/vehicles/cwt30.gif +1567 3-ton Lorry br/vehicles/ton3.gif +1569 Jeep(a) br/vehicles/jeep.gif +1570 Jeep(a) MMG br/vehicles/jeep2.gif +1571 3/4 ton Truck(a) br/vehicles/ton34.gif +1573 1-1/2 ton Truck(a) br/vehicles/ton112.gif +1575 2-1/2 ton Truck(a) br/vehicles/ton212.gif +1577 7-1/2 ton Truck(a) br/vehicles/ton712.gif +1632 37* INF fr/frINF.gif fr/frINFb.gif +1636 50 MTR(f) fr/frMTR.gif fr/frMTRb.gif +1641 60* MTR(a) br/brMTRa.gif br/brMTRab.gif +1667 81* MTR(f) mle 27/31 fr/gun/frMTR81sf.gif fr/gun/frMTR81sfb.gif +1669 25LL AT SA-L mle 34 fr/gun/frAT25LL.gif fr/gun/frAT25LLb.gif +1670 47L AT SA mle 37 APX <41 fr/gun/frAT47L-40.gif fr/gun/frAT47Lb.gif +1671 47L AT SA mle 37 APX fr/gun/frAT47L.gif fr/gun/frAT47Lb.gif +1672 47L AT SA mle 37 APX fr/gun/frAT47Lf.gif fr/gun/frAT47Lfb.gif +1673 75 AT mle 97/35 fr/gun/frAT75.gif fr/gun/frAT75b.gif +1674 65* INF M mle 06 fr/gun/frINF65s.gif fr/gun/frINF65sb.gif +1678 75* ART M mle 28 fr/gun/frAR75s.gif fr/gun/frAR75sb.gif +1679 75 ART mle 1897 fr/gun/frAR75.gif fr/gun/frAR75b.gif +1680 105* ART M mle 28 fr/gun/frAR105.gif fr/gun/frAR105-b.gif +1681 105 ART C mle 35B fr/gun/frAR105B.gif fr/gun/frAR105Bb.gif +1682 105 ART M mle 13S fr/gun/frAR105S.gif fr/gun/frAR105Sb.gif +1683 105L ART L mle 36S fr/gun/frAR105L.gif fr/gun/frAR105Lb.gif +1684 155* ART C mle 17S fr/gun/frAR155s.gif fr/gun/frAR155sb.gif +1685 155 ART GPF fr/gun/frAR155.gif fr/gun/frAR155b.gif +1687 12.7 AA CAJ mle 30 <41 fr/gun/frAA12-40.gif fr/gun/frAA12b.gif +1688 12.7 AA CAJ mle 30 fr/gun/frAA12.gif fr/gun/frAA12b.gif +1689 12.7 AA CAJ mle 30 fr/gun/frAA12f.gif fr/gun/frAA12fb.gif +1690 20L AA CA mle 39 O fr/gun/frAA20L.gif fr/gun/frAA20Lb.gif +1691 25LL AA CA mle 38 <41 fr/gun/frAA25LL-40.gif fr/gun/frAA25LLb.gif +1692 25LL AA CA mle 38 fr/gun/frAA25LL.gif fr/gun/frAA25LLb.gif +1693 75L AA CA mle 32 fr/gun/frAA75L.gif fr/gun/frAA75Lb.gif +1704 75 ART mle 1897 br/guns/brAR75.gif br/guns/brAR75b.gif +1713 FT-17M fr/veh/ft17m.gif +1715 FT-17C fr/veh/ft17c.gif +1717 FT-17 75BS fr/veh/ft1775.gif +1719 AMR 33 fr/veh/amr33.gif +1721 AMR 35 fr/veh/amr35.gif +1723 AMR 35(L) fr/veh/amr35l.gif +1725 R35 fr/veh/r35.gif +1727 R35(L) fr/veh/r35l.gif +1729 R35(L) fr/veh/r35l-a.gif +1731 H35 fr/veh/h35.gif +1733 H35(L) fr/veh/h35l.gif +1735 FCM 36 fr/veh/fcm36.gif +1737 H39 fr/veh/h39.gif +1739 H39 fr/veh/h39-b.gif +1741 H39(L) fr/veh/h39l.gif +1743 H39(L) fr/veh/h39l-a.gif +1745 R40 fr/veh/r40.gif +1747 D1 fr/veh/d1.gif +1749 D2 fr/veh/d2.gif +1751 D2(L) fr/veh/d2l.gif +1753 S35 fr/veh/s35.gif +1755 S35 fr/veh/s35-a.gif +1757 B1-bis fr/veh/b1bis.gif +1759 B1-bis fr/veh/b1bis-a.gif +1761 Valentine V(b) fr/veh/valv.gif +1763 Valentine V(b) fr/veh/valv2.gif +1767 AM Dodge(a) fr/veh/amd.gif +1769 AM Dodge(a) fr/veh/amd-b.gif +1771 AM Dodge(a) fr/veh/amd-b2.gif +1773 AMD 20 cv TOE fr/veh/amd20.gif +1775 AMD 50 AM fr/veh/amd50.gif +1777 AMD 80 AM fr/veh/amd80.gif +1779 AMD 35 fr/veh/amd35.gif +1781 AMD 35 fr/veh/amd352.gif +1785 Laffly W15T fr/veh/laffw15.gif +1787 Ac de 75 Conus(b) fr/veh/ac75con.gif +1789 Ac de 75 mle 97 fr/veh/ac7597.gif +1791 Cam. de Mitr. CA fr/veh/cammitr.gif +1793 Cam. de 13.2 CAJ fr/veh/cam132.gif +1795 Cam. de 20 CA fr/veh/cam20.gif +1797 Ac de 25 CA fr/veh/ac25.gif +1801 Ac de 40 CA(a) fr/veh/ac40.gif +1803 Ac de 75 mle 13/34 fr/veh/ac75.gif +1807 AMC 29 fr/veh/amc29.gif +1809 C-K P17 fr/veh/ckp17.gif +1811 C-K P19 fr/veh/ckp19.gif +1813 SOMUA MCG fr/veh/somua.gif +1815 Unic P107 fr/veh/unic.gif +1817 Renault UE fr/veh/renaue.gif +1819 Renault UE MG fr/veh/renaue2.gif +1821 Lorraine 38L fr/veh/lorr38tr.gif +1824 Lorraine 37L 44 fr/veh/lorr37.gif +1826 Carrier AC(b) fr/veh/carrac.gif +1828 Latil TAR H2 fr/veh/latil.gif +1830 Laffly S15T fr/veh/laffs15.gif +1832 Laffly S20TL fr/veh/laffs20.gif +1834 Laffly V15T fr/veh/laffv15.gif +1836 Peugeot 202 fr/veh/peugeot.gif +1837 Citroen 23 fr/veh/citroen.gif +1839 Renault AGR2 fr/veh/renagr.gif +1895 M5 ht fr/veh/m5.gif +1897 M5A1 ht fr/veh/m5a1.gif +1903 M9 ht fr/veh/m9.gif +1982 40 MTR ch/chM40.gif ch/chM40b.gif +1983 45* MTR(i) <41 ch/chM45.gif ch/chM45b.gif +1984 45* MTR(i) ch/chM452.gif ch/chM45b.gif +1985 50* MTR(g) ch/chM50g.gif ch/chM50gb.gif +1986 50* MTR(r) ch/chM50r.gif ch/chM50rb.gif +1987 50* MTR(j) ch/chM50j.gif ch/chM50jb.gif +1988 60* MTR(a) ch/chM60.gif ch/chM60b.gif +2016 76* MTR Stokes ch/gun/chM76s.gif ch/gun/chM76sb.gif +2018 81* MTR GrW 34 ch/gun/chM81s.gif ch/gun/chM81sb.gif +2020 82* MTR BM obr. 37 ch/gun/chM82s.gif ch/gun/chM82sb.gif +2022 81* MTR M1 ch/gun/chM81M1.gif ch/gun/chM81M1b.gif +2024 107* MTR M2 ch/gun/chM107.gif ch/gun/chM107b.gif +2026 37L AT Pak 35/36 ch/gun/chAT37L.gif ch/gun/chAT37Lb.gif +2027 37LL AT M3A1 ch/gun/chAT37LL.gif ch/gun/chAT37LLb.gif +2029 37* ART PP obr. 15R ch/gun/chAR37s.gif ch/gun/chAR37sb.gif +2030 70* ART 70/15 ch/gun/chAR70s.gif ch/gun/chAR70sb.gif +2031 75* ART Krupp M08 ch/gun/chAR75K.gif ch/gun/chAR75Kb.gif +2032 75* ART 75/13 <41 ch/gun/chAR75O.gif ch/gun/chAR75Ob.gif +2033 75* ART 75/13 ch/gun/chAR75O2.gif ch/gun/chAR75Ob.gif +2034 75* ART leIG 18 ch/gun/chAR75I.gif ch/gun/chAR75Ib.gif +2035 76* ART PP obr. 27 <41 ch/gun/chAR76s.gif ch/gun/chAR76sb.gif +2036 76* ART PP obr. 27 ch/gun/chAR76s2.gif ch/gun/chAR76sb.gif +2037 75* ART M1A1 ch/gun/chAR75M.gif ch/gun/chAR75Mb.gif +2039 75 ART FK 16 ch/gun/chAR75F.gif ch/gun/chAR75Fb.gif +2040 76 ART P obr. 02/30 <41 ch/gun/chAR76.gif ch/gun/chAR76b.gif +2041 76 ART P obr. 02/30 ch/gun/chAR762.gif ch/gun/chAR76b.gif +2042 84* ART 18-lber ch/gun/chAR84s.gif ch/gun/chAR84sb.gif +2043 105* ART leFH 16 ch/gun/chAR105s.gif ch/gun/chAR105sb.gif +2044 105 ART 105/28 ch/gun/chAR105.gif ch/gun/chAR105b.gif +2045 105 ART M2A1 ch/gun/chAR105_.gif ch/gun/chAR105_b.gif +2046 122* ART obr. 10/30 <41 ch/gun/chAR122s.gif ch/gun/chAR122sb.gif +2048 122 ART G obr. 38 <41 ch/gun/chAR122.gif ch/gun/chAR122b.gif +2050 150* ART 149/13 ch/gun/chAR150s.gif ch/gun/chAR150sb.gif +2052 20L AA Oerlikon FF ch/gun/chAA20LO.gif ch/gun/chAA20LOb.gif +2053 20L AA 20/65 <41 ch/gun/chAA20LC.gif ch/gun/chAA20LCb.gif +2055 20L AA FlaK 30 ch/gun/chAA20LF.gif ch/gun/chAA20LFb.gif +2056 37L AA FlaK 36/37 ch/gun/chAA37L.gif ch/gun/chAA37Lb.gif +2057 40L AA Bofors L/60 ch/gun/chAA40L.gif ch/gun/chAA40Lb.gif +2058 75L AA Bofors M29 <41 ch/gun/chAA75L.gif ch/gun/chAA75Lb.gif +2060 88L AA FlaK 18 <41 ch/gun/chAA88L.gif ch/gun/chAA88Lb.gif +2063 VCL M1931(b) ch/veh/vclm1931.gif +2065 L3/35(i) ch/veh/chl335.gif +2067 PzKw IA(g) ch/veh/chpzia.gif +2069 Vickers 6t Mk E(b) ch/veh/chvick.gif +2071 T-26TU M33(r) ch/veh/cht26.gif +2073 T-26TU M33(r) ch/veh/cht262.gif +2075 M3A3(a) ch/veh/chm3a3.gif +2077 M3A3(a) ch/veh/chm3a32.gif +2079 M4A4(a) ch/veh/chm4a4.gif +2081 M4A4(a) ch/veh/chm4a42.gif +2085 M3A1(a) SC ch/veh/chm3a1.gif +2087 Stuart Recon(a) ch/veh/chstuart.gif +2089 Type 22 AC ch/veh/ch22ac.gif +2091 PSW 221(g) ch/veh/chpsw221.gif +2093 PSW 222(g) ch/veh/chpsw222.gif +2095 BA-20(r) ch/veh/chba20.gif +2097 BA-6(r) ch/veh/chba6.gif +2101 VCL Mk VI Carrier(b) ch/veh/chvcl.gif +2103 VCL Mk VI Carrier(b) ch/veh/chvcl2.gif +2105 Carrier A(b) ch/veh/chcarra.gif +2107 Carrier B(b) ch/veh/chcarrb.gif +2109 Carrier C(b) ch/veh/chcarrc.gif +2111 Henschel 33(g) ch/veh/chhensch.gif +2113 Jeep(a) ch/veh/chjeep.gif +2116 2-1/2 ton truck(a) ch/veh/chton212.gif +2172 46* MTR al/alMTR46.gif al/alMTR46B.gif +2173 50* MTR al/alMTR50.gif al/alMTR50B.gif +2176 ATR al/alATR.gif al/alATRb.gif +2179 20L ATR al/alATR20.gif al/alATR20b.gif +2193 81* MTR Brandt al/gun/alMTR81.gif al/gun/alMTR81b.gif +2195 37L AT Bofors al/gun/alAT37.gif al/gun/alAT37b.gif +2196 37L AT PaK 35/36 al/gun/alAT37L.gif al/gun/alAT37Lb.gif +2197 47 AT Bohler M35 al/gun/alAT47.gif al/gun/alAT47b.gif +2198 65* INF wz. 06 al/gun/alINF65.gif al/gun/alINF65b.gif +2199 75 ART wz. 97 al/gun/alART75fr.gif al/gun/alART75frb.gif +2200 75* ART Bofors M34 al/gun/alART75.gif al/gun/alART75b.gif +2201 75* ART 75M 19S al/gun/alART75s.gif al/gun/alART75sb.gif +2202 105 ART C105 L 13 S al/gun/alART105.gif al/gun/alART105b.gif +2203 120* ART wz. 09/31 al/gun/alART120.gif al/gun/alART120b.gif +2204 155* ART 17S al/gun/alART155.gif al/gun/alART155b.gif +2205 12.7 AA CAJ al/gun/alAA127.gif al/gun/alAA127b.gif +2206 20L AA Oerlikon al/gun/alAA20.gif al/gun/alAA20b.gif +2207 40L AA Bofors al/gun/alAA40.gif al/gun/alAA40b.gif +2208 75 ART wz. 02/26 al/gun/alART75p.gif al/gun/alART75pb.gif +2209 100* ART wz. 14/19 al/gun/alART100p.gif al/gun/alART100pb.gif +2210 75L AA wz. 97/25 al/gun/alAA75p.gif al/gun/alAA75pb.gif +2211 76* MTR M76 A al/gun/alMTR76.gif al/gun/alMTR76b.gif +2212 76* INF FRC ['al/gun/alINF76.gif', 'al/gun/alINF76u.gif'] al/gun/alINF76b.gif +2213 47 AT C47 FRC M 32 al/gun/alATb47.gif al/gun/alATb47b.gif +2214 75 ART C75 TR al/gun/alARTb75.gif al/gun/alARTb75b.gif +2215 75 ART C75 GP al/gun/alART75gp.gif al/gun/alART75gpb.gif +2216 105 ART Ob 105 GP al/gun/alARTb105.gif al/gun/alARTb105b.gif +2217 120 ART C120 M31 al/gun/alARTb120.gif al/gun/alARTb120b.gif +2218 75L AA M27 FRC al/gun/alAA75.gif al/gun/alAA75b.gif +2219 85 ART Vari 85/24 M al/gun/alART85.gif al/gun/alART85b.gif +2220 105* ART OR 105/19 al/gun/alART105g.gif al/gun/alART105gb.gif +2221 37L AA Bofors al/gun/alAA37.gif al/gun/alAA37b.gif +2222 20L AT M-35 al/gun/alAT20.gif al/gun/alAT20b.gif +2223 37* INF al/gun/alINF37.gif al/gun/alINF37b.gif +2224 80* ART M28/M33 al/gun/alART80.gif al/gun/alART80b.gif +2225 100* ART M14/19 al/gun/alART100.gif al/gun/alART100b.gif +2231 L5/30(i) al/veh/L530.gif +2233 L3/35(i) al/veh/L335.gif +2235 L6/40(i) al/veh/L640.gif +2237 M13/40(i) al/veh/M1340.gif +2239 FT-17M(f) al/veh/FT17M.gif +2241 FT-17C(f) FT17C.gif +2243 R-35(f) al/veh/R35.gif +2245 M3A1 SC(a) al/veh/M3A1sc.gif +2247 C-K P17(f) al/veh/CKP17.gif +2249 C-K P19(f) al/veh/CKP19.gif +2251 VCL Utility(b) al/veh/VCL.gif +2253 Lt truck al/veh/allttruck.gif +2255 Md truck al/veh/almdtruck.gif +2257 Hv truck al/veh/alhvytruck.gif +2259 TKS al/veh/TKS.gif +2261 TKS(L) al/veh/TKSL.gif +2263 Vickers Edw(b) al/veh/Edwb.gif +2265 Vickers Ejw(b) al/veh/Ejwb.gif +2267 7TPdw al/veh/7TPdw.gif +2269 7TPjw al/veh/7TPjw.gif +2271 H35(f) al/veh/H35f.gif +2273 Peugeot 1918(f) al/veh/1918f.gif +2275 wz. 29 Ursus al/veh/wz29.gif +2277 wz. 34-I al/veh/wz34i.gif +2279 wz. 34-II al/veh/wz34ii.gif +2281 De Dion-Bouton wz. 24(f) al/veh/dion.gif +2283 PF 621L al/veh/PF621.gif +2285 302T al/veh/302T.gif +2287 C2P al/veh/C2P.gif +2289 C4P al/veh/C4P.gif +2291 Taczanka al/veh/Tacz.gif +2292 VCL Mk VI/c47(b) al/veh/VCLmkVI.gif +2294 T-13 II(b) al/veh/T13ii.gif +2296 T-13 III(b) al/veh/T13iii.gif +2298 T-15(b) al/veh/T15.gif +2300 ACG1(f) al/veh/ACG.gif +2302 T32 al/veh/T32.gif +2304 M3A1(a) al/veh/M3A1.gif +2306 M3A3(a) al/veh/M3A3.gif +2308 M3A3(a) PaK 40 al/veh/M3A3pak.gif +2310 M3A3(a) FlaK 38 al/veh/M3A3flak.gif +2312 AEC II(b) al/veh/alaecii.gif +2314 Nimbus al/veh/Nimbus.gif +2315 VCL M1936(b) al/veh/VCLM1936.gif +2317 CTLS-4(a) al/veh/CTLS4.gif +2319 M.36 al/veh/M36.gif +2321 M.38 al/veh/M38.gif +2323 M.39 Lynx al/veh/M39.gif +2325 Marm-Herr III(b) al/veh/almarmherr.gif +2327 Jeep(a) al/veh/aljeep.gif +2328 Jeep(a) MMG al/veh/aljeep2.gif +2329 L5/30(i) al/veh/L530y.gif +2331 L3/35(i) al/veh/L335y.gif +2333 L6/40(i) al/veh/L640y.gif +2335 M13/40(i) al/veh/M1340y.gif +2465 50* MTR ge/geMTR.gif ge/geMTRb.gif +2474 Goliath ge/gegol.gif +2488 81* MTR GrW 34 ge/gun/geMTR81s.gif ge/gun/geMTR81sb.gif +2490 105* MTR NbW 35 ge/gun/geMT105s.gif ge/gun/geMT105sb.gif +2491 120* MTR GrW 42 ge/gun/geMT120s.gif ge/gun/geMT120sb.gif +2493 28LL AT sPzB 41 ge/gun/geAT28LL.gif ge/gun/geAT28LLb.gif +2494 37L AT PaK 35/36 ge/gun/geAT37L.gif ge/gun/geAT37Lb.gif +2495 40LL AT lePaK 41 ge/gun/geAT40LL.gif ge/gun/geAT40LLb.gif +2496 50L AT PaK 38 ge/gun/geAT50L.gif ge/gun/geAT50Lb.gif +2497 75 AT PaK 97/38 ge/gun/geAT75.gif ge/gun/geAT75b.gif +2498 75L AT PaK 40 ge/gun/geAT75L.gif ge/gun/geAT75Lb.gif +2499 76L AT PaK 36r ge/gun/geAT76L.gif ge/gun/geAT76Lb.gif +2500 88LL AT PaK 43 ge/gun/geAT88LL.gif ge/gun/geAT88LLb.gif +2501 88LL AT PaK 43/41 ge/gun/geAT88NT.gif ge/gun/geAT88NTb.gif +2502 128L AT K 81/1 ge/gun/geAT128L.gif ge/gun/geAT128Lb.gif +2504 75* INF leIG 18 ge/gun/geINF75.gif ge/gun/geINF75b.gif +2505 150* INF sIG 33 ge/gun/geIN150s.gif ge/gun/geIN150sb.gif +2506 75* RCL LG 40 ge/gun/geRCL75s.gif ge/gun/geRCL75sb.gif +2507 105* RCL LG 42 ge/gun/geRCL105.gif ge/gun/geRCL105b.gif +2509 75 ART leFK 16nA ge/gun/geAR75.gif ge/gun/geAR75b.gif +2510 105 ART leFH 18 ge/gun/geAR105.gif ge/gun/geAR105b.gif +2511 105L ART sK 18 ge/gun/geAR105L.gif ge/gun/geAR105Lb.gif +2512 150 ART sFH 18 ge/gun/geAR150.gif ge/gun/geAR150b.gif +2513 150L ART K 18 ge/gun/geAR150L.gif ge/gun/geAR150Lb.gif +2514 170L ART K 18 ge/gun/geAR170L.gif ge/gun/geAR170Lb.gif +2516 20L AA FlaK 30 ge/gun/geAA20L4.gif ge/gun/geAA20L4b.gif +2517 20L AA FlaK 38 ge/gun/geAA20L6.gif ge/gun/geAA20L6b.gif +2518 20L AA FlaKvierling 38 ge/gun/geAA2020.gif ge/gun/geAA2020b.gif +2519 37L AA FlaK 36 o. 37 ge/gun/geAA37L8.gif ge/gun/geAA37L8b.gif +2520 37L AA FlaK 43 ge/gun/geAA3712.gif ge/gun/geAA3712b.gif +2521 88L AA FlaK 18 o. 36 ge/gun/geAA88L.gif ge/gun/geAA88Lb.gif +2524 PzKw IB ge/veh/pzib.gif +2526 PzKw IIA ge/veh/pziia.gif +2528 PzKw IIF ge/veh/pziif.gif +2530 PzKw II(Fl) ge/veh/pziifl.gif +2532 PzKw IIL ge/veh/pziil.gif +2534 PzKw 35t ge/veh/pz35t.gif +2536 PzKw 38(t)A ge/veh/pz38ta.gif +2538 PzKw 38(t)E ge/veh/pz38te.gif +2540 Aufklaerer 38(t) ge/veh/auf38t.gif +2542 FT-17 730m(f) ge/veh/ft17mf.gif +2544 FT-17 730(f) ge/veh/ft17f.gif +2546 38H 735(f) ge/veh/38hf.gif +2548 35-S 739(f) ge/veh/35sf.gif +2550 Pz 35R 731(f) ge/veh/pz35rf.gif +2552 PzKw IIID ge/veh/pziiid.gif +2554 PzKw IIIF ge/veh/pziiif.gif +2556 PzKw IIIG ge/veh/pziiig.gif +2558 PzKw IIIH ge/veh/pziiih.gif +2560 PzKw IIIJ ge/veh/pziiij.gif +2562 PzKw IIIL ge/veh/pziiil.gif +2564 PzKw IIIL ge/veh/pziiil2.gif +2566 PzKw IIIN ge/veh/pziiin.gif +2568 PzKw IIIN ge/veh/pziiin2.gif +2570 PzKw III(Fl) ge/veh/pziiifl.gif +2572 PzKw IVA ge/veh/pziva.gif +2574 PzKw IVC ge/veh/pzivc.gif +2576 PzKw IVD ge/veh/pzivd.gif +2578 PzKw IVE ge/veh/pzive.gif +2580 PzKw IVF1 ge/veh/pzivf1.gif +2582 PzKw IVF2 ge/veh/pzivf2.gif +2584 PzKw IVH ge/veh/pzivh.gif +2586 PzKw IVH ge/veh/pzivh2.gif +2588 PzKw IVJ ge/veh/pzivj.gif +2590 PzKw VD ge/veh/pzvd.gif +2592 PzKw VG ge/veh/pzvg.gif +2594 PzKw M15/42(i) ge/veh/pzm1542.gif +2596 PzKw P26/40(i) ge/veh/pzp2640.gif +2598 PzKw VIE ge/veh/pzvie.gif +2600 PzKw VIE (L) ge/veh/pzviel.gif +2602 PzKw VIB ge/veh/pzvib.gif +2608 StuG IIIB ge/veh/stgiiib.gif +2610 StuG IIIG ge/veh/stgiiig.gif +2612 StuG IIIG (L) ge/veh/stgiiigl.gif +2614 StuH 42 ge/veh/stuh42.gif +2616 StuH 42 (L) ge/veh/stuh42l.gif +2618 StuPz IV ge/veh/stupziv.gif +2620 StuPz IV ge/veh/stupziv2.gif +2622 PzJg Tiger ge/veh/pzjg.gif +2624 PzJg Tiger ge/veh/pzjg2.gif +2626 StuG 75/18(i) ge/veh/stg7518.gif +2628 StuG 75/34(i) ge/veh/stg7534.gif +2630 StuG 105/25(i) ge/veh/stg10525.gif +2632 StuG 75/46(i) ge/veh/stg7546.gif +2634 PzJg I ge/veh/pzjgi.gif +2636 PzJg 35R(f) ge/veh/pzjg35rf.gif +2638 GSW 39H(f) PaK ge/veh/gsw39hp.gif +2640 Marder I(f) ge/veh/mardi.gif +2642 Marder II ge/veh/mardii.gif +2644 Marder II ge/veh/mardii2.gif +2646 Marder III(t)H ge/veh/mardiiih.gif +2648 Marder III(t)M ge/veh/mardiiim.gif +2650 PzJg III/IV ge/veh/pzjgiii.gif +2652 PzJg III/IV ge/veh/pzjgiii2.gif +2654 JgdPz 38(t) ge/veh/jgpz38.gif +2656 JgdPz 38(t) (Fl) ge/veh/jgpz38fl.gif +2658 JgdPz IV ge/veh/jgpziv.gif +2660 JgdPz IV (L) ge/veh/jgpzivl.gif +2662 JgPz IV/70 ge/veh/jgpziv70.gif +2664 JgdPz V ge/veh/jgpzv.gif +2666 JgdPz VI ge/veh/jgpzvi.gif +2668 StuIG 33B ge/veh/sig33b.gif +2674 SPW 250/1 ge/veh/spw2501.gif +2676 SPW 250/sMG ge/veh/spw250mg.gif +2678 SPW 250/7 ge/veh/spw2507.gif +2680 SPW 250/8 ge/veh/spw2508.gif +2682 SPW 250/8 ge/veh/spw25082.gif +2684 SPW 250/9 ge/veh/spw2509.gif +2686 SPW 250/10 ge/veh/spw25010.gif +2688 SPW 251/1 ge/veh/spw2511.gif +2690 SPW 251/sMG ge/veh/spw251mg.gif +2692 SPW 251/2 ge/veh/spw2512.gif +2694 SPW 251/9 ge/veh/spw2519.gif +2696 SPW 251/9 ge/veh/spw25192.gif +2698 SPW 251/10 ge/veh/spw25110.gif +2700 SPW 251/16 ge/veh/spw25116.gif +2702 SPW 251/21 ge/veh/spw25121.gif +2704 SPW 251/22 ge/veh/spw25122.gif +2706 SPW S307(f) ge/veh/spws307.gif +2708 mSPW S307(f) ge/veh/mspws307.gif +2710 SdKfz 2 ge/veh/sdkfz2.gif +2711 SdKfz 11 ge/veh/sdkfz11.gif +2713 SdKfz 7 ge/veh/sdkfz7.gif +2717 Kfz 13 ge/veh/kfz13.gif +2719 PSW 221 ge/veh/psw221.gif +2721 PSW 222 ge/veh/psw222.gif +2723 PSW 222 (L) ge/veh/psw222l.gif +2725 PSW 231 (6 rad) ge/veh/psw2316.gif +2727 PSW 231 (6 rad) ge/veh/psw23162.gif +2729 PSW 231 (8 rad) ge/veh/psw2318.gif +2731 PSW 232 (8 rad) ge/veh/psw2328.gif +2733 PSW 233 ge/veh/psw233.gif +2735 PSW 234/1 ge/veh/psw2341.gif +2737 PSW 234/2 ge/veh/psw2342.gif +2739 PSW 234/3 ge/veh/psw2343.gif +2741 PSW 234/3 ge/veh/psw23432.gif +2743 PSW 234/4 ge/veh/psw2344.gif +2747 sIG IB ge/veh/sigib.gif +2749 sIG II ge/veh/sigii.gif +2751 sIG 38(t)M ge/veh/sig38m.gif +2753 PzA II ge/veh/pzaii.gif +2755 PzA II ge/veh/pzaii2.gif +2757 PzA LrS(f) ge/veh/pzalrs.gif +2759 GSW 39H(f) ge/veh/gsw39hf.gif +2761 PzA III/IV ge/veh/pzaiii.gif +2763 FlaKPz 38(t) ge/veh/flakpz38.gif +2765 37 FlaK/Pz IV [move] ge/veh/flakpz37.gif +2768 FlaKPz IV/20 ge/veh/flakiv20.gif +2770 FlaKPz IV/37 ge/veh/flakiv37.gif +2772 SdKfz 10/4 ge/veh/sdkfz104.gif +2775 SdKfz 10/5 ge/veh/sdkfz105.gif +2778 SdKfz 6/2 ge/veh/sdkfz62.gif +2781 SdKfz 7/1 ge/veh/sdkfz71.gif +2784 Kfz 4 ge/veh/kfz4.gif +2785 2cm FlaK LKW ge/veh/lkw2cm.gif +2787 3.7cm FlaK LKW ge/veh/lkw37cm.gif +2791 Kfz 1 ge/veh/kfz1.gif +2793 Kfz 1/20 ge/veh/kfz120.gif +2794 Opel 6700 ge/veh/opel.gif +2796 NAG 4500 ge/veh/nag4500.gif +2798 SdKfz 2 ge/veh/sdkfz2.gif +2799 SdKfz 11 ge/veh/sdkfz11.gif +2801 SdKfz 7 ge/veh/sdkfz7.gif +2805 SPW 251/1 ge/veh/spw2511.gif +2807 PzKw IVH ge/veh/pzivh.gif +2809 PzKw IVH ge/veh/pzivh2.gif +2811 PzKw IVJ ge/veh/pzivj.gif +2813 PzKw VG ge/veh/pzvg.gif +2815 JgdPz V ge/veh/jgpzv.gif +2817 FlaKPz IV/20 ge/veh/flakiv20.gif +3252 37* INF ja/jaINF37.gif ja/jaINF37b.gif +3253 50* MTR ja/jaMTR.gif ja/jaMTRB.gif +3263 20L ATR ja/jaATR20.gif ja/jaATR20b.gif +3277 70* MTR ja/gun/jaMTR70s.gif ja/gun/jaMTR70sb.gif +3279 81* MTR ja/gun/jaMTR81s.gif ja/gun/jaMTR81sb.gif +3281 90* MTR ja/gun/jaMTR90s.gif ja/gun/jaMTR90sb.gif +3283 150* MTR ja/gun/jaMTR150s.gif ja/gun/jaMTR150sb.gif +3285 37L AT ja/gun/jaAT37L.gif ja/gun/jaAT37Lb.gif +3286 47L AT ja/gun/jaAT47L.gif ja/gun/jaAT47Lb.gif +3287 70* INF ja/gun/jaINF70s.gif ja/gun/jaINF70sb.gif +3288 75* INF ja/gun/jaINF75s.gif ja/gun/jaINF75sb.gif +3291 75* ART ja/gun/jaAR75s.gif ja/gun/jaAR75sb.gif +3292 75 ART ja/gun/jaAR75.gif ja/gun/jaAR75b.gif +3293 105 ART ja/gun/jaAR105.gif ja/gun/jaAR105b.gif +3294 105L ART ja/gun/jaAR105L.gif ja/gun/jaAR105Lb.gif +3295 120* ART ja/gun/jaAR120s.gif ja/gun/jaAR120sb.gif +3296 140L ART ja/gun/jaAR140L.gif ja/gun/jaAR140Lb.gif +3297 150* ART ja/gun/jaAR150s.gif ja/gun/jaAR150sb.gif +3298 150 ART ja/gun/jaAR150.gif ja/gun/jaAR150b.gif +3301 12.7 AA Twin ja/gun/jaAA127.gif ja/gun/jaAA127b.gif +3302 20L AA ja/gun/jaAA20L.gif ja/gun/jaAA20Lb.gif +3303 25LL AA ja/gun/jaAA25LL.gif ja/gun/jaAA25LLb.gif +3304 25LL AA Twin ja/gun/jaAA25L2.gif ja/gun/jaAA25L2b.gif +3305 25LL AA Triple ja/gun/jaAA25L3.gif ja/gun/jaAA25L3b.gif +3306 75 AA ja/gun/jaAA75.gif ja/gun/jaAA75b.gif +3307 76L AA ja/gun/jaAA76L.gif ja/gun/jaAA76Lb.gif +3308 120L AA ja/gun/jaAA120L.gif ja/gun/jaAA120Lb.gif +3310 Type 92A ja/veh/ty92A.gif +3312 Type 92B ja/veh/ty92B.gif +3314 Type 94 ja/veh/ty94.gif +3316 Type 95 SO-KI ja/veh/ty95soki.gif +3318 Type 97A TE-KE ja/veh/ty97Ateke.gif +3320 Type 97B TE-KE ja/veh/ty97Bteke.gif +3322 Type 95 HA-GO ja/veh/ty95hago.gif +3324 Type 2 KA-MI ja/veh/ty2kami.gif +3326 Type 2 KA-MI amph ja/veh/ty2kamip.gif +3329 Type 89A CHI-RO ja/veh/ty89Achiro.gif +3331 Type 89B CHI-RO ja/veh/ty89Bchiro.gif +3333 Type 97A CHI-HA ja/veh/ty97Achiha.gif +3335 Type 97B CHI-HA ja/veh/ty97Bchiha.gif +3337 Type 1 CHI-HE ja/veh/ty1chihe.gif +3341 Type 91 AC ja/veh/ty91ac.gif +3343 Type 91 AC ja/veh/ty91ac2.gif +3345 Type 91 AC ja/veh/ty91ac3.gif +3347 Type 92 AC ja/veh/ty92ac.gif +3349 Type 92 AC ja/veh/ty92ac2.gif +3353 Type 1 HO-NI ja/veh/ty1honi.gif +3355 Type 4 HO-RO ja/veh/ty4horo.gif +3357 Type 1 HO-KI ja/veh/ty1hoki.gif +3359 Type 98 SHI-KE ja/veh/ty98shike.gif +3361 Type 92 I-KE ja/veh/ty92ike.gif +3363 Type 95 tr ja/veh/ty95tr.gif +3364 Type 94 tr ja/veh/ty94tr.gif +3366 Type 97 tr ja/veh/ty97tr.gif +3422 45* MTR it/itMTR.gif it/itMTRb.gif +3428 20L ATR it/itATR20.gif it/itATR20b.gif +3442 81* MTR 81/14 it/gun/itMTR81s.gif it/gun/itMTR81sb.gif +3444 37L AT 37/45 it/gun/itAT37L.gif it/gun/itAT37Lb.gif +3445 47 AT 47/32 it/gun/itAT47.gif it/gun/itAT47b.gif +3446 65* INF 65/17 it/gun/itINF65s.gif it/gun/itINF65sb.gif +3447 70* INF 70/15 it/gun/itINF70s.gif it/gun/itINF70sb.gif +3451 75* ART 75/13 it/gun/itAR75s_.gif it/gun/itAR75s_b.gif +3452 75* ART 75/27 it/gun/itAR75s.gif it/gun/itAR75sb.gif +3453 75* ART 75/18 it/gun/itAR75sO.gif it/gun/itAR75sOb.gif +3454 75 ART 75/32 it/gun/itAR75_.gif it/gun/itAR75_b.gif +3455 100* ART 100/17 it/gun/itAR100s.gif it/gun/itAR100sb.gif +3456 105 ART 105/28 it/gun/itAR105.gif it/gun/itAR105b.gif +3457 150* ART 149/13 it/gun/itAR150s.gif it/gun/itAR150sb.gif +3458 150 ART 149/35 it/gun/itAR150.gif it/gun/itAR150b.gif +3459 150L ART 149/40 it/gun/itAR150L.gif it/gun/itAR150Lb.gif +3461 20L AA 20/65 it/gun/itAA20L.gif it/gun/itAA20Lb.gif +3462 75L AA 75/39 it/gun/itAA75L.gif it/gun/itAA75Lb.gif +3463 75L AA 75/46 it/gun/itAA7546.gif it/gun/itAA7546b.gif +3464 90L AA 90/53 it/gun/itAA90L.gif it/gun/itAA90Lb.gif +3466 L5/21 it/veh/l521.gif +3468 L5/30 it/veh/l530.gif +3470 L3/35 it/veh/l335.gif +3472 L3 aa it/veh/l3aa.gif +3474 L3 cc it/veh/l3cc.gif +3476 L3 Lf it/veh/l3lf.gif +3479 L6/40 it/veh/l640.gif +3481 M11/39 it/veh/m1139.gif +3483 M13/40 it/veh/m1340.gif +3485 M13/40 it/veh/m13402.gif +3487 M14/41 it/veh/m1441.gif +3489 M14/41 it/veh/m14412.gif +3491 M15/42 it/veh/m1542.gif +3493 M15/42 it/veh/m15422.gif +3495 MR/35(f) it/veh/mr35.gif +3499 Semovente M40 75/18 it/veh/semm40.gif +3501 Semovente M40 75/18 it/veh/semm402.gif +3503 Semovente M41 75/18 it/veh/semm41.gif +3505 Semovente M41 75/18 it/veh/semm412.gif +3507 Semovente M42 75/18 it/veh/semm4218.gif +3509 Semovente M42 75/32 it/veh/semm4232.gif +3511 Semovente M43 105/25 it/veh/semm43.gif +3513 Semovente L40 47/32 it/veh/seml40.gif +3515 Semovente M41M 90/53 it/veh/semm41m.gif +3519 AS 42 it/veh/as42.gif +3521 AS 42 aa it/veh/as42aa.gif +3523 AS 42 cc it/veh/as42cc.gif +3525 Lince it/veh/lince.gif +3527 Lancia 1ZM it/veh/lancia.gif +3529 Fiat 611A it/veh/fiat611a.gif +3531 Fiat 611B it/veh/fiat611b.gif +3533 AB 40 it/veh/ab40.gif +3535 AB 41 it/veh/ab41.gif +3539 Autoprotetto S37 it/veh/auts37.gif +3541 Autocannone 65/17(b) it/veh/aut6517.gif +3545 Autocannone 20/65(b) it/veh/aut2065.gif +3547 Autocanonne 75/27 CK it/veh/aut7527.gif +3549 Autocanonne 90/53 it/veh/aut9053.gif +3551 TL 37 it/veh/tl37.gif +3553 TM 40 it/veh/tm40.gif +3555 TP 32 it/veh/tp32.gif +3557 Autocarretta it/veh/autocarr.gif +3559 Autocarretta MG it/veh/autocarr2.gif +3561 Fiat 508 MC it/veh/fiat508.gif it/veh/fiat508.gif +3562 Fiat 508 MC Furgone it/veh/fiat508f.gif it/veh/fiat508f.gif +3563 Autocarro Leggero it/veh/autleg.gif +3565 Autocarro Medio it/veh/autmed.gif +3567 Autocarro Pesante it/veh/autpes.gif +3605 50* MTR (g) fi/fiMTR.gif fi/fiMTRb.gif +3608 20L ATR fi/fiATR.gif fi/fiATRb.gif +3679 50 MTR(f) ax/axMTRf.gif ax/axMTRfb.gif +3680 50* MTR ax/axMTR.gif ax/axMTRb.gif +3681 50* MTR(r) ax/axMTRr.gif ax/axMTRrb.gif +3682 60* MTR(f) ax/axMTR60f.gif ax/axMTR60fb.gif +3709 81* MTR GrW 34 ax/gun/axMT81sg.gif ax/gun/axMT81sgb.gif +3711 81* MTR Brandt M27/31 ax/gun/axMT81s.gif ax/gun/axMT81sb.gif +3713 120* MTR PM obr. 38 ax/gun/axMT120s.gif ax/gun/axMT120sb.gif +3714 37L AT Kanon PUV vz. 37(t) ax/gun/axAT37L.gif ax/gun/axAT37Lb.gif +3715 47 AT Bohler M35 ax/gun/axAT47.gif ax/gun/axAT47b.gif +3716 50L AT PaK 38(g) ax/gun/axAT50L.gif ax/gun/axAT50Lb.gif +3717 75 AT PaK 97/38(g) ax/gun/axAT75.gif ax/gun/axAT75b.gif +3718 75L AT PaK 40(g) ax/gun/axAT75L.gif ax/gun/axAT75Lb.gif +3719 75* ART Skoda Model 15 ax/gun/axAR75s.gif ax/gun/axAR75sb.gif +3720 75 ART Canon mle 1897 ax/gun/axAR75.gif ax/gun/axAR75b.gif +3721 75 ART Skoda M29 ax/gun/axAR752.gif ax/gun/axAR752b.gif +3722 76* ART Skoda M17 ax/gun/axAR76s.gif ax/gun/axAR76sb.gif +3723 80* ART Skoda M28(80) ax/gun/axAR80s.gif ax/gun/axAR80sb.gif +3724 100* ART Skoda M14/19 ax/gun/axAR100s.gif ax/gun/axAR100sl.gif +3725 105 ART leFH 18(g) ax/gun/axAR105.gif ax/gun/axAR105b.gif +3726 105L ART Skoda M35 ax/gun/axAR105L.gif ax/gun/axAR105Lb.gif +3727 122* ART G obr. 10/30 ax/gun/axAR122s.gif ax/gun/axAR122sb.gif +3728 122 ART G obr. 38 ax/gun/axAR122.gif ax/gun/axAR122b.gif +3729 150* ART Skoda M14 ax/gun/axAR150s.gif ax/gun/axAR150sb.gif +3730 152 ART Skoda M15/16 ax/gun/axAR152.gif ax/gun/axAR152b.gif +3731 155* ART C mle 17 S ax/gun/axAR155s.gif ax/gun/axAR155sb.gif +3732 12.7 AA CAJ mle 30 ax/gun/axAA127.gif ax/gun/axAA127b.gif +3733 20L AA Oerlikon FF ax/gun/axAA20L.gif ax/gun/axAA20Lb.gif +3734 20L AA FlaK 30(g) ax/gun/axAA20Lg1.gif ax/gun/axAA20Lg1b.gif +3735 20L AA FlaK 38(g) ax/gun/axAA20Lg2.gif ax/gun/axAA20Lg2b.gif +3736 37L AA FlaK 36(g) ax/gun/axAA37L.gif ax/gun/axAA37Lb.gif +3737 40L AA Bofors ax/gun/axAA40L.gif ax/gun/axAA40Lb.gif +3738 76L AA Skoda M33 ax/gun/axAA76L.gif ax/gun/axAA76Lb.gif +3739 88L AA FlaK 18 o. 36 ax/gun/axAA88L.gif ax/gun/axAA88Lb.gif +3740 37L AT Bofors ax/gun/roAT37L.gif ax/gun/roAT37Lb.gif +3742 75L AT Resita M43 ax/gun/roAT75L.gif ax/gun/roAT75Lb.gif +3743 76LL AT PaK 36(r) ax/gun/roAT76LL.gif ax/gun/roAT76LLb.gif +3744 47 INF Breda ax/gun/roINF47.gif ax/gun/roINF47b.gif +3745 75* INF PP obr. 27 ax/gun/roINF75s.gif ax/gun/roINF75sb.gif +3746 75* ART 75 M mle 28 ax/gun/roAR75s1.gif ax/gun/roAR75s1b.gif +3747 75* ART Skoda M14/34 ax/gun/roAR75s2.gif ax/gun/roAR75s2b.gif +3748 76* ART P obr. 00/02 ax/gun/roAR76s.gif ax/gun/roAR76sb.gif +3749 76 ART P obr. 02/30 ax/gun/roAR76.gif ax/gun/roAR76b.gif +3750 76L ART P obr. 39(r) ax/gun/roAR76L.gif ax/gun/roAR76Lb.gif +3751 105L ART s 10cm K 18(g) ax/gun/roAR105L1.gif ax/gun/roAR105L1b.gif +3752 105 ART Skoda M39(D9) ax/gun/roAR105.gif ax/gun/roAR105b.gif +3753 105L ART mle 36 S ax/gun/roAR105L2.gif ax/gun/roAR105L2b.gif +3754 107 ART mle 10/12 ax/gun/roAR107.gif ax/gun/roAR107b.gif +3755 114* ART OQF 4.5" Howitzer ax/gun/roAR114s.gif ax/gun/roAR114sb.gif +3757 150 ART Skoda Model 33(K1) ax/gun/roAR150.gif ax/gun/roAR150b.gif +3758 25L AA CA mle 38 ax/gun/roAA25LL.gif ax/gun/roAA25LLb.gif +3759 75L AA Vickers/Resita M36/39 ax/gun/roAA75L.gif ax/gun/roAA75Lb.gif +3760 90L AA Kanon PL vz. 12/20 ax/gun/roAA90L.gif ax/gun/roAA90Lb.gif +3761 81* MTR Minomet vz. 36 ax/gun/slMT81s.gif ax/gun/slMT81sb.gif +3763 47L AT Kanon PUV vz. 36(t) ax/gun/slAT47L.gif ax/gun/slAT47Lb.gif +3764 75* INF leIG 18(g) ax/gun/slIN75s.gif ax/gun/slIN75sb.gif +3765 150L ART Skoda M37(K4) ax/gun/slAR150L.gif ax/gun/slAR150Lb.gif +3767 75L AA Skoda PL vz. 37(t) ax/gun/slAA75L.gif ax/gun/slAA75Lb.gif +3768 83L AA Kanon PL vz. 22/24 ax/gun/slAA83L.gif ax/gun/slAA83Lb.gif +3774 100* ART Skoda Model 28(FE) ax/gun/crAR100s.gif ax/gun/crAR100sb.gif +3775 20L AT Madsen M-35 ax/gun/buAT20L.gif ax/gun/buAT20Lb.gif +3776 37* INF Skoda IG ax/gun/buIN37s.gif ax/gun/buIN37sb.gif +3777 70* INF Skoda IG ax/gun/buIN37s2.gif ax/gun/buIN37sb.gif +3778 75* ART Bofors M36 ax/gun/buAR75s.gif ax/gun/buAR75sb.gif +3779 75 ART K-S ax/gun/buAR75.gif ax/gun/buAR75b.gif +3780 105 ART Ob GP ax/gun/buAR105.gif ax/gun/buAR105b.gif +3781 150* ART D/30 Krupp ax/gun/buAR150s.gif ax/gun/buAR150sb.gif +3787 L3/35(i) ax/veh/axL335.gif +3789 FT-17M(f) ax/veh/axFT17M.gif +3791 FT-17C(f) ax/veh/axFT17C.gif +3793 H39(f) ax/veh/axH39.gif +3795 R-35(f) ax/veh/axR35.gif +3797 S-35(f) ax/veh/axS35.gif +3799 LT vz 38(t)A ax/veh/axLT38A.gif +3801 LT vz 38(t)E ax/veh/axLT38E.gif +3803 JgdPz 38(t) ax/veh/axJgPz38.gif +3805 OA vz 30(t) ax/veh/axOA30.gif +3807 AB 41(i) ax/veh/axAB41.gif +3809 Komsomolets(r) ax/veh/axKom.gif +3811 Komsomolets(r) MG ax/veh/axKom2.gif +3813 Lt Tractor ax/veh/axTracL.gif +3815 Md Tractor ax/veh/axTracM.gif +3817 Hv Tractor ax/veh/axTracH.gif +3819 Lt Truck ax/veh/axTrkL.gif +3821 Md Truck ax/veh/axTrkM.gif +3823 Hv Truck ax/veh/axTrkH.gif +3825 LT vz 35(g) ax/veh/axLT35.gif +3827 PzKw IB(g) ax/veh/axPziB.gif +3829 PzKw IIIL(g) ax/veh/axPziiiL.gif +3831 PzKw IIIL(g) ax/veh/axPziiiL2.gif +3833 PzKw IIIN(g) ax/veh/axPziiiN.gif +3835 PzKw IIIN(g) ax/veh/axPziiiN2.gif +3837 PzKw IVD(g) ax/veh/axPzivD.gif +3839 PzKw IVF1(g) ax/veh/axPzivF.gif +3841 PzKw IVH(g) ax/veh/axPzivH.gif +3843 PzKw IVH(g) ax/veh/axPzivH2.gif +3845 StuG IIIG(g) ax/veh/axSGiiiG.gif +3847 SPW 250/1(g) ax/veh/axSPW2501.gif +3849 SPW 251/1(g) ax/veh/axSPW2511.gif +3851 SPW 251/9(g) ax/veh/axSPW2519.gif +3853 PSW 222(g) ax/veh/axPSW222.gif +3855 PSW 222(L)(g) ax/veh/axPSW222L.gif +3857 PSW 223(g) ax/veh/axPSW223.gif +3859 RSO(g) ax/veh/axRSO.gif +3861 R-1(t) ax/veh/roR1.gif +3863 R-35/45(f) ax/veh/roR35.gif +3865 TACAM T-60(r) ax/veh/roT60.gif +3867 TACAM T-60A(r) ax/veh/roT60A.gif +3869 TACAM R-2(r) ax/veh/roR2.gif +3871 BA-6(r) ax/veh/roBA6.gif +3873 BA-20(r) ax/veh/roBA20.gif +3875 Malaxa UE2 ax/veh/roUE.gif +3877 Malaxa UE2 MG ax/veh/roUE2.gif +3879 T vz 33(t) ax/veh/slT33.gif +3881 LT vz 34 ax/veh/slLT34.gif +3883 PzKw IIA(g) ax/veh/slPziiA.gif +3885 LT vz 40(t) ax/veh/slLT40.gif +3887 Marder III(t)H ax/veh/slMiiiH.gif +3889 Kfz 1(g) ax/veh/slKfz1.gif +3891 SdKfz 2(g) ax/veh/slSdKfz2.gif +3892 TKS ax/veh/crTKS.gif +3894 TKS(L) ax/veh/crTKSL.gif +3900 wz. 34-II ax/veh/cr34ii.gif +3902 Semovente L40(i) ax/veh/crSemL40.gif +3904 Vickers 6t Mk E ax/veh/buV6E.gif +3906 R-35(f) ax/veh/buR35.gif +3993 40L AT MAVAG 40 M hu/gun/huAT40L.gif hu/gun/huAT40Lb.gif +3999 76 ART Skoda M05/08 hu/gun/huAR76.gif hu/gun/huAR76b.gif +4001 105 ART MAVAG M40 hu/gun/huAR1052.gif hu/gun/huAR1052b.gif +4007 80L AA Bofors M29/38 hu/gun/huAA80L.gif hu/gun/huAA80Lb.gif +4009 38M Toldi I hu/veh/hu38MTi.gif +4011 38M Toldi IIA hu/veh/hu38MTiiA.gif +4013 40M Turan I(r) hu/veh/hu40MTi.gif +4015 41M Turan II(r) hu/veh/hu41MTii.gif +4043 PzKw VG(g) hu/veh/huPzvG.gif +4045 PzKw VIE(L)(g) hu/veh/huPzviE.gif +4055 43M Zrinyi II hu/veh/hu43MZii.gif +4057 Marder II(g) hu/veh/huMii.gif +4067 40M Csaba hu/veh/hu40MC.gif +5723 M3A1 am/veh/M3A1.gif +5728 M5A1 am/veh/M5A1.gif +5733 M4 am/veh/M4.gif +5738 M4A1 am/veh/M4A1.gif +5743 M4A2 am/veh/M4A2.gif +5748 M4A2(L) am/veh/M4A2L.gif +5753 M4A3 am/veh/M4A3.gif +5758 M4A3(75)W am/veh/M4A375W.gif +5763 M4A3E2 am/veh/M4A3E2.gif +5768 M4A3E2(L) am/veh/M4A3E2L.gif +5773 M4A1(76)W am/veh/M4A176W.gif +5778 M4A3(76)W am/veh/M4A376W.gif +5852 122* ART obr. 10/30 ch/gun/chAR122s2.gif ch/gun/chAR122sb.gif +5853 122 ART G obr. 38 ch/gun/chAR1222.gif ch/gun/chAR122b.gif +5854 20L AA 20/65 ch/gun/chAA20LC2.gif ch/gun/chAA20LCb.gif +5855 75L AA Bofors M29 ch/gun/chAA75L2.gif ch/gun/chAA75Lb.gif +5856 88L AA FlaK 18 ch/gun/chAA88L2.gif ch/gun/chAA88Lb.gif +5944 81* MTR OML 3.2" br/guns/brMTR81.gif br/guns/brMTR76sb.gif +6364 Stuart III(a) ru/veh/ruM3A1.gif +6730 47 MTR fi/fi47mtr.png fi/fi47mtrB.png +6765 81* MTR Krh/32 fi81mmMTR.png fi/gun/fi81mmMTRB.png +6782 81* MTR Savu M42 fi81mmMTR Savu.png fi/gun/fi81mmMTR SavuB.png +6796 7.62 AA fi7.62AA.png fi/gun/fi7.62AAB.png +6797 20L (4) AA (g) fi20L4.png +6801 20L (6) AA (g) fi20L6.png +6802 20L (4) AA fi/gun/fi20L4 _2.png +6803 20L VKT (12) AA fi/gun/fi20L12.png +6804 40L Bofors AA (s) fi/gun/fi40L.png +6805 76 ItK/31(r) fi/gun/fi76LLAA.png +6806 120* MTR Krh/40 fi120MTR.png fi/gun/fi120MTRB.png +6808 20L AT PstK/40 fi20LAT.gif fi/gun/fi20LATB.png +6810 25LL AT PstK/47 (f) fi25LLAT.png fi/gun/fi25LLATB.png +6811 37L AT PstK/36 (s) fi37LAT.png fi/gun/fi37LAT B.png +6812 37L AT PstK/37 (g) fi37LAT H.png fi/gun/fi37LAT HB.png +6813 45L AT PstK/32 (r) fi45LAT.png fi/gun/fi45LATB.png +6814 50L AT PstK/38 (g) fi50LAT.png fi/gun/fi50LATB.png +6815 75 AT PstK/97-38 (g) fi/gun/fi75AT.png fi/gun/fi75ATB.png +6816 75L AT PstK/40 (g) fi75LAT.png fi/gun/fi75LATB.png +6818 76 INF RK/27 (r) fi76INF.png fi/gun/fi76INFB.png +6819 75 ART K/02 fi/gun/fi75ART.png fi/gun/fi75ARTB.png +6820 76* ART LK/13 fi76ART.png fi/gun/fi76ARTB.png +6821 76* ART K/02 (r) fi/gun/fi76ART2.png fi/gun/fi76ART2B.png +6822 76LL ART K/36 (r) fi/gun/fi76LLART.png fi/gun/fi76LLARTB.png +6823 87* ART K/95 fi/gun/fi87ART.png fi/gun/fi87ARTB.png +6824 90* ART K/77 fi/gun/fi90ART.png fi/gun/fi76INFB.png +6826 105 ART H/33 (g) fi/gun/fi105ART.png +6827 105 ART H/37 fi/gun/fi105ART2.png +6828 105L ART H/41 (t) fi/gun/fi105LART.png +6829 107 ART 10/13 fi/gun/fi107ART.png +6830 107 ART K/77 (r) fi/gun/fi107ART2.png +6831 114* ART H/18 (b) fi/gun/fi114ART.png +6832 122* ART H/10 (r) fi/gun/fi122ART.png +6833 150 ART H/40 (g) fi/gun/fi150ART.png fi/gun/fi150ARTB.png +6834 155 ART H/17 (f) fi/gun/fi155ART.png +6841 T-37 (r) fi/veh/fiT-37r.png +6849 T-50 (r) fiT-50r.png +6853 Vikkers (b) fi/veh/fiVikkers.png +6861 T-26E (b) fi/veh/fiT-26e(b).png +6865 T-26A (r) fi/veh/fiT-26a(r).png +6869 T-26B (r) fi/veh/fiT-26b(r).png +6877 OT-133 (r) fi/veh/fiOT-133(r).png +6881 BT-5 (r) fi/veh/fiBT-5(r).png +6885 BT-7 (r) fi/veh/fiBT-7(r).png +6891 Postijuna (r) fi/veh/fiPostijuna.png +6895 Postijuna (L) (r) fi/veh/fiPostijunaL.png +6903 Sotka (r) fi/veh/fiSotka.png +6907 Sotka (L) (r) fi/veh/fiSotkaL.png +6911 Pitka Sotka (r) fi/veh/fiPitkaSotkaL.png +6917 KV-1E (r) fi/veh/fiKV1-E.png +6921 KV-1 M42 (r) fi/veh/fiKV1-M42.png +6925 BT-42 (r) fi/veh/fiBT-42.png +6929 Sturmi (g) fi/veh/fiStug.png +6933 Landsverk Anti II (s) fi/veh/fiAnti II.png +6937 L182 (s) fi/veh/fiL182.png +6941 L182L (s) fi/veh/fiL182L.png +6945 BA-20 (r) fi/veh/fiBA-20.png +6949 BA-6 (r) fi/veh/fiBA-6.png +6955 GAZ-4M-AA (r) fi/veh/fiGAZ4M AA.png +6959 T-20 (r) fi/veh/fiT20.png +6967 RSO (g) fi/veh/fiRSO.png +6975 STZ-3 (r) fi/veh/fiSTZ3.png +6979 Tempo G1200 fi/veh/fiTempo1200.png +6981 Light Truck fi/veh/fiLight Truck.png +6985 Medium Truck fi/veh/fiMediumTruck.png +6991 Heavy Truck fi/veh/fiHeavy Truck.png +6995 203 ART B-4 obr 1931 ru/gun/ru203ART.png ru/gun/ru203ARTbrk.png +6996 37 MTR ru/ru37MTR.png ru/ru37MTRbrk.png +7032 T-27 ru/veh/ruT-27.png +7036 T-26 M31 ru/veh/ruT-26 M31.png +7040 T-26 M32 ru/veh/ruT-26 M32.png +7042 OT-26 ru/veh/ruOT-26.png +7048 ST-26 ru/veh/ruST26.png ru/veh/ruST26B.png +7056 SMK ru/veh/ruSMK.png +7060 T-100 ru/veh/ruT100.png +7064 LANO AT ru/veh/ruLANO AT.png +7068 LANO AA ru/veh/ruLANO AA.png +7072 STZ-3 ru/veh/ruSTZ-3.png +7078 STZ-5 ru/veh/ruSTZ-5.png +7082 NKL-6 ru/veh/ruNKL-6.png +7084 NKL-16 ru/veh/ruNKL-16.png +7085 NKL-26 ru/veh/ruNKL-26.png +7089 RF-8-GAZ-98 ru/veh/ruRF8GAZ98.png +7091 Sherman III(a) ru/veh/ruShermanIII.png +7093 Sherman III(L) (a) ru/veh/ruShermanIIIL.png +7111 Valentine VIII ru/veh/ruValentineVIII.png +7115 Churchill III ru/veh/ruChurchilIII.png +7119 Jeep GPA(a) ru/veh/ruJeep GPA.png +7120 DUKW (a) ru/veh/ruDUKW.png +7128 FT-17 730(m) ge/veh/geFT-17 37.png +7132 38H 735(f) ge/veh/ge38H 735.png +7136 35-S 739(f) ge/veh/ge35S 739.png +7220 T-26B (r) fi/veh/fiT-26b2(r).png +7409 76 ItK/28 B(s) fiAA76L.png fiAA76LB.png +7418 T-28 M34(L) T28M34L.gif +7420 T-28E M40(L) T28EM40L.gif +7423 Lee(a) Lee(a)RU.gif +7426 M3A1 SC(a) ru/veh/ruM3A1 SC.png +7428 M3A1 SC(a) ruM3A1 SC UA.gif +7432 Valentine V RU VALVnoaa.gif +7434 Valentine V RU VALV.gif +7461 T-26C (r) fi/veh/fiT-26c(r).png +11336 57 RCL us/usRCL57(M18L)KFW.png us/usRCL57(M18L)KFW-malf.png +11337 75 RCL us/usRCL75(M20L)KFW.png us/usRCL75(M20L)KFW-malf.png +11338 M4A3E8 MT us/veh/usM4A3E8(KFW).png +11340 M8 AC us/veh/usM8(KFW).png +11342 M75 APC us/veh/usM75(KFW).png +11344 LVT(A)5 us/veh/usLVTA(5)KFW.png +11346 LVT(A)5m us/veh/usLVTA(5M)KFW.png +11348 LVT3C us/veh/usLVT(3C)KFW.png +11359 60* MTR M2 br/brMTR(60M2)KFW.png br/brMTR(60M2)KFW-malf.png +11363 81* MTR M1(L) br/guns/brMTR(81M1L)KFW.png br/guns/brMTR(81M1L)KFW-malf.png +11365 Centurion III br/vehicles/brCenturion(III)KFW.png +11391 60* MTR M2 sk/skMTRM2(60)(KFW).png sk/skMTRM2(60)(KFW)-malf.png +11392 50* MTR Type 89 sk/skMTR(50)(KFW).png sk/skMTR(50)(KFW)-malf.png +11395 57 RCL M18(L) sk/skRCL57(KFW).png sk/skRCL57(KFW)-malf.png +11396 75 RCL M20(L) sk/skRCL75(KFW).png sk/skRCL75(KFW)-malf.png +11416 81* MTR M1(L) sk/gun/skMTRM1(81)KFW.png sk/gun/skMTRM1(81)KFW-malf.png +11418 107* MTR M2 sk/gun/skMTRM2(107)KFW.png sk/gun/skMTRM2(107)KFW-malf.png +11419 37LL AT M3A1 sk/gun/skAT37LL(KFW).png sk/gun/skAT37LL(KFW)-malf.png +11420 57L AT M1 sk/gun/skAT57L(KFW).png sk/gun/skAT57L(KFW)-malf.png +11421 105 ART M2A1 sk/gun/skART105-M2A1(KFW).png sk/gun/skART105-M2A1(KFW)-malf.png +11422 105* ART M3 sk/gun/skART105-M3(KFW).png sk/gun/skART105-M3(KFW)-malf.png +11423 155 ART M1 sk/gun/skART155-M1(KFW).png sk/gun/skART155-M1(KFW)-malf.png +11424 M36B2 GMC(a) sk/veh/skM36B2GMC(a)KFW.png +11440 60* MTR un/unMTR60(KFW).png un/unMTR60(KFW)x.png +11479 FT-17 730(f) ge/veh/geFT-17 CMG.png +11500 45L AT PTP obr. 32 ax/gun/roAT45L.gif ax/gun/roAT45Lb.gif +11501 150L ART Skoda M28(NOa) ax/gun/roAR150L.gif ax/gun/roAR150Lb.gif +11502 47L AA Skoda 47L40(t) ax/gun/slAA47L.gif ax/gun/slAA47Lb.gif +11503 65* INF Cannone da 65/17 ax/gun/crIN65s.gif ax/gun/crIN65sb.gif +11504 L6/40(i) ax/veh/crL640.gif +11506 wz. 34-I ax/veh/cr34i.gif +11524 40M Nimrod hu/veh/hu40MN.gif +11532 39M Csaba hu/veh/hu39MC.gif +11558 50* MTR Type 89 cc/ccMTR50.png cc/ccMTR50m.png +11559 60* MTR Type 31 cc/ccMTR60.png cc/ccMTR60m.png +11579 82* MTR Type 20 cc/gun/ccMTR82-20(KFW).png cc/gun/ccMTR82-20m(KFW).png +11581 82* MTR Type 53 cc/gun/ccMTR82-53(KFW).png cc/gun/ccMTR82-53m(KFW).png +11583 120* MTR PM obr. 38 cc/gun/ccMTR120(KFW).png cc/gun/ccMTR120m(KFW).png +11584 45LL AT PTP obr. 42 cc/gun/ccAT45LL(KFW).png cc/gun/ccAT45LLm(KFW).png +11585 47L AT Type 1 cc/gun/ccAT47L(KFW).png cc/gun/ccAT47Lm(KFW).png +11586 75* ART Year-38 cc/gun/ccART75(KFW).png cc/gun/ccART75m(KFW).png +11587 12.7 AA Type 93 cc/gun/ccAA127(KFW).png cc/gun/ccAA127m(KFW).png +11600 50* MTR nk/nkMTR.gif nk/nkMTRb.gif +11604 ATR nk/nkATR.gif nk/nkATRb.gif +11621 82* MTR BM obr. 37 nk/gun/nkMTR82s.gif nk/gun/nkMTR82sb.gif +11623 120* MTR PM obr. 38 nk/gun/nkMTR120s.gif nk/gun/nkMTR120sb.gif +11624 45L AT PTP obr. 37 nk/gun/nkAT45L.gif nk/gun/nkAT45Lb.gif +11625 45LL AT PTP obr. 42 nk/gun/nkAT45LL.gif nk/gun/nkAT45LLb.gif +11626 76* INF PP obr. 27 nk/gun/nkINF76s.gif nk/gun/nkINF76sb.gif +11627 76 ART obr. 02/30 nk/gun/nkAR76.gif nk/gun/nkAR76b.gif +11628 76L ART obr. 42 nk/gun/nkAR76L.gif nk/gun/nkAR76Lb.gif +11629 107 ART obr. 10/30 nk/gun/nkAR107.gif nk/gun/nkAR107b.gif +11630 122L ART obr. 31 nk/gun/nkAR122-L.gif nk/gun/nkAR122Lb.gif +11631 152 ART GP obr. 37 nk/gun/nkAR152.gif nk/gun/nkAR152b.gif +11632 37L AA ZP obr. 39 nk/gun/nkAA37L.gif nk/gun/nkAA37Lb.gif +11633 85L AA ZP obr. 39 nk/gun/nkAA85L.gif nk/gun/nkAA85Lb.gif +12277 M39 AUV us/veh/usM39AUV(KFW).png +12279 M39 MC us/veh/usM39MC(KFW).png +12439 76LL AT OQF 17pdr (KW) br/guns/brAT76LL.gif br/guns/brAT76LLb.gif +12483 81* MTR M1 am/gun/amMTR81s.gif am/gun/amMTR81sb.gif +12652 M24 (KW) us/veh/usM24(KFW).png +12687 OML 2in MTR (KW) br/brMTR.gif br/brMTRb.gif +12689 60* MTR M2 (KW) am/amMTR.gif am/amMTRb.gif +3b5:10093 SL truck us/veh/usSearchlight(KFW).png +3b5:10114 57LL AT PTP obr. 43 cc/gun/ccAT57LL(KFW).png cc/gun/ccAT57LLm(KFW).png +3b5:10115 70* INF Type 92 cc/gun/ccINF70(KFW).png cc/gun/ccINF70m(KFW).png +3b5:10118 76* INF PP obr. 27 cc/gun/ccINF76(KFW).png cc/gun/ccINF76m(KFW).png +3b5:10119 76L ART obr. 42 cc/gun/ccART76L(KFW).png cc/gun/ccART76Lm(KFW).png +3b5:10150 57 RCL Type 36 cc/ccRCL57.png cc/ccRCL57m.png +3b5:10151 75 RCL Type 52 cc/ccRCL75.png cc/ccRCL75m.png +3b5:10290 M41 HMC unlimbered us/veh/usM41HMCrfnm(KFW).png +3b5:10746 Jeep(a) sk/veh/skJeep(a)KFW.png +3b5:11098 GAZ-MM nk/veh/nkGAZMM.gif +3b5:11100 GAZ-51 nk/veh/nkGAZ(51)KFW.png +3b5:11102 GAZ-67B ru/veh/GAZ67B.gif +3b5:11103 ZIS-5 nk/veh/nkZIS5.gif +3b5:11105 ZIS-151 nk/veh/nkZIS(151)KFW.png +3b5:11107 IAG-6 nk/veh/nkIAG6.gif +3b5:11259 75 RCL br/brRCL(75)KFW.png br/brRCL(75)KFW-malf.png +3b5:2047 122 ART obr. 38 nk/gun/nkAR122.gif nk/gun/nkAR122l-b.gif +3b5:2460 81* MTR M1(L) us/gun/usMTR(81M1L)KFW.png us/gun/usMTR(81M1L)KFW-malf.png +3b5:3626 M4A3E8(105) MT us/veh/usM4A3E8(105)KFW.png +3b5:3628 M4A3E8 Dozer MT us/veh/usM4A3E8(Dozer76L)KFW.png +3b5:3630 M4A3E8(105) Dozer MT us/veh/usM4A3E8(Dozer105)KFW.png +3b5:3632 POA-CWS-H5 FT us/veh/usPOA-CWS-H5(KFW).png +3b5:3634 M32A1B3 TRV us/veh/usM32A1B3TRV(KFW).png +3b5:3636 M26A1 MT (KW) us/veh/usM26A1(KFW).png +3b5:3638 M45 MT us/veh/usM45(KFW).png +3b5:3640 M46 MT us/veh/usM46(KFW).png +3b5:3642 M38A1C Jeep us/veh/usM38A1C(KFW).png +3b5:3643 TACP Jeep us/veh/usTACPjeep(KFW).png +3b5:3676 M19A1 MGMC ['us/veh/usM19A1MGMC(trailer)KFW.png', 'us/veh/usM19A1MGMC(KFW).png'] +3b5:3686 M15 Special ht us/veh/usM15Special(KFW).png +3b5:3688 M16A1 MGMC ht am/veh/M16MGMC.gif +3b5:3690 M37 HMC us/veh/usM37HMC(KFW).png +3b5:3704 LVT3 us/veh/usLVT3(2-6)KFW.png +3b5:3706 LVT3 us/veh/usLVT3(2-10)KFW.png +3b5:3741 12.7 AA M51 am/gun/amAA12.gif am/gun/amAA12b.gif +3b5:3896 M29C Weasel us/veh/usM29C(KFW).png +3b5:3898 M29 Weasel us/veh/usM29(KFW).png +3b5:3983 M4A3E8(a) MT sk/veh/skM4A3E8(a)KFW.png +3b5:4017 M3(a) ht sk/veh/skM3(a)KFW.png +3b5:4019 M3A1(a) ht sk/veh/skM3A1(a)KFW.png +3b5:4021 M3(MMG)(a) ht sk/veh/skM3(MMG)(a)KFW.png +3b5:4023 M3(HMG)(a) ht sk/veh/skM3(HMG)(a)KFW.png +3b5:4036 M20(a) SC sk/veh/skM20(a)KFW.png +3b5:4038 M8(a) AC sk/veh/skM8(a)KFW.png +3b5:4050 3/4 ton(a) tr sk/veh/skTruck34ton(a)KFW.png +3b5:4052 2-1/2 ton(a) tr sk/veh/skTruck212ton(a)KFW.png +3b5:4148 M40 GMC unlimbered us/veh/usM40GMCrfnm(KFW).png +3b5:4154 M43 HMC unlimbered us/veh/usM43HMCrfnm(KFW).png +3b5:7613 60* MTR M19 br/brMTR(60M19)KFW.png br/brMTR(60M19)KFW-malf.png +3b5:7658 Centaur Dozer br/vehicles/brCentaur(Dozer)KFW.png +3b5:7669 Centurion III(L) br/vehicles/brCenturion(IIIL-42)KFW.png +3b5:7681 Churchill Bridgelayer br/vehicles/churbrid.gif +3b5:7685 M4A3E8 MT br/vehicles/brM4A3E8(a)KFW.png +3b5:7687 M4A3E8 Dozer MT br/vehicles/brM4A3E8dozer(a)KFW.png +3b5:7697 M20(a) SC br/vehicles/brM20(a)KFW.png +3b5:7699 M8(a) AC br/vehicles/brM8(a)KFW.png +3b5:7703 M3A1(a) ht br/vehicles/brM3A1(a)KFW.png +3b5:7705 M4A1MC(a) ht br/vehicles/brM4A1MC(a)KFW.png +3b5:7719 Oxford Carrier 3-in MTR br/vehicles/brOxfordCarrier(3inMTR)KFW.png +3b5:7731 Oxford Carrier MMG br/vehicles/brOxfordCarrier(MMG)KFW.png +3b5:7733 Oxford Carrier HMG br/vehicles/brOxfordCarrier(HMG)KFW.png +3b5:7735 Oxford Carrier br/vehicles/brOxfordCarrierKFW.png +3b5:7871 ATR (PTRS-41) nk/nkATR(PTRS41)KFW.png nk/nkATR(PTRS41)KFW-malf.png +3b5:8212 T-34/85 nk/veh/nkT34(85L)KFW.png +3b5:8214 SU-76M nk/veh/nkSU(76M)KFW.png +3b5:8216 BA-64B nk/veh/nkBA64B.gif +3b5:8401 57 RCL un/unRCL57(KFW).png un/unRCL57(KFW)x.png +3b5:8402 75 RCL un/unRCL75(KFW).png un/unRCL75(KFW)x.png +3b5:8410 81* MTR M1(L) un/gun/unMTR81(KFW).png un/gun/unMTR81(KFW)x.png +3b5:8412 107* MTR M2 un/gun/unMTR107(KFW).png un/gun/unMTR107(KFW)x.png +3b5:8417 105 ART M2A1 un/gun/unART105(KFW).png un/gun/unART105(KFW)x.png +3b5:8419 M24 un/veh/unM24(KFW).png +3b5:8421 M15A1 MGMC ht un/veh/unM15A1(KFW).png +3b5:8423 Jeep(a) un/veh/unJeep(KFW).png +3b5:8425 3/4 Ton(a) tr un/veh/unTruck34(KFW).png +3b5:8427 2-1/2 Ton(a) tr un/veh/unTruck212(KFW).png diff --git a/vasl_templates/webapp/tests/fixtures/vasl-pieces-legacy.txt b/vasl_templates/webapp/tests/fixtures/vasl-pieces-legacy.txt index a8b0e74..886e128 100644 --- a/vasl_templates/webapp/tests/fixtures/vasl-pieces-legacy.txt +++ b/vasl_templates/webapp/tests/fixtures/vasl-pieces-legacy.txt @@ -1113,6 +1113,7 @@ GPID Name Front images 5854 20L AA 20/65 ch/gun/chAA20LC2.gif ch/gun/chAA20LCb.gif 5855 75L AA Bofors M29 ch/gun/chAA75L2.gif ch/gun/chAA75Lb.gif 5856 88L AA FlaK 18 ch/gun/chAA88L2.gif ch/gun/chAA88Lb.gif +5944 81* MTR OML 3.2" br/guns/brMTR81.gif br/guns/brMTR76sb.gif 6364 Stuart III(a) ru/veh/ruM3A1.gif 6730 47 MTR fi/fi47mtr.png fi/fi47mtrB.png 6765 81* MTR Krh/32 fi81mmMTR.png fi/gun/fi81mmMTRB.png diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt index cd3e3cb..2eec1da 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1940.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt index b03eb9a..4efba43 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1941.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt index d3f0903..c183811 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1942.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt index 1da4f50..3f75faa 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1943.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt index a830d10..c32758a 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1944.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt index 617a12e..6502ca4 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/american/1945.txt @@ -30,3 +30,19 @@ M3 3-in. AA Gun NM NM M1A1 90mm AA Gun NM NM 26† N M2 90mm AA Gun LF [90†, 1 ROF, B11] LF [90†, 1 ROF, B11] 27†[1] B† 20mm Oerlikon Mk4 2 TK DR's† 2 TK DR's† 1† US P Multiple Hits (C3.8) are NA. +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1940.txt index 5ccd09a..4785ea4 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1940.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1941.txt index aecd97f..c716360 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1941.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1942.txt index 367b6be..a69dc6b 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1942.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1943.txt index 77d1fc6..3eec83d 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1943.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU A4 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU A4 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU A4 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU A4 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 H4 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 H4 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1944.txt index cc6e569..dcaebd0 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1944.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU A3 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU A3 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU A3 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU A3 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 H4 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 H4 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt index 2148820..57a7b75 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments ------------------------------- --------------------------- --------------------------- --- ---------------------- ------------- -5cm leGrW 36 5PP 5PP 44 A H S C B -50mm RM obr. 40 4PP 4PP 45 A R H S C -8cm GrW 34 QSU IR s7 QSU IR s7 46† A C B -Brandt M27/31 QSU s7 QSU s7 47† A R H S -PM obr. 38 QSU h-d s8 QSU h-d s8 48† R H -Ur wz. 35 1PP 1PP 49 R H S C B -s18-1100 5PP 5PP 50 A R H -Kanon PUV vz. 37(t) QSU A4[1S] QSU 51† E H S B -Bohler M35 QSU QSU 52† A R H S No Gunshield. -5cm PaK 38(g) QSU A4[3]3[4] QSU A3 53† E R H S B -7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† E R B -7.5cm PaK 40(g) QSU A4[3]3[4] QSU A3 55† E R H S B -Skoda M15 QSU QSU 56† A R H S C B -Canon de 75 mle 1897 QSU s7 QSU s7 57 R B +5cm leGrW 36 5PP 5PP 44 A B C H S +50mm RM obr. 40 4PP 4PP 45 A C H R S +8cm GrW 34 QSU IR s7 QSU IR s7 46† A B C +Brandt M27/31 QSU s7 QSU s7 47† A H R S +PM obr. 38 QSU h-d s8 QSU h-d s8 48† H R +Ur wz. 35 1PP 1PP 49 B C H R S +s18-1100 5PP 5PP 50 A H R +Kanon PUV vz. 37(t) QSU A4[1S]† QSU 51† B E H S +Bohler M35 QSU QSU 52† A H R S No Gunshield. +5cm PaK 38(g) QSU A4[3]3[4] QSU A3 53† B E H R S +7.5cm PaK 97/38(g) QSU H5[3+] s6 QSU H5 s6 54† B E R +7.5cm PaK 40(g) QSU A4[3]3[4] QSU A3 55† B E H R S +Skoda M15 QSU QSU 56† A B C H R S +Canon de 75 mle 1897 QSU s7 QSU s7 57 B R Skoda M29 AP6 AP6 58† A R S -Skoda M17 QSU QSU 59† A R S C -Skoda M28(80) 60† S C -Skoda M14/19 s8 s8 61† A† R H S C -leFH 18(g) H4[3+] s5 H4 s5 62† E H S B -Skoda M35 AP7 C7[CS]† AP7 63† R S C -G obr. 10/30 h-d s7 h-d s7 64† R B -G obr. 38 s5[1-2R]† 65 R B -Skoda M14 66† R H S -Skoda M15/16 s6 s6 67† S C No IF. -C mle 17 S s7 s7 68† R B -Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† T†1 R B -Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 G† R H S C B -2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† E G†1 R B -2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† E G†1 R B -3.7cm FlaK 36(g) 73† E R B -Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† G†1 R H S C -Skoda M33 75R S -8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† E G†1 R S B +Skoda M17 QSU QSU 59† A C R S +Skoda M28(80) 60† C S +Skoda M14/19 s8 s8 61† A† C H R S +leFH 18(g) H4[3+] s5 H4 s5 62† B E H S +Skoda M35 AP7 C7[CS]† AP7 63† C R S +G obr. 10/30 h-d s7 h-d s7 64† B R +G obr. 38 s5[1-2R]† 65 B R +Skoda M14 66† H R S +Skoda M15/16 s6 s6 67† C S No IF. +C mle 17 S s7 s7 68† B R +Mitrailleuse de 13.2 CAJ mle 30 2 TK DR† 2 TK DR† 69† B R T†1 +Oerlikon FF LF [NT, 20†, 2 ROF, B11] LF [NT, 20†, 2 ROF, B11] 70 B C G† H R S +2cm FlaK 30(g) LF [NT, 20†[1], 2 ROF, B9] LF [NT, 20†[1], 2 ROF, B9] 71† B E G†1 R +2cm FlaK 38(g) LF [NT, 20†[1], 2 ROF, B10] LF [NT, 20†[1], 2 ROF, B10] 72† B E G†1 R +3.7cm FlaK 36(g) 73† B E R +Bofors 40mm LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 74† C G†1 H R S +Skoda M33 75 R S +8.8cm FlaK 18 o. 36(g) LF [88†[1], 1 ROF, B11] LF [88†[1], 1 ROF, B11] 76† B E G†1 R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1940.txt index def3715..3a7f69e 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1940.txt @@ -1,29 +1,39 @@ === ordnance/british/1940 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1941.txt index acdf6df..70f1bf3 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1941.txt @@ -1,29 +1,39 @@ === ordnance/british/1941 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 s8† 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU WP7 s8† 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1942.txt index e01eb2a..3392ffb 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1942.txt @@ -1,29 +1,39 @@ === ordnance/british/1942 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1943.txt index 309f2fe..4f136e1 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1943.txt @@ -1,29 +1,39 @@ === ordnance/british/1943 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1944.txt index 8ffab08..7a4f371 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1944.txt @@ -1,29 +1,39 @@ === ordnance/british/1944 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU HE8† 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU HE8† 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1945.txt index ea86e4f..adcf665 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/british/1945.txt @@ -1,29 +1,39 @@ === ordnance/british/1945 === -Name Capabilities (effective) # Notes Comments ---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- -OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P -OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a -OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P -OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† -OQF 25mm Hotchkiss QSU QSU 4† B N -OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P -OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU D7† HE8† 6† B N P -OQF 17/25-Pounder 7 N -OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† D6† HE8† 8† n/a -OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P -Canon de 75 mle 1897 QSU s8 QSU s8 10† B N -OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P -OQF 25-Pounder Short QSU s8 QSU s8 12 D P -OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P -OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P -OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P -OBL 4.5-in. Gun 16† N -OBL 5.5-in. Gun-Howitzer 16† N P -OBL 6-in. Howitzer 17† N P -OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† -OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. -OQF 20mm AA 20 n/a -OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P -OQF 3-in. 20-cwt AA 22† E P -OQF 3.7-in. AA 23† E N P +Name Capabilities (effective) # Notes Comments +---------------------------- ------------------------------ --------------------------- --- -------------------- --------------- +OML 2-in. Mortar 4PP IR[2+]† s7 4PP IR† s7 1 A† N P +OML 2-in. Airborne Mortar IR s7 3PP IR s7 3PP 1 n/a +OML 3-in. Mortar QSU IR[2+]†[1] WP7 s8[1+]† QSU IR†[1] WP7 s8† 2† A†1 D N P +OSB 4.2-in. Mortar WP7 s8 WP7 s8 3† N P Towed† +OQF 25mm Hotchkiss QSU QSU 4† B N +OQF 2-Pounder LF [NT, 40†[1], 2 ROF, B11] LF [NT, 40†[1], 2 ROF, B11] 5† B C†1 N P +OQF 6-Pounder 7-cwt QSU D6[J4E]7[5]† HE7[F3]8[4+]† QSU D7† HE8† 6† B N P +OQF 17/25-Pounder 7 N +OQF 17-Pounder D5[S4]6[5]† HE8[J4+]† D6† HE8† 8† n/a +OQF M1A1 75mm Pack Howitzer QSU H6 WP7 QSU H6 WP7 9† D P +Canon de 75 mle 1897 QSU s8 QSU s8 10† B N +OQF 18-Pounder QSU WP7 s8 QSU WP7 s8 11† N P +OQF 25-Pounder Short QSU s8 QSU s8 12 D P +OQF 25-Pounder Gun-Howitzer LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 13† N P +OQF 3.7-in. Howitzer QSU H6[3+P]† WP7 s8 QSU WP7 s8 14† D N P +OQF 4.5-in. Howitzer WP7 s8 WP7 s8 15† N P +OBL 4.5-in. Gun 16† N +OBL 5.5-in. Gun-Howitzer 16† N P +OBL 6-in. Howitzer 17† N P +OBL 7.2-in. Howitzer Mk I 18† N P No IF. Acq. NA† +OBL 7.2-in. Howitzer Mk VI RFNM RFNM 19† P No IF. +OQF 20mm AA 20 n/a +OQF 40mm AA LF [40†[1], 2 ROF] LF [40†[1], 2 ROF] 21† C†1 N P +OQF 3-in. 20-cwt AA 22† E P +OQF 3.7-in. AA 23† E N P +OML 2-in. Mortar IR s7 4PP IR s7 4PP 14 A N +M19 60mm Mortar IR WP6 4PP IR WP6 4PP 15 A R +OML 3-in. Mortar QSU IR WP7 s8 QSU IR WP7 s8 16 A +OSB 4.2-in. Mortar WP7 s8 WP7 s8 17† N Towed† +OQF 17-Pounder D6 HE8 D6 HE8 18 N +OQF 25-Pounder LF [NT, 0 ROF] s8 LF [NT, 0 ROF] s8 19† N +OQF 40mm AA LF [40†, 2 ROF] LF [40†, 2 ROF] 20 B† N +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1940.txt index 4b3cfff..e88105c 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1940.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1941.txt index 6caae2e..9f9ed2a 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1941.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1942.txt index fcea43a..5d392f3 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1942.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1943.txt index 82fb80e..5206b6b 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1943.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1944.txt index 90b1897..84f52ab 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1944.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1945.txt index c799a33..9deaadb 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/croatian/1945.txt @@ -2,5 +2,5 @@ Name Capabilities (effective) # Notes Comments ---------------- -------------- ------------- --- ------- ------------- -Canonne da 65/17 35 A No Gunshield. +Cannone da 65/17 35 A No Gunshield. Skoda M28(FE) 36 A diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1950.txt new file mode 100644 index 0000000..bdebace --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1950.txt @@ -0,0 +1,19 @@ +=== ordnance/kfw-cpva/1950 === + +Name Capabilities (effective) # Notes Comments +----------------------------------------- -------------------- -------------------- ------ ------- ---------- +50mm Type 89 Heavy Grenade Launcher 4PP 4PP 18† A +60mm Type 31 Mortar 5PP 5PP 19 A +82mm Type 20 Mortar QSU QSU 20† A +82mm Type 53 Mortar QSU s6 QSU s6 21† A +120mm PM obr. 38 QSU s6 QSU s6 22† n/a +45mm PTP obr. 42 QSU A7 QSU A7 23† n/a +47mm Type 1 Machine-Moved Gun QSU QSU 24† n/a +57mm PTP obr. 43 QSU A6 QSU A6 25† n/a +57mm Type 36 Recoilless Rifle H6 WP5 3PP H6 WP5 3PP 26†[1] R† crewed† +75mm Type 52 Recoilless Rifle H6 WP5 5PP H6 WP5 5PP 27 R† crewed† +70mm Type 92 Infantry Gun QSU h-d AP3 H3 QSU h-d AP3 H3 28† A +76.2mm PP obr. 27 QSU H6 s6 QSU H6 s6 29† A +Year-38 Type Field Gun (Improved) QSU h-d "12" AP TK#† QSU h-d "12" AP TK#† 30† n/a +76.2mm obr. 42 QSU A7 s6 QSU A7 s6 31† n/a +Type 93 Twin-Mount High-Angle Machine Gun 2 TK DR† 2 TK DR† 32† A Towing NA† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1951.txt new file mode 100644 index 0000000..9004f1c --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1951.txt @@ -0,0 +1,19 @@ +=== ordnance/kfw-cpva/1951 === + +Name Capabilities (effective) # Notes Comments +----------------------------------------- -------------------- -------------------- ------ ------- ---------- +50mm Type 89 Heavy Grenade Launcher 4PP 4PP 18† A +60mm Type 31 Mortar 5PP 5PP 19 A +82mm Type 20 Mortar QSU QSU 20† A +82mm Type 53 Mortar QSU s6 QSU s6 21† A +120mm PM obr. 38 QSU s6 QSU s6 22† n/a +45mm PTP obr. 42 QSU A7 QSU A7 23† n/a +47mm Type 1 Machine-Moved Gun QSU QSU 24† n/a +57mm PTP obr. 43 QSU A6 QSU A6 25† n/a +57mm Type 36 Recoilless Rifle H6 WP5 3PP H6 WP5 3PP 26†[1] R† crewed† +75mm Type 52 Recoilless Rifle H6 WP5 5PP H6 WP5 5PP 27 R† crewed† +70mm Type 92 Infantry Gun QSU h-d AP3 H3 QSU h-d AP3 H3 28† A +76.2mm PP obr. 27 QSU H6 s6 QSU H6 s6 29† A +Year-38 Type Field Gun (Improved) QSU h-d "12" AP TK#† QSU h-d "12" AP TK#† 30† n/a +76.2mm obr. 42 QSU A7 s6 QSU A7 s6 31† n/a +Type 93 Twin-Mount High-Angle Machine Gun 2 TK DR† 2 TK DR† 32† A Towing NA† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1952.txt new file mode 100644 index 0000000..7d7736d --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1952.txt @@ -0,0 +1,19 @@ +=== ordnance/kfw-cpva/1952 === + +Name Capabilities (effective) # Notes Comments +----------------------------------------- -------------------- -------------------- ------ ------- ---------- +50mm Type 89 Heavy Grenade Launcher 4PP 4PP 18† A +60mm Type 31 Mortar 5PP 5PP 19 A +82mm Type 20 Mortar QSU QSU 20† A +82mm Type 53 Mortar QSU s6 QSU s6 21† A +120mm PM obr. 38 QSU s6 QSU s6 22† n/a +45mm PTP obr. 42 QSU A7 QSU A7 23† n/a +47mm Type 1 Machine-Moved Gun QSU QSU 24† n/a +57mm PTP obr. 43 QSU A6 QSU A6 25† n/a +57mm Type 36 Recoilless Rifle H6 WP5 3PP H6 WP5 3PP 26†[1] R† crewed† +75mm Type 52 Recoilless Rifle H6 WP5 5PP H6 WP5 5PP 27 R† crewed† +70mm Type 92 Infantry Gun QSU h-d AP3 H3 QSU h-d AP3 H3 28† A +76.2mm PP obr. 27 QSU H6 s6 QSU H6 s6 29† A +Year-38 Type Field Gun (Improved) QSU h-d "12" AP TK#† QSU h-d "12" AP TK#† 30† n/a +76.2mm obr. 42 QSU A7 s6 QSU A7 s6 31† n/a +Type 93 Twin-Mount High-Angle Machine Gun 2 TK DR† 2 TK DR† 32† A Towing NA† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1953.txt new file mode 100644 index 0000000..3b78b63 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-cpva/1953.txt @@ -0,0 +1,19 @@ +=== ordnance/kfw-cpva/1953 === + +Name Capabilities (effective) # Notes Comments +----------------------------------------- -------------------- -------------------- ------ ------- ---------- +50mm Type 89 Heavy Grenade Launcher 4PP 4PP 18† A +60mm Type 31 Mortar 5PP 5PP 19 A +82mm Type 20 Mortar QSU QSU 20† A +82mm Type 53 Mortar QSU s6 QSU s6 21† A +120mm PM obr. 38 QSU s6 QSU s6 22† n/a +45mm PTP obr. 42 QSU A7 QSU A7 23† n/a +47mm Type 1 Machine-Moved Gun QSU QSU 24† n/a +57mm PTP obr. 43 QSU A6 QSU A6 25† n/a +57mm Type 36 Recoilless Rifle H6 WP5 3PP H6 WP5 3PP 26†[1] R† crewed† +75mm Type 52 Recoilless Rifle H6 WP5 5PP H6 WP5 5PP 27 R† crewed† +70mm Type 92 Infantry Gun QSU h-d AP3 H3 QSU h-d AP3 H3 28† A +76.2mm PP obr. 27 QSU H6 s6 QSU H6 s6 29† A +Year-38 Type Field Gun (Improved) QSU h-d "12" AP TK#† QSU h-d "12" AP TK#† 30† n/a +76.2mm obr. 42 QSU A7 s6 QSU A7 s6 31† n/a +Type 93 Twin-Mount High-Angle Machine Gun 2 TK DR† 2 TK DR† 32† A Towing NA† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1950.txt new file mode 100644 index 0000000..a20922c --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1950.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-kpa/1950 === + +Name Capabilities (effective) # Notes Comments +------------------ -------------- ------------- --- ------- ---------- +50mm RM obr. 40 4PP 4PP 1 A B +82mm BM obr. 37 QSU IR s8 QSU IR s8 2† A B +120mm PM obr. 38 QSU s8 QSU s8 3† B +14.5mm PTRD-41 1PP 1PP 4 B +14.5mm PTRS-41 2PP TK#: 6† 2PP TK#: 6† 5† n/a +45mm PTP obr. 37 QSU A7 QSU A7 6† B +45mm PTP obr. 42 QSU A7 QSU A7 6† B +76.2mm PP obr. 27 QSU H6 s8 QSU H6 s8 7† A B +76.2mm obr. 02/30 QSU h-d s8 QSU h-d s8 8† B +76.2mm obr. 42 QSU A7 s8 QSU A7 s8 9† B +107mm P obr. 10/30 h-d s8 h-d s8 10 B +122mm G obr. 38 H6 s8 H6 s8 11† B +122mm obr. 31 s8 s8 12 B +152mm GP obr. 37 13 B +37mm ZP obr. 39 14† B +85mm ZP obr. 39 15 B diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1951.txt new file mode 100644 index 0000000..013c9c6 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1951.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-kpa/1951 === + +Name Capabilities (effective) # Notes Comments +------------------ -------------- ------------- --- ------- ---------- +50mm RM obr. 40 4PP 4PP 1 A B +82mm BM obr. 37 QSU IR s8 QSU IR s8 2† A B +120mm PM obr. 38 QSU s8 QSU s8 3† B +14.5mm PTRD-41 1PP 1PP 4 B +14.5mm PTRS-41 2PP TK#: 6† 2PP TK#: 6† 5† n/a +45mm PTP obr. 37 QSU A7 QSU A7 6† B +45mm PTP obr. 42 QSU A7 QSU A7 6† B +76.2mm PP obr. 27 QSU H6 s8 QSU H6 s8 7† A B +76.2mm obr. 02/30 QSU h-d s8 QSU h-d s8 8† B +76.2mm obr. 42 QSU A7 s8 QSU A7 s8 9† B +107mm P obr. 10/30 h-d s8 h-d s8 10 B +122mm G obr. 38 H6 s8 H6 s8 11† B +122mm obr. 31 s8 s8 12 B +152mm GP obr. 37 13 B +37mm ZP obr. 39 14† B +85mm ZP obr. 39 15 B diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1952.txt new file mode 100644 index 0000000..ddb0de3 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1952.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-kpa/1952 === + +Name Capabilities (effective) # Notes Comments +------------------ -------------- ------------- --- ------- ---------- +50mm RM obr. 40 4PP 4PP 1 A B +82mm BM obr. 37 QSU IR s8 QSU IR s8 2† A B +120mm PM obr. 38 QSU s8 QSU s8 3† B +14.5mm PTRD-41 1PP 1PP 4 B +14.5mm PTRS-41 2PP TK#: 6† 2PP TK#: 6† 5† n/a +45mm PTP obr. 37 QSU A7 QSU A7 6† B +45mm PTP obr. 42 QSU A7 QSU A7 6† B +76.2mm PP obr. 27 QSU H6 s8 QSU H6 s8 7† A B +76.2mm obr. 02/30 QSU h-d s8 QSU h-d s8 8† B +76.2mm obr. 42 QSU A7 s8 QSU A7 s8 9† B +107mm P obr. 10/30 h-d s8 h-d s8 10 B +122mm G obr. 38 H6 s8 H6 s8 11† B +122mm obr. 31 s8 s8 12 B +152mm GP obr. 37 13 B +37mm ZP obr. 39 14† B +85mm ZP obr. 39 15 B diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1953.txt new file mode 100644 index 0000000..d4b8824 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-kpa/1953.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-kpa/1953 === + +Name Capabilities (effective) # Notes Comments +------------------ -------------- ------------- --- ------- ---------- +50mm RM obr. 40 4PP 4PP 1 A B +82mm BM obr. 37 QSU IR s8 QSU IR s8 2† A B +120mm PM obr. 38 QSU s8 QSU s8 3† B +14.5mm PTRD-41 1PP 1PP 4 B +14.5mm PTRS-41 2PP TK#: 6† 2PP TK#: 6† 5† n/a +45mm PTP obr. 37 QSU A7 QSU A7 6† B +45mm PTP obr. 42 QSU A7 QSU A7 6† B +76.2mm PP obr. 27 QSU H6 s8 QSU H6 s8 7† A B +76.2mm obr. 02/30 QSU h-d s8 QSU h-d s8 8† B +76.2mm obr. 42 QSU A7 s8 QSU A7 s8 9† B +107mm P obr. 10/30 h-d s8 h-d s8 10 B +122mm G obr. 38 H6 s8 H6 s8 11† B +122mm obr. 31 s8 s8 12 B +152mm GP obr. 37 13 B +37mm ZP obr. 39 14† B +85mm ZP obr. 39 15 B diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1950.txt new file mode 100644 index 0000000..fcb2c60 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1950.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-ounc/1950 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1951.txt new file mode 100644 index 0000000..ca48896 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1951.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-ounc/1951 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1952.txt new file mode 100644 index 0000000..1647239 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1952.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-ounc/1952 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1953.txt new file mode 100644 index 0000000..5672016 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-ounc/1953.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-ounc/1953 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1950.txt new file mode 100644 index 0000000..c83f326 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1950.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-rok/1950 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1951.txt new file mode 100644 index 0000000..4681039 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1951.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-rok/1951 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1952.txt new file mode 100644 index 0000000..a7d4e96 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1952.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-rok/1952 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1953.txt new file mode 100644 index 0000000..57a8a8c --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/kfw-rok/1953.txt @@ -0,0 +1,20 @@ +=== ordnance/kfw-rok/1953 === + +Name Capabilities (effective) # Notes Comments +-------------------------------- -------------------------------- -------------------------------- --- ------------------ ----------- +Type 89 Heavy Grenade Launcher 4PP 4PP 1† A P +M2 4.2-in. Mortar QSU WP10 QSU WP10 2† K M O P Y +M3A1 37mm AT Gun QSU C7 QSU C7 3† C K P +M1 57mm AT Gun QSU D4 HE7 QSU D4 HE7 4† K +M18(L) 57mm Recoilless Rifle C7 H7 WP6 3PP C7 H7 WP6 3PP 5† C K O non-crewed† +M2A1 105mm Howitzer C7 H6 WP8 s7 C7 H6 WP8 s7 6† C K M O P Y +M3 105mm Howitzer C7 H7 WP8 s7 C7 H7 WP8 s7 7† C K +M1 155mm Howitzer WP8 s7 WP8 s7 8† K M P Y +M1A1 155mm Gun RFNM AP4 WP8 s7 RFNM AP4 WP8 s7 9 Y No IF. +M1 8-in. Howitzer RFNM RFNM 10† Y No IF. +M51 Multiple .50-cal MG Carriage LF [2 ROF, 20 IFE, B11] 4 TK DR† LF [2 ROF, 20 IFE, B11] 4 TK DR† 11† M Y +M1 40mm AA Gun LF [40†, 2 ROF] LF [40†, 2 ROF] 12 B† Y +M2 90mm AA Gun LF [90†[1], 1 ROF, B11] LF [90†[1], 1 ROF, B11] 13† B†1 M Y +M2 60mm Mortar IR WP7 5PP OBA† IR WP7 5PP OBA† 23† A K M O P Y +M1(L) 81mm Mortar QSU IR WP8 QSU IR WP8 24† A K M O P R +M20(L) 75mm Recoilless Rifle WP7 5PP H† WP7 5PP H† 25† K M O P R crewed† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1940.txt index aa73a2d..eb8866d 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1940.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1941.txt index 2dc2132..d48eb8a 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1941.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1942.txt index e226cf4..adddd6b 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1942.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1943.txt index 10ac59f..59cfc0a 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1943.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1944.txt index c6cfb53..f9b25ac 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1944.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1945.txt index cffe695..4085cfd 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/romanian/1945.txt @@ -10,7 +10,7 @@ Resita M43 QSU AP TK#18† QSU AP TK#18† 4† n/a Blk T Breda 47 QSU QSU 6† A No Gunshield. 75mm PP obr. 27 QSU H6 s8 QSU H6 s8 7 A 75 M mle 28 QSU h-d AP5 s5 QSU h-d AP5 s5 8 A -Skoda M14/34 AP6 AP6 9† A +Skoda M14/34 AP6 AP6 9† A† 76.2mm P obr. 00/02 QSU h-d s7 QSU h-d s7 10 n/a 76.2mm P obr. 02/30 QSU h-d s7 QSU h-d s7 11 n/a 76.2mm P obr. 39(r) QSU s5 QSU s5 12 K† diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt index 67ac09d..0bbe3f3 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] CS 5[brewup] M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt index e624be3..199230a 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] CS 5[brewup] M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt index 9e8fbb1..9d90c80 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] CS 5[brewup] M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt index 256815a..8e768d6 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] CS 5[brewup] M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt index 1592e1d..870b8a1 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] sM4 CS 5[brewu M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt index 971c74c..93cf00e 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt @@ -94,3 +94,48 @@ M4A3F WP7[J4+]†[3] s5[J4+] sM4[4+] CS 5[brewup] WP7†[3] s5 s M4A3F(75)W WP7 s5 sM8 CS 6 WP7 s5 sM8 CS 6 13† US F†2 US G US R†1 US Y C M4A1F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 A5†[2] s5 sM8 CS 6 15† US A†2 US F†1 US G US P US Y C M4A3F(76)W A4[A4]5[5]†[2] s5[5] sM8 CS 6 A5†[2] s5 sM8 CS 6 16† US A†2 US F†1 US G US P US Y C +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1940.txt index 0b42873..d83c4f3 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1940.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1941.txt index adf7ad8..fe4d1c0 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1941.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1942.txt index 06a824e..2d2574f 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1942.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A4 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 A4 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A5 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A4 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 A4 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A5 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A4 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A4 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1943.txt index 1ac8c7c..4342577 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1943.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A4 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A4 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 H8 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 H5 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt index c8b09c8..ebd2082 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 H8 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 H5 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt index 0dd5fa3..95825c8 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt @@ -2,36 +2,36 @@ Name Capabilities (effective) # Notes Comments -------------- ---------------------- ------------------ --- --------------------------------------- ---------- -L3/35(i) ® CS 2 ® CS 2 29† K†1 E F G†2 H C B -FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† D R C -FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† D R C -PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† K†1 E H C -R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 D E R H B -H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 D E H C B -LT vz 35(g) sD5 CS 4 sD5 CS 4 34† E R S B -LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E R H S -LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† E H S B -S-35(f) CS 4 CS 4 36† A†1 D E H S -PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† E O†1 Q R H C +L3/35(i) ® CS 2 ® CS 2 29† B C E F G†2 H K†1 +FT-17M(f) ® no IF CS 2 ® no IF CS 2 30† C D R +FT-17C(f) ® AP9 CS 2 ® AP9 CS 2 30† C D R +PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 +R-35(f) ® AP10 CS 2 ® AP10 CS 2 32† A†1 B D E H R +H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H +LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S +LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S +LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† B E H S +S35(f) CS 4 CS 4 36† A†1 D E H S +PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† C E H O†1 Q R PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 H8 s8 sD7 CS 5 38† E O†1 Q R S PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 H5 s8 sD7 CS 5 39† E Q R -PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† E Q R H B -PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† E O†1 Q R H B -StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† E Q R H B -JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† E H B -SPW 250/1(g) CS 4 CS 4 42† E R -SPW 251/1(g) CS 5 CS 5 42† E R C +PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† B E H Q R +PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† B E H O†1 Q R +StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† B E H Q R +JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† B E H +SPW 250/1(g) CS 4 CS 4 42 E R +SPW 251/1(g) CS 5 CS 5 42† C E R SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R OA vz 30(t) ® CS 2 ® CS 2 43† E R S -AB 41(i) CS 4 CS 4 44† E R C -PSW 222(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† P†1 E M†2 R B -PSW 223(g) sD6 CS 3 sD6 CS 3 46† E M†1 P†2 R B -Komsomolet(r) cs 2†[1] cs 2†[1] 47† E F I†1 J R H S C B -RSO(g) cs 5 cs 5 48 S B -Light Tractor cs 4 cs 4 49 R H S C B -Medium Tractor cs 5 cs 5 49 R H S C B -Heavy Tractor cs 6 cs 6 49 R H S C B -Light Truck cs 4 cs 4 50 R H S C B -Medium Truck cs 5 cs 5 50 R H S C B -Heavy Truck cs 7 cs 7 50 R H S C B +AB 41(i) CS 4 CS 4 44† C E R +PSW 222(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 222(L)(g) sD6 CS 3 sD6 CS 3 45† B E M†2 P†1 R +PSW 223(g) sD6 CS 3 sD6 CS 3 46† B E M†1 P†2 R +Komsomolet(r) cs 2†[1] cs 2†[1] 47† B C E F H I†1 J R S +RSO(g) cs 5 cs 5 48 B S +Light Tractor cs 4 cs 4 49 B C H R S +Medium Tractor cs 5 cs 5 49 B C H R S +Heavy Tractor cs 6 cs 6 49 B C H R S +Light Truck cs 4 cs 4 50 B C H R S +Medium Truck cs 5 cs 5 50 B C H R S +Heavy Truck cs 7 cs 7 50 B C H R S diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1940.txt index e4ea7d2..4bd37db 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1940.txt @@ -1,131 +1,162 @@ === vehicles/british/1940 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ---------- -Mark VIB sD6 CS 3 sD6 CS 3 1† N P -Mark VIC sD6 CS 3 sD6 CS 3 1† n/a -Tetrarch sD6 CS 3 sD6 CS 3 2† n/a -Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 -Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P -Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P -Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G -Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† -A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N -A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 -A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N -A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 -A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† -A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N -A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 -Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N -Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 -Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N -Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 -Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 -Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P -Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P -Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 -Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 -Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 -Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 -Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 -Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† -Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 -Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 -Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 -Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 -Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 -Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† -Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 -Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 -Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 -Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P -Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 -Valentine II sM8 CS 4 sM8 CS 4 27† N -Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT -Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT -Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a -Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC -Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC -Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC -Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC -Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC -Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC -Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P -Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC -Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC -Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC -Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 -Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 -Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 -Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 -Daimler sD4[4+]† CS 2 CS 2 42† M N P -Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P -Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 -Stuart Recce CS 5 CS 5 44† A D NT P -Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 -Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 -Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 -Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 -Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 -Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 -Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 -Humber II sD6 CS 3 sD6 CS 3 50† L†1 N -Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P -Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P -Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P -AEC I sM8 CS 3 sM8 CS 3 53† N X†1 -AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 -AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† -Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 -Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 -Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P -Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P -Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 -M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 -Mk VI AA CS 2 CS 2 59† N O†1 AA†2 -Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 -M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 -Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 -Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 -M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N -M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N -M5A1(a) cs 5† cs 5† 63 A I† -M9A1(a) cs 4† cs 4† 63 A I† -Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 -Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 -Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 -Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1 -Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 -Priest Kangaroo(a) CS 7 CS 7 68† A D -Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 -White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N -IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 -IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 -IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† -IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 -Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U -Badger(a) CS 3 CS 3 72† A K†1 M -Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 -Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 -Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 -DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P -Terrapin Mk I cs 7 cs 7 76† D -2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P -Morris C9/B CS 4 CS 4 78† P AA†1 -Loyd Carrier cs 5 cs 5 79† N P -Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P -15-cwt Truck cs 5 cs 5 81† N P -30-cwt Lorry cs 6 cs 6 82† N P -3-Ton Lorry cs 7 cs 7 83† N P -¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P -¾-Ton Truck(a) cs 4 cs 4 85 A N -1½-Ton Truck(a) cs 6 cs 6 85 A N -2½-Ton Truck(a) cs 7 cs 7 85 A N -7½-Ton Truck(a) cs 7 cs 7 85† A N +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- ------------------------------ ------ ------------------------------------------------------------------ ---------- +Mark VIB sD6 CS 3 sD6 CS 3 1† N P +Mark VIC sD6 CS 3 sD6 CS 3 1† n/a +Tetrarch sD6 CS 3 sD6 CS 3 2† n/a +Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 +Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P +Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P +Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G +Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† +A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N +A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 +A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N +A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 +A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† +A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N +A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 +Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N +Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 +Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N +Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 +Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 +Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P +Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P +Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 +Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 +Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 +Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 +Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 +Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† +Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 +Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 +Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 +Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 +Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 +Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† +Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 +Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 +Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 +Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P +Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 +Valentine II sM8 CS 4 sM8 CS 4 27† N +Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT +Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT +Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a +Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC +Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC +Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC +Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC +Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC +Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC +Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC +Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC +Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 +Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 +Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 +Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 +Daimler sD4[4+]† CS 2 CS 2 42† M N P +Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P +Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 +Stuart Recce CS 5 CS 5 44† A D NT P +Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 +Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 +Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 +Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 +Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 +Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 +Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 +Humber II sD6 CS 3 sD6 CS 3 50† L†1 N +Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P +Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P +Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P +AEC I sM8 CS 3 sM8 CS 3 53† N X†1 +AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 +AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† +Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 +Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 +Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P +Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P +Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 +M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 +Mk VI AA CS 2 CS 2 59† N O†1 AA†2 +Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 +M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 +Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 +Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 +M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N +M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N +M5A1(a) cs 5† cs 5† 63 A I† +M9A1(a) cs 4† cs 4† 63 A I† +Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 +Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 +Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 +Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1 +Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 +Priest Kangaroo(a) CS 7 CS 7 68† A D +Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 +White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N +IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 +IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 +IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† +IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U +Badger(a) CS 3 CS 3 72† A K†1 M +Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 +Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 +Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 +DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P +Terrapin Mk I cs 7 cs 7 76† D +2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P +Morris C9/B CS 4 CS 4 78† P AA†1 +Loyd Carrier cs 5 cs 5 79† N P +Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P +15-cwt Truck cs 5 cs 5 81† N P +30-cwt Lorry cs 6 cs 6 82† N P +3-Ton Lorry cs 7 cs 7 83† N P +¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P +¾-Ton Truck(a) cs 4 cs 4 85 A N +1½-Ton Truck(a) cs 6 cs 6 85 A N +2½-Ton Truck(a) cs 7 cs 7 85 A N +7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1941.txt index 5208476..af596ae 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1941.txt @@ -1,131 +1,162 @@ === vehicles/british/1941 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ---------- -Mark VIB sD6 CS 3 sD6 CS 3 1† N P -Mark VIC sD6 CS 3 sD6 CS 3 1† n/a -Tetrarch sD6 CS 3 sD6 CS 3 2† n/a -Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 -Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P -Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P -Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G -Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† -A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N -A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 -A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N -A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 -A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† -A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N -A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 -Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N -Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 -Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N -Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 -Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 -Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P -Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P -Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 -Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 -Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 -Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 -Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 -Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† -Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 -Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 -Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 -Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 -Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 -Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† -Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 -Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 -Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 -Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P -Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 -Valentine II sM8 CS 4 sM8 CS 4 27† N -Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT -Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT -Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a -Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC -Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC -Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC -Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC -Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC -Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC -Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P -Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC -Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC -Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC -Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 -Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 -Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 -Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 -Daimler sD4[4+]† CS 2 CS 2 42† M N P -Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P -Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 -Stuart Recce CS 5 CS 5 44† A D NT P -Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 -Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 -Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 -Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 -Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 -Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 -Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 -Humber II sD6 CS 3 sD6 CS 3 50† L†1 N -Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P -Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P -Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P -AEC I sM8 CS 3 sM8 CS 3 53† N X†1 -AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 -AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† -Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 -Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 -Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P -Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P -Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 -M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 -Mk VI AA CS 2 CS 2 59† N O†1 AA†2 -Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 -M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 -Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 -Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 -M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N -M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N -M5A1(a) cs 5† cs 5† 63 A I† -M9A1(a) cs 4† cs 4† 63 A I† -Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 -Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 -Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 -Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1 -Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 -Priest Kangaroo(a) CS 7 CS 7 68† A D -Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 -White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N -IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 -IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 -IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† -IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 -Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U -Badger(a) CS 3 CS 3 72† A K†1 M -Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 -Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 -Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 -DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P -Terrapin Mk I cs 7 cs 7 76† D -2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P -Morris C9/B CS 4 CS 4 78† P AA†1 -Loyd Carrier cs 5 cs 5 79† N P -Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P -15-cwt Truck cs 5 cs 5 81† N P -30-cwt Lorry cs 6 cs 6 82† N P -3-Ton Lorry cs 7 cs 7 83† N P -¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P -¾-Ton Truck(a) cs 4 cs 4 85 A N -1½-Ton Truck(a) cs 6 cs 6 85 A N -2½-Ton Truck(a) cs 7 cs 7 85 A N -7½-Ton Truck(a) cs 7 cs 7 85† A N +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- ------------------------------ ------ ------------------------------------------------------------------ ---------- +Mark VIB sD6 CS 3 sD6 CS 3 1† N P +Mark VIC sD6 CS 3 sD6 CS 3 1† n/a +Tetrarch sD6 CS 3 sD6 CS 3 2† n/a +Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 +Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P +Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P +Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G +Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† +A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N +A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 +A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N +A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 +A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† +A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N +A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 +Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N +Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 +Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N +Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 +Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 +Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P +Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P +Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 +Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 +Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 +Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 +Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 +Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† +Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 +Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 +Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 +Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 +Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 +Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† +Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 +Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 +Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 +Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P +Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 +Valentine II sM8 CS 4 sM8 CS 4 27† N +Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT +Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT +Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a +Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC +Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC +Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC +Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC +Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC +Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC +Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC +Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC +Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 +Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 +Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 +Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 +Daimler sD4[4+]† CS 2 CS 2 42† M N P +Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P +Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 +Stuart Recce CS 5 CS 5 44† A D NT P +Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 +Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 +Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 +Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 +Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 +Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 +Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 +Humber II sD6 CS 3 sD6 CS 3 50† L†1 N +Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P +Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P +Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P +AEC I sM8 CS 3 sM8 CS 3 53† N X†1 +AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 +AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† +Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 +Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 +Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P +Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P +Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 +M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 +Mk VI AA CS 2 CS 2 59† N O†1 AA†2 +Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 +M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 +Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 +Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 +M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N +M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N +M5A1(a) cs 5† cs 5† 63 A I† +M9A1(a) cs 4† cs 4† 63 A I† +Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 +Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 +Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 +Carrier, 2-in. MTR IR[2+]† s7 CS 3 s7 CS 3 66† N P U†1 +Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 +Priest Kangaroo(a) CS 7 CS 7 68† A D +Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 +White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N +IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 +IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 +IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† +IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U +Badger(a) CS 3 CS 3 72† A K†1 M +Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 +Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 +Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 +DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P +Terrapin Mk I cs 7 cs 7 76† D +2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P +Morris C9/B CS 4 CS 4 78† P AA†1 +Loyd Carrier cs 5 cs 5 79† N P +Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P +15-cwt Truck cs 5 cs 5 81† N P +30-cwt Lorry cs 6 cs 6 82† N P +3-Ton Lorry cs 7 cs 7 83† N P +¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P +¾-Ton Truck(a) cs 4 cs 4 85 A N +1½-Ton Truck(a) cs 6 cs 6 85 A N +2½-Ton Truck(a) cs 7 cs 7 85 A N +7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1942.txt index 33bf2d8..7369311 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1942.txt @@ -1,131 +1,162 @@ === vehicles/british/1942 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ---------- -Mark VIB sD6 CS 3 sD6 CS 3 1† N P -Mark VIC sD6 CS 3 sD6 CS 3 1† n/a -Tetrarch sD6 CS 3 sD6 CS 3 2† n/a -Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 -Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P -Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P -Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G -Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† -A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N -A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 -A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N -A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 -A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† -A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N -A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 -Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N -Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 -Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N -Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 -Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 -Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P -Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P -Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 -Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 -Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 -Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 -Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 -Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† -Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 -Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 -Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 -Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 -Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 -Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† -Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 -Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 -Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 -Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P -Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 -Valentine II sM8 CS 4 sM8 CS 4 27† N -Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT -Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT -Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a -Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC -Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC -Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC -Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC -Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC -Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC -Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P -Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC -Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC -Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC -Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 -Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 -Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 -Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 -Daimler sD4[4+]† CS 2 CS 2 42† M N P -Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P -Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 -Stuart Recce CS 5 CS 5 44† A D NT P -Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 -Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 -Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 -Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 -Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 -Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 -Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 -Humber II sD6 CS 3 sD6 CS 3 50† L†1 N -Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P -Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P -Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P -AEC I sM8 CS 3 sM8 CS 3 53† N X†1 -AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 -AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† -Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 -Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 -Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P -Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P -Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 -M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 -Mk VI AA CS 2 CS 2 59† N O†1 AA†2 -Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 -M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 -Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 -Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 -M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N -M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N -M5A1(a) cs 5† cs 5† 63 A I† -M9A1(a) cs 4† cs 4† 63 A I† -Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 -Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 -Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 -Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1 -Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 -Priest Kangaroo(a) CS 7 CS 7 68† A D -Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 -White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N -IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 -IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 -IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† -IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 -Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U -Badger(a) CS 3 CS 3 72† A K†1 M -Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 -Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 -Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 -DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P -Terrapin Mk I cs 7 cs 7 76† D -2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P -Morris C9/B CS 4 CS 4 78† P AA†1 -Loyd Carrier cs 5 cs 5 79† N P -Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P -15-cwt Truck cs 5 cs 5 81† N P -30-cwt Lorry cs 6 cs 6 82† N P -3-Ton Lorry cs 7 cs 7 83† N P -¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P -¾-Ton Truck(a) cs 4 cs 4 85 A N -1½-Ton Truck(a) cs 6 cs 6 85 A N -2½-Ton Truck(a) cs 7 cs 7 85 A N -7½-Ton Truck(a) cs 7 cs 7 85† A N +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- ------------------------------ ------ ------------------------------------------------------------------ ---------- +Mark VIB sD6 CS 3 sD6 CS 3 1† N P +Mark VIC sD6 CS 3 sD6 CS 3 1† n/a +Tetrarch sD6 CS 3 sD6 CS 3 2† n/a +Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 +Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P +Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P +Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G +Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† +A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N +A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 +A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N +A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 +A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† +A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N +A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 +Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N +Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 +Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N +Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 +Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 +Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P +Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P +Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 +Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 +Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 +Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 +Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 +Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† +Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 +Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 +Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 +Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 +Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 +Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† +Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 +Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 +Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 +Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P +Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 +Valentine II sM8 CS 4 sM8 CS 4 27† N +Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT +Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT +Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a +Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC +Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC +Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC +Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC +Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC +Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC +Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC +Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC +Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 +Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 +Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 +Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 +Daimler sD4[4+]† CS 2 CS 2 42† M N P +Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P +Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 +Stuart Recce CS 5 CS 5 44† A D NT P +Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 +Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 +Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 +Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 +Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 +Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 +Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 +Humber II sD6 CS 3 sD6 CS 3 50† L†1 N +Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P +Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P +Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P +AEC I sM8 CS 3 sM8 CS 3 53† N X†1 +AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 sM8 CS 4 53 J†2 X† Y†1 +AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† +Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 +Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 +Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P +Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P +Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 +M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 +Mk VI AA CS 2 CS 2 59† N O†1 AA†2 +Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 +M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 +Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 +Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 +M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N +M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N +M5A1(a) cs 5† cs 5† 63 A I† +M9A1(a) cs 4† cs 4† 63 A I† +Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 +Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 +Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 +Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1 +Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 +Priest Kangaroo(a) CS 7 CS 7 68† A D +Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 +White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N +IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 +IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 +IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† +IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U +Badger(a) CS 3 CS 3 72† A K†1 M +Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 +Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 +Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 +DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P +Terrapin Mk I cs 7 cs 7 76† D +2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P +Morris C9/B CS 4 CS 4 78† P AA†1 +Loyd Carrier cs 5 cs 5 79† N P +Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P +15-cwt Truck cs 5 cs 5 81† N P +30-cwt Lorry cs 6 cs 6 82† N P +3-Ton Lorry cs 7 cs 7 83† N P +¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P +¾-Ton Truck(a) cs 4 cs 4 85 A N +1½-Ton Truck(a) cs 6 cs 6 85 A N +2½-Ton Truck(a) cs 7 cs 7 85 A N +7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1943.txt index 88f8649..16bf7c5 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1943.txt @@ -1,131 +1,162 @@ === vehicles/british/1943 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------- ------ ---------------------------------------------------- ---------- -Mark VIB sD6 CS 3 sD6 CS 3 1† N P -Mark VIC sD6 CS 3 sD6 CS 3 1† n/a -Tetrarch sD6 CS 3 sD6 CS 3 2† n/a -Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 -Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P -Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P -Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G -Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† -A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N -A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 -A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N -A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 -A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† -A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N -A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 -Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N -Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 -Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N -Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 -Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 -Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P -Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P -Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 -Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 -Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 -Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 -Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 -Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 -Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† -Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 -Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 -Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 -Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 -Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 -Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† -Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 -Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 -Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 -Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P -Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 -Valentine II sM8 CS 4 sM8 CS 4 27† N -Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT -Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT -Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a -Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC -Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC -Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC -Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC -Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC -Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC -Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P -Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC -Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC -Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC -Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 -Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 -Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 -Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 -Daimler sD4[4+]† CS 2 CS 2 42† M N P -Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P -Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 -Stuart Recce CS 5 CS 5 44† A D NT P -Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 -Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 -Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 -Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 -Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 -Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 -Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 -Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 -Humber II sD6 CS 3 sD6 CS 3 50† L†1 N -Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P -Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P -Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P -AEC I sM8 CS 3 sM8 CS 3 53† N X†1 -AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE7†[1] sM8 CS 4 53 J†2 X† Y†1 -AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† -Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 -Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 -Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P -Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P -Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 -M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 -Mk VI AA CS 2 CS 2 59† N O†1 AA†2 -Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 -M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 -Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 -Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 -M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N -M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N -M5A1(a) cs 5† cs 5† 63 A I† -M9A1(a) cs 4† cs 4† 63 A I† -Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 -Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 -Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 -Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 -Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1 -Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 -Priest Kangaroo(a) CS 7 CS 7 68† A D -Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 -White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N -IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 -IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 -IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† -IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 -Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U -Badger(a) CS 3 CS 3 72† A K†1 M -Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 -Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 -Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 -DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P -Terrapin Mk I cs 7 cs 7 76† D -2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P -Morris C9/B CS 4 CS 4 78† P AA†1 -Loyd Carrier cs 5 cs 5 79† N P -Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P -15-cwt Truck cs 5 cs 5 81† N P -30-cwt Lorry cs 6 cs 6 82† N P -3-Ton Lorry cs 7 cs 7 83† N P -¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P -¾-Ton Truck(a) cs 4 cs 4 85 A N -1½-Ton Truck(a) cs 6 cs 6 85 A N -2½-Ton Truck(a) cs 7 cs 7 85 A N -7½-Ton Truck(a) cs 7 cs 7 85† A N +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- ------------------------------ ------ ------------------------------------------------------------------ ---------- +Mark VIB sD6 CS 3 sD6 CS 3 1† N P +Mark VIC sD6 CS 3 sD6 CS 3 1† n/a +Tetrarch sD6 CS 3 sD6 CS 3 2† n/a +Tetrarch CS HE9†[1] s†[1] sD6 CS 3 HE9†[1] s†[1] sD6 CS 3 2† S†1 +Stuart I(a) sD5 CS 4 sD5 CS 4 3† A N P +Stuart III(a) C6[4+]†[1] HE[4+] sD5 CS 4 sD5 CS 4 3† A C†1 G N P +Stuart V(a) C6†[1] sD5 CS 4 C6†[1] sD5 CS 4 4† A C†1 G +Locust(a) C6† sD6 CS 3 C6† sD6 CS 3 5 A C† +A9 sD6 CS 5[brewup] sD6 CS 5[brewup] 6† K†1 N +A9 CS s†[2] sD6 CS 5[brewup] s†[2] sD6 CS 5[brewup] 6† K†1 N S†2 +A10 Mk IA sD6 CS 5[brewup]† sD6 CS 5[brewup]† 7† B†1 K†2 N +A10 Mk IA CS s†[2] sD6 CS 5[brewup]† s†[2] sD6 CS 5[brewup]† 7† K†1 N S†2 +A13 Mk I sD6 CS 4[brewup] sD6 CS 4[brewup] 8 K† +A13 Mk II sD6 CS 4[brewup] sD6 CS 4[brewup] 8† B†1 K†2 N +A13 Mk II CS s†[2] sD6 CS 4[brewup] s†[2] sD6 CS 4[brewup] 8† K†1 N S†2 +Crusader I sM8 CS 5[brewup] sM8 CS 5[brewup] 9† K†1 N +Crusader I CS HE9 s†[2] sM8 CS 5[brewup] HE9 s†[2] sM8 CS 5[brewup] 9† K†1 N S†2 +Crusader II sM8 CS 4[brewup] sM8 CS 4[brewup] 9† K†1 N +Crusader II CS HE9 s†[2] sM8 CS 4[brewup] HE9 s†[2] sM8 CS 4[brewup] 9† K†1 N S†2 +Crusader III HE7[F3+]†[1] sD7 sM8†[2] CS 3[brewup] sD7 sM8†[2] CS 3[brewup] 10† N Y†1 Z†2 +Grant(a) C5[4+]†[1] HE[4+] s8† sM8 CS 6 s8† sM8 CS 6 11† A C†1 G N P +Lee(a) C5[4+]†[1] HE[4+] s8† sD6 CS 7 s8† sD6 CS 7 11† A C†1 G N P +Sherman II(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 12† A G K†2 N R†1 W†3 +Sherman III(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 13† A G K†2 N R†1 W†3 +Sherman V(a) WP6[J4+]†[3] s8 sD6 CS 5[brewup] s8 sD6 CS 5[brewup] 14† A G K†2 P R†1 W†3 +Sherman IIA(a) A4[4]5[5] s5[5] sM8 CS 6 sM8 CS 6 15† A G K†1 +Sherman IIC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman VC(a) D5[S4]6[5]†[2] HE7 sM8 CS 5[brewup] HE7 sM8 CS 5[brewup] 16† A J†2 K†1 +Sherman IB(a) H9 WP9 s7 sM8 CS 6 H9 WP9 s7 sM8 CS 6 17† A K†1 +Centaur IV H6 s9 sD7 sM8† CS 5 H6 s9 sD7 sM8† CS 5 18 S Z† +Cromwell IV WP6 s8 sD7 sM8†[1] CS 5 WP6 s8 sD7 sM8†[1] CS 5 19† Z†1 +Cromwell VI H6 s9 sD7 sM8†[1] CS 5 H6 s9 sD7 sM8†[1] CS 5 20† S Z†1 +Cromwell VII WP6 s8 sD7 sM8† CS 6 WP6 s8 sD7 sM8† CS 6 19† Z†1 +Cromwell VIII H6 s9 sD7 sM8†[1] CS 6 H6 s9 sD7 sM8†[1] CS 6 20† S Z†1 +Challenger D5[S4]6[5]†[1] HE7 sD7 sM8†[2] CS 6 HE7 sD7 sM8†[2] CS 6 21† J†1 Z†2 +Comet sD7 sM8† CS 6 sD7 sM8† CS 6 22 Z† +Sherman Dozer(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 23† A G K†2 P R†1 +Sherman Crab(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 24† A G K†2 P R†1 +Matilda I ® sD5 CS 2 ® sD5 CS 2 25† B†1 +Matilda II sD6 CS 5 sD6 CS 5 26† B†1 K†2 N P +Matilda II CS HE9†[2] s†[2] sD6 CS 5 HE9†[2] s†[2] sD6 CS 5 26† K†1 N P S†2 +Valentine II sM8 CS 4 sM8 CS 4 27† N +Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT +Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT +Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a +Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC +Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC +Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC +Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 35† Z†1 CC +Churchill VIII H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 35† S Z†1 CC +Valentine Bridgelayer sD7 CS 2 sD7 CS 2 36† M P +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 36† M CC +Churchill AVRE no IF sD7 sM8†[1] CS 8 no IF sD7 sM8†[1] CS 8 37† Z†1 CC +Churchill Crocodile WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 38† Z†1 CC +Deacon HE7[F3+]†[2] CS 5 CS 5 39† L†1 N Y†2 +Wolverine(a) A5[S4]6[5]†[1] HE7 s5[5] CS 7 HE7 CS 7 40† A J†1 +Achilles(a) D6[S4]7[5]†[1] HE7 CS 7 HE7 CS 7 40† A J†1 +Archer D6[4]7[5]†[1] HE7 sD7 CS 5 HE7 sD7 CS 5 41† J†1 +Daimler sD4[4+]† CS 2 CS 2 42† M N P +Lynx sD5 CS 2 sD5 CS 2 42† L†1 M P +Humber sD4[4+]† CS 2 CS 2 43† L†1 M P BB†2 +Stuart Recce CS 5 CS 5 44† A D NT P +Humber III LRC sD5 CS 3 sD5 CS 3 45† L†1 N P Q†2 +Otter LRC sD5 CS 3 sD5 CS 3 45† L†1 P Q†2 +Morris CS9 sD5 CS 4 sD5 CS 4 46† N Q†2 T†3 X†1 +Rolls Royce sD5 CS 3 sD5 CS 3 47† N Q†2 T†3 X†1 +Marmon-Herrington II ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIv CS 4 CS 4 49† L†1 N AA†2 +Marmon-Herrington III MFF CS 4 CS 4 48† L†1 P Q†2 +Marmon-Herrington III ME CS 4 CS 4 48† L†1 N Q†2 T†3 +Marmon-Herrington IIIv CS 4 CS 4 49† K†2 L†1 N T†2 +Humber II sD6 CS 3 sD6 CS 3 50† L†1 N +Humber III sD6 CS 4 sD6 CS 4 50† K†2 L†1 N P +Humber IV C6[4+]†[2] sD6 CS 3 sD6 CS 3 51† A C†2 L†1 P +Daimler sD6 CS 3 sD6 CS 3 52† K†1 N P +AEC I sM8 CS 3 sM8 CS 3 53† N X†1 +AEC II D6[J4]7[5]†[2] HE7[3]8[4+]†[1] sM8 CS 4 HE7†[1] sM8 CS 4 53 J†2 X† Y†1 +AEC III WP6 s8 sM8 CS 4 WP6 s8 sM8 CS 4 53 X† +Staghound I(a) C6[4+]†[3] sM8 CS 5 sM8 CS 5 54† A C†3 G K†2 X†1 +Staghound II(a) s9 sD6 CS 4 s9 sD6 CS 4 54† A K†3 S†2 X†1 +Bishop no IF s8 CS 5 no IF s8 CS 5 55† K†1 N P +Priest(a) H6 WP7 s8 CS 7 H6 WP7 s8 CS 7 56† A N P +Sexton(a) s8 CS 7 s8 CS 7 57† A K†1 +M3 GMC(a) WP7[J4+]†[1] s8 CS 4 s8 CS 4 58† A NT W†1 +Mk VI AA CS 2 CS 2 59† N O†1 AA†2 +Crusader AA sD7 CS 4[brewup] sD7 CS 4[brewup] 60† AA†1 +M17 MGMC(a) CS 4 CS 4 61† A F† AA†1 +Humber AA CS 2 CS 2 62† L†1 N O†2 AA†3 +Staghound AA(a) CS 3 CS 3 62† A F† X†1 AA†2 +M5(a) cs 5†[1] cs 5†[1] 63† A I†1 N +M9(a) cs 4†[1] cs 4†[1] 63† A I†1 N +M5A1(a) cs 5† cs 5† 63 A I† +M9A1(a) cs 4† cs 4† 63 A I† +Carrier A sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier B sD5[4+]†[2] CS 3 CS 3 64† N P Q†1 U†2 +Carrier C sD5[4+]†[1] CS 3 CS 3 64† N P U†1 +Carrier, MMG A sD5[4+]†[2] CS 3 CS 3 65† N P Q†1 U†2 +Carrier, MMG B sD5[4+]†[2] CS 4 CS 4 65† U†2 BB†1 +Carrier, 2-in. MTR IR[2+]† s7 CS 3 IR† s7 CS 3 66† N P U†1 +Carrier, 3-in. MTR CS 4[brewup]†[1] CS 4[brewup]†[1] 67† H†1 N P U BB†2 +Priest Kangaroo(a) CS 7 CS 7 68† A D +Ram Kangaroo(a) CS 7 CS 7 68† A D K†1 +White(a) SC cs 4†[1] cs 4†[1] 69† A I†1 N +IP Carrier Mk IIA CS 4 CS 4 70† N P V X†1 +IP Carrier Mk IIB CS 4 CS 4 70† N P Q†2 V X†1 +IP Carrier AOV CS 4 CS 4 70† P Q†1 V X† +IP Carrier, 3-in. MTR IR WP7 s8 CS 5[brewup]† IR WP7 s8 CS 5[brewup]† 71†[2] E†3 H† P V X†1 BB†4 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 72† K†1 U +Badger(a) CS 3 CS 3 72† A K†1 M +Buffalo Mk II(a) sD5† CS 6 sD5† CS 6 73† A D AA†1 +Buffalo Mk IV(a) sD5† CS 6 sD5† CS 6 73† A D E†1 AA†2 +Sherman III DD(a) WP6 s8 sD6 CS 5[brewup] WP6 s8 sD6 CS 5[brewup] 74† A G K†2 R†1 +DUKW(a) cs 7†[1] cs 7†[1] 75† A D I†1 P +Terrapin Mk I cs 7 cs 7 76† D +2pdr Portee CS 4†[1] CS 4†[1] 77† H†1 N P +Morris C9/B CS 4 CS 4 78† P AA†1 +Loyd Carrier cs 5 cs 5 79† N P +Quad FAT CS 5[brewup]† CS 5[brewup]† 80† N P +15-cwt Truck cs 5 cs 5 81† N P +30-cwt Lorry cs 6 cs 6 82† N P +3-Ton Lorry cs 7 cs 7 83† N P +¼-Ton Jeep(a) cs 2†[1] cs 2†[1] 84† A I†1 N P +¾-Ton Truck(a) cs 4 cs 4 85 A N +1½-Ton Truck(a) cs 6 cs 6 85 A N +2½-Ton Truck(a) cs 7 cs 7 85 A N +7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1944.txt index b392f7e..ba91ccd 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1944.txt @@ -1,7 +1,7 @@ === vehicles/british/1944 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ---------- +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- -------------------------------- ------ ------------------------------------------------------------------ ---------- Mark VIB sD6 CS 3 sD6 CS 3 1† N P Mark VIC sD6 CS 3 sD6 CS 3 1† n/a Tetrarch sD6 CS 3 sD6 CS 3 2† n/a @@ -129,3 +129,34 @@ Quad FAT CS 5[brewup]† 1½-Ton Truck(a) cs 6 cs 6 85 A N 2½-Ton Truck(a) cs 7 cs 7 85 A N 7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt index ec9a5d2..f1ea1a2 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt @@ -1,7 +1,7 @@ === vehicles/british/1945 === -Name Capabilities (effective) # Notes Comments -------------------------- ---------------------------------------------------- -------------------------------- ------ ---------------------------------------------------- ---------- +Name Capabilities (effective) # Notes Comments +------------------------- ---------------------------------------------------- -------------------------------- ------ ------------------------------------------------------------------ ---------- Mark VIB sD6 CS 3 sD6 CS 3 1† N P Mark VIC sD6 CS 3 sD6 CS 3 1† n/a Tetrarch sD6 CS 3 sD6 CS 3 2† n/a @@ -129,3 +129,34 @@ Quad FAT CS 5[brewup]† 1½-Ton Truck(a) cs 6 cs 6 85 A N 2½-Ton Truck(a) cs 7 cs 7 85 A N 7½-Ton Truck(a) cs 7 cs 7 85† A N +M4A3E8(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 FF† UU +M4A3E8 Dozer(a) A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 34 A†1 TT† UU +Cromwell VII s8† sD7 sM8†[1] CS 6 s8† sD7 sM8†[1] CS 6 35† N ZZ†1 +Centaur Dozer sD7 CS 2†[1] sD7 CS 2†[1] 36†[1] TT† +Churchill VII WP6 s8 sD7 sM8†[1] CS 7 WP6 s8 sD7 sM8†[1] CS 7 37† N CC ZZ†1 +Centurion III D† HE8 WP6 s8 sD7 sM8†[1] CS 7 D† HE8 WP6 s8 sD7 sM8†[1] CS 7 38† CC ZZ†1 +Centurion III(L) D8 WP6 s8 sD7 sM8†[2] CS 7 D8 WP6 s8 sD7 sM8†[2] CS 7 38† CC FF†1 ZZ†2 +Churchill Bridgelayer sD7 CS 2 sD7 CS 2 39† N CC +M4A1 MC(a) IR WP8 CS 4[brewup] IR WP8 CS 4[brewup] 40† Q†1 NN UU +M9(a) cs 4 cs 4 41 N UU +Daimler sD4 CS 2 sD4 CS 2 42† N +Carrier A sD5 CS 3 sD5 CS 3 43† N U†1 +Carrier C sD5 CS 3 sD5 CS 3 43† N U†2 Z†1 +Carrier, MMG A sD5 CS 3 sD5 CS 3 44† N U†1 +Carrier, 3-in. Mtr CS 4[brewup] CS 4[brewup] 45† U MM†1 NN +Oxford Carrier CS 5† CS 5† 46† EE†1 +Oxford Carrier, MMG CS 5 CS 5 47† EE†1 +Oxford Carrier, HMG CS 5 CS 5 47† G†1 EE†2 +Oxford Carrier, 3-in Mtr CS 5 CS 5 48† EE†2 MM†1 NN +IP Carrier AOV CS 4 CS 4 49† N W†1 +Wasp sD5† CS 3[brewup] sD5† CS 3[brewup] 50† N U +Morris C9/B CS 4 CS 4 51† N AA†1 +Quad FAT cs 5[brewup]† cs 5[brewup]† 52† N +15-cwt cs 5 cs 5 53† N +3-Ton Lorry cs 7 cs 7 53† N +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1950.txt new file mode 100644 index 0000000..cb1c6c2 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1950.txt @@ -0,0 +1,13 @@ +=== vehicles/kfw-kpa/1950 === + +Name Capabilities (effective) # Notes Comments +------- --------------- --------------- --- ------- ---------- +T-34/85 A6 sD6† CS 6 A6 sD6† CS 6 1† n/a +SU-76M A7 CS 4[brewup] A7 CS 4[brewup] 2† n/a +BA-64B CS 2 CS 2 3† B +GAZ-67B cs 2 cs 2 4† B +GAZ-MM cs 6 cs 6 4† B +ZIS-5 cs 7 cs 7 4† B +IAG-6 cs 7 cs 7 4† B +GAZ-51 cs 6 cs 6 5† n/a +ZIS-151 cs 7 cs 7 6† n/a diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1951.txt new file mode 100644 index 0000000..f563839 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1951.txt @@ -0,0 +1,13 @@ +=== vehicles/kfw-kpa/1951 === + +Name Capabilities (effective) # Notes Comments +------- --------------- --------------- --- ------- ---------- +T-34/85 A6 sD6† CS 6 A6 sD6† CS 6 1† n/a +SU-76M A7 CS 4[brewup] A7 CS 4[brewup] 2† n/a +BA-64B CS 2 CS 2 3† B +GAZ-67B cs 2 cs 2 4† B +GAZ-MM cs 6 cs 6 4† B +ZIS-5 cs 7 cs 7 4† B +IAG-6 cs 7 cs 7 4† B +GAZ-51 cs 6 cs 6 5† n/a +ZIS-151 cs 7 cs 7 6† n/a diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1952.txt new file mode 100644 index 0000000..e665ee4 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1952.txt @@ -0,0 +1,13 @@ +=== vehicles/kfw-kpa/1952 === + +Name Capabilities (effective) # Notes Comments +------- --------------- --------------- --- ------- ---------- +T-34/85 A6 sD6† CS 6 A6 sD6† CS 6 1† n/a +SU-76M A7 CS 4[brewup] A7 CS 4[brewup] 2† n/a +BA-64B CS 2 CS 2 3† B +GAZ-67B cs 2 cs 2 4† B +GAZ-MM cs 6 cs 6 4† B +ZIS-5 cs 7 cs 7 4† B +IAG-6 cs 7 cs 7 4† B +GAZ-51 cs 6 cs 6 5† n/a +ZIS-151 cs 7 cs 7 6† n/a diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1953.txt new file mode 100644 index 0000000..7c7d565 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-kpa/1953.txt @@ -0,0 +1,13 @@ +=== vehicles/kfw-kpa/1953 === + +Name Capabilities (effective) # Notes Comments +------- --------------- --------------- --- ------- ---------- +T-34/85 A6 sD6† CS 6 A6 sD6† CS 6 1† n/a +SU-76M A7 CS 4[brewup] A7 CS 4[brewup] 2† n/a +BA-64B CS 2 CS 2 3† B +GAZ-67B cs 2 cs 2 4† B +GAZ-MM cs 6 cs 6 4† B +ZIS-5 cs 7 cs 7 4† B +IAG-6 cs 7 cs 7 4† B +GAZ-51 cs 6 cs 6 5† n/a +ZIS-151 cs 7 cs 7 6† n/a diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1950.txt new file mode 100644 index 0000000..ba0e7b8 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1950.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-ounc/1950 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1951.txt new file mode 100644 index 0000000..8852e43 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1951.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-ounc/1951 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1952.txt new file mode 100644 index 0000000..360de2c --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1952.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-ounc/1952 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] WP6†[2] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] WP6†[3] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1953.txt new file mode 100644 index 0000000..615330f --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-ounc/1953.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-ounc/1953 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] WP6†[2] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] WP6†[3] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1950.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1950.txt new file mode 100644 index 0000000..6bc5414 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1950.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-rok/1950 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1951.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1951.txt new file mode 100644 index 0000000..3e29e81 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1951.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-rok/1951 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1952.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1952.txt new file mode 100644 index 0000000..84f4b25 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1952.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-rok/1952 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] WP6†[2] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] WP6†[3] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1953.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1953.txt new file mode 100644 index 0000000..b18f217 --- /dev/null +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/kfw-rok/1953.txt @@ -0,0 +1,49 @@ +=== vehicles/kfw-rok/1953 === + +Name Capabilities (effective) # Notes Comments +----------------- ------------------------ --------------------- --- ------------------------------------------------------------------ ---------- +M24 WP7 s5 sM8 CS 5 WP7 s5 sM8 CS 5 1† O Y +M4A3E8 A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 2† A†1 P +M4A3E8(105) C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 3† C M +M4A3E8 Dozer A†[1] s5 sM8 CS 6 A†[1] s5 sM8 CS 6 4 A†1 TT† +M4A3E8(105) Dozer C7 H9 WP9 s7 sM8 CS 6 C7 H9 WP9 s7 sM8 CS 6 4† C M TT†1 +POA-CWS-H5 C5 sM8 CS 6 C5 sM8 CS 6 5† C M +M32A1B3 TRV CS 6 CS 6 6† K M P +M26A1 A†[1] WP6[M51+]†[2] CS 6 A†[1] WP6†[2] CS 6 7† A†1 J†2 M +M45 H7 WP9 s7 CS 6 H7 WP9 s7 CS 6 8 n/a +M46 A†[2] WP6[M51+]†[3] CS 6 A†[2] WP6†[3] CS 6 9† A†2 J†3 M FF†1 +M36B2 GMC(a) A† sP5 CS 7 A† sP5 CS 7 10 A† K UU +M38A1C Jeep H† CS 2 H† CS 2 11† n/a +M3 CS 5 CS 5 12† K Y +M3(MMG) CS 5 CS 5 13† E† H K Y +M3(HMG) CS 5 CS 5 13† E† H K Y +M19A1 MGMC CS 4 CS 4 14† AA†1 +M15A1 MGMC CS 4 CS 4 15† O V†1 Y AA†2 DD†1 +M15 Special CS 4 CS 4 16† AA†2 DD†1 +M16 MGMC CS 4 CS 4 17† F†1 V†1 Y AA†2 DD†1 +M16A1 MGMC CS 5 CS 5 18† F†1 V†1 AA†2 DD†1 +M39 AUV CS 6 CS 6 19† G†1 M +M39 MC WP8 CS 5[brewup] WP8 CS 5[brewup] 19† n/a +M7 HMC C7 H7 WP8 s7 CS 7 C7 H7 WP8 s7 CS 7 20† C Y +M37 HMC H9 WP9 s7 CS 7 H9 WP9 s7 CS 7 21 n/a +M41 HMC no IF WP8 s7 CS 9 no IF WP8 s7 CS 9 22† S†1 +M40 GMC no IF AP4 WP8 s7 CS 9 no IF AP4 WP8 s7 CS 9 23 S† +M43 HMC no IF CS 9 no IF CS 9 23 S† +LVT(A)5 C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24† H T†1 X†2 +LVT(A)5m C7 H8 WP8 CS 6 C7 H8 WP8 CS 6 24 M T† +LVT3 CS 7 CS 7 25† D† H M T†1 X†2 +LVT3C CS 7 CS 7 25† D† M T†1 X†2 BB† +M75 CS 6 CS 6 26 G† BB†1 +M29 Weasel CS 3 CS 3 27† B†1 M T†1 +M29C Weasel CS 3 CS 3 28† B†1 M T†1 +M4 hst CS 6 CS 6 29 G† Y +DUKW CS 7†[1] CS 7†[1] 30† D†2 M Q†1 Y +TACP Jeep CS 2† CS 2† 31† L†1 M +7½-Ton CS 7 CS 7 32 Y +Searchlight Truck CS 7† CS 7† 33† n/a +M3A1 CS 5 CS 5 54† E† H K Y Z†1 UU +M20 sP5 CS 4 sP5 CS 4 55† D†4 K Q†2 W†1 Y Z†3 UU +M8 C7 sP5 CS 4 C7 sP5 CS 4 56† C K W†1 Y UU +¼-Ton Jeep cs 2†[1] cs 2†[1] 57† K L†2 M N O P Q†1 Y UU +¾-Ton cs 4 cs 4 57† K N O Y UU +2½-Ton cs 7 cs 7 57† K M N O P Y UU diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1940.txt index 04c3bd8..2ad495b 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1940.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1940.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- ----------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1941.txt index 33c270e..8954c96 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1941.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1941.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- ----------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1942.txt index 14fe081..8aa4ec5 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1942.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1942.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- ----------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1943.txt index 1d1c69a..c57bfc4 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1943.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1943.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- -------------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] A4 HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1944.txt index dcc6442..3a79ab5 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1944.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1944.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- -------------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] A3 HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt index fe12383..b66fd00 100644 --- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt +++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt @@ -2,10 +2,10 @@ Name Capabilities (effective) # Notes Comments -------------- --------------------------------- -------------------------- --- --------------------------------- ---------- -T vz 33(t) ® CS 2 ® CS 2 17† K†1 E F G†2 +T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 LT vz 34 ® CS 2 ® CS 2 18 n/a PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E -LT vz 40(t) sD6 CS 4 sD6 CS 4 20† K†1 E +LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] A3 HE7 s7 sD6 CS 4[brewup] 21† E -Kfz 1(g) cs 2†[1] cs 2†[1] 22† E L†2 I†1 +Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 SdKfz 2(g) cs 2 cs 2 23† E L†1 diff --git a/vasl_templates/webapp/tests/test_capabilities.py b/vasl_templates/webapp/tests/test_capabilities.py index 22252f2..a3ae00d 100644 --- a/vasl_templates/webapp/tests/test_capabilities.py +++ b/vasl_templates/webapp/tests/test_capabilities.py @@ -43,25 +43,25 @@ def test_month_capabilities( webapp, webdriver ): # M3A1 37mm AT Gun: NT, QSU, C7(A2+)†1 ordnance = [ "american", "ordnance", "M3A1 37mm AT Gun" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "NT QSU" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "07/1942", "NT QSU" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "08/1942", "NT QSU C7[!1]" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "NT QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "07/1942", "NT QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "08/1942", "NT QSU C7[!1]", (1,2) ) # M1 57mm AT Gun: NT, QSU, HE7(J4E)/7(5)†, D4(J4+E)† ordnance = [ "american", "ordnance", "M1 57mm AT Gun" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1943", "NT QSU" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "05/1944", "NT QSU" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "06/1944", "NT QSU D4[!] HE7[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "PTO", "06/1944", "NT QSU" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1945", "NT QSU D4[!] HE7[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "PTO", "01/1945", "NT QSU HE7[!]" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1943", "NT QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "05/1944", "NT QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "06/1944", "NT QSU D4[!] HE7[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "PTO", "06/1944", "NT QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1945", "NT QSU D4[!] HE7[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "PTO", "01/1945", "NT QSU HE7[!]", (1,2) ) # M3: C7(A2+)†2 vehicle = [ "american", "vehicles", "M3" ] - _check_capabilities( webdriver, webapp, *vehicle, "ETO", "12/1941", "CS 4", (1,3) ) - _check_capabilities( webdriver, webapp, *vehicle, "ETO", "07/1942", "CS 4", (1,3) ) - _check_capabilities( webdriver, webapp, *vehicle, "ETO", "08/1942", "C7[!2] CS 4", (1,3) ) - _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1943", "C7[!2] CS 4", (1,3) ) + _check_capabilities( webdriver, webapp, *vehicle, "ETO", "12/1941", "CS 4", (1,4) ) + _check_capabilities( webdriver, webapp, *vehicle, "ETO", "07/1942", "CS 4", (1,4) ) + _check_capabilities( webdriver, webapp, *vehicle, "ETO", "08/1942", "C7[!2] CS 4", (1,4) ) + _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1943", "C7[!2] CS 4", (1,4) ) # M4/M4A1/M4A2/M4A3: WP7(J4+)†3 s5(J4+) sM5(4+) for vo_name in ("M4","M4A1","M4A2","M4A3"): @@ -109,15 +109,15 @@ def test_month_capabilities( webapp, webdriver ): # OML 2-in. Mortar: IR(2)+† ordnance = [ "british", "ordnance", "OML 2-in. Mortar" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "4PP s7" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1942", "4PP IR[!] s7" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1943", "4PP IR[!] s7" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "4PP s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1942", "4PP IR[!] s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1943", "4PP IR[!] s7", (1,2) ) # OML 3-in. Mortar: IR(2)+†1 ordnance = [ "british", "ordnance", "OML 3-in. Mortar" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "NT QSU WP7 s8[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1942", "NT QSU IR[!1] WP7 s8[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1943", "NT QSU IR[!1] WP7 s8[!]" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1941", "NT QSU WP7 s8[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1942", "NT QSU IR[!1] WP7 s8[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1943", "NT QSU IR[!1] WP7 s8[!]", (1,2) ) # OQF 6-Pounder 7-cwt: D6(J4E)7(5)† HE7(F3)8(4+)† ordnance = [ "british", "ordnance", "OQF 6-Pounder 7-cwt" ] @@ -132,11 +132,11 @@ def test_month_capabilities( webapp, webdriver ): # OQF 17-Pounder: D5(S4)6(5)† HE8(J4+)† ordnance = [ "british", "ordnance", "OQF 17-Pounder" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1943", "NT" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "05/1944", "NT" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "06/1944", "NT HE8[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "09/1944", "NT D5[!] HE8[!]" ) - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1945", "NT D6[!] HE8[!]" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1943", "NT", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "05/1944", "NT", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "06/1944", "NT HE8[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "09/1944", "NT D5[!] HE8[!]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1945", "NT D6[!] HE8[!]", (1,2) ) # Crusader III: HE7(F3+)†1 vehicle = [ "british", "vehicles", "Crusader III" ] @@ -310,6 +310,29 @@ def test_month_capabilities( webapp, webdriver ): assert "H6[!]" in val assert _get_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1945" ) == val +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +@pytest.mark.skipif( + pytest.config.option.short_tests, #pylint: disable=no-member + reason = "--short-tests specified" +) #pylint: disable=too-many-statements +def test_kfw( webapp, webdriver ): + """Test date-based capabilities for K:FW vehicles/ordnance.""" + + # M26A1: WP6(M51+)†2 + vehicle = [ "american", "vehicles", "M26A1" ] + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "12/1950", "A[!1] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "02/1951", "A[!1] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "03/1951", "A[!1] WP6[!2] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "01/1952", "A[!1] WP6[!2] CS 6" ) + + # M46: WP6(M51+)†3 + vehicle = [ "american", "vehicles", "M46" ] + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "12/1950", "A[!2] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "02/1951", "A[!2] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "03/1951", "A[!2] WP6[!3] CS 6" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "01/1952", "A[!2] WP6[!3] CS 6" ) + # --------------------------------------------------------------------- @pytest.mark.skipif( @@ -321,17 +344,17 @@ def test_theater_capabilities( webapp, webdriver ): # M2A1 105mm Howitzer: C7(4+P)†1 ordnance = [ "american", "ordnance", "M2A1 105mm Howitzer" ] - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "12/1943", "NT H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1944", "NT H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1945", "NT H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "12/1943", "NT H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1944", "NT C7[!1] H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1945", "NT C7[!1] H6 WP8 s7" ) + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "12/1943", "NT H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1944", "NT H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1945", "NT H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "12/1943", "NT H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1944", "NT C7[!1] H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1945", "NT C7[!1] H6 WP8 s7", (1,2) ) # M3 105mm Howitzer: C7(P)†1 ordnance = [ "american", "ordnance", "M3 105mm Howitzer" ] - _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1940", "NT H7 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance, "PTO", "01/1940", "NT C7[!1] H7 WP8 s7" ) + _check_capabilities( webdriver, webapp, *ordnance, "ETO", "01/1940", "NT H7 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance, "PTO", "01/1940", "NT C7[!1] H7 WP8 s7", (1,2) ) # M2A4: C10(P)†1 vehicle = [ "american", "vehicles", "M2A4" ] @@ -364,8 +387,8 @@ def test_theater_capabilities( webapp, webdriver ): # M7 HMC: C7(P)†1 vehicle = [ "american", "vehicles", "M7 HMC" ] - _check_capabilities( webdriver, webapp, *vehicle, "PTO", "01/1940", "C7[!1] H7 WP8 s7 CS 7" ) - _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1940", "H7 WP8 s7 CS 7" ) + _check_capabilities( webdriver, webapp, *vehicle, "PTO", "01/1940", "C7[!1] H7 WP8 s7 CS 7", (1,2) ) + _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1940", "H7 WP8 s7 CS 7", (1,2) ) # LVT(A)1: C10(P)†2 vehicle = [ "american", "vehicles", "LVT(A)1" ] @@ -408,7 +431,9 @@ def test_theater_capabilities_bfp( webapp, webdriver ): # initialize init_webapp( webapp, webdriver, - reset = lambda ct: ct.set_vasl_mod( vmod="random", extns_dtype="real" ) + reset = lambda ct: + ct.set_data_dir( dtype="real" ) \ + .set_vasl_mod( vmod="random", extns_dtype="real" ) ) # LVT(A)1(L): C10(P)†2 @@ -437,22 +462,22 @@ def test_american_ordnance_note_c( webapp, webdriver ): # M3A1 37mm AT Gun: QSU C7[A2+]†[1] ordnance = [ "american", "ordnance", "M3A1 37mm AT Gun" ] - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "07/1942", "QSU" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "07/1942", "QSU" ) - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "08/1942", "QSU C7[!1]" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "08/1942", "QSU C10[!1]" ) # nb: C# += 3 + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "07/1942", "QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "07/1942", "QSU", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "08/1942", "QSU C7[!1]", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "08/1942", "QSU C10[!1]", (1,2) ) # nb: C# += 3 # M2A1 105mm Howitzer: C7[4+P]†[1] H6 WP8 s7 ordnance = [ "american", "ordnance", "M2A1 105mm Howitzer" ] - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "12/1943", "H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "12/1943", "H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1944", "H6 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1944", "C7[!1] H6 WP8 s7" ) # nb: no += 3 + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "12/1943", "H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "12/1943", "H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1944", "H6 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1944", "C7[!1] H6 WP8 s7", (1,2) ) # nb: no += 3 # M3 105mm Howitzer: C7[P]†[1] H7 WP8 s7 ordnance = [ "american", "ordnance", "M3 105mm Howitzer" ] - _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1940", "H7 WP8 s7" ) - _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1940", "C7[!1] H7 WP8 s7" ) # nb: no += 3 + _check_capabilities( webdriver, webapp, *ordnance , "ETO", "01/1940", "H7 WP8 s7", (1,2) ) + _check_capabilities( webdriver, webapp, *ordnance , "PTO", "01/1940", "C7[!1] H7 WP8 s7", (1,2) ) # nb: no += 3 # --------------------------------------------------------------------- diff --git a/vasl_templates/webapp/tests/test_counters.py b/vasl_templates/webapp/tests/test_counters.py index 41d6736..5810948 100644 --- a/vasl_templates/webapp/tests/test_counters.py +++ b/vasl_templates/webapp/tests/test_counters.py @@ -11,6 +11,7 @@ import tabulate from vasl_templates.webapp.vasl_mod import VaslMod, get_vo_gpids, compare_vasl_versions, SUPPORTED_VASL_MOD_VERSIONS from vasl_templates.webapp.config.constants import DATA_DIR +from vasl_templates.webapp.vo import _kfw_listings #pylint: disable=protected-access from vasl_templates.webapp.tests.utils import init_webapp, select_tab, find_child, find_children from vasl_templates.webapp.tests.test_scenario_persistence import load_scenario from vasl_templates.webapp.tests.remote import ControlTests @@ -24,7 +25,7 @@ from vasl_templates.webapp.tests.remote import ControlTests @pytest.mark.skipif( pytest.config.option.short_tests, #pylint: disable=no-member reason = "--short-tests specified" -) #pylint: disable=too-many-statements +) #pylint: disable=too-many-statements,too-many-locals def test_counter_images( webapp ): """Test that counter images are served correctly.""" @@ -33,6 +34,7 @@ def test_counter_images( webapp ): def check_images( gpids, check_front, check_back ): #pylint: disable=unused-argument """Check getting the front and back images for each counter.""" for gpid in gpids: + for side in ("front","back"): url = webapp.url_for( "get_counter_image", gpid=gpid, side=side ) try: @@ -42,21 +44,65 @@ def test_counter_images( webapp ): except urllib.error.HTTPError as ex: resp_code = ex.code resp_data = None - assert locals()["check_"+side]( resp_code, resp_data ) + assert locals()["check_"+side]( gpid, resp_code, resp_data ) # test counter images when no VASL module has been configured control_tests = ControlTests( webapp ) control_tests.set_vasl_mod( vmod=None ) # NOTE: It doesn't really matter which set of GPID's we use, since we're expecting # a missing image for everything anyway. We just use the most recent supported version. - gpids = get_vo_gpids( SUPPORTED_VASL_MOD_VERSIONS[-1], DATA_DIR, None ) + gpids = get_vo_gpids( None ) fname = os.path.join( os.path.split(__file__)[0], "../static/images/missing-image.png" ) missing_image_data = open( fname, "rb" ).read() check_images( gpids, - check_front = lambda code,data: code == 200 and data == missing_image_data, - check_back = lambda code,data: code == 200 and data == missing_image_data + check_front = lambda gpid,code,data: code == 200 and data == missing_image_data, + check_back = lambda gpid,code,data: code == 200 and data == missing_image_data ) + # FUDGE! 6.5.0 introduced a lot of new counters for K:FW. The vehicle/ordnance entries for these + # will always be loaded, but if an older version of VASL has been configured, requests to get images + # for these counters will, of course, fail, since the new counters won't be in the older VASL modules. + # We figure out here what those GPID's are. + # NOTE: All of this is horrendously complicated, and the problem will re-appear if new counters + # are added to the core VASL module in the future. At that point, we should probably drop testing + # against older versions of VASL and just test against the latest version :-/ + expected_missing_gpids = set() + for vo_type in ("vehicles","ordnance"): + kfw_listings = _kfw_listings[ vo_type ] + for entries in kfw_listings.values(): + for entry in entries: + if isinstance( entry["gpid"], list ): + expected_missing_gpids.update( entry["gpid"] ) + else: + expected_missing_gpids.add( entry["gpid"] ) + expected_missing_gpids = set( str(e) for e in expected_missing_gpids ) + # NOTE: However, some of the GPID's used by the new K:FW counters use old images that are available + # even in older versions of VASL, so we figure out here what those are. + def get_gpids( fname ): + """Extract the GPID's from the specified file.""" + dname = os.path.join( os.path.split(__file__)[0], "fixtures" ) + fname = os.path.join( dname, fname ) + gpids = set() + for line_buf in open(fname,"r"): + mo = re.search( "^[0-9a-z:]+", line_buf ) + if mo: + gpids.add( mo.group() ) + return gpids + legacy_gpids = get_gpids( "vasl-pieces-legacy.txt" ) + latest_gpids = get_gpids( "vasl-pieces-6.5.0.txt" ) + common_gpids = legacy_gpids.intersection( latest_gpids ) + expected_missing_gpids = expected_missing_gpids.difference( common_gpids ) + expected_missing_gpids.remove( "1002" ) # FUDGE! this is a remapped GPID (11340) + + def _do_check_front( gpid, code, data ): + if vasl_version != SUPPORTED_VASL_MOD_VERSIONS[-1] and gpid in expected_missing_gpids: + return code == 404 and not data + return code == 200 and data + def _do_check_back( gpid, code, data ): + if vasl_version != SUPPORTED_VASL_MOD_VERSIONS[-1] and gpid in expected_missing_gpids: + return code == 404 and not data + return (code == 200 and data) or (code == 404 and not data) + # test each VASL module file in the specified directory vmod_fnames = control_tests.get_vasl_mods() for vmod_fname in vmod_fnames: @@ -73,8 +119,9 @@ def test_counter_images( webapp ): # figure out what we're expecting to see # NOTE: The results were the same across 6.4.0-6.4.4, but 6.5.0 introduced some changes. vasl_mod = VaslMod( fname, DATA_DIR, None ) + vasl_version = vasl_mod.vasl_version dname = os.path.join( os.path.split(__file__)[0], "fixtures" ) - fname = os.path.join( dname, "vasl-pieces-{}.txt".format( vasl_mod.vasl_version ) ) + fname = os.path.join( dname, "vasl-pieces-{}.txt".format( vasl_version ) ) if not os.path.isfile( fname ): fname = os.path.join( dname, "vasl-pieces-legacy.txt" ) expected_vasl_pieces = open( fname, "r" ).read() @@ -85,11 +132,8 @@ def test_counter_images( webapp ): assert buf.getvalue() == expected_vasl_pieces # check each counter - gpids = get_vo_gpids( vasl_mod.vasl_version, DATA_DIR, None ) - check_images( gpids, - check_front = lambda code,data: code == 200 and data, - check_back = lambda code,data: (code == 200 and data) or (code == 404 and not data) - ) + gpids = get_vo_gpids( vasl_mod ) + check_images( gpids, check_front=_do_check_front, check_back=_do_check_back ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vasl_templates/webapp/tests/test_ob.py b/vasl_templates/webapp/tests/test_ob.py index 274d236..a62e6b6 100644 --- a/vasl_templates/webapp/tests/test_ob.py +++ b/vasl_templates/webapp/tests/test_ob.py @@ -3,11 +3,13 @@ import re import types +from selenium.webdriver.support.ui import Select + from vasl_templates.webapp.tests.utils import \ get_nationalities, wait_for_clipboard, get_stored_msg, set_stored_msg_marker, select_tab, \ find_child, find_children, \ add_simple_note, edit_simple_note, get_sortable_entry_count, drag_sortable_entry_to_trash, \ - init_webapp, wait_for, adjust_html, set_scenario_date, set_player + init_webapp, wait_for, adjust_html, set_scenario_date, set_player, select_droplist_val # --------------------------------------------------------------------- @@ -182,6 +184,10 @@ def test_nationality_specific( webapp, webdriver ): #pylint: disable=too-many-lo "psk": [ "german", check_psk_snippets ], "atmm": [ "german", check_atmm_snippets ], "baz": [ "american", check_baz_snippets ], + "baz45": [ ("american","Korea"), "BAZ 45 (from K:FW)" ], + "baz50": [ ("american","Korea"), "BAZ 50 (from K:FW)" ], + "baz-cpva16": [ "kfw-cpva", "BAZ 44 (from K:FW)" ], + "baz-cpva17": [ "kfw-cpva", "BAZ Type 51 (from K:FW)" ], "piat": [ "british", "piat template ; col=[OBCOL:british]/[OBCOL-BORDER:british]" ], "thh": [ "japanese", "Banzai!!!" ], } @@ -200,7 +206,13 @@ def test_nationality_specific( webapp, webdriver ): #pylint: disable=too-many-lo select_tab( "ob1" ) for button_id,expected in nationality_specific_buttons.items(): elem = btn_elems[ button_id ] - if nat == expected[0]: + if isinstance( expected[0], str ): + nat2 = expected[0] + else: + nat2 = expected[0][0] + sel = Select( find_child( "select[name='SCENARIO_THEATER']" ) ) + select_droplist_val( sel, expected[0][1] ) + if nat == nat2: # the button should be shown for this nationality assert elem.is_displayed() # make sure that the template works diff --git a/vasl_templates/webapp/tests/test_vasl_extensions.py b/vasl_templates/webapp/tests/test_vasl_extensions.py index 29d6da1..df74f17 100644 --- a/vasl_templates/webapp/tests/test_vasl_extensions.py +++ b/vasl_templates/webapp/tests/test_vasl_extensions.py @@ -74,7 +74,8 @@ def test_vasl_extension_info( webapp, webdriver ): _set_test_vasl_extn( control_tests, open(fname,"r").read() ) def do_test( dtype, expected ): #pylint: disable=missing-docstring - control_tests.set_vasl_extn_info_dir( dtype=dtype ) \ + control_tests.set_data_dir( dtype="real" ) \ + .set_vasl_extn_info_dir( dtype=dtype ) \ .set_vasl_mod( vmod="random", extns_dtype="test" ) _check_warning_msgs( control_tests, expected ) diff --git a/vasl_templates/webapp/tests/test_vassal.py b/vasl_templates/webapp/tests/test_vassal.py index fb010fb..c6b411b 100644 --- a/vasl_templates/webapp/tests/test_vassal.py +++ b/vasl_templates/webapp/tests/test_vassal.py @@ -316,7 +316,9 @@ def test_dump_vsav( webapp, webdriver ): """Test dumping a scenario.""" # initialize - control_tests = init_webapp( webapp, webdriver ) + control_tests = init_webapp( webapp, webdriver, + reset = lambda ct: ct.set_data_dir( dtype="real" ) + ) def do_test(): #pylint: disable=missing-docstring @@ -634,6 +636,52 @@ def test_reverse_remapped_gpids( webapp, webdriver ): min_vasl_version="6.5.0" ) +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +@pytest.mark.skipif( not pytest.config.option.vasl_mods, reason="--vasl-mods not specified" ) #pylint: disable=no-member +@pytest.mark.skipif( not pytest.config.option.vassal, reason="--vassal not specified" ) #pylint: disable=no-member +def test_vo_entry_selection_for_theater( webapp, webdriver ): + """Test selection of vehicle/ordnance entries by theater.""" + + # initialize + control_tests = init_webapp( webapp, webdriver, vsav_persistence=1, scenario_persistence=1, + reset = lambda ct: + ct.set_data_dir( dtype="real" ) + ) + + def do_test( theater, expected ): #pylint: disable=missing-docstring + new_scenario() + load_scenario_params( { "scenario": { + "SCENARIO_THEATER": theater, + "PLAYER_1": "american", + } } ) + _analyze_vsav( "vo-entry-selection-for-theater.vsav", + [ [], expected ], + [ [], [] ], + [ "Imported 4 American ordnance." ] + ) + + # do the tests + def do_tests(): #pylint: disable=missing-docstring + # NOTE: The .vsav file contains ROK and OUNC variants of the M2 60* Mortar which, strictly speaking, + # should only be imported for ROK and OUNC players respectively. However, due to the way the data files + # are currently set up (the kfw/un-common.json file gets appended to the US, British, ROK and OUNC + # player lists, and all the GPID's become available to all the players), they are currently (incorrectly) + # imported. However, this isn't a big problem since these players will never be fighting against each other. + do_test( "ETO", [ + # NOTE: The normal M2 60* Mortar gets imported as an old-style American entry (because we're in ETO). + ("am/o:000",None), + # NOTE The other variants always get imported as K:FW counters. + ("kfw-un-common/o:002","12689/0"), ("kfw-un-common/o:002","11391/0"), ("kfw-un-common/o:002","11440/0") + ] ) + do_test( "Korea", [ + # NOTE: The normal M2 60* Mortar gets imported as new-style K:FW entry (because we're in Korea). + ("kfw-un-common/o:002","849/0"), + # NOTE The other variants always get imported as K:FW counters. + ("kfw-un-common/o:002","12689/0"), ("kfw-un-common/o:002","11391/0"), ("kfw-un-common/o:002","11440/0") + ] ) + _run_tests( control_tests, do_tests, True, min_vasl_version="6.5.0" ) + # --------------------------------------------------------------------- def _run_tests( control_tests, func, test_all, min_vasl_version=None ): diff --git a/vasl_templates/webapp/tests/test_vehicles_ordnance.py b/vasl_templates/webapp/tests/test_vehicles_ordnance.py index 8c1cf19..6160021 100644 --- a/vasl_templates/webapp/tests/test_vehicles_ordnance.py +++ b/vasl_templates/webapp/tests/test_vehicles_ordnance.py @@ -430,6 +430,9 @@ def test_common_vo( webapp, webdriver ): if nat in ["thai","indonesian","anzac","burmese","filipino"]: # nb: these are in the BFP extension assert last_warning.startswith( "There are no" ) continue + elif nat == "kfw-cpva" and vo_type == "vehicles": + assert last_warning.startswith( "There are no" ) + continue else: assert last_warning == last_warning_marker vo_entries = find_children( "#select-vo .select2-results li" ) diff --git a/vasl_templates/webapp/tests/test_vo_notes.py b/vasl_templates/webapp/tests/test_vo_notes.py index ba9b07c..a06794f 100644 --- a/vasl_templates/webapp/tests/test_vo_notes.py +++ b/vasl_templates/webapp/tests/test_vo_notes.py @@ -471,7 +471,7 @@ def test_vo_notes_reports( webapp, webdriver ): # initialize check_dir = os.path.join( vo_notes_dir, "tests/" ) - save_dir = None # nb: define this to save the generated reports + save_dir = None # nb: define this to save the generated reports (compare against ~/projects/chapter-h-data/tests/) # initialize if save_dir and os.path.isdir(save_dir): @@ -480,12 +480,14 @@ def test_vo_notes_reports( webapp, webdriver ): # check each nationality's multi-applicable notes nationalities = list( get_nationalities( webapp ).keys() ) nationalities.extend( [ "allied-minor", "axis-minor", "landing-craft" ] ) + failed = False for nat in nationalities: for vo_type in ["vehicles","ordnance"]: # get the next report vo_notes, ma_notes, keys = get_vo_notes_report( webapp, webdriver, nat, vo_type ) - if nat in ("burmese","filipino") or (nat,vo_type) in [("landing-craft","ordnance"),("anzac","ordnance")]: + if nat in ("burmese","filipino") \ + or (nat,vo_type) in [ ("landing-craft","ordnance"), ("anzac","ordnance"), ("kfw-cpva","vehicles") ]: assert not vo_notes and not ma_notes and not keys continue @@ -523,7 +525,14 @@ def test_vo_notes_reports( webapp, webdriver ): # check the report fname = os.path.join( check_dir, fname ) - assert open( fname, "r", encoding="utf-8" ).read() == report + if open( fname, "r", encoding="utf-8" ).read() != report: + if save_dir: + print( "FAILED:", fname ) + failed = True + else: + assert False, "Report mismatch: {}".format( fname ) + + assert not failed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vasl_templates/webapp/tests/test_vo_reports.py b/vasl_templates/webapp/tests/test_vo_reports.py index e8cf25f..f481732 100644 --- a/vasl_templates/webapp/tests/test_vo_reports.py +++ b/vasl_templates/webapp/tests/test_vo_reports.py @@ -24,7 +24,7 @@ from vasl_templates.webapp.tests.utils import init_webapp, get_nationalities, fi @pytest.mark.skipif( not pytest.config.option.vasl_extensions, #pylint: disable=no-member reason = "--vasl-extensions not specified" -) #pylint: disable=too-many-locals +) #pylint: disable=too-many-statements,too-many-locals def test_vo_reports( webapp, webdriver ): #pylint: disable=too-many-locals """Check the vehicle/ordnance reports.""" @@ -55,13 +55,22 @@ def test_vo_reports( webapp, webdriver ): #pylint: disable=too-many-locals # check each vehicle/ordnance report nationalities = list( get_nationalities( webapp ).keys() ) nationalities.extend( [ "allied-minor-common", "axis-minor-common" ] ) + failed = False for nat in nationalities: + for vo_type in ["vehicles","ordnance"]: - for year in range(1940,1945+1): + + # figure out which years we should generate reports for + # NOTE: The Americans and British are in K:FW, so we should really check 1950-53 for these as well, + # but there are only a few vehicles that have date-specific capabilities, so we don't bother testing + # for them here, and check those specific cases in test_kfw(). + years = (1950,1953) if nat.startswith( "kfw-" ) else (1940,1945) + + for year in range(years[0],years[1]+1): # get the next report results = get_vo_report( webapp, webdriver, vo_type, nat, "ETO", year, 1 ) - if nat in ("burmese","filipino") or (nat,vo_type) in [("anzac","ordnance")]: + if nat in ("burmese","filipino") or (nat,vo_type) in [("anzac","ordnance"),("kfw-cpva","vehicles")]: assert not results continue @@ -97,7 +106,14 @@ def test_vo_reports( webapp, webdriver ): #pylint: disable=too-many-locals # check the report fname = os.path.join( check_dir, fname ) - assert open(fname,"r",encoding="utf-8").read() == report + if open(fname,"r",encoding="utf-8").read() != report: + if save_dir: + print( "FAILED:", fname ) + failed = True + else: + assert False, "Report mismatch: {}".format( fname ) + + assert not failed # get the landing craft report url = webapp.url_for( "get_lc_report" ) diff --git a/vasl_templates/webapp/tests/utils.py b/vasl_templates/webapp/tests/utils.py index 824d66b..2e607ad 100644 --- a/vasl_templates/webapp/tests/utils.py +++ b/vasl_templates/webapp/tests/utils.py @@ -38,6 +38,7 @@ _NAT_TEMPLATES = { "american": [ "baz" ], "british": [ "piat" ], "japanese": [ "thh" ], + "kfw-cpva": [ "baz-cpva16", "baz-cpva17" ], } _webapp = None @@ -147,6 +148,16 @@ def for_each_template( func ): #pylint: disable=too-many-branches func( template_id, template_id ) templates_to_test.remove( template_id ) + # test the American BAZ 45 and BAZ 50 + load_scenario_params( { "scenario": { + "PLAYER_1": "american", + "SCENARIO_THEATER": "Korea", + } } ) + select_tab( "ob1" ) + for template_id in ("baz45","baz50"): + func( template_id, template_id ) + templates_to_test.remove( template_id ) + # make sure we tested everything assert not templates_to_test diff --git a/vasl_templates/webapp/vasl_mod.py b/vasl_templates/webapp/vasl_mod.py index 0f9d93b..1fa3ae3 100644 --- a/vasl_templates/webapp/vasl_mod.py +++ b/vasl_templates/webapp/vasl_mod.py @@ -12,6 +12,7 @@ _logger = logging.getLogger( "vasl_mod" ) from vasl_templates.webapp import app, globvars from vasl_templates.webapp.config.constants import DATA_DIR +from vasl_templates.webapp.vo import get_vo_listings SUPPORTED_VASL_MOD_VERSIONS = [ "6.4.0", "6.4.1", "6.4.2", "6.4.3", "6.4.4", "6.5.0" ] SUPPORTED_VASL_MOD_VERSIONS_DISPLAY = "6.4.0-6.5.0" @@ -158,7 +159,7 @@ class VaslMod: ) # load the VASL module and any extensions - self.vasl_version = self._load_vmod( data_dir ) + self._load_vmod( data_dir ) if self.vasl_version not in SUPPORTED_VASL_MOD_VERSIONS: _logger.warning( "Unsupported VASL version: %s", self.vasl_version ) @@ -166,7 +167,7 @@ class VaslMod: """Get the image for the specified piece.""" # get the image path - gpid = get_remapped_gpid( self.vasl_version, gpid ) + gpid = get_remapped_gpid( self, gpid ) if gpid not in self._pieces: return None, None piece = self._pieces[ gpid ] @@ -197,7 +198,7 @@ class VaslMod: paths = piece[ "front_images" ] return paths if isinstance(paths,list) else [paths] return { - get_reverse_remapped_gpid( self.vasl_version, p["gpid"] ): { + get_reverse_remapped_gpid( self, p["gpid"] ): { "name": p["name"], "front_images": image_count( p, "front_images" ), "back_images": image_count( p, "back_images" ), @@ -227,17 +228,20 @@ class VaslMod: # get the VASL version build_info = self._files[0][0].read( "buildFile" ) doc = xml.etree.ElementTree.fromstring( build_info ) - vasl_version = doc.attrib.get( "version" ) + self.vasl_version = doc.attrib.get( "version" ) # figure out which pieces we're interested in - target_gpids = get_vo_gpids( vasl_version, data_dir, self.get_extns() ) + target_gpids = get_vo_gpids( self ) # parse the VASL module and any extensions for i,files in enumerate( self._files ): _logger.info( "Loading VASL %s: %s", ("module" if i == 0 else "extension"), files[0].filename ) - version = self._parse_zip_file( files[0], target_gpids, vasl_overrides, expected_multiple_images ) - if i == 0: - vasl_version = version + self._parse_zip_file( files[0], target_gpids, vasl_overrides, expected_multiple_images ) + + # NOTE: The code below may log warnings if we're using an older version of VASL (because we know + # about pieces that were added in a later version, but, of course, aren't in the older version). + # However, we don't disable these log messages, since they might be useful if somebody reports + # a problem, and it turns out they have an older version of VASL configured :-/ # make sure we found all the pieces we need _logger.info( "Loaded %d pieces.", len(self._pieces) ) @@ -252,8 +256,6 @@ class VaslMod: gpids = ", ".join( expected_multiple_images.keys() ) _logger.warning( "Expected multiple images but didn't find them: %s", gpids ) - return vasl_version - def _parse_zip_file( self, zip_file, target_gpids, vasl_overrides, expected_multiple_images ): #pylint: disable=too-many-locals """Parse a VASL module or extension.""" @@ -336,7 +338,7 @@ class VaslMod: return True if val.startswith( "," ): val = val[1:] - if val.startswith( ("ru/","ge/","am/","br/","it/","ja/","ch/","sh/","fr/","al/","ax/","hu/","fi/") ): + if val.startswith( ("ru/","ge/","am/","br/","it/","ja/","ch/","sh/","fr/","al/","ax/","hu/","fi/","nk/") ): return True return False fields = [ f for f in fields if is_image_path(f) ] @@ -355,34 +357,38 @@ class VaslMod: front_images, back_images = split_fields(fields[0]), None else: # the piece has front and back image(s) - if len(fields) > 2: - _logger.warning( "Found > 2 image paths for gpid=%s", gpid ) front_images, back_images = split_fields(fields[1]), split_fields(fields[0]) + def check_pair( pair ): + """Check if the front/back images end with the specified strings.""" + return front_images[-1].endswith( pair[0] ) and back_images[-1].endswith( pair[1] ) + # ignore dismantled ordnance if len(front_images) > 1: - if front_images[-1].endswith( "dm" ): - if back_images[-1].endswith( "dmb" ): + for pair in [ + ("dm","dmb"), ("dm.png","dmm.png"), ("-dm.png","-dm-malf.png"), ("(KFW)dm.png","(KFW)dmx.png") + ]: + if check_pair( pair ): _logger.debug( "Ignoring dismantled images: gpid=%s, front=%s, back=%s", gpid, front_images, back_images ) front_images.pop() back_images.pop() - else: - _logger.warning( "Unexpected dismantled images: %s %s", front_images, back_images ) # ignore limbered ordnance if len(front_images) > 1: - if front_images[-1].endswith( "l" ): - if back_images[-1].endswith( ("lb","l-b") ): + for pair in [ ("l","lb"), ("l","l-b"), + ("(KFW)l.png","(KFW)lx.png"), ("(KFW)-limbered.png","(KFW)-limbered-malf.png"), + ("l(KFW).png","lm(KFW).png") + ]: + if check_pair( pair ): + # nb: this is for some K:FW ordnance _logger.debug( "Ignoring limbered images: gpid=%s, front=%s, back=%s", gpid, front_images, back_images ) front_images.pop() back_images.pop() - else: - _logger.warning( "Unexpected limbered images: %s %s", front_images, back_images ) - elif front_images[-1].endswith( "B.png" ) and front_images[0] == front_images[-1][:-5]+".png": + if front_images[-1].endswith( "B.png" ) and front_images[0] == front_images[-1][:-5]+".png": # nb: this is for Finnish Guns _logger.debug( "Ignoring limbered images: gpid=%s, front=%s, back=%s", gpid, front_images, back_images @@ -412,52 +418,28 @@ class VaslMod: # --------------------------------------------------------------------- -def get_vo_gpids( vasl_version, data_dir, extns ): #pylint: disable=too-many-locals,too-many-branches +def get_vo_gpids( vasl_mod ): """Get the GPID's for the vehicles/ordnance.""" - gpids = set() - for vo_type in ("vehicles","ordnance"): #pylint: disable=too-many-nested-blocks - - # process each file - dname = os.path.join( data_dir, vo_type ) - for root,_,fnames in os.walk(dname): - for fname in fnames: - - if os.path.splitext( fname )[1] != ".json": - continue + # initialize + listings = get_vo_listings( vasl_mod ) - # load the GPID's from the next file - # NOTE: We originally assumed that GPID's are integers, but the main VASL build file started - # to have non-numeric values, as do, apparently, extensions :-/ For back-compat, we support both. - entries = json.load( open( os.path.join(root,fname), "r" ) ) - for entry in entries: - entry_gpids = entry.get( "gpid" ) - if not entry_gpids: - entry_gpids = entry.get( "extra_gpids" ) # nb: for lend-lease vehicles/ordnance - if not entry_gpids: - continue - if not isinstance( entry_gpids, list ): - entry_gpids = [ entry_gpids ] - for gpid in entry_gpids: - if gpid: - gpids.add( get_remapped_gpid( vasl_version, str(gpid) ) ) - - # process any extensions - if extns: #pylint: disable=too-many-nested-blocks - for extn in extns: - extn_info = extn[1] - for nat in extn_info: - if not isinstance( extn_info[nat], dict ): + # figure out which GPID's we know about + gpids = set() + for vo_type in ("vehicles","ordnance"): + for vo_entries in listings[ vo_type ].values(): + for vo_entry in vo_entries: + vo_gpids = vo_entry[ "gpid" ] + if not vo_gpids: continue - for vo_type in ("vehicles","ordnance"): - for piece in extn_info[ nat ].get( vo_type, [] ): - if isinstance( piece["gpid"], list ): - gpids.update( piece["gpid"] ) - else: - gpids.add( piece["gpid"] ) + gpids.update( + get_remapped_gpid( vasl_mod, str(gpid) ) + for gpid in (vo_gpids if isinstance(vo_gpids,list) else [vo_gpids]) + ) return gpids + def compare_vasl_versions( lhs, rhs ): """Compare two VASL version strings.""" # NOTE: We can do this with a simple string comparison, but see test_compare_vasl_versions(). @@ -510,19 +492,23 @@ REVERSE_GPID_REMAPPINGS = [ for row in GPID_REMAPPINGS ] -def get_remapped_gpid( vasl_version, gpid ): +def get_remapped_gpid( vasl_mod, gpid ): """Check if a GPID has been remapped.""" + if not vasl_mod: + return gpid for remappings in GPID_REMAPPINGS: # FUDGE! Early versions of this code (pre-6.5.0) always applied the remappings for 6.4.3, # even for versions of VASL earlier than that. For simplicity, we preserve that behavior. if compare_vasl_versions( remappings[0], "6.5.0" ) < 0 \ - or compare_vasl_versions( vasl_version, remappings[0] ) >= 0: + or compare_vasl_versions( vasl_mod.vasl_version, remappings[0] ) >= 0: gpid = remappings[1].get( gpid, gpid ) return gpid -def get_reverse_remapped_gpid( vasl_version, gpid ): +def get_reverse_remapped_gpid( vasl_mod, gpid ): """Check if a GPID has been remapped.""" + if not vasl_mod: + return gpid for remappings in REVERSE_GPID_REMAPPINGS: - if compare_vasl_versions( vasl_version, remappings[0] ) >= 0: + if compare_vasl_versions( vasl_mod.vasl_version, remappings[0] ) >= 0: gpid = remappings[1].get( gpid, gpid ) return gpid diff --git a/vasl_templates/webapp/vassal.py b/vasl_templates/webapp/vassal.py index f8ef46d..b90ba4c 100644 --- a/vasl_templates/webapp/vassal.py +++ b/vasl_templates/webapp/vassal.py @@ -229,7 +229,7 @@ def analyze_vsav(): # back-compatibility for as long as we can :-/ report2 = {} for gpid,vals in report.items(): - orig_gpid = get_reverse_remapped_gpid( globvars.vasl_mod.vasl_version, gpid ) + orig_gpid = get_reverse_remapped_gpid( globvars.vasl_mod, gpid ) if orig_gpid == gpid: report2[ gpid ] = vals else: diff --git a/vasl_templates/webapp/vo.py b/vasl_templates/webapp/vo.py index 0d7b883..aee8436 100644 --- a/vasl_templates/webapp/vo.py +++ b/vasl_templates/webapp/vo.py @@ -10,6 +10,8 @@ from flask import request, render_template, jsonify, abort from vasl_templates.webapp import app, globvars from vasl_templates.webapp.config.constants import DATA_DIR +_kfw_listings = { "vehicles": {}, "ordnance": {} } + # --------------------------------------------------------------------- @app.route( "/vehicles" ) @@ -30,24 +32,28 @@ def _do_get_listings( vo_type ): else: # nb: we should only get here during tests return _do_load_vo_listings( - vo_type, + globvars.vasl_mod, vo_type, request.args.get("merge_common") == "1", request.args.get("report") == "1" ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def load_vo_listings(): - """Load the vehicle/ordnance listings.""" - globvars.vo_listings = { - "vehicles": _do_load_vo_listings( "vehicles", True, False ), - "ordnance": _do_load_vo_listings( "ordnance", True, False ) + """Load and install the vehicle/ordnance listings.""" + globvars.vo_listings = get_vo_listings( globvars.vasl_mod ) + +def get_vo_listings( vasl_mod ): + """Get the vehicle/ordnance listings.""" + return { + "vehicles": _do_load_vo_listings( vasl_mod, "vehicles", True, False ), + "ordnance": _do_load_vo_listings( vasl_mod, "ordnance", True, False ) } -def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too-many-locals,too-many-branches,too-many-statements +def _do_load_vo_listings( vasl_mod, vo_type, merge_common, real_data_dir ): #pylint: disable=too-many-locals,too-many-branches,too-many-statements """Load the vehicle/ordnance listings.""" # locate the data directory - if report: + if real_data_dir: dname = DATA_DIR # nb: always use the real data for reports, not the test fixtures else: dname = app.config.get( "DATA_DIR", DATA_DIR ) @@ -64,6 +70,9 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too- if extn != ".json" or fname_stem.endswith( ".lend-lease" ): continue nat = os.path.splitext( os.path.split(fname)[1] )[ 0 ] + is_kfw = os.path.split( root )[1] == "kfw" + if is_kfw: + nat = "kfw-" + ("uro" if nat == "us-rok-ounc" else nat) if os.path.split(root)[1] in ("allied-minor","axis-minor"): minor_type = os.path.split( root )[1] if nat == "common": @@ -71,7 +80,7 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too- else: minor_nats[minor_type].add( nat ) with open( os.path.join(root,fname), "r" ) as fp: - listings[nat] = json.load( fp ) + ( _kfw_listings[vo_type] if is_kfw else listings )[ nat ] = json.load( fp ) fname2 = os.path.join( root, "{}.lend-lease.json".format( fname_stem ) ) if os.path.isfile( fname2 ): with open( fname2, "r" ) as fp: @@ -88,10 +97,10 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too- # apply any changes for VASL extensions # NOTE: We do this here, rather than in VaslMod, because VaslMod is a wrapper around a VASL module, and so # only knows about GPID's and counter images, rather than Chapter H pieces and piece ID's (e.g. "ge/v:001"). - if globvars.vasl_mod: + if vasl_mod: # process each VASL extension vo_index = _make_vo_index( listings ) - for extn in globvars.vasl_mod.get_extns(): + for extn in vasl_mod.get_extns(): _apply_extn_info( listings, extn[0], extn[1], vo_index, vo_type ) # update nationality variants with the listings from their base nationality @@ -101,6 +110,34 @@ def _do_load_vo_listings( vo_type, merge_common, report ): #pylint: disable=too- base_nat = nat.split( "~" )[0] listings[nat] = listings[base_nat] + listings[nat] + # install the K:FW entries + # NOTE: We do this after updating the nationality variants so that e.g. the British Canadians + # don't get the BCFK vehicles/ordnance. + def extend_listings( key, kfw_key ): + """Extend the listings with new entries.""" + if key in listings and kfw_key in _kfw_listings[vo_type]: + listings[ key ].extend( _kfw_listings[vo_type][ kfw_key ] ) + if vo_type == "vehicles": + for nat in ( "american", "kfw-rok", "kfw-ounc", "british" ): + extend_listings( nat, "kfw-bcfk" if nat == "british" else "kfw-uro" ) + extend_listings( nat, "kfw-un-common" ) + extend_listings( "kfw-kpa", "kfw-kpa" ) + elif vo_type == "ordnance": + # NOTE: Appending the common ordnance to each of the American, ROK and OUNC ordnance lists isn't + # quite the right thing to do, since it will cause incorrect behavior when analyzing a scenario. + # For example, the M2 60* Mortar has variants for each nationality, each with its own GPID, + # which should really only be imported if the owning player's nationality matches the counter. + # However, this shouldn't really be a problem since these nationalities will never be playing + # against each other. + for nat in ( "american", "kfw-rok", "kfw-ounc" ): + extend_listings( nat, "kfw-uro" ) + extend_listings( nat, "kfw-un-common" ) + for pair in [ ("british","kfw-bcfk"), ("kfw-kpa","kfw-kpa"), ("kfw-cpva","kfw-cpva") ]: + extend_listings( pair[0], pair[1] ) + extend_listings( "british", "kfw-un-common" ) + else: + assert False, "Unknown V/O type: {}".format( vo_type ) + # add in any common vehicles/ordnance and landing craft # NOTE: We do this after updating nationality variants, so that the British variants (i.e. Canada # and New Zealand) don't get the landing craft. diff --git a/vasl_templates/webapp/vo_notes.py b/vasl_templates/webapp/vo_notes.py index c5c2950..a441530 100644 --- a/vasl_templates/webapp/vo_notes.py +++ b/vasl_templates/webapp/vo_notes.py @@ -4,6 +4,7 @@ import os import io import re +import copy import logging from collections import defaultdict @@ -52,10 +53,11 @@ def load_vo_notes( msg_store ): #pylint: disable=too-many-statements,too-many-lo file_server = FileServer( dname ) # generate a list of extension ID's - extn_ids = {} + extn_ids = set() if globvars.vasl_mod: extns = globvars.vasl_mod.get_extns() extn_ids = set( e[1]["extensionId"] for e in extns ) + extn_ids.update( [ "kfw-un", "kfw-comm" ] ) def get_ma_note_key( nat, fname ): """Get the key for a multi-applicable note.""" @@ -180,11 +182,64 @@ def load_vo_notes( msg_store ): #pylint: disable=too-many-statements,too-many-lo # update nationality variants with the notes from their base nationality for vo_type2 in vo_notes: # FUDGE! Some nationalities don't have any vehicles/ordnance of their own, so we have to do this manually. + # NOTE: We do a deep copy so that these new nationalities don't get affected by changes we make + # to the base nationality later (e.g. adding K:FW counters to the British). if "chinese" in vo_notes[vo_type2]: - vo_notes[vo_type2]["chinese~gmd"] = vo_notes[vo_type2]["chinese"] + vo_notes[vo_type2]["chinese~gmd"] = copy.deepcopy( vo_notes[vo_type2]["chinese"] ) if "british" in vo_notes[vo_type2]: - vo_notes[vo_type2]["british~canadian"] = vo_notes[vo_type2]["british"] - vo_notes[vo_type2]["british~newzealand"] = vo_notes[vo_type2]["british"] + vo_notes[vo_type2]["british~canadian"] = copy.deepcopy( vo_notes[vo_type2]["british"] ) + vo_notes[vo_type2]["british~newzealand"] = copy.deepcopy( vo_notes[vo_type2]["british"] ) + + def install_kfw_vo_notes( nat, vo_type, extn_id, include ): + """Install the K:FW vehicle/ordnance notes into the specified nationality.""" + target_vo_notes = vo_notes[vo_type].get( nat ) + if not target_vo_notes: + return + kfw_vo_notes = vo_notes[vo_type].get( extn_id ) + if not kfw_vo_notes: + return + target_vo_notes.update( { + "{}:{}".format( extn_id, key ): val + for key,val in kfw_vo_notes.items() + if not include or include( int(key) ) + } ) + def install_kfw_ma_notes( nat, vo_type, kfw_ma_notes, extn_id ): + """Install the K:FW vehicle/ordnance multi-applicable notes into the specified nationality.""" + if not kfw_ma_notes: + return + if nat not in vo_notes[vo_type]: + vo_notes[vo_type][nat] = {} + ma_notes = vo_notes[vo_type][nat].get( "multi-applicable" ) + if not ma_notes: + ma_notes = vo_notes[vo_type][nat]["multi-applicable"] = {} + ma_notes.update( { + "{}:{}".format( extn_id, key ): val + for key,val in kfw_ma_notes.items() + } ) + + # install the UN vehicle/ordnance notes and multi-applicable notes + kfw_ma_notes = vo_notes["vehicles"].get( "kfw-un", {} ).pop( "multi-applicable", None ) + for nat in ("american","kfw-rok","kfw-ounc"): + install_kfw_ma_notes( nat, "vehicles", kfw_ma_notes, "kfw-un" ) + install_kfw_vo_notes( nat, "vehicles", "kfw-un", lambda key: key <= 33 or key >= 54 ) + install_kfw_ma_notes( "british", "vehicles", kfw_ma_notes, "kfw-un" ) + install_kfw_vo_notes( "british", "vehicles", "kfw-un", lambda key: key >= 34 ) + kfw_ma_notes = vo_notes["ordnance"].get( "kfw-un", {} ).pop( "multi-applicable", None ) + for nat in ("american","kfw-rok","kfw-ounc"): + install_kfw_ma_notes( nat, "ordnance", kfw_ma_notes, "kfw-un" ) + install_kfw_vo_notes( nat, "ordnance", "kfw-un", lambda key: key <= 13 or key >= 21 ) + install_kfw_ma_notes( "british", "ordnance", kfw_ma_notes, "kfw-un" ) + install_kfw_vo_notes( "british", "ordnance", "kfw-un", lambda key: key >= 14 ) + + # install the Communist vehicle/ordnance notes and multi-applicable notes + kfw_ma_notes = vo_notes["vehicles"].get( "kfw-comm", {} ).pop( "multi-applicable", None ) + install_kfw_ma_notes( "kfw-kpa", "vehicles", kfw_ma_notes, "kfw-comm" ) + install_kfw_vo_notes( "kfw-kpa", "vehicles", "kfw-comm", None ) + kfw_ma_notes = vo_notes["ordnance"].get( "kfw-comm", {} ).pop( "multi-applicable", None ) + for nat in ("kfw-kpa","kfw-cpva"): + install_kfw_ma_notes( nat, "ordnance", kfw_ma_notes, "kfw-comm" ) + install_kfw_vo_notes( "kfw-kpa", "ordnance", "kfw-comm", lambda key: key <= 15 ) + install_kfw_vo_notes( "kfw-cpva", "ordnance", "kfw-comm", lambda key: key >= 16 ) # install the vehicle/ordnance notes globvars.vo_notes = { k: dict(v) for k,v in vo_notes.items() }