Commit graph

276 commits

Author SHA1 Message Date
Sal
85430da37f 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
TehRealSalt
37b5a9327c Merge branch 'master' into net-screen 2018-10-05 16:13:25 -04: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
TehRealSalt
e307393b0f Change dummysplitplayers into splitplayers, unhide it, and set it when joining and not just hosting
Silly oversight
2018-09-30 18:07:05 -04:00
TehRealSalt
c19803d445 Fix all of the joining ghost issues or desyncing
The answer was so obvious! Just add a XD that just calls CL_RemovePlayer! Duh!
2018-09-30 16:20:01 -04:00
TehRealSalt
641fbe842d Probably should do this too... 2018-09-30 12:19:26 -04:00
TehRealSalt
2c7fb156b6 Instead of directly using CL_RemovePlayer, do a silly loop around
Hopefully I don't have to keep this, just have to see if it works
2018-09-30 12:12:12 -04:00
TehRealSalt
2d7b130a7f Temporary testing measure
set splitscreen = 3 on host or connect
2018-09-30 11:22:56 -04:00
TehRealSalt
03108a242b RIP, didn't commit this 2018-09-30 11:22:31 -04:00
TehRealSalt
f8fc8def3f Let's try what that comment suggests. 2018-09-30 11:22:10 -04:00
TehRealSalt
3afaf9f658 Add a message for when multiple players on one node get removed
Example:

Chrome has been kicked (Go away)
Shadow has left the game (Joined with Chrome)
Kryne has left the game (Joined with Chrome)
Vyce has left the game (Joined with Chrome)
2018-09-30 01:51:49 -04:00
TehRealSalt
3dfc5753f5 Online splitscreen
It WORKS, including kicking players in splitscreen
2018-09-30 00:51:03 -04:00
toaster
ff773a79c0 Disable cv_joinnextround behind #define VANILLAJOINNEXTROUND. 2018-09-27 21:38:19 +01:00
toaster
e8c436ab76 * 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
62ae9d5d64 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into sonicitems
# Conflicts:
#	src/f_finale.c
#	src/hardware/hw_md2.c
2018-08-07 21:20:27 +01:00
TehRealSalt
89a113837c Merge branch 'master' into sonicitems 2018-07-10 17:02:55 -04:00
Sryder
43252ca962 User server instead of checking servernode
For some reason both node and servernode are identical at that point.
Both were 1 for the client when I tried it myself.
2018-07-10 19:21:59 +01:00
toaster
e3779b28dc Correction to the bug that prevented starting a server. 2018-07-10 13:29:44 +01:00
toaster
d325448485 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-09 22:38:51 +01:00
TehRealSalt
997c1bebe1 Merge branch 'master' into sonicitems 2018-07-08 17:51:44 -04:00
Sryder
7b7d584823 Don't set joining clients to immediately be connected
They need to download the gamestate first
2018-07-08 21:46:23 +01:00
toaster
740a209631 Fix all compilation errors (tested using DEBUGMODE=1 and ERRORMODE=1) that remain outstanding. Notably:
* Remove FUNCMATH from all void-returning functions, given GCC80 specifically complains about this case.
	* Extend the length of all extant buffers to the safety threshold recommended by the compiler.
	* Add void casts to WS_getaddrinfo's setting to prevent complaints about incompatible typecasts.
	* Extend the charsel, face, and superface buffer sizes and writes to include the null terminator. (I didn't really want to do this because it's not even particularily NEEDED, but there was literally zero way to get around the request that I could find with multiple online searches. I tried.)
2018-07-07 16:52:01 +01:00
Sryder
a7ea4db50d Merge branch 'master' into sonicitems 2018-07-06 23:33:54 +01:00
toaster
8750feb196 Remove the need for sending the savegame if you're the host. You don't need to send it to yourself. What are you doing? 2018-07-06 23:18:22 +01:00
toaster
da7407b6ad Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-06 20:40:47 +01:00
Sryder
47230e69c5 Always send gamestate to joiners.
It's cut down already outside of levels, needed to stop Lua sending mobj references during intermission though.
This is needed because in the past there was a separate way to send player information to joiners that has since been removed. Meaning player information is always desynched for joiners during anything but levels.
2018-07-06 20:25:13 +01:00
toaster
d506f0d5db Fix a bunch of issues with record attack!
* Fixed the issue where your runs would be saved as belonging to the wrong character.
	* Make the Ghost menu always visible. This isn't PERFECT, but it's better than hiding the option to toggle ghosts just because you're doing your first run as a new character.
	* Fix the number of laps carrying over from MP(!!!!!!!!! plugged a huge security hole for the authenticity of replays...)
Other stuff!
	* Hide map hell maps in the statistics.
	* Clean up some nonet stuff in the menu.
	* Put player setup last again, and tweaked its wording.
	* Disable the special Kart waiting for players behaviour when not playing a netgame - seeing a double gamestate transition in record attack is weird.
2018-07-06 18:08:35 +01:00
Monster Iestyn
15812dfb30 Merge branch 'master' into next 2018-07-05 21:09:39 +01:00
toaster
5992928544 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-03 21:16:57 +01:00
Sryder
fd67f3e211 We use the PRNG far too much to not do consistancy checking on it in race 2018-07-03 21:01:46 +01:00
Sryder
1041315b94 Only do Mobj and RNG consistancy checking when actually in a level.
Mobjs are completely irrelevant outside of levels and the PRNG is not used in a synchronised way in anywhere except when in levels either
2018-07-03 20:53:37 +01:00
SeventhSentinel
5158508a00 Changed all instances of "balloon" to "bumper"
Also changed "It's you!" to "Select character & color..."
2018-07-03 15:14:47 -04:00
toaster
9dc099609f Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-02 23:29:21 +01:00
Sryder
4c32641b2f Screen for waiting during intermission after connecting 2018-07-02 22:11:03 +01:00
TehRealSalt
d4c5a92c7b WANTED 2018-07-01 04:36:09 -04:00
Sryder
f1430ad28f Fix the issue with timing out when joining during intermission 2018-07-01 03:06:34 +01:00
toaster
ef8a5b2a7f * Properly handle gametype changes when a different-gametype level pops up on the voting screen.
* Defer the change until you're actually modifying the map, in service of the following.
	* Reset score.
	* Call that gametype change function.
* Collary of the above: Don't reset score if you're `map mapxx`ing in the console, unless it's `force`'d.
* Fix the basic, obvious issues that'd prevent us shipping with the new level title system.
	* Correct the non-green resolution support, which was ALMOST there but which I accidentially fucked up one of the signs on.
	* Adjust the subttl position if it'd get overwritten.
	* Draw the gametype with the subttl.
* Adjust the gametype constants for easier gametype_cons_t array access.
2018-06-29 15:14:43 +01:00
SeventhSentinel
55b29504ae Fade-in intro
Also made flashing not-local, again.
2018-06-26 10:14:59 -04:00
TehRealSalt
4fd88293ff Use strlen for all of the valid zone title/act num checks 2018-06-05 17:28:46 -04:00
TehRealSalt
a1fad489c6 actnum is now a 2 character long string
For Cloud Cradle Zone, Act K
2018-06-05 01:34:05 -04:00
TehRealSalt
fd75bbb79c Merge remote-tracking branch 'srb2public/next' 2018-05-30 17:11:02 -04:00
LJSonik
c4f5896066 Merge branch 'master' into minor-net-command-fixes 2018-05-15 21:31:47 +02:00
Alam Ed Arias
9726134af7 Merge branch 'master' into next 2018-05-08 21:26:26 -04:00
TehRealSalt
8fe068ef46 Merge remote-tracking branch 'refs/remotes/srb2public/next'
# Conflicts:
#	src/f_finale.c
#	src/hardware/hw_draw.c
#	src/hardware/hw_main.c
#	src/m_misc.c
2018-04-07 18:43:59 -04:00
jameds
0e788e8cfe Fixed "invalid pointer" error when passing "" to Command_connect(). 2018-03-22 21:21:26 -07:00
LJSonik
836059419c Merge branch 'master' into minor-net-command-fixes 2018-03-09 17:15:37 +01:00
Monster Iestyn
651e773c7e Merge branch 'master' into next 2018-03-08 19:35:51 +00:00
Monster Iestyn
3f61a1608d shrunk buffer from 32 to 28 so that all of "Downloading "extremely...longname.wad"" can fit on screen at once. 2018-03-06 20:52:55 +00:00
Monster Iestyn
b060d98c28 replace the 3 strncpys with a snprintf 2018-03-06 20:20:27 +00:00
Monster Iestyn
426983ff11 rewrite download file screen code:
* fix screen to properly truncate the filename to just the real name only
* if the real name itself is too long, use ellipsis and paste in parts of the start and end of the actual name

note: I haven't actually tested if this works or compiles yet, I haven't the time right now
2018-03-05 22:24:03 +00:00