Warning
This project is no longer maintained.
I simply got fed up with C++.
To access dat values directly, you can instead use the python package genieutils-py.
Tip
genieutils-py also offers a way to dump the dat file into one big json file, if you are into that kind of thing. The command is described in its README file.
The keys are usually snake-cased versions of the CamelCase keys in the original genieutils (e.g. PlayerColours becomes player_colours).
Extract Unit and Tech data from the Age of Empires II dat file
This repository uses git submodules, so clone it like this:
git clone --recurse-submodules <url>
You will need cmake >3.0.0 and (some development dependencies).
cd code
mkdir build
cd build
cmake ..
cmake --build .
You should get a aoe2dat executable in the build folder.
Call the aoe2dat executable with your dat file as an argument, for example:
./aoe2dat ~/aoe/Aoe2DE\ proton/resources/_common/dat/empires2_x2_p1.dat
You will get some console output and two files will be created in your current directory:
full.jsonwhich contains all extracted data, andunits_buildings_techs.json, a subset of the data which is used for Halfon.
data->Civs[civ]->Units[i]->HitPoints
data->Civs[civ]->Units[i]->Type50->DisplayedAttack
data->Civs[civ]->Units[i]->Type50->DisplayedMeleeArmour
data->Civs[civ]->Units[i]->Creatable->DisplayedPierceArmour
data->Civs[civ]->Units[i]->Creatable->ResourceCosts[Type=0]->Amount //Food
data->Civs[civ]->Units[i]->Creatable->ResourceCosts[Type=1]->Amount //Wood
data->Civs[civ]->Units[i]->Creatable->ResourceCosts[Type=2]->Amount //Stone
data->Civs[civ]->Units[i]->Creatable->ResourceCosts[Type=3]->Amount //Gold