If `dObject[dx][dy]` is zero, then `pn = -1`, which causes an
out-of-bounds access to object. If the memory `object[-1]._otype`
is either 84 or 85, then the player is randomly teleported to the
location of the Vile Betrayer quest. This can be triggered either
by interacting with a holy shrine or by casting phasing.
"Wherever you go, there you are"
- Add file documentation to about 1/4 of the files in Source
- Copy over a lot of the documentation from the sanctuary/notes repo
- Standardise all the existing documentation
- Create a configuration for Doxygen
- Add more documentation (engine.cpp is now fully documented)
With this change, all exported declarations of Devilution are now
compatible with the C-ABI; that is, all declarations of Source/*.h.
This makes it possible to link against DevilutionX from mods written in
other languages than C++, for instance Rust, Go or Python.
Updates #612.
Now diablo.h is treated in the same way as all other header files of
Source, as it only contains the declarations of global variables and
functions of diablo.cpp.
Besides consistency, this also enables mods to include diablo.h just
like any other header file without having to include every header file
(and without having to include C++ specific aspects of the now all.h).
MFILE_NONE does not correspond to the last item of misfiledata array and
is actually greater than the length of that array causing out-of-bounds
crash on iOS (reproduced when applying rogue's Disarm Trap skill).