F R O N T  L I N E S  P A C K A G E  (V.2)
________________________________________________________________________

EDITING NOTES TO CAMPAIGN MAKERS AND PROGRAMMERS*************************
________________________________________________________________________

This utility allows the player to select one out of the 21 pre-defined front lines in EAW in single missions.

It is a fixed version of the utility I previously released. As a matter of fact, every frntline.dat file is provided with a airfield.dat file which activates the allied bases located in Belgium, Holland and Germany.

The files have to be dropped in the EAW main directory, directly or, better, using the nice Mane_Raptor's Frontline Mover utility (V. 2 or higher version).

The data that code for the front lines and airfields in EAW are contained in FRNTLINE.DAT and AIRFIELD.DAT,
respectively, which can be extracted from DATA.CDF with the Paolo Morais'CDF extractor. 


***************************************************************
OVERALL STRUCTURE OF FRNTLINE.DAT
***************************************************************
(note : byte numbering is in the decimal system): 

The file is 12,000 bytes long and consists of 20 blocks of 600 bytes each. 

Each block contains the data of a particular front line : 

- block #1 : default front line used in the static 40 and 43 campaigns, as well as in the beginning of the 44
campaign.

- blocks #2-20 : 19 front lines used in the dynamic 44-45 campaign from Normandy Front to Eastern Germany. 

STRUCTURE OF A BLOCK : 

Each block consists of 9-27 patterns, each coding for the coordinates of one point of the front line :

The first pattern codes for the down or right end point of the front line.

The last pattern codes for the upper or left end point of the front line.

A total of 29 patterns (points) are possible for one front line. 

Structure of a pattern (20 bytes) : 

bytes 0-7 : coordinates of a point. These data are coded (code unknown at the moment).

byte 7 : E9 to E4. Always E4 for the last pattern of a block. First pattern : E7 in blocks #1-6 and E9 in blocks #7-20

bytes 8-15 : always FF FF FF FF FF FF FF FF

byte 16 :   either 00 or 01. This byte determines whether the point is connected to the following one with a blue (or red) line on the mission maps. 00 : no line; 01 : line. (Points located in the sea have byte 16= 00)

bytes 17-19 : always 00 

End of a block : a repeat of sixteen bytes set to FF. 

The structure of a block can be edited to create new front lines, combining yet-existing point coordinates or creating new ones. 
--------------------------------------------------------------

I put together data from blocks #1 and #13 to create a front line which corresponds to the boundaries of France (Fl_France.zip).

The FRNTLINE.DAT files included in this package consist of only one block repeated 20 times and are designed for static campaigns or single missions.



***************************************************************
OVERALL STRUCTURE OF AIRFIELD.DAT
***************************************************************

The file consists of 162 chunks of 44 bytes that correspond to the 162 airfields available in EAW. The file does not contain all infos about the positions of the airfields, thus referring to other data files. It is thought to contain data about the nature of airfields, their orientation, the number and position of buildings ...

Structure of a chunk :

bytes 1-6	:	unknown, sometimes all 00
bytes 7,8	:	unknown, never 00
bytes 9-24	:	always OO
bytes 25-40	:	unknown, repeats of 0X 00
bytes 41,42	:	specific to a given airfield. The values increase accordingly to the positions of the 			airfields (from west to east)
bytes 43,44	:	always 00   

A better knowledge of these data should allow to modify the parameters of the airfields but, unfortunately, (still) not their positions.             

------------------------------------------
                Original       Original
BASE            bytes(d) in    code(h) in
                Airfield.dat   Squ*.dat
------------------------------------------
Abbeville	  4664-4707	6A
Achmer	          1936-1979	2C
Alconburg	  6512-6555	94
Altenstadt	  1804-1847	29
Amiens	          4884-4927	6F
Amsterdam	  4928-4971	70
Andrews Field	  7084-7127	A1
Audembert	  4532-4575	67
Bassingbourn	  6864-6907	9C
Beaumont le Roger  440-483	0A
Beauvais	   748-791	11
Berlin	          5060-5103	73
Biggin Hill	  3168-3211	48
Bissel	          1540-1583	23
Bodney	          3916-3959	59
Bonn	          5280-5323	78
Borkheide	  2200-2243	32
Boxted	            88-131	02
Brandis	          1848-1891	2A
Bremen	          4708-4751	6B
Briest	          2508-2551	39
Brunswick	  4752-4795	6C
Brussells	  5324-5367	79
Caen	          5412-5455	7B
Caffiers	  4620-4663	69
Cambrai	           704-747      10
Chailey	          3872-3915	58
Chartres	  4796-4839	6D
Chaumont	  4444-4487	65
Chelveston	  6732-6775	99
Cherbourg	  5588-5631	7F
Chievres	   792-835	12
Cormeilles	   924-967	15
Creil	          5808-5851	84
Croydon	          3388-3431	4D
Cuxhaven	  6248-6291	8E
Darmstadt	  6116-6159	8B
Debden	           132-175	O3
Deelen	           572-615	0D
Detling	          3344-3387	4C
Diepholz	  6160-6203	8C
Dortmund	  4840-4883	6E
Drope	          1496-1539	22
Dusseldorf	  4972-5015	71
Duxford	          3564-3607	51
Eastchurch	  3300-3343	4B
Echterdingen	  2816-2859	40
Eindhoven	   836-879	13
Evreux	           880-923	14
Florennes	   660-703	0F
Ford	          3740-3783	55
Framlingham	  6600-6643	96
Frankfurt	  5016-5059	72
Freiburg	  6468-6511	93
Funtington	  3960-4003	5A
Giebelstadt	  2684-2727	3D
Gravesend	  3080-3123	46
Great Dunmow	  7040-7083	A0
Grimbergen	   484-527	0B
Guyancourt	   968-1011	16
Halesworth	    44-87	01
Hamburg	          5148-5191	75
Hannover	  5236-5279	77
Hawkinge	  3476-3519	4F
Hethel	          6996-7039	9F
Holmsley South	  3784-3827	56
Hornchurch	  3036-3079	45
Horsham St Faith     0-43	00
Hurn	          3696-3739	54
Jever	          1100-1143	19
Juterbog	  2244-2287	33
Juvincourt	  1144-1187	1A
Kaltenkirchen	  2464-2507	38
Kenley	          3212-3255	49
Kiel	          5368-5411	7A
Kings Cliffe	  6776-6819	9A
Kirrlach	  2728-2771	3E
Knettishall	  6644-6687	97
Konigsburg	  5456-5499	7C
Laon	          6424-6467	92
Laval	          1188-1231	1B
Le Bourget	  2552-2595	3A
Le Culot	  1232-1275	1C
Le Havre	  2640-2683	3C
Le Mans	          4488-4531	66
Lechfeld	  4224-4267	60
Leipheim	  4180-4223	5F
Leipheim	  4312-4355	62
Leipzig	          5500-5543	7D
Leiston	           220-263	05
Lille	          5544-5587	7E
Lobnitz	          2288-2331	34
Lubeck	          6380-6423	91
Luneburg	  1276-1319	1D
Lympne	          3608-3651	52
Magdeburg	  5632-5675	80
Malmsheim	  2772-2815	3F
Mannheim	  5676-5719	81
Manston	          3124-3167	47
Marquise	  4576-4619	68
Martlesham	  2860-2903	41
Merston	          4048-4091	5C
Merzhausen	  1672-1715	26
Metfield	  6820-6863	9B
Metz	          6204-6247	8D
Middle Wallop	  3432-3475	4E
Morlaix	          5720-5763	82
Munich	          4356-4399	63
Munster	          6292-6335	8F
Needs Ore Point	  4136-4179	5E
Neuberg	          4268-4311	61
Newchurch	  4092-4135	5D
Nidda	          1716-1759	27
Nordhorn	  1452-1495	21
North Weald	  2904-2947	42
Northolt	  2992-3035	44
Nuremburg	  5764-5807	83
Nuthampstead	  6688-6731	98
Oldenburg	  1320-1363	1E
Oranienburg	  4400-4443	64
Paderborn	  1408-1451	20
Parchim	          1628-1671	25
Paris	          5852-5895	85
Pilsen	          5896-5939	86
Plantlunne	  1364-1407	1F
Poix	           396-439	09
Pommsen	          2156-2199	31
Quakenbruck	  1892-1935	2B
Rattlesden	  6556-6599	95
Raydon	           176-219	04
Reims	          5984-6027	88
Rennes	          5940-5983	87
Rhein-Main	  2596-2639	3B
Rheine	          6028-6071	89
Rochford	  2948-2991	43
Rosieres	  1056-1099	18
Rostock	          6072-6115	8A
Rotenburg	  1980-2023	2D
Salzwedel	  2024-2067	2E
Schiphol	   528-571	0C
Selsey	          4004-4047	5B
Shipdham	  6952-6995	9E
St Omer	           352-395	08
St. Dizier	  2068-2111	2F
St. Trond	  2112-2155	30
Stade	          1584-1627	24
Stuttgart	  6336-6379	90
Tangmere	  3256-3299	4A
Thorney Island	  3828-3871	57
Tours	          5192-5235	76
Twente	          2332-2375	35
Vannes	          1760-1803	28
Villacoublay	  1012-1055	17
Vitry	           264-307	06
West Malling	  3520-3563	50
Westhampnett	  3652-3695	53
Wevelghem	   308-351	07
Wiesbaden	  5104-5147	74
Wissant	          2376-2419	36
Woensdrecht	   616-659	0E
Wormingford	  6908-6951	9D
Wunstorf	  2420-2463	37
---------------------------------------

I noted that exchange of a chunk of an airfield with another one, does activate this latter and desactivates the first one.

This finding was used to move some allied bases from west to east, in order to play with frontlines #10 to 20 of the present package.


IMPORTANT !!!!!!!!! TO CAMPAIGN MAKERS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

These files may be used for creating new campaigns. However, be careful :

The codes of the newly-activated bases are different from the original ones. In fact, they correspond to those of the original airfields.

Here are the codes of the activated bases for the SQU*.DAT files. The others are unchanged and are listed in Charles Gunst's notes (the original codes are also listed above).

Frontline sets #1-9 ---------------
No code changes.
------------------------------------

Frontline sets #10-12 -------------
Reims     : 11 instead of 88
Wevelghem : 7B instead of 07
------------------------------------

Frontline sets #13-16 -------------
Metz      : 87 instead of 8D
Reims     : 11 instead of 88
Wevelghem : 7B instead of 07
------------------------------------


Frontline set #17 -----------------
Darmstadt : 4E instead of 8B
Frankfurt : 57 instead of 72
Kirrlach  : 53 instead of 3E
Mannheim  : 4A instead of 81
Merzhausen: 55 instead of 26
Metz      : 87 instead of 8D
Reims     : 11 instead of 88
Rhein-Main: 6F instead of 3B
Wevelghem : 7B instead of 07
Wiesbaden : 3A instead of 74
------------------------------------


Frontline set #18 -----------------
Bonn        :  59 instead of 78
Darmstadt   :  6F instead of 8B
Dortmund    :  4B instead of 6E
Dusseldorf  :  51 instead of 71
Frankfurt   :  06 instead of 72
Giebelstadt :  7B instead of 3D
Kirrlach    :  6D instead of 3E
Mannheim    :  11 instead of 81
Metz        :  88 instead of 8D
Munster     :  57 instead of 8F
Nidda       :  44 instead of 27
Paderborn   :  45 instead of 20
Rhein-Main  :  92 instead of 3B
Rheine      :  4E instead of 89
Rotenburg   :  46 instead of 2D
Wiesbaden   :  1A instead of 74
------------------------------------


Frontline sets #19,20 --------------
Bissel      :  46 instead of 23
Brunswick   :  06 instead of 6C
Diepholz    :  7F instead of 8C
Frankfurt   :  12 instead of 72
Giebelstadt :  36 instead of 3D
Hannover    :  6F instead of 77
Kirrlach    :  92 instead of 3E
Konigsburg  :  51 instead of 7C
Leipzig     :  49 instaed of 7D
Luneburg    :  4E instead of 1D
Magdeburg   :  45 instead of 80
Mannheim    :  1A instead of 81
Metz        :  2F instead of 8D
Munster     :  0B instead of 8F
Nidda       :  13 instead of 27
Nordhorn    :  7B instead of 21
Paderborn   :  1C instead of 20
Pommsen     :  59 instead of 31
Rhein-Main  :  30 instead of 3B
Rheine      :  79 instead of 89
Salzwedel   :  57 instead of 2E
Wiesbaden   :  0F instead of 74
Wunstorf    :  11 instead of 37
------------------------------------

Frontline set FL_France ------------
No code changes.
------------------------------------

Front line set #22 is based on Frontline #17 
but with Allied on the right and Axis on the left side.
It is dedicated to "East-Front"-type missions.

Airfields whose codes have changed (for Campaign developers)


Frontline set #22 -----------------
ALLIED
Based in Germany 
Bissel	     :  46 instead of 23      
Bonn         :  4D instead of 78
Brunswick    :  06 instead of 6C 
Diepholz     :  7F instead of 8C 
Dortmund     :  50 instead of 6E
Giebelstadt  :  36 instead of 3D
Hannover     :  6F instead of 77 
Konigsburg   :  51 instead of 7C	   
Leipzig	     :  49 instead of 7D          
Luneburg     :  4E instead of 1D   
Magdeburg    :  45 instead of 80   
Munster      :  0B instead of 8F
Nidda        :  13 instead of 27
Nordhorn     :  7B instead of 21   
Paderborn    :  1C instead of 20
Pommsen	     :  31 instead of 31          
Rheine       :  79 instead of 89
AXIS AIRFIELDS
Based in Germany :
Frankfurt    :  12 instead of 72
Kirrlach     :  92 instead of 3E
Mannheim     :  1A instead of 81
Rhein-Main   :  30 instead of 3B
Wiesbaden    :  0F instead of 74
Based in Belgium :
Brussels     :  89 instead of 79
Chivres     :  72 instead of 12
Florennes    :  74 instead of 0F
Grimbergen   :  8F instead of 0B
Le Culot     :  20 instead of 1C
St Trond     :  3B instead of 30
Based in Holland :
Eindhoven    :  27 instead of 13
Based in France :
Amiens       :  77 instead of 6F
Beauvais     :  37 instead of 11
Caen         :  21 instead of 7B
Juvincourt   :  81 instead of 1A
Laon         :  3E instead of 92
Metz         :  2F instead of 8D
St Dizier    :  8D instead of 2F
Vitry        :  6C instead of 06
Wissant      :  3D instead of 36
--------------------------------------

Known minor problem : besides the name of the base, the country of the original base is displayed. For example with frontline #18: 

30th June 1943, Giebelstadt, France.

Other problems : please let me know.


Dominique Legrand

Dominique.Legrand@univ-lille1.fr

July 2000
