DonutsSDK has two halves. One is a library with no dependencies for reading and writing The Simpsons: Hit & Run's file formats. The other is a header-only runtime layer for plugins that run inside the game, rebased for the retail executable.
Nothing in it is guessed: the class model, 1,228 vtables of it, is read from the compiler's own RTTI in Simpsons.exe, and our diagnostic tool SAHRDiag re-derives it on demand.
#include <donutsdk/mod.hpp>
using namespace donutsdk;
void my_mod() {
auto& game = shar::process(); // rebased for the retail exe
}
What it covers
Besides the file formats and the class model, it documents the subsystems mods tend to need: the fades, letterboxes and iris wipes that run between areas, interiors and their entrances, actions and animation, and the event protocol that drives them. The tables behind it ship as data, the same data HnREncyclopedia is written from.
