How to add a new Sector Map to SEOW
Posted: Fri 12 Jan 2007 5:25 am
Hi Everyone,
Many people have asked about how to add a new map to SEOW. In this thread we will tell you how. I encourage all the master map-builders (Prof, Hawk_5, Squog, Pavel, you know who you are!) to post here.
There are two main lines of effort involved in adding a map to SEOW. THe first is the data capture effort for the database, and the second is the map-making effort for the MP.
Data Capture
The following data needs to be captured from the FMB:
This is brute force work, especially for large European maps. Pacific/Asian maps have much smaller road networks. The method is to open the map in FMB and place a moving vehicle to drive along every stretch of road between each pair of intersections. In some maps this might give you several hundred moving vehicles as you cover all possible road routes between intersections (and to the edge of the map). Do the same for trains. Sometimes it is very hard to get trains to stick on the map. Save the FMB file and open it in a spreadsheet. The road coordinates for each of the vehicle routes are shown under the "[nn_Chief_Road]" headings, like the following:
Each record has 3 values, the "highway node" (X,Y,Z) coordinates. In the examples above, the first and last records for each Chief are where I click the vehicle waypoint (Z=120.00), while the other records are generated by FMB to following the internal highway node locations (Z=20.00). We want to capture the complete list for each Chief except the first and last nodes. Each of these Chief highway routes should be assigned a unique "Route" number and then entered into the Highways table of the database. Every route on every sector in SEOW has its OWN Route number. As an example, if we say Chief2 above represents Route 123456 in the Sector "Rhami Land", then we would add it to the Highways table as
The idea is that every route overlaps with another route. The same process goes for trains for the Railway_Waypoints table. Do not bother about updating the Highway_Intersections table - that is created by running a query in the MySQL database. For reference, I did all the roads and bridges in Khalkhin Gol in under 2 hours. But Paddington took a long time to do Gulf of Finland which is many times more complicated.
Bridges
Bridges are denoted in the roads and railways data by instances where Z < 0. In the example above we have the two lines
The two lines give the start and end coordinates of the bridge. The Z value is converted into the Bridge ID number by BridgeID = -Z-1. So for our example, BridgeID = -(-4)-1 = 4-1 = 3, i.e. Bridge 3. The length of the bridge is given by
In our example we see that Bridge 3 has length 400 m. The remainder of the fields in the Bridges table are easy enough to fill out, except Damage_Name. The Damage_Name is given by the BridgeID according to the corresponding entry in Bridge_Codes table.
Industrial Installations
As a rule of thumb, we usually consider any factory building with 3 or more chimneys as a valid major factory installation, and any fuel dump with 6 or more fuel tanks as a valid fuel facility. In FMB, locate all such facilities on the map and place a stationary object INSIDE the fuel tank or factory. Save the FMB file and find the X,Y,Z coordinates of the stationaries and use them to build new records for the Industrial_Installations table. In that table you can ignore the Sm_x,Sm_y,Sm_z,Sm_h,Destruction_Code,Event_Date and Production_Points fields, but the other fields are all necessary. Every factory and fuel dump should have its own unique name. Stick to the naming conventions already in the table.
Tile Map Codes
This is really easy and fun. Open the map in FMB, select the Destruction tool, choose Destruction level Maximum, choose maximum Cursor width, click on the map, press "f" and move the mouse. You will paint all destroyable map tiles (green squares) over the whole map bright red. Save the FMB file. Open it up and you will see many lines of weird codes at the end of the file. You need to capture these with the new sector name into the Tile_Map_Codes table. No X,Y,Z coords needed as this information is already encoded into the tile codes.
Airbases
The idea here is to use FMB to capture landing and takeoff points for each airbase. By convention we land at the western end and takeoff at the eastern end where possible. The X,Z coords need to be entered into the Airbases table. Also identify what type of layout each airbase has (by reference to the SEOW Airbase Layouts PDF available from the donload site). In some cases a new airbase is encountered, so a new Airbase Layout must be built.
Now for the data defaults. Most of these can be done simply by copying data from other sector records in the tables, but some care must be given to Army_Units, Sector_Seasons and Resupply_Points.
Army_Units
This is where you specify the names of the Allied and Axis army divisions that will be ued to name platoons in the template. The Division Names are arbitrary, but the remainder of the fields must remain in standard format. Make sure you give at least 2 or 3 divisions of each type "V","T","A" and "E" to each side. You can have the same Division_Name in different sectors if you like.
Sector_Seasons
THis table contains information about whether the sector uses the same FMB map all year around, or swaps between summer and winter forms, e.g. Moscow has a green summer map and a white winter map. This swapping is specified in SEOW by putting the respective map loader strings in the "Summer_Map" and "Winter_Map" fields. For Moscow the two map loader strings are
These map loader strings are found in FMB files near the top. Sector_Seasons also contains the dates on which Summer switches to Winter, and Winter to Summer. These dates are written as numbers in MMDDhhmm format, so "04010000" means "1 April at 00:00 hours". Map summer/winter dawn and dusk times are given to regulate the use of airfield lighting throughout the year.
Resupply Points
Again, some air, ground and sea resupply points should be added to the Resupply_Points table, where appropriate. The Supply_Point field is just an arbitrary name, but all other fields must be entered strictly in format. The Point_Z field for air supply points indicates the spawn altitude of aircraft using the point.
OK, that is about it for data capture. Airbases and roads are usually the hardest parts. Next, we will talk about the MP mapping side of things ...
Cheers,
4Shades
Many people have asked about how to add a new map to SEOW. In this thread we will tell you how. I encourage all the master map-builders (Prof, Hawk_5, Squog, Pavel, you know who you are!) to post here.
There are two main lines of effort involved in adding a map to SEOW. THe first is the data capture effort for the database, and the second is the map-making effort for the MP.
Data Capture
The following data needs to be captured from the FMB:
- Roads and Railways (all of them!)
Bridges (defined by Road and Railway data)
Industrial Installations (factories and fuel dumps)
Tile Map Codes (from the Destruction Viewer in FMB)
Airbases
- Army divisions in Army_Units
Climatic settings in Sector_Climate
Opposing forces in Sector_Dominance
Recon effect parameters in Sector_Recon_Parameters
FMB map strings and seasonal changes in Sector_Seasons
Resupply points
This is brute force work, especially for large European maps. Pacific/Asian maps have much smaller road networks. The method is to open the map in FMB and place a moving vehicle to drive along every stretch of road between each pair of intersections. In some maps this might give you several hundred moving vehicles as you cover all possible road routes between intersections (and to the edge of the map). Do the same for trains. Sometimes it is very hard to get trains to stick on the map. Save the FMB file and open it in a spreadsheet. The road coordinates for each of the vehicle routes are shown under the "[nn_Chief_Road]" headings, like the following:
Code: Select all
[1_Chief_Road]
13121.03 39863.88 120.00 0 14 3.055555582046509
13100.00 39100.00 20.00
13100.00 37700.00 20.00
13300.00 37500.00 20.00
13300.00 36300.00 20.00
14100.00 35500.00 20.00
14100.00 33300.00 20.00
14900.00 32500.00 20.00
14900.00 31500.00 20.00
15900.00 30500.00 20.00
15900.00 30100.00 20.00
16300.00 29700.00 20.00
16300.00 29300.00 20.00
16359.55 28979.78 120.00
[2_Chief_Road]
24502.58 12659.96 120.00 0 19 3.055555582046509
24500.00 12900.00 20.00
24300.00 13100.00 20.00
24300.00 15100.00 20.00
23700.00 15700.00 20.00
23700.00 15900.00 120.00
23700.00 16300.00 20.00
23700.00 16700.00 20.00
23700.00 16900.00 -4.00
23700.00 17300.00 -4.00
23700.00 17500.00 20.00
23700.00 17700.00 20.00
23100.00 18300.00 20.00
22900.00 18300.00 20.00
22500.00 18700.00 20.00
22300.00 18700.00 20.00
22100.00 18900.00 20.00
22100.00 19100.00 20.00
21935.15 19317.45 120.00
Code: Select all
Route X_Axis Y_Axis Orientation Waypoint_Number Map
123456 24500.00 12900.00 20.00 1 "Rhami Land"
123456 24300.00 13100.00 20.00 2 "Rhami Land"
123456 24300.00 15100.00 20.00 3 "Rhami Land"
123456 23700.00 15700.00 20.00 4 "Rhami Land"
123456 23700.00 15900.00 120.00 5 "Rhami Land"
123456 23700.00 16300.00 20.00 6 "Rhami Land"
123456 23700.00 16700.00 20.00 7 "Rhami Land"
123456 23700.00 16900.00 -4.00 8 "Rhami Land"
123456 23700.00 17300.00 -4.00 9 "Rhami Land"
123456 23700.00 17500.00 20.00 10 "Rhami Land"
123456 23700.00 17700.00 20.00 11 "Rhami Land"
123456 23100.00 18300.00 20.00 12 "Rhami Land"
123456 22900.00 18300.00 20.00 13 "Rhami Land"
123456 22500.00 18700.00 20.00 14 "Rhami Land"
123456 22300.00 18700.00 20.00 15 "Rhami Land"
123456 22100.00 18900.00 20.00 16 "Rhami Land"
123456 22100.00 19100.00 20.00 17 "Rhami Land"
Bridges
Bridges are denoted in the roads and railways data by instances where Z < 0. In the example above we have the two lines
Code: Select all
23700.00 16900.00 -4.00
23700.00 17300.00 -4.00
Code: Select all
length = SQRT((X1-X2)*(X1-X2) + (Y1-Y2)*(Y1-Y2))
Industrial Installations
As a rule of thumb, we usually consider any factory building with 3 or more chimneys as a valid major factory installation, and any fuel dump with 6 or more fuel tanks as a valid fuel facility. In FMB, locate all such facilities on the map and place a stationary object INSIDE the fuel tank or factory. Save the FMB file and find the X,Y,Z coordinates of the stationaries and use them to build new records for the Industrial_Installations table. In that table you can ignore the Sm_x,Sm_y,Sm_z,Sm_h,Destruction_Code,Event_Date and Production_Points fields, but the other fields are all necessary. Every factory and fuel dump should have its own unique name. Stick to the naming conventions already in the table.
Tile Map Codes
This is really easy and fun. Open the map in FMB, select the Destruction tool, choose Destruction level Maximum, choose maximum Cursor width, click on the map, press "f" and move the mouse. You will paint all destroyable map tiles (green squares) over the whole map bright red. Save the FMB file. Open it up and you will see many lines of weird codes at the end of the file. You need to capture these with the new sector name into the Tile_Map_Codes table. No X,Y,Z coords needed as this information is already encoded into the tile codes.
Airbases
The idea here is to use FMB to capture landing and takeoff points for each airbase. By convention we land at the western end and takeoff at the eastern end where possible. The X,Z coords need to be entered into the Airbases table. Also identify what type of layout each airbase has (by reference to the SEOW Airbase Layouts PDF available from the donload site). In some cases a new airbase is encountered, so a new Airbase Layout must be built.
Now for the data defaults. Most of these can be done simply by copying data from other sector records in the tables, but some care must be given to Army_Units, Sector_Seasons and Resupply_Points.
Army_Units
This is where you specify the names of the Allied and Axis army divisions that will be ued to name platoons in the template. The Division Names are arbitrary, but the remainder of the fields must remain in standard format. Make sure you give at least 2 or 3 divisions of each type "V","T","A" and "E" to each side. You can have the same Division_Name in different sectors if you like.
Sector_Seasons
THis table contains information about whether the sector uses the same FMB map all year around, or swaps between summer and winter forms, e.g. Moscow has a green summer map and a white winter map. This swapping is specified in SEOW by putting the respective map loader strings in the "Summer_Map" and "Winter_Map" fields. For Moscow the two map loader strings are
Code: Select all
Summer: Moscow/sload.ini
Winter: Moscow/load.ini
Resupply Points
Again, some air, ground and sea resupply points should be added to the Resupply_Points table, where appropriate. The Supply_Point field is just an arbitrary name, but all other fields must be entered strictly in format. The Point_Z field for air supply points indicates the spawn altitude of aircraft using the point.
OK, that is about it for data capture. Airbases and roads are usually the hardest parts. Next, we will talk about the MP mapping side of things ...
Cheers,
4Shades