`CelOutputBuffer` now contains an `SDL_Surface` and an `SDL_Rect`.
We now have access to SDL surface manipulation functions.
`gpBuffer` and `gpBufEnd` are completely gone 🧹
This results in some FPS loss (250 -> 195) recovered in a subsequent
commit.
- 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)
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).
While no storm functions are called from these source files
it is determined that they included storm in the original
source files as made visible by the inclusion of infinity
in the data segments of the respective source files.
ref: diasurgical/devilution#1695.
Rationale described in sanctuary/notes@cb8812d1a605b363a90707a375ed4de999b13665
as included below:
Note, the BarColor and BarPos globals don't have
PSX debug info. However, the progress bar is
referred to as "barfoo" in other parts of the
PSX debug info, e.g.
// register: 21
register unsigned char barr;
// register: 16
register unsigned char barg;
Thus, we apply a similar naming convention for BarColor
and BarPos, using CamelCase as is conventional for global
variables in Diablo 1.