- Fixed: TicSpecial::CheckSpace() never thought it ran out of space due to
unsigned math.
- Fixed: TicSpecial::GetMoreSpace() assumed only relatively small amounts
of data would be written at a time so made no effort to ensure it
actually got enough space. This assumption could be violated by writing
a very long string, which can happen when replicating a string cvar.
- The definition of FxGlobalFunctionCall_CheckClass was big and scary. I
would say this is a big improvement, since now it gets to leverage the
same framework that action functions use.
- The definition of FxGlobalFunctionCall_IsPointerEqual was not so big and
scary, so this can't be called so much of an improvement as
CheckClass was. (Which is not to say that it isn't better anyway.)
- This replaces the general extensibility that had existed formerly
in thingdef_function.cpp. Parameter parsing for function calls is
shared with state parameter parsing. Functions are defined exactly in
the same way as action functions, but without the 'action' keyword.
- Rippers will rip through anything with an equivalent ripper level, or if their level is between or on the min and max ranges.
- If no min or max is defined, it simply checks if the monster's ripper level is lower than the missiles.
- Functions: A_SetRipperLevel(int level), A_SetRipMin(int min), A_SetRipMax(int max)
- Properties: RipperLevel, RipLevelMin, and RipLevelMax.
- RipperLevel: Applicable to monsters and projectiles.
- RipLevelMin and RipLevelMax are only useful on monsters.
- By default, all are 0.
- Explicitly size and position the text cursor in
FListMenuItem::DrawSelector() the same way that the options menu does it
using M_DrawConText(): By sizing it to a scaled 8x8 cell.
- Take advantage of the new _Pragma operator to hide the printf warning
suppression inside of macros instead of needing to litter the code
around Printfs with a bunch of junk.
- Fixed: When DSBarInfo::DrawGraphic() is used scaled, without fullscreen
offset, if one of the top and left clip locations was 0 and the other
was non-0, the 0 one would be clipped to the edge of a 4:3 box centered
on the screen instead of the edge of the screen.
- Fixed: Using +set cvarname and +cvarname on the command line would not
work if cvarname was defined in CVARINFO. This should be the proper way to fix
it. Rather than move all command line execution after loading CVARINFO,
keep command line execution before wads are loaded. If an attempt is
made to set an unknown cvar or to run an unknown command (which could
potentially be shorthand for setting an unknown cvar), save it and try
running it again after all CVARINFOs have been handled.
- Fixed: Script arrays didn't work in named scripts because the loader
read the script number as an unsigned word, hence it would never find
named scripts, since they are stored with negative numbers.