Commit graph

374 commits

Author SHA1 Message Date
toaster
c9c69d805a Now it's CA_TWINSPIN's turn to get the improvements!
* Remove PF_THOKKED every time a successful damage bounce occours.
* When this happens, spawn a number of particles based on thokitem at half scale! (Optimised, again, for MT_LHRT.)
* Also spawn these particles when a successful spring boost occours, as well as playing a twisted spring sound.

Also, some other related tweaks:

* Optimisations to A_VultureBlast, which was used as a base for the particle creation.
* Make the Metal Sonic boss use P_PlayerCanDamage instead of a custom, somewhat broken player damage detection mechanism.
* P_SpawnGhostMobj takes colorized into account.
* Fold Tails propeller damage into P_PlayerCanDamage.
* When performing an Attraction Blast, place the player in roll frames.
* Update all conditions preventing SH_PINK to incorporate thokitem and spinitem as well.
* Buff MT_LHRT travel distance at slow speeds.
2019-06-26 23:26:05 +01:00
toaster
e5918d629b Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into toast_cleanup
# Conflicts:
#	src/p_mobj.c
2019-06-26 20:43:37 +01:00
Nev3r
d2a2dee033 Add Sryder's orbital camera thing as an option. 2019-06-20 13:33:31 +02:00
toaster
a6fd2275dd P_PlayerCanDamage(player_t*, mobj_t*), ported from the abandoned project_birthday because GOD the code looks awful with those huge monolith conditions in it. Available to Lua.
(Also, minor fixes to lib_pSpawnLockOn, and removing the SH_OP fuckery.)
2019-06-19 12:09:02 +01:00
MascaraSnake
18bd29c904 "Finished" minecart hardcoding (still untested and buggy) 2019-06-14 21:19:52 +02:00
TehRealSalt
24feb81671 Improve shadow code yet again by testing highest value of slopes
This makes it follow the sprites a bit better on slopes. Also split into a sub-function so that Banana doesn't need the duplicated code anymore.

The accuracy can be further improved on by doing the calculation 3 extra times for every surface, for each corner of the hitbox -- it wouldn't be THAT much more expensive, but it would only make subtle differences on sector boundaries that we usually zoom past anyway, so I figured it wasn't worth it. (It'll be easy enough to do so if we decide that we want the uber-accuracy)
2019-05-31 01:08:04 -04:00
TehRealSalt
3d129ad4ca Merge branch 'v1' into rings 2019-05-06 23:54:20 -04:00
TehRealSalt
f48a08cd53 Merge v1 2019-05-06 21:23:29 -04:00
TehRealSalt
833cf980b4 Finish this
Now that I was told that the spinout slowdown bug was caused by this I was 100% convinced that we need to remove all of this bullshit ASAP
2019-05-02 09:20:49 -04:00
TehRealSalt
ab7e747648 Fix warnings
Remove entries from dehacked, remove P_DoJump, remove debug stuff
2019-05-02 02:51:13 -04:00
Nev3r
3c64354eaa Send the slope thinkers list after the mobj list
Keeping the sector list before the mobj list stops the objects from "entering" or "floating" on slopes. However this induces a new slope adhesion problem in fast-moving slopes, so it is more desirable to leave the "indent/float-on" behavior for now since fixing this one seems like a big can of worms and falls off this branch's scope.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 17:16:35 +02:00
Nev3r
9e76730866 Add a temporary limbo list for thinkers that need to be freed, in order to keep other lists clean, especially the mobj list.
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 16:17:47 +02:00
Nev3r
721c866895 Give precip. its own thinker list
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 14:58:18 +02:00
Nev3r
79aeaa6a62 Give slope thinkers their own list right before mobjs'.
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 12:00:10 +02:00
Nev3r
9ccb9dcf20 Fix some of the polyobject thinkers being removed via P_RemoveThinkerDelayed() directly
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-21 11:08:24 +02:00
Nev3r
5a4eded7af Added a mobj-only list entry for mobj thinkers
Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 23:29:20 +02:00
Nev3r
baeda5060c Basic multiple thinker list implementation
Set up a main thinker list and a polyobject mover list to test things up. Works so far, networking as well.

Signed-off-by: Nev3r <apophycens@gmail.com>
2019-04-20 22:39:22 +02:00
TehRealSalt
a3d2b48329 Fix up more stuff
Now in a mergable state
2019-04-18 12:20:13 -04:00
TehRealSalt
089be795a2 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
be458c1d05 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
mazmazz
7f0b923107 Merge branch 'public-gl-next' into public-musicplus-jingle 2019-03-15 18:42:19 -04:00
TehRealSalt
40093a9213 Merge branch 'master' into rings 2019-03-12 01:27:11 -04:00
wolfy852
82d93a95fd Remove P_CanRunOnWater 2019-03-11 00:28:30 -05:00
TehRealSalt
129268121d Added rings. 2019-03-07 17:11:31 -05:00
fickleheart
e5cdf6d84d Format for better consistency with the codebase 2019-02-06 20:25:45 -06:00
Sally Cochenour
b2d2d64323 Merge branch 'master' into fortnite 2019-02-04 20:01:20 -05:00
James R
8a1c6114a7 Add support for changing viewpoint via console
This isn't just a shameless console-empowerement. More precise "spying" can
benefit everybody. But especially in net-replays, this is almost necessary.
2019-02-04 03:09:40 -08:00
fickleheart
03f9459257 Merge remote-tracking branch 'remotes/internal/master' into movementchecks
# Conflicts:
#	src/g_game.c
#	src/p_user.c
2019-01-15 21:01:30 -06:00
TehRealSalt
f8a1cf849f Merge branch 'master' into fortnite 2019-01-08 18:17:09 -05:00
SeventhSentinel
1d58c6b8c2 merge srb2 next 2019-01-05 15:59:23 -05:00
mazmazz
81352aece1 WIP 20190101 merge
d_netcmd.c
filesrch.c
m_menu.c
p_setup.c
p_spec.c
r_data.c
r_main.c
r_things.c
w_wad.c
w_wad.h
2019-01-02 01:09:15 -05:00
toaster
d5bddafd0f Move some sidemove/forwardmove checks to playsim code rather than have them happen in ticcmd generation.
pGetPlayerControlDirection has to die since it was the only other usage of sidemove, and wasn't even relevant anymore anyways.
2018-12-18 18:05:11 +00:00
MPC
3e70ce2565 Fix the automap 2018-12-12 18:01:52 -03:00
TehRealSalt
312dd3f57f Ensure ALL boxes are respawned for overtime 2018-12-07 18:50:36 -05:00
TehRealSalt
dfa0522326 Battle Mode overtime
After the time limit is up, spawn a shrinking kill-field. This is one hefty initial commit!
2018-12-06 13:46:38 -05:00
TehRealSalt
4507ee18fd Merge remote-tracking branch 'srb2public/next' into merge-next 2018-11-29 08:49:50 -05:00
mazmazz
c91b2b4456 Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
toaster
1142fddc71 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
5ab6eb8bd7 Remove unused "runcount" variable from p_local.h 2018-10-11 20:00:23 +01:00
toaster
7032b2773a Complete the disabling of the traditional shield mechanism (oversight from initial commit). 2018-10-03 17:14:25 +01:00
toaster
5e8799a965 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
mazmazz
77381cd984 musicplus-jingle 2.2 -> 2.1 backport 2018-09-18 15:10:00 -04:00
mazmazz
092b58fe39 Set mobj->floorrover and ceilingrover in appropriate places 2018-09-10 00:38:07 -04:00
mazmazz
a430d133b4 Compiler errors 2018-09-06 13:16:50 -04:00
TehRealSalt
cb126527be Camera panning for drifts 2018-09-04 16:08:37 -04:00
SeventhSentinel
8dcee904a5 eggman
broken
2018-08-11 20:19:09 -04:00
mazmazz
3463ec212a A_FlickyCenter implementation - now Flickies can be attracted to players!
* Changed default movement to attraction, vs. aimless
* Flickies spawned from this will always have the FLICKY_CENTER mobj as its target
    * Use P_IsFlickyCenter to identify FLICKY_CENTER mobjs versus players
* FLICKY_CENTER mobj tracer points to the spawned Flicky
* Thanks toaster for the original code~~
2018-08-09 17:28:37 -04:00
toaster
f9c9f06464 * Re-enable kartvoices controls for K_PlayTauntSound and K_PlayOvertakeSound.
* Make the three P_Play<?>Sounds from p_local.h actual functions that acknowledge the kartvoices cvar.
2018-07-29 23:51:08 +01:00
TehRealSalt
61c311b873 Spectator overhaul
- New player flag, PF_WANTSTOJOIN, added for setting up a spectator queue. You are allowed to join as long as no one has started lap 2.
- Map resets when two people have entered the game, so matches can start naturally without the need of an admin.
2018-07-20 19:11:36 -04:00
toaster
604fcc7ca3 * A bunch of intermission related stuff!
* Time overs now supported, see below.
	* Ties now supported!
	* Code cleaned up.
	* Play more sonicy tally sounds when counting your points.
* A bunch of time over related stuff!
	* Exitlevel time overs everyone, which means no points for you.
	* F-Zero-sorta-maybe style death if you're the last person on the course (and not the ONLY one) when someone crosses the finish line! (Or switches to spectator.)
* A bunch of music related stuff!
	* Functionally reverted many of my changes to splitscreen and ending music, although the major changes to simplify music code are still kept.
	* P_EndingMusic is genericised across gametypes, and only switches a single letter (and looping-ness) now!
	* Fix exitlevel in race causing whatever you're listening to to keep playing.
	* Make powerups call P_RestoreMusic.
	* Put a call to P_EndingMusic into P_RestoreMusic.
* Unrelated crap.
	* Make all palette swaps happen at the black point of fades, so they don't stick around awkwardly.
	* Huh, I thought I did more than that. Oh well!
2018-07-18 01:21:36 +01:00