DO/CTL

From Dark Omen Wiki

(Difference between revisions)
Jump to: navigation, search
m (__TOC__)
(Structure)
Line 2: Line 2:
== Structure ==
== Structure ==
-
Every file starts with 32 00 00 00, which we can assume to be a file version or ID number. The files seem to consist of a number of sections, each delimited by a FF FF FF FF value. Some CTL files have the last section identified by FF FF FF nn, though, so the last byte could be a section type indicator. The FF FF FF FF marks the start of a new section. So every block, including the block start DWORD (0xFFFFFFFF) consists of coordinate values because the size of the block divided by 12 is always an even number, the size of a dword (4) * the dwords in a coordinate triple (3). Perhaps it could also be 2D coordinates. The size of a block excluding the FFFFFFFF intro divided by 8 is always an even number".
+
Every file starts with 32 00 00 00, which we can assume to be a file version or ID number.  
 +
 
 +
 
 +
* The first INT is a version number / id.
 +
* The file is read as a series of signed integers.
 +
* At the beginning of a file, there is an offset table.
 +
 
 +
You can tell how big it is because it stops at the first offset listed.
 +
* offsets divide the file into chunks.
 +
* The first 49 chunks of each file are the same for every CTL file, thereafter they are different.
 +
 
 +
This, along with the fact that there appear to be two types of integer token, those with bit 15 set and those without, leads me to believe that this is scripting code (with 49 script functions that are common to each map).
 +
 
 +
The effect of moving units around is also a reasonable outcome of this hypothesis, since the areas that the units moved to are those specified in the BTB. i.e. the traders and goblins swapped and didn't move to random areas. So the scripts may be moving units between predefined points
== Further Actions ==
== Further Actions ==

Revision as of 22:49, 29 August 2008

Contents

Structure

Every file starts with 32 00 00 00, which we can assume to be a file version or ID number.


  • The first INT is a version number / id.
  • The file is read as a series of signed integers.
  • At the beginning of a file, there is an offset table.

You can tell how big it is because it stops at the first offset listed.

  • offsets divide the file into chunks.
  • The first 49 chunks of each file are the same for every CTL file, thereafter they are different.

This, along with the fact that there appear to be two types of integer token, those with bit 15 set and those without, leads me to believe that this is scripting code (with 49 script functions that are common to each map).

The effect of moving units around is also a reasonable outcome of this hypothesis, since the areas that the units moved to are those specified in the BTB. i.e. the traders and goblins swapped and didn't move to random areas. So the scripts may be moving units between predefined points

Further Actions

Simple Tests using the CTL file other Maps, has shown that CTL files dictate where the starting points of enemy AI units are. Although in early testing, it appears that it may dictate where off map units are placed. For example, swapping B204.CTL with B101.CTL produced:

b204ctlex2.jpg

As can be seen, the Goblins have now started in the Village and the Peasants are now up on the Cliff. More tests to follow, as all information will contribute to the Map Editor and beyond. Therefore allowing new Single Player Campaigns to be created, where the enenmy, who can already be switched between Races will now be able to appear in different locations, that will catch even the most experienced Player out.

Personal tools
communication