Dedicated bonuses fix
Fixes the issue reported here: https://mb.srb2.org/showthread.php?t=42530
What it turns out is going on is that making the game bail out in the middle of Y_StartIntermission if you're a dedicated server's host prevents the game from awarding the players bonuses in coop mode. Therefore it's not just special stage bonuses, but ANY kind of bonuses that can cause desyncs if someone loses all their lives.
This can be merged to master since it's a change only for dedicated server hosts, and should otherwise be compatible with 2.1.18.
See merge request !186
SDL fixes and cleanup
Mostly cleanup tbh. I noticed a few things that bugged me when examining SDL's code recently, thought I might as well fix them up a bit.
These changes definitely does not affect netplay, so this can be merged to master just fine.
See merge request !183
R_InitExtraColormaps fix
This fixes the `R_InitExtraColormaps` function so that it correctly realises there are no "extra colormaps" actually in SRB2's files, rather than telling you there are 6 extra colormaps on game startup (or however many WAD files total you have added).
For those who don't know what the function does, it searches for C_START/C_END markers, and if they exist, adds any lumps inbetween to a list of extra colormaps internally. They are never used by the game though, since we last supported colormaps of that kind so long ago I don't think anyone remembers when anymore (definitely more than a decade at least).
Merging to next since I don't know if this would cause any netplay issues or not tbh.
See merge request !182
This is just in case someone actually tries to dump in C_START/C_END and "add" colormaps using them, not that they would ever be used currently anyway.
Jet Jaw crash fix
Turns out not having MF_SHOOTABLE can cause the Jet Jaw to endlessly loop between the two states, until somehow LUA_CallAction inexplicably causes Z_StrDup to crash anyway (that one's a mystery to me, I'm not going to look into it right now). I tweaked A_JetJawChomp so this endless loop can't happen anymore.
See merge request !176
obj folders fix
Partial backtrack of changes I made in !174. Apparently removing all the `.gitignore` files from `/objs`'s subfolders removed the only reason Git was keeping the folders alive (Git doesn't care about empty folders as it turns out). So now they have `.gitignore`s again, with a warning in each not to remove them.
See merge request !177
.gitignore stuff
The following changes have been made to `.gitignore` files in the objs/ and bin/ folders:
* All the `.gitignore`s living in subfolders of objs/ have been done away with and replaced with a single `objs/.gitignore`, covering all the things that the subfolders ignored before (including depend.ped, if anyone is like me and has to remove that file manually)
* All the `.gitignore`s living in subfolders of `bin/Mingw` ignore .exes of any name, not just srb2win/srb2dd/srb2sdl. en.mo is also ignored now... or rather any .mo file (just in case). This is mostly for my own sanity and that of anyone else who uses EXENAME=[name.exe] when compiling with MinGW.
If you're not sure what `.gitignore` does exactly, as far as I'm aware it literally just tells Git what to "ignore" (or rather, not track), so anyone using Git GUI or some other Git program etc doesn't have to see changes certain files and can't accidentally commit the files or whatever.
See merge request !174
Admin ban fix
Okay, THIS time admin bans should work properly. Turns out the relevant code for banning did not properly consider the case of admins doing the banning, at least until now.
Unlike my last attempt at fixing admin bans (!165), this one would require both host and admin to have the fix exe assuming everyone else would be using 2.1.17, so I'm merging to next instead of master.
See merge request !167
Allowteamchange fix
Fixes "allowteamchange no" to actually work properly and NOT desync you from the game in most cases. You can now switch TO spectator freely (as intended it turns out), and switching FROM spectator is prohibited. The "Enter Game" menu option in Match/Tag now displays one of those blue window notices just like with "Change Teams" in CTF/Team Match if you cannot change teams right now. Everything else works as you'd expect.
The de-sync issue was originally reported here https://mb.srb2.org/showthread.php?p=789965#85
See merge request !168
Falling rocks fix
This fixes the rock spawners' rocks not being removed if they rolled down to the ground from a slope rather than bouncing (see https://mb.srb2.org/showthread.php?t=41963)
See merge request !162
DrawFill made not stupid
made it more consistent with other drawing functions; doesn't draw off of the sides, and doesn't ignore snapping or widths for reasons that don't make sense
(for instance: the green bar in MI's test script showed *above* the blue one in non-green resolutions in 2.1.17)
See merge request !173