DC-SDK has two targets. dc::sdk is a static library for tools and editors that work on Drift City's files and needs nothing beyond the standard library. dc::runtime is a header-only layer for mods that run inside the game, with the helper that rebases the executable's addresses to where Windows loaded it.
#include <dc/dc.h>
auto table = dc::xlt_read(L"VehicleList.xlt");
if (!table) return fail(table.error().message);
int name = table->col(L"Vehicle Name");
for (size_t i = 0; i < table->size(); ++i)
print(table->cell(i, name));
What it covers
- Archives: the game's NayaPack
.agtfiles, read, written, extracted whole and repacked from a folder. - Data tables: the 49 UTF-16 tables that hold the game's numbers.
- World files: the collision mesh, read and written, and readers for the LIF, LOI, CHPATH and XiPath2 formats.
- Classes: typed views over the game's 40 confirmed classes and stubs for Gamebryo's 511 across its 11 libraries.
- Data: 30-odd files of extracted tables, from vehicles and shops to quests and audio.
Errors come back as dc::Result values. The facts it is built on are written up in DC-Encyclopedia.