One of the rare cases where explicitly spelling out the FP_SEG() cast
is better than just calling the C++ wrapper: To drive home the point
that this code relies on `far` pointer semantics. Running the dialog
script performs arithmetic on only the offset part of this pointer, and
the segment part must remain unchanged for this hmem_free() call to
work as intended.
Completes P0186, funded by [Anonymous] and Blue Bolt.
This gets rid of a couple of per-entity sprite bitplane types, makes
sprite declarations easier to read by putting width and height next to
each other… and points out a number of array dimension mistakes -.-
Even in places where we can't use it.
Part of P0138, funded by [Anonymous] and Blue Bolt.