Inexplicably, all positional checks were inverted.
This wasn't causing too many problems because the onScreen condition was inverted too, but if it would be above your screen on the opposite side of you, it would be considered onscreen when facing 180 degrees away perfectly.
By swapping viewx/y/z and point->x/y/z, and inverting onScreen, we kill this annoying lack of polish for good.
- MT_CDUFO is now a valid type of Prison in Prison Break
- Tracked on counter
- Tracked on HUD
- Tracked on minimap
- P_AddBrokenPrison in p_inter.c
- Generalises behaviour on breaking a Prison Break object
- MT_CDUFO polish
- Can now be broken with all damaging objects EXCEPT Shield Orbinaut/Shield Jawz
- These two are exceptions to prevent them from denying you your on-contact item grab., which these will still give you if you touch them
- Breaking the object by touching it now causes hitlag instead of fireworks
- The fireworks were to make touching it feel good... but hitlag feels better :P
- Now supports mapobjectscale directly.
- Scaled 1.5x mapobjectscale
- Hitbox now far closer to actual sprite (which was just replaced, but was inexplicably far away from the old one too)
- MT_FLAMESHIELD: Flicker dispoffset depending on whether frame is supposed to be behind or in front of player
- MT_FLAMESHILEDUNDERLAY: Use P_SpawnMobjFromMobj to match interpolation coordintes, any other relevant properties, etc
- Unfortunately, the way this system previously worked, the unlock was given to you for free if you accidentially opened two copies of the game at once.
- Instead, open the file in r+ mode, shimmy along 5 bytes, and write a `true` to be read later.
- Far more memory safe than rewriting the entire gamedata out on crash.
ALSO:
- crashflags has been split into boolean evercrashed and UINT8 musicflags.
- We don't need to track if the LAST session was a crash, at least not right now.
- Opens the floor up to other music like Loser Club happening on the Challenges menu.
- G_SaveGameData: correctly increase length of buffer to account for cup name
- G_LoadGameData: digest the cup's associated windata even if it's not loaded
(The desired version of the string is "NO CONTEST on GREEN HILLS".)
Instead, searches for the first ':'.
- If found, goes to the first non-whitespace character afterwards and toupper's it.
- If not, goes to the first non-whitespace character at all and toupper's it.
Record number of music files which we were able to add, so Addons menu shows the correct number of addons loaded.
Also marks main music files in `listwad` command.
- Chao Keys are now UINT16 instead of UINT8
- The maximum number of Chao Keys is now 9999, which is the largest number of 9s that can fit in a UINT16
- Used keys no longer count towards your total
Will mildly corrupt gamedatas made with previous conditions-cascading builds, but only in a way that gives you extra keys than you've earned.
Discovered while self-reviewing that ACS has read access to this, not just write, so it has to be saved and loaded.
It is the only roundcondition which should be netsynced. Everything else is truly per-player progression.