Caesar 3 Scenario Format

This is the single easiest file format to deal with. All scenario files are exactly the same size: 211692 bytes. While some blocks of data are still unknown to me, here's what I have figured out:

Offset (hex) Length (bytes) Description
0x0 52488 Short grid, graphic IDs. Each ID corresponds to a different graphic element / building
0xcd08 26244 Byte grid, edge data
0x1338c 52488 Short grid, terrain data
0x20094 26244 Byte grid, related to "randomness" in terrain. 00 or 20 (hex), 01 or 21 for 2x2 buildings, etc
0x26718 26244 Byte grid, random numbers used for, among others: merging houses, tile appearance, minimap colours
0x2cd9c 26244 Byte grid, indicates the elevation level: 0 for the "ground" level, 1 for the first elevation level, 2 for the second, and so on
0x33428 8 Camera X and Y position, 4 byte integer each
0x33430 2 Starting date, negative for BC
0x33434 1 Empire location, 00 = Lugdunum, etc
0x3343e 160 20 requests, divided into 4 parts of 20 shorts: (1) years into mission, (2) good ID, (3) amount, (4) time to fulfill in months
0x334de 200 20 invasions, divided into 5 parts of 20 shorts: (1) years into mission, (2) type: 0 = none, 1 = barbarian, 2 = enemy, 3 = distant battle, (3) number of invaders, (4) attack point, 0-7 or 8 for random, (5) attack: 0 = food, 1 = gold, 2 = buildings, 3 = troops, 4 = random
0x335a8 4 Starting funds
0x335ac 4 Enemy nationality
0x335b4 8 Map width and height, both integers, both should be the same value
0x335c4 24 Brief description
0x33822 1 Image ID
0x33826 1 Rank: 0 = citizen, etc
0x33828 16 Herd points, split up in 2 chunks of 4 shorts each. First chunk is X coordinate, second is Y coordinates
0x338b0 100 Price changes, 1x 20 shorts plus 3x 20 bytes. (1) year, (2) good ID, (3) amount, (4) 0 = fall, 1 = rise
0x33928 44 Special events. In order: gladiator revolt flag, gladiator revolt year, change of Emperor flag, change of Emperor year, sea / land trade problem flags, Rome raises / lowers wages flags, contaminated water flag, iron mine collapse flag, and clay pit flooded flag
0x33954 32 Fishing points, see herd points
0x33974 20 Requests: favour gained
0x339ec 2 Rome supplies wheat flag
0x339f2 94 Short flags: enable/disable buildings
0x33a54 16 Rating requirements (integers): culture, prosperity, peace, favor
0x33a64 4 Flags whether ratings are required: culture, prosperity, peace, favor
0x33a68 8 Flag and value in years, integer each: Time limit (losing time)
0x33a70 8 Flag and value in years, integer each: Survival time (winning time)
0x33a78 8 Earthquake type and year, integer each. Type: 0 = none, 1 = minor, 2 = average, 3 = major
0x33a80 8 Flag and value, integer each: population requirement
0x33a88 4 Earthquake point, X and Y coordinates, short each
0x33a8c 8 People entry and exit point
0x33a94 32 8 invasion points, see fish points
0x33ab4 8 River entry and exit point
0x33abc 4 Rescue loan
0x33ac0 12 3 milestones: 25%, 50%, 75%
0x33ad8 1 Climate: 0 = central, 1 = northern, 2 = desert
0x33ad9 2 Flag: flotsam on

Last modified on 2008-07-06 15:15:57