- Move MUSINFO change request out of FLevelLocals and into player_t. This
allows the MusicChanger actors to change music for each player
independantly. This is similar to PrBoom+, which switches depending on
the displayplayer. The difference being, we don't actually track the
music other players are listening to. (Which might not be a bad idea to
implement at some point.)
- Moved a few fields in player_t for better packing.
This reverts commit 5977cb04d9.
- It breaks at least one mod (Complex Doom) and who knows how many others.
Considering how long A_Die has been around, a random "fix" like this is
probably not a good idea. [P.S. Missiles have health and can be damaged
by P_DamageMob, so it's not like it never did anything on missiles.]
- 'monster' and 'items' can now filter the list if an argument is passed (like with 'kill');
- added 'countitems', which will show only the 'count items' in the current map, with the same filter parameter as 'monster' and 'items'.
- reorganize the code to reduce the duplication.
- Member variables are now declared all in one place: InitThingdef(). They
are not partially defined in thingdef_expression.cpp and further refined
in actor.txt.
- This left ParseNativeVariable() parsing only functions, so it has been
renamed to ParseNativeFunction().
- Note that their declarations in InitThingdef() are expected to be
temporary.
- I kept getting confused trying to read these instructions, so now their
disassembly looks more MIPS-like:
* All mnemonics have had 'b' prepended to them for "branch".
* The CMP_CHECK bit alters the displayed mnemonic for the inverted
versions. e.g. BEQ can be displayed as BNE.
* The following JMP instruction that encodes the branch destination has
been folded into the disassembly of the branch instruction. Unlike
MIPS, I chose to display it offset from the branch check with =>
instead of another comma.
- GetSystemMetrics can lie about the window border sizes, so we can't
trust it if the executable is flagged as Vista-targetting
(default behavior for VS2012/2013).
- Clang's optional runtime array bounds checking doesn't understand when we
intentionally "overflow" by doing this:
RGB32k[0][0][colorval]
It will warn that it was accessed at an index will past the bounds
of type 'BYTE [32]', which makes it less than useful for catching real
array bounds overflows. So now do this:
RGB32k.All[colorval]
And if you want this:
RGB32k[r][g][b]
Now do this:
RGB32k.RGB[r][g][b]