Commit graph

379 commits

Author SHA1 Message Date
toaster
a8169e3844 Sound test is cool now!
https://cdn.discordapp.com/attachments/405336003239477249/641295998395613224/srb20042.gif

* Port MUSICDEFs from Kart.
    * Safe to modify without modifying game, so we can put it in music.dta eventually.
    * "Title", "AltTitle", "Authors" fields are self-evident.
    * "Soundtestpage" and "Soundtestcond" are used to determine which sound test unlockable can play them (set with Unlockable's variable, just like Level Select).
    * "Stoppingtime" and "BPM" both accept floats, and are used for presentation stuff on the sound test.
    * Ironically, we don't share a single field name with them. Such is the case of differing foci, though, and I expect they'll change their implementation to match (since this is necessary for a sound test).
* Change how S_AddSoundFx works to avoid iterating through all of them, and to allow cv_soundtest to only scroll through defined slots (instead of the infinite wall of thok sounds when scrolling to the left).
* Change V_DrawFixedPatch to allow scaling on two seperate axes.
    * Now called "V_DrawStretchyFixedPatch".
    * "V_DrawFixedPatch" is a macro to V_DrawStretchyFixedPatch now (same scale on both axes).
    * Available to Lua under v.drawStretched!
    * Even works in GL!
* Bugfix: Add SR_PLAYER to SOC's menutypes_list.

Stay tuned for the merge request, where I put the onus on the Music Team to finish this off...
2019-11-05 16:23:46 +00:00
toaster
2a16cf539a Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into internal-md3-vanilla-c
Merge seems fine, but won't compile for some reason.
2019-11-02 18:34:12 +00:00
toaster
22b413e84c * Improve the Metal Sonic recording/playback system.
* Make the skin to record with Metal rather than Flesh Sonic. (Allowed even if not unlocked!)
    * Make the object that plays back the recording actually use the Metal skin, rather than just a seperate spriteset. (The boss will still need the spriteset, though.)
    * Actively record the player's sprite2, frame, and followmobj, just like regular ghosts do.
    * Disable dashmode while recording, for a fairer race.
    * Fix a probably long-standing bug where, while recording, being "hurt" would get Metal stuck in pain frames until they physically left the area of hurt.
    * Always start Metal recording in wait frames for bonus taunting.

Other relevant changes:
* Increment DEMOVERSION *again*.
* Improve the Record Attack ghost followmobj recording to accomodate Metal's jet.
* Increase the datatype width of spritenum_t read/write for Record Attack ghosts because SUGOI 4: Back With A Revengance will probably also use more than 255 sprites alone.
* Return to standing frames (or prolong them if you're in them, rather than going to wait frames) if the player rotates on the spot with enough force.
    * This was specifically done *for* Metal recording, but I decided it looked good enough to enable all the time.
2019-10-28 22:12:47 +00:00
James R
5b90586f0d :oh: 2019-10-27 14:29:13 -07:00
James R
ab57df909b Fix minor unnecessary call 2019-10-27 14:25:20 -07:00
James R
08ad257e17 Extend map name text matching code into a function 2019-10-27 14:23:03 -07:00
James R
658c1e82d0 Add support for custom keywords
For now, 32 characters separated by spaces.

Also fixed a SIGSEGV from an empty level title.
2019-10-27 14:10:26 -07:00
James R
b3f9bce439 Overhaul the map command
Added support for map names, matched by substring and keywords too!
Added support for two digit MAP codes without the MAP part.
Added support for decimal map number. (But who cares.)

Gave a better description of command.
Supported abbreviated optional parameters.

And now REALLY detects incorrect parameters.
2019-10-27 14:02:36 -07:00
toaster
4334384855 Fix bot showing up in NiGHTS stages with a two-pronged approach.
* Sometimes, D_MapChange is passed a mapnum of -1, to complete an existing mapchange. Don't handle botingame checks when that happens.
* Disable charsel on secret level platter when selected map is a NiGHTS stage, since gameplay will be identical across characters (consistent with NiGHTS Attack).

Also:

* Replace IT_DYBIGSPACE hack in M_SetupChoosePlayer, and replace with a more direct workaround system for not being able to select characters before warping.
2019-10-27 12:20:17 +00:00
MascaraSnake
a039814673 Merge branch 'set-name-on-join' into 'master'
Set the player's name as soon as they enter the game

See merge request STJr/SRB2Internal!397
2019-10-25 15:38:21 -04:00
MascaraSnake
2004577314 Merge branch 'james-kart' into 'master'
My changes to Kart

See merge request STJr/SRB2Internal!406
2019-10-25 15:36:40 -04:00
MascaraSnake
7c9c2553b2 Merge branch 'kartport_namedvalues' into 'master'
Kart-port - Named cvar values + Improved "HELP" command (round 3)

See merge request STJr/SRB2Internal!388
2019-10-25 15:32:56 -04:00
toaster
1305c1cde8 Disable tailsbot in NiGHTS maps, not just Special Stages. (Resolves #261) 2019-10-24 19:16:53 +01:00
James R
96a12b6bed Miscellaneous window de-focus options
Music pausing is now optional.
Sounds may be paused--on by default.
The game itself being paused in off-line mode is now optional.

(showfocuslost now loads from config.)
2019-10-22 21:15:20 -07:00
James R
4f5d32a73f "NEWPING" might as well be the only ping 2019-10-22 19:39:26 -07:00
Louis-Antoine
209a883821 Set the player's name as soon as they enter the game 2019-10-19 17:09:18 +02:00
toaster
ec20d04e6f Compile fix. 2019-10-16 17:39:38 +01:00
toaster
036c6aa829 Just revert the respawn, retry and suicide stuff cuz it's apparently contentious. Who knew? 2019-10-16 17:38:38 +01:00
toaster
3e3ee8717f Merge retry and respawn into one command, respawn. 2019-10-16 11:38:09 +01:00
toaster
69d43435f5 Improved "HELP" command!
Ported from Kart, original commit also by me (toaster).
2019-10-15 13:36:04 +01:00
toaster
021f493664 Quick macro substitution to make sure MAXSCORE is consistent. 2019-10-15 11:55:40 +01:00
toaster
8bab035279 Added some examples of cvars that can use named values.
* Pandora's box now has infinite lives show up as "Infinite" instead of "-1".
* `pointlimit None`
* `timelimit None`
* Ported `basenumlaps` (with "Map default" value) from Kart to replace `usemaplaps`, for if Circuit ever gets shown any love ever again.
* `respawndelay Off`
* `resynchattempts Don't`
2019-10-15 11:49:37 +01:00
MascaraSnake
ea6b6be758 Merge branch 'bogus_requestskin' into 'master'
Fix bogus "requested skin not found!" print

Closes #247

See merge request STJr/SRB2Internal!373
2019-10-13 11:07:59 -04:00
toaster
176ee4499f Fix "requested skin not found!" print happening whenever you select an unlockable character.
Also, since I'm less paranoid now - readd the skin number to its print.
2019-10-13 15:10:19 +01:00
toaster
fd1a880805 On the recommendation of Sryder, revert everything relating to the cpusleep changes except for the new default value of 1. 2019-10-13 13:12:07 +01:00
toaster
6a045930fa Better cpusleep command. Sal said it better than I can, so in her words:
* Default to 1, which means potential for a 1-frame loss every once in a while but no longer a complete cpu hog
* New minimum is 0, since -1 just did the exact same thing as 0 except slightly more optimized.
2019-10-13 12:05:12 +01:00
Jaime Passos
09c9714daf Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-c 2019-10-06 17:40:41 -03:00
Jaime Passos
e95bd8add3 Merge remote-tracking branch 'origin/master' into renderswitch 2019-09-27 22:53:57 -03:00
Steel Titanium
cecbf95002 Various of changes
Changed any instance of "joystick" in strings to "gamepad"
Renamed some cvars
Added a define for MAX_JOYSTICK
Added back the missing command line params.
2019-09-23 22:46:44 -04:00
toaster
931f872467 Merge branch 'betterdirs' into 'master'
Better directory structure

See merge request STJr/SRB2Internal!321
2019-09-20 11:36:56 -04:00
Nev3r
2b0a0dd90f Merge branch 'deathstuff' into 'master'
Lots of death stuff

Closes #207

See merge request STJr/SRB2Internal!306
2019-09-16 16:32:45 -04:00
toaster
ccc1144a27 Merge branch 'luabanks' into 'master'
Lua save-banks!

See merge request STJr/SRB2Internal!295
2019-09-16 07:56:49 -04:00
Jaime Passos
0d11dd516a Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-c 2019-09-15 16:24:24 -03:00
toaster
41727318ff Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into deathstuff 2019-09-09 15:25:48 +01:00
Jaime Passos
398b320aec initial stuff 2019-09-08 18:27:35 -03:00
Monster Iestyn
361fbf8f6a Merge branch 'mprelated-tweaks' into 'master'
Various improvements and changes to multiplayer menu

See merge request STJr/SRB2Internal!300
2019-09-08 16:45:14 -04:00
toaster
abcf4f82ad Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into deathstuff 2019-09-08 18:00:25 +01:00
Steel Titanium
414bff33bf Better directory structure 2019-09-08 01:29:09 -04:00
Steel Titanium
16b17840d9 2D toggle command 2019-09-06 20:51:39 -04:00
Jaime Passos
24d08edf05 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-b 2019-09-02 20:27:50 -03:00
toaster
0700ad229f Lots of death stuff.
* Genesis-style love and attention to the death event.
	* Only visibly decrement lives/rings when you're respawning (or game over, see below).
	* Faster no-button-press respawn.
* Game Over specific love.
	* Animation of Level Title font coming in from the sides.
	* https://cdn.discordapp.com/attachments/428262628893261828/617692325438554132/srb20067.gif
	* Change gameovertics to 10 seconds instead of 15.
	* Make the minimum time before you can force going to the Continue screen longer.
* Accomodate death in MP special stages as a form of exit.
	* Don't have your rings or spheres reset when you die in a special stage, so that the stage isn't softlocked with the new harder limits.
* Fix a bug with CoopLives_OnChange where changing to infinite lives didn't force a game-overed player to respawn.

Also, two not-quite death things which nonetheless were relevant to change:

* Fix quitting a special stage having some of the shared spheres/rings disappear into the aether.
* Fix a warning during compilation for the Ring Penalty print.
2019-09-01 15:55:23 +01:00
Steel Titanium
2fc5ee0ec3 Move some cvars out of D_ClientServerInit and save them
Ported over from Kart
2019-08-26 20:38:32 -04:00
toaster
8b045a8f15 Lua save-banks!
* Array of 8 INT32's natively embedded into savedata (net and SP)!
* Initialised to zero whenever a new save (or equivalent) is started, otherwise untouched by the base game.
* Requires reservation to avoid clobber-conflicts.
    * Access via `reserveLuabanks()` - returns a read-write userdata.
    * Assign userdata to local variable or global rawset to use later.

Mostly for future SUGOIlikes, but I'm sure someone could figure out an unrelated usage eventually.
2019-08-24 18:25:27 +01:00
Monster Iestyn
ebfa40c004 Merge branch 'mi-cleanup-returns' into 'master'
MI cleanup returns

See merge request STJr/SRB2Internal!292
2019-08-20 09:35:36 -04:00
Monster Iestyn
0b6a463cff Merge branch 'public_next'
# Conflicts:
#	src/config.h.in
#	src/d_clisrv.c
#	src/d_netcmd.c
#	src/doomdef.h
#	src/p_map.c
#	src/p_maputl.c
#	src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj
2019-08-20 13:54:48 +01:00
Monster Iestyn
42eaa1ed39 Merge branch 'netcode-exploits' into 'next'
Fix an exploit where players could steal the final hash of a login

See merge request STJr/SRB2!508
2019-08-17 14:05:20 -04:00
James R
abf06098da Include md5.h 2019-08-17 10:34:19 -07:00
James R
f69983c010 Kart discrepancies 2019-08-17 10:33:14 -07:00
Monster Iestyn
79acd0ff10 Initialise player_names[] in D_RegisterClientCommands such that we don't need to have to manually update it if MAXPLAYERS ever changed 2019-08-12 15:18:36 +01:00
mazmazz
4ac4034eb9 Merge remote-tracking branch 'origin/master' into internal-md3-vanilla-b 2019-08-04 21:33:13 -04:00