Hârn Maps CC2 Templates
Modifying and expanding Hârn CC2 vector Maps.
Colour Text: Code: public class
| 900px |
Note: Green = I Have, Red = Don't Have, Orange = Old Scan, Blue = Misc, Black = ALL Base (Template)
Contents
Hârn Map Templates
- A
- A
CC2
- A
- A
.FCW File Format
From: http://www.profantasy.com/DEVZONE/FileFormat1.htm
File Format
CC2 maps are stored on disk in a binary format with an FCW file extension. Each individual file consists of a header followed by a copy of the database of entities that make up the map. With this knowledge in hand, the best place to find out about the file format is the XP toolkit.
The XP toolkit.
The toolkit is filled with many different files for both assembly language programmers and for C programmers. Since the C files are not complete, we'll look at the assembly language files. The CPY files are the assembly files. Inside the CPY files we find the blueprints for the FCW file. But, just like real blueprints, it takes some special knowledge to understand them.
Looking at the HEADER.CPY file we see what comprises the file header:
; =============================================================== ; HEADER.CPY - Header and File ID data structures ; =============================================================== ; Copyright 1996 Evolution Computing ; All rights reserved ; Written by Susan Montooth 2/15/96 ; =============================================================== ; FILE ID (File identifier bytes) ; =============================================================== DBVERSION equ 24 ;correct current database FileID struc ProgID SBYTE 'FCW (FastCAD for Windows) ' VerText SBYTE versionStr ;version # as text (4 bytes) VerTextS SBYTE SubVer ;beta version SBYTE ' ' SBYTE 13,10,26 ;terminating chars for DOS Type cmd. DBVer SBYTE DBVERSION Compressed SBYTE 0 ;1 = compressed file SBYTE 78 dup (0) ;filler SBYTE 0FFh ;end marker (total 128 bytes) FileID ends
Lets look at a few individual lines and get general understanding of what they represent:
DBVERSION equ 24 ;correct current database
This line sets the variable DBVERSION equal to the number 24
FileID struc ... FileID ends
The file system is organized and the different sub-systems (file-id, layers, line styles, ...) are logically grouped in something called structures. Structures begin with a name followed by the keyword 'struc' and continues until the name appears again and is followed by the keyword 'end'. For example, file FIleID holds the entire description of the file header.
ProgID SBYTE 'FCW (FastCAD for Windows) '
The first line of the FileID structure defines the variable ProgID as an SBYTE and sets it equal to 'FCW (FastCAD for Windows) '. An SBYTE is the assembly language version to a string, so ProgID is 26 bytes (characters) long and are the first 26 bytes in the file.
Counting bytes we see that the 49th byte holds the Compressed flag. We can only work on Uncompressed files so the first thing we need to do as we start to delve into the file format is to check this byte to make sure that it holds a zero. The entire file header is 128 bytes long.
Looking farther down in the HEADER.CPY file, we see that within the database header:
BColor WORD 0 ;background color
What we are interested today is the first byte of the Bcolor word. Since CC2 only has 256 colors, the other three bytes of the WORD are not used in the current version of CC2. Counting bytes again, we see that the 157th byte holds the background color.
I’ve written a little Visual Basic program that will load a CC2 v6 file, "TEST.FCW" from the programs directory, into memory and after checking to see if the file is compressed, will change the background color to 150, a particularly vivid shade of orange. It then saves the file as "OUT.FCW".
Look at the code … run the program and do some experiments. Try to change the current color, layer or the last tag number that was used. Later we will be expanding on this simple program to add more and more functionality.
- Download the XP Toolkit link title
- Download the Visual Basic program and code for "ParseFile.exe". link title
Files
See: \ScrapBook\data\20110729084452
Hârn Expanded.FCW
Modifying and expanding on the base map.
UNUSED
Split/Expand
New Layer Type
Layers
- Background
- Coastline
- Contours Layers
- Separate into 1,000
- Separate into 500
- Separate into 100
- Separate into 10
- Separate into 5
- Separate into 1
- Game Master Only
- HEX/SQUARE GRID
- Separate into Regional Grid
- Separate into Sub-Regional Grid
- Separate into 5 League Hex Grid
- Separate into Latitude-Longitude Major
- Separate into Latitude-Longitude Minor
- Separate into Atlas Hexes
- Separate into Sub-Atlas Hexes
- Separate into
- Hotspots ~ the links
- Labels - Features
- Labels - Political
- Labels - Settlements
- Map Border
- MERGE
- Political
- Roads
- Separate into Roads (Paved)
- Separate into Road (Unpaved)
- Separate into Trail
- Settlements
- Separate into Major Town / City
- Separate into Local Town
- Separate into
- Separate into
- Separate into
- Separate into
- Separate into
- Separate into
- Separate into
- STANDARD
- SYMBOL DEFINITION
- Topography
- Vegetation
- Separate into Evergreen Hardwood
- Separate into Steppe / Prairie Grassland
- Separate into Savannah / Savannah Woodland / Raingreen Forest / Woodland Tropical Scrub
- Separate into Semi-Desert
- Separate into Desert
- Separate into Sub-Tropical Rainforest
- Separate into Tropical and Equitorial Rainforest
- Separate into Mixed Woodland
- Separate into Mixed (Summergreen) Forest
- Separate into Needleleaf Forest
- Separate into Alpine
- Separate into Mountains
- Separate into Highlands / Hills
- Separate into Water
- Separate into Swamp / Marsh
- Water
- Separate into Sea
- Separate into Lakes
- Separate into Rivers
- Separate into Stream
- Separate into Waterfalls
- Separate into Rapids
- A
- A
- A
- A
- Features
- Separate into Special Site
- A
- A
A
- A
- A
A
- A
- A
Table Template
| Name | Product | Product # | Product # | Year | Page count | Category | Notes |
|---|---|---|---|---|---|---|---|
| (Atlas Hârnica) C6 | HârnQuest | COL5000-C6 | CG | 2011 | 1 | Atlas Hârnica | western Rethem, original release possibly in 2010 with revision in 2011 |
| (Atlas Hârnica) Rethem D6 | HârnQuest | COL5000-D6 | CG | 2011 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) D7 | HârnQuest | COL5000-D7 | CG | 2004 | 1 | Atlas Hârnica | northwestern Kanday |
| (Atlas Hârnica) D8 | HârnQuest | COL5000-D8 | CG | 2004 | 1 | Atlas Hârnica | western Kanday |
| (Atlas Hârnica) D9 | HârnQuest | COL5000-D9 | CG | 2004 | 1 | Atlas Hârnica | southwestern Kanday |
| (Atlas Hârnica) Rethem-Tharda E6 | HârnQuest | COL5000-E6 | CG | 2015 | 1 | Atlas Hârnica | Rethem (Menekai) |
| (Atlas Hârnica) Kanday-Rethem-Tharda E7 | HârnQuest | COL5000-E7 | CG | 2011 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) E8 | HârnQuest | COL5000-E8 | CG | 2009? | 1 | Atlas Hârnica | eastern Kanday (including Aleath), is 2009 correct year? |
| (Atlas Hârnica) E9 | HârnQuest | COL5000-E9 | CG | 2004 | 1 | Atlas Hârnica | southeastern Kanday |
| (Atlas Hârnica) Kanday-Tharda F7 | HârnQuest | COL5000-F7 | CG | 2016 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) Arathel G2 | HârnQuest | COL5000-G2 | CG | 2015 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) Orbaal H1 | HârnQuest | COL5000-H1 | CG | 2016 | 1 | Atlas Hârnica | Orbaal (Pled) |
| (Atlas Hârnica) Orbaal H2 | HârnQuest | COL5000-H2 | CG | 2015 | 1 | Atlas Hârnica | Orbaal (Geldeheim) |
| (Atlas Hârnica) Misyn H4 | HârnQuest | COL5000-H4 | CG | 2014 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) Misyn (Araka-Kalai) H5 | HârnQuest | COL5000-H5 | CG | 2015 | 1 | Atlas Hârnica | |
| (Atlas Hârnica) Orbaal J1 | HârnQuest | COL5000-J1 | CG | 2016 | 1 | Atlas Hârnica | Orbaal (Sherwyn) |
| (Atlas Hârnica) J4 | HârnQuest | COL5000-J4 | CG | 2009 | 1 | Atlas Hârnica | northern Kaldor |
| (Atlas Hârnica) J5 | HârnQuest | COL5000-J5 | CG | 2004 | 1 | Atlas Hârnica | Kaldor (including Tashal and Olokand), HQ6 |
| (Atlas Hârnica) J6 | HârnQuest | COL5000-J6 | CG | 2005 | 1 | Atlas Hârnica | southwestern Kaldor and parts of Evael, HQ7 |
| (Atlas Hârnica) K4 | HârnQuest | COL5000-K4 | CG | 2006 | 1 | Atlas Hârnica | northeastern Kaldor and parts of Azadmere, HQ10 |
| (Atlas Hârnica) Kaldor K5 | HârnQuest | COL5000-K5 | CG | 2004 | 1 | Atlas Hârnica | eastern Kaldor (including Kiban and Minarsas), HQ9 |
| (Atlas Hârnica) K6 | HârnQuest | COL5000-K6 | CG | 2006 | 1 | Atlas Hârnica | southeastern Kaldor (including Qualdris), HQ8 |
| (Atlas Hârnica) L5 | HârnQuest | COl5000-L5 | CG | 2007 | 1 | Atlas Hârnica | Azadmere, HQ11 |
| (Atlas Hârnica) Haralen L6 | HârnQuest | COL5000-L6 | CG | 2012 | 1 | Atlas Hârnica | Kaldor |
| (Heraldry) Azadmere, Chybisa, and Evael | EH1 | COL6001 | CG | 1984 | 1 | Heraldry | |
| (Heraldry) Harbaal | Hârnlore 11 | COL9011 | CG | 1992 | 1 | Heraldry | |
| (Heraldry) Shorkyne | Hârnlore 10 | COL9010 | CG | 1992 | 1 | Heraldry | |
| (Badges) Guilds of Hârn | Son of Cities | COL5015 | CG | 1987 | 2 | Heraldry | |
| Azadmere | EH1 | COL6001 | CG | 1984 | Atlas Hârnica | did this come with a separate "settlement" page like the others? | |
| Chybisa | EH10 | COL6010 | CG | 1984 | 2.1 | Atlas Hârnica | |
| Kaldor (Gardiren) | EH5 | COL6005 | CG | 1984 | 2.1 | Atlas Hârnica | |
| Kaldor (Hutop) | EH4 | COL6004 | CG | 1984 | 2.1 | Atlas Hârnica | |
| Kaldor (Kiban) | EH6 | COL6006 | CG | 1984 | Atlas Hârnica | ||
| Kaldor (Minarsas) | EH8 | COL6008 | CG | 1984 | Atlas Hârnica | ||
| Kaldor (Olokand) | EH3 | COL6003 | CG | 1984 | Atlas Hârnica | ||
| Kaldor (Qualdris) | EH7 | COL6007 | CG | 1984 | 2.1 | Atlas Hârnica | |
| Kaldor (Tashal) | EH2 | COL6002 | CG | 1984 | 2.1 | Atlas Hârnica | |
| Orbaal (Geldeheim) | EH13 | COL6013 | CG | 1984 | 2.1 | Atlas Hârnica |
Notes
- A
- A