* S_Init -> S_InitSfxChannels because it did mostly SFX anyway
* S_MusicPlaying, S_MusicPaused, S_MusicName, S_MusicExists new status methods
* I_MusicPlaying, I_MusicPaused
(cherry picked from commit f5f0b5e76c)
* Kill addonsresponselimit, which was a hacky solution to a stupid problem. Instead...
* Allocate and consistently handle memory to store the name of an added file so we can reference it directly.
* Replace the choice between ./ and a custom folder with the full, standard assortment of Default (usehome ? SRB2HOME : SRB2PATH), HOME (SRB2HOME), SRB2 (SRB2PATH) or Custom (cv_addons_folder.string).
* Make these render as the name plus folder, since you can't go UP... from the top level.
* Make the path seperators consistently system-based re PATHSEP. (Quite frankly, I'm surprised it even worked in the first place...)
* Instead of iterating through the folder every time you change the search query by one letter, iterate through the "coredirmenu" (the game's interpretation of the folder) instead. MUCH, much less likely to lag to fuck and back.
* Hide a bit of complexity in filesrch.c instead of having the entire thing exposed to mess with. For example, closefilemenu() instead of manually freeing the struct each time.
* Refactor some stuff.
* Actual indication of modified game status on the addons menu.
* Yes, I know this has nothing to do with the branch, I'm just doing little things I found useful.
* Enable SECTORSPECIALAFTERTHINK since we probably really want to use that sloped lava wave in RVZ.
* Allow for infinite lives to be set via the setlives command/Pandora's Box.
* Refactor P_DoFiring(), with guidance from Sal.
* Correct the CRAWLA HONCHO\nCAN NOW BECOME\nSUPER CRAWLA HONCHO sliding movement in non-green resolutions.
* Bomb sphere! Paraloopable hazard. Replaces MT_SPECIALSPIKEBALL.
* Blueberry bushes, both normal and Xmas, from patch.dta.
* BSZ tulips, also from patch.dta!
* Frozen Hillside badniks - Penguinator and Pophat.
* Frozen Hillside ice decoration!
* Fixed some big bugs with the DSZ light beams.
* Made multi-mare special stages work, in a troll way - the Chaos Emerald disappears in a puff of smoke, and the Spinbobert laughter sound plays... >:3c
* Reverted the mobjtype number changes from the source SOC/Lua, which we can do later when doing a final pass of the levels.
* State optimisation.
* Serious cruft-removal of the NiGHTS drone thinker.
* Fix the issues where the player wouldn't curl into jump in waterslides or dropping off rope-hangs.
* Tweak NiGHTS player flashing.
* Add text colour support to the titlecard font.
* Use that to make the PRESS SPIN\nMID-JUMP thing when you get all Chaos Emeralds use the titlecard font for readability.
* Fix the GOT ALL EMERALDS page not lasting the correct, extended amount of time.
* Fix that thing where flying mid-spin didn't enact autobrake.
* Modify graymap a little on Sryder's suggestion.
* [COMPLETELY UNRELATED] fix that thing where the addons menu will fail on files/paths with spaces in [/COMPLETELY UNRELATED]
* cv_powerupdisplay. Never, First-person only (default), Always.
* New monitor stuff.
* Fixed hitmessages.
* Some CTF stuff.
* Aaaaugh it's a lot I hate myself I need to work on my coursework.
* I'll figure out what I did here in the merge request when that's done.
* Make TIME part of HUD count down in a bunch of circumstances where it was otherwise some other seperate thing.
* Make race countdown happen in a bunch of appropriate circumstances.
* Refactor race countdown.
* Remove a lot of useless stuff from H&S/Tag UI.
* Make co-op/competition/race end-of-act countdown use the race countdown and bigger HUD font.
* Remove useless PLAYING/SPECTATE text from lives element.
* Merge lap counter into lives element.
* Move some other text around.
- controllable strengths between 0-31 for COLORMAP lump like before
- arbitrary colour indices in the palette via TRANSMAP lumps, with strengths 0-9
- exposed to Lua as v.fadeScreen(color, strength)!
* Remove last vestiges of V_STATICPATCH.
* Change the horizontal spacing of the emeralds on the special stage tally screen.
* (unrelated) Fix a reference to srb2.srb instead of the now-correct srb2.pk3.
* Update all the other V_DrawCroppedPatch calls to match the new behaviour.
* Fix the OGL version of V_DrawCroppedPatch to match the new behaviour.
(To justify my changes: It's not exposed to Lua, and the function signature was a mess. This way it's easier to mentally map how it would work.)
* Add a default behaviour to followmobj (just basic A_CapeChase).
* Allow for modifying which character starting a new SP game should start you on, relative to the first valid character. (SOC's "startchar" variable)
* Make MF2_SHADOW transferrable via linkdraw.
* Modify P_GetSkinSprite2's recursion limiter to have zero chance of ever infinitely looping.
* cv_useranalog is now hidden from the menu.
* Directionchar now attempts to face the camera direction when you're standing still, and handles a few other states with more decorum.
* Tailsbot is now slightly more capable of keeping up with Sonic.
* pflags rearranged/adjusted, combining a few non-simulstaneous ones and turning PF_NIGHTSFALL into CR_NIGHTSFALL.
* [unrelated to branch] all ground-impact based abilities now happen more consistently with quicksand.
* Optimisations in a bunch of places, including to static
* Fix some visual errors with text and patches near the edges of the screen in non-standard resolutions.
* Changed the save format a little more, since I had free reign over it.
* Modified the string drawing functions to not awkwardly clip at the very edges of the screen, considering the relevant patch drawing functions avoid out-of-range memory writes.
* Fix a bug where I got emeralds and mapnumbers mixed up when checking for the "there's a tailsbot" flag.
* Consider a save with an invalid skin an invalid save, rather than allowing its continued presence.
* Each time you die, the number of game overs you've had is counted.
* Your save file updates to record this.
* The number of startinglives is determined by the number of times you'ved game-overed, with the maximum being infinity lives (thereby providing a cap on the number of game overs you can go through in a typical game).
Requires a new patch.dta, but I'm not uploading that yet because not happy with the icon we've got going for infinity lives on the save select menu.
* If NONET, the Multiplayer option on the main menu leads directly to the Splitscreen menu, which also includes player 1/2 setup under this circumstance.
* A mechanism to save player name, skin and colour as defaults to config.cfg.
NEW COOP BASED:
* Add "Infinite" option to cv_cooplives, inspired by SUBARASHII. Lives still exist, but are hidden from the player's view, and are prevented from falling below 1 at any cost. As a result, made the variable CV_CHEAT.
OTHER MULTIPLAYER BASED (semi-related):
* Made cv_autobalance an on/off switch which determines the allowed difference based on the number of people in the server, instead of a weird and opaque number from 0-4.
MENU BASED (not related):
* Add horizontal arrows to menu options which respond to the arrow keys.
* Make the menu arrows bob.
* Switch out the seperate arrows for combination arrows on the joystick menus.
* Minor cvar description tweaks.
* Gave lifedistribution a "Sharing" option to go along with its previous individual and stealing options.
* Made the game over graphic and music only happen if everyone's out of lives if you're sharing or stealing lives.
* Fixed a bug where game over wouldn't come to fruition because it kept on happening each tic of the countdown2.
* Made spectator stuff display in Co-op splitscreen.
<Alam_Squeeze> m_menu.c:1907: error: initializer element is not constant
<Alam_Squeeze> m_menu.c:1907: error: (near initialization for `OP_ScreenshotOptionsDef.drawroutine')
<Alam_Squeeze> m_menu.c:9353: warning: 'M_DrawScreenshotMenu' defined but not used
<Alam_Squeeze> Makefile:770: recipe for target '../objs/Mingw/Debug/m_menu.o' failed
<Alam_Squeeze> make: *** [../objs/Mingw/Debug/m_menu.o] Error 1
* Search case is now handled via cvar instead of assumed based on system.
* filemenusearch (previously strsystemstr) uses static char[] to prevent stack suffering.
* New cvar for searching from start of string instead of anywhere in it!
* Menu tweaked for the above.
* Reverted slash from pathsep.