Commit graph

60 commits

Author SHA1 Message Date
TehRealSalt
1f61397545 Huge splitscreen refactor
Did not get to finish all refactoring or even compile this, I'll continue later
2019-04-18 03:08:11 -04:00
fickleheart
40d065a024 Fix thrown items desyncing during frame advance 2019-04-09 23:55:25 -05:00
fickleheart
ac3b1516cd Record demos consistently and also other stuff 2019-04-07 17:59:32 -05:00
fickleheart
6267986c72 Add demo rewinding
Preview is fairly basic, and only shows players
rewinding. Full state is restored via reloading
the replay and jumping to the timestamp once
the rewind is done.
2019-04-06 14:51:00 -05:00
fickleheart
2a9dd8e1f9 Allow entering a title for replays on save 2019-03-24 22:40:52 -05:00
fickleheart
b2cbe3ed6d Refactor replay saving handler for later use 2019-03-24 21:55:08 -05:00
fickleheart
4b7d2aea84 Move public demo vars to a single struct 2019-03-24 21:32:15 -05:00
fickleheart
7fc1f02b07 Merge remote-tracking branch 'remotes/upstream/master' into new_netreplays
# Conflicts:
#	src/doomdef.h
#	src/g_game.c
#	src/p_user.c
2019-03-19 22:17:25 -05:00
James
09c3fd4329 Hyu b gone 2019-02-19 23:15:31 -05:00
fickleheart
3bd47b3beb Fix multiplayer ghosts crashing the game sometimes 2019-02-16 21:55:08 -06:00
fickleheart
276373123e Add cvar for netreplay saving options 2019-02-16 18:29:51 -06:00
fickleheart
08296d372d ??? 2019-02-16 13:10:58 -06:00
fickleheart
f7e12165ba Write extra data before cmds
This will probably nip a possible issue
with player cmds getting read/wrote inconsistently
if a player joins or leaves.
2019-01-27 19:10:25 -06:00
fickleheart
c6248faa30 Write skin/color/name changes to replay 2019-01-27 19:07:30 -06:00
fickleheart
3a467889ae Fix spectators spawning as players in netreplays 2019-01-27 17:48:39 -06:00
fickleheart
3cec3d9658 broken spectator stuff? 2019-01-27 16:23:34 -06:00
fickleheart
74c37ed06c Record all players' ticcmds in multiplayer 2019-01-27 14:34:01 -06:00
TehRealSalt
5534017954 Merge remote-tracking branch 'srb2public/next' into merge-next 2018-11-29 08:49:50 -05:00
Monster Iestyn
1b2aea81dc Merge branch 'master' into next 2018-11-25 20:39:17 +00:00
mazmazz
ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
TehRealSalt
8d6e203bd2 New SPB
May not make it to R1, but oh well
2018-10-18 04:43:50 -04:00
toaster
a1e1aa81b5 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into nextmerge_plus_rain
# Conflicts:
#	src/d_netcmd.c
#	src/d_netcmd.h
#	src/g_game.c
#	src/p_floor.c
#	src/p_user.c
#	src/r_data.c
#	src/r_data.h
#	src/v_video.c
2018-10-14 21:52:05 +01:00
Monster Iestyn
8196c59557 Merge branch 'master' into next 2018-10-09 22:55:55 +01:00
Sal
b8d86bb096 Merge branch 'thinkerclean' into 'master'
Nuke a bunch of iteration things that have no purpose in SRB2Kart.

See merge request KartKrew/Kart!25
2018-10-07 23:14:53 -04:00
toaster
b1e02467bf Weather is already run client-side. What if we ran it render-side, for major performance gains? This commit will answer all your questions - and more! 2018-10-07 15:00:58 +01:00
TehRealSalt
71efda2b20 Always move the camera
According to wolfs, this improves fps. Let's confirm, shall we?
2018-10-04 17:50:50 -04:00
toaster
cfd2b021a4 Nuke a bunch of iteration things that have no purpose in SRB2Kart. A full explanation of my reasoning and what it affects is as follows.
p_inter.c -
	Everything to do with setting states for starposts
		In SRB2Kart, starposts are invisble. We don't need to loop through all thinkers just to set their states when there's no visible effect of the state-setting. In addition, it has no consequences for gameplay - starposts have long been silent here, and all checking is done regarding their health, not their state.
	Remove extremely low-traffic conditionals (MT_FLINGEMERALD collision height extension, for example)
		These objects serve no functional purpose during regular SRB2Kart gameplay. Why should every other object have to pay an admittedly minor performance hit just for them?
	Disable all mechanisms of damaging bosses or enemies with the player's physical contact
		With the exception of Sapphire Coast, no MF_ENEMY objects exist in the entirety of the standard roster. In addition, the conditions for damaging the enemies were impossible to achieve, because they required vanilla SRB2 mechanics such as "jumping", "spindashing", or "super". Therefore, they can be safely commented out.
	Disable NiGHTS-related material (excepting bumper, hoop, and wing-emblem objects)
		NiGHTS is fundamentally incompatible with regular kart gameplay and I believe was already broken. Therefore, any mechanism which enters, aids, or abets it can be safely disabled.
	Comment out Tag mechanisms
		Tag is the only vanilla multiplayer gametype which has sufficient gameplay depth and complexity (HEYOOOOOOOOO) to require dedicated thinking in and of itself in order to manage. This thinking is irrelevant to Kart's functioning, and can be neutered easily.
d_clisrv.c
	Comment out Tag mechanisms
		See p_inter.c
d_netcmd.c
	Disable several devmode commands which are irrelevant to SRB2Kart gameplay
		When investigating for references to NiGHTS material, I discovered that these remained untouched. In order to present a more coherent game, I have hidden the ones that serve no purpose for us.
	Comment out Tag mechanisms
		See p_inter.c
g_game.c
	Disable NiGHTS-related material
		See p_inter.c
	Disable some team-related material
		Teams are not present in SRB2Kart at present. Obviously we'd want to reconsider for future, but it doesn't need to be run right now.
	Everything to do with setting states for starposts
		See p_inter.c
m_cheat.c
	Disable several devmode commands which are irrelevant to SRB2Kart gameplay
		See d_netcmd.c
p_map.c
	Remove extremely low-traffic conditionals (MT_EGGSHIELD collision, for example)
		See p_inter.c
	Disable NiGHTS-related material
		See p_inter.c
p_mobj.c
	Disable P_EmeraldManager
		Power stones, despite their relevance in vanilla Match, are not in SRB2Kart's Battle. No management of nonexistent emeralds is required.
p_setup.c
	Everything to do with setting states for starposts
		See p_inter.c
p_spec.c
	Disable NiGHTS-related material
		See p_inter.c
	Everything to do with setting states for starposts
		See p_inter.c
p_telept.c
	Everything to do with setting states for starposts
		See p_inter.c
p_tick.c
	Disable some team-related material
		See g_game.c
	Disable P_EmeraldManager
		See p_mobj.c
	Do not run shields
		Shield objects are not run under the vanilla system; the Thunder Shield is a domain-specific recreation using a standard mobjthinker.
	Do not run special stages
		SRB2Kart does not have special stages.
	Comment out Tag mechanisms
		See p_inter.c
y_inter.c
	Disable some team-related material
		See g_game.c
p_user.c
	Disable NiGHTS-related material
		See p_inter.c
	Disable 2d movement for players
		2D mode? In a kart racer? :nick:
2018-10-03 17:04:41 +01:00
toaster
ab59504be0 Experimental: Making the ghetto waypoints we have right now their own mobj list in order to make them slightly less bullshit 2018-09-29 20:28:27 +01:00
TehRealSalt
487e114fee raceexittime var 2018-09-22 18:59:26 -04:00
TehRealSalt
7256e99b12 Merge branch 'master' into this-is-a-sign 2018-09-22 17:58:35 -04:00
TehRealSalt
dd6b63f9da Different timings 2018-09-21 19:44:14 -04:00
TehRealSalt
ce85c2b7bd Delay falling, longer exit timer 2018-09-13 19:13:43 -04:00
toaster
a6d1e799f9 * Encore on the voting screen! Appears randomly once unlocked in the same slot as that which sometimes represents a gametype change (odds inflated for testing purposes).
* A better representation of an Encore level, now with inverted graphics (a special remapping we can now use elsewhere whenever if we want!) and a floating Ruby!
* Decouple encore's setting from cv_kartencore on mapload. Instead, bake it into D_MapChange and related, which will only some of the time be fed by cv_kartencore's value.
* Encore mode now has a special mapheader palette setting, "encorepal", rather than using the same one as non-encore.
2018-08-11 22:23:40 +01:00
toaster
7564aa466e * FREE PLAY! The necessary corollary to HERE COMES A NEW CHALLENGER...
* Activates when there are less than two non-spectators in a netgame.
	* Shows flashing text at the bottom of the screen.
	* Prevents drawing several UI elements that only make sense with multiple players.
	* Prevents matchesplayed being increased.
* Improve the mapreset timer's behaviour.
	* Now you get to see the HERE COMES A NEW CHALLENGER screen as the starting frame of the relevant map transition, since it happens on mapreset being 1 rather than 0.
	* Make a bunch of normal gameplay stuff that might've activated unnecessarily during mapreset now not able to.
	* Hide some other stuff that might've been visible for no good reason.
* Improve Mirror mode.
	* First person now works with it!
	* Tweaked the minimap player heads. Although the main section of the automap is mirrored, it feels... wrong to mirror the player head? IDK, you may wish to revert this, but given that everything else is the right way around except for the level itself...* Disable the titlescreen demos, at least until we actually gear up for release and make real ones.
* Disable the titlescreen demos, at least until we actually gear up for release and make real ones.
2018-07-22 16:16:03 +01:00
TehRealSalt
77165631c4 HERE COMES A NEW CHALLENGER 2018-07-22 00:31:02 -04:00
TehRealSalt
a4299ce069 Map reset timer 2018-07-21 15:54:05 -04:00
TehRealSalt
fbcf566874 WANTED recalculates on hit, tons of spectator changes 2018-07-03 21:12:25 -04:00
TehRealSalt
5c7b66cc0f WANTED 2018-07-01 04:36:09 -04:00
TehRealSalt
bfb4c0fae5 Minor fixes 2018-06-15 03:02:05 -04:00
TehRealSalt
788c98144f Item tweakings
- Mines last twice as long
- Mines can appear in 1st with a measly 5% chance, for maximum ass-blasting
- Mine shiiiiink sound no longer plays globally
- Thrown Bananas and Eggman Monitors bounce off walls like Mines
- Hyudoro can steal from anyone
- Halved invincibility alarm/music distance
- Getting out Orbinaut/Jawz plays a shield sound
- Using Shrink plays a devastating Chaotix sound
- SPB plays a high-pitched wail when it's locked in
- Hyudoro plays a ghosty sound when used
- Fixed Battle arrow roulette
2018-06-15 02:18:43 -04:00
TehRealSalt
e6b33ef65f SPB fixes
Shrink also plays its sound, and Shrink/Grow have slower scaling speeds
2018-06-11 01:51:50 -04:00
TehRealSalt
9b3751b30c Merge branch 'master' into sonicitems 2018-06-07 19:39:45 -04:00
TehRealSalt
5f610982ea The Lightning Update
- 30 sec cooldown on all lightning types
- Delay before Blue Lightning hits, based off of distance
- Blue Lightning can swap targets if 1st place is passed
- Blue Lightning can only be handed out if 2nd is far away enough from first
2018-06-05 21:36:48 -04:00
TehRealSalt
dd05edfcc0 Merge remote-tracking branch 'srb2public/next' 2018-06-04 16:58:35 -04:00
TehRealSalt
240f037b27 A couple of RA-related things
An unlockables/time emblems update, the stats screen shows all maps without needing to visit each one, and respawning is enabled in Record Attack now
2018-05-30 22:53:06 -04:00
Steel Titanium
a1d696b38e Fix small typo 2018-05-08 18:38:28 -04:00
Steel Titanium
9ff491dd78 Add indentation 2018-05-08 18:36:47 -04:00
Steel Titanium
29e80c5300 Don't increment totalplaytime if a demo is playing. 2018-05-08 18:16:01 -04:00
TehRealSalt
1f958091df OpenGL rendering 2017-12-17 16:33:21 -05:00
Sryder13
e60b3e1b88 Move Player collision check into the regular collision checking 2017-11-01 18:40:32 +00:00