Commit graph

262 commits

Author SHA1 Message Date
TehRealSalt 0e3b225011 Remove duplicate/removed objects
As well as other compile errors
2018-11-18 03:43:33 -05:00
Sal b27a44e79b Merge branch 'serverinfo_fix' into 'master'
Serverinfo Fixes

Closes #33 and #31

See merge request KartKrew/Kart!92
2018-11-17 16:54:08 -05:00
toaster 56ed67397d * Fix the in-game MS browser thinking gametypes are unknown.
* Fix the website MS browser mapname output being incomplete.
* Hide hell maps on the website MS browser mapname output.
* (unrelated) tweak Command_Showmap_f's logic for a more accurate name.
2018-11-17 15:48:10 +00:00
Sryder 5d991b6f2a Prevent more local players than the server maxplayers limit joining 2018-11-17 15:00:15 +00:00
TehRealSalt cb8bbf8e4c Ensure MS packets are sent correctly 2018-11-16 12:01:57 -05:00
Sryder b8477b4067 Squash various warnings
Shadowed declarations
Unsuffixed float constants
There's an unsuffixed float constant I can't fix because the define is outside of SRB2. We could have our own copy of Pi if we really wanted.
2018-11-14 21:53:57 +00:00
Alam Ed Arias d4cb81cb28 Merge branch 'master' into next 2018-11-14 15:45:29 -05:00
Alam Ed Arias de5b626520 Fix misleading indentation 2018-11-14 11:06:45 -05:00
Alam Ed Arias d14f87b8c6 Cleanup whitespace 2018-11-14 10:54:33 -05:00
TehRealSalt 1e4d196e5e Merge remote-tracking branch 'srb2public/next' 2018-11-08 17:37:05 -05:00
Monster Iestyn d8f3a20e65 Merge branch 'Playerquit_hook' into 'next'
"PlayerQuit" Lua Hook

See merge request STJr/SRB2!127
2018-11-08 15:53:35 -05:00
TehRealSalt 5c1cc6e1df Merge branch 'master' into all_hardcode 2018-11-02 01:42:34 -04:00
TehRealSalt 950bca1217 Actually lets just do this now, like how its done below 2018-11-01 21:05:52 -04:00
TehRealSalt 78299c5fee 0xFFFF to 0xFFFFFFFF
I'll implement proper bit-setting later, just gotta see if it works first
2018-11-01 20:50:19 -04:00
TehRealSalt 67dd962fb9 Change out the hex used for hnext/hprev consistancy 2018-11-01 20:46:20 -04:00
TehRealSalt e758e0f8fd Merge branch 'master' into resync 2018-11-01 20:39:50 -04:00
TehRealSalt 69354856b7 "Joined with" kicks display in the chat instead of console 2018-10-31 02:46:16 -04:00
TehRealSalt f1ea725319 Clean up for player->mo resyncing
Make most of the order match the struct, make sure proper type conversions are used when needed
2018-10-30 18:20:56 -04:00
TehRealSalt f9d559b03c Fuck it, add back in the old vars
If we want a smaller resync packet, let's actually remove these FOR REAL
2018-10-30 17:03:11 -04:00
TehRealSalt 7fbfed535b Add hnext/hprev to consistancy, add marescore to resynchend 2018-10-30 16:24:27 -04:00
TehRealSalt 48a400c347 Clean up resync pak 2018-10-30 01:23:21 -04:00
LJSonik b52158eb48
Merge branch 'master' into analog-flipcam-synch-fix 2018-10-29 19:52:08 +01:00
Louis-Antoine 3d0daf2202 Fix desynch when toggling analog mode or flipcam
Special thanks to Lat' for asking weird questions
2018-10-29 00:49:23 +01:00
TehRealSalt b83286b532 Use k_itemtype as the additional check instead of pw_shield 2018-10-28 14:45:01 -04:00
TehRealSalt 9d6563fcf7 Fix kartspeed/kartweight writes 2018-10-28 14:43:58 -04:00
toaster 4595328e6d Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into toast_hardcode 2018-10-25 19:09:22 +01:00
toaster 791dc079ec Merge branch 'master' into 'chat-changes'
# Conflicts:
#   src/hu_stuff.c
2018-10-21 08:27:28 -04:00
TehRealSalt 553066b48b Merge branch 'master' into net-screen 2018-10-19 15:59:13 -04:00
Sal 524ab75a6a Merge branch 'remove-prints' into 'master'
Remove most gameplay prints

See merge request KartKrew/Kart!42
2018-10-19 15:49:01 -04:00
toaster 41b684e63e Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into net-screen 2018-10-16 22:13:45 +01:00
TehRealSalt e23da397e4 Remove most gameplay prints
A couple of the extraneous ones (karma interactions, bumper stealing, lap start notifications) have been removed outright. The rest that I could think of have been changed to use CON_LogMessage, so that they still go into log.txt when rereading a fun chat session but not showing themselves in gameplay. Necessary gameplay prints, such as players being defeated or coming back in Battle, have been kept until there's a suitable replacement for them in the future.
2018-10-14 17:45:28 -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 fe2af34ee5 Merge branch 'master' into next 2018-10-14 20:49:35 +01:00
Latapostrophe 49f2c62b5d More stuff goes in HU_AddChatText, fixed /pm list not having the correct coords if kartspeedometer was on. 2018-10-11 21:39:19 +02:00
Monster Iestyn 9c464742b7 Remove "playerdeadview" variable; it's not been used for its stated purpose for who knows how long now
Besides rankings popping up when you die just sounds weird anyway, maybe I'm just used to SRB2 not doing it I guess
2018-10-11 20:00:45 +01:00
TehRealSalt 42766db48c Merge branch 'master' into net-screen 2018-10-07 23:26:56 -04: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
TehRealSalt cc2af8a329 Merge branch 'master' into net-screen 2018-10-05 16:13:25 -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
TehRealSalt a4f3d4867d 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 4da5c165f4 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 56ec3d0465 Probably should do this too... 2018-09-30 12:19:26 -04:00
TehRealSalt 7d8891f057 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 d705d2a606 Temporary testing measure
set splitscreen = 3 on host or connect
2018-09-30 11:22:56 -04:00
TehRealSalt f858b2aa11 RIP, didn't commit this 2018-09-30 11:22:31 -04:00
TehRealSalt 847924a47a Let's try what that comment suggests. 2018-09-30 11:22:10 -04:00
TehRealSalt fc93e5812d 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 1d6215030e Online splitscreen
It WORKS, including kicking players in splitscreen
2018-09-30 00:51:03 -04:00
toaster 169411e3da Disable cv_joinnextround behind #define VANILLAJOINNEXTROUND. 2018-09-27 21:38:19 +01: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 c52a4de933 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 9da279006f Merge branch 'master' into sonicitems 2018-07-10 17:02:55 -04:00
Sryder bbbc0d3820 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 fffe82b863 Correction to the bug that prevented starting a server. 2018-07-10 13:29:44 +01:00
toaster a3e294062d Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-09 22:38:51 +01:00
TehRealSalt ec0c358755 Merge branch 'master' into sonicitems 2018-07-08 17:51:44 -04:00
Sryder d10883b033 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 97348beb66 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 5d342f32c8 Merge branch 'master' into sonicitems 2018-07-06 23:33:54 +01:00
toaster 6c8a92b44f 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 5c5cbeeea2 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-06 20:40:47 +01:00
Sryder 6fc29ce37d 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 5f28e11fd2 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 e5236c3137 Merge branch 'master' into next 2018-07-05 21:09:39 +01:00
toaster 37a336a4cf Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-03 21:16:57 +01:00
Sryder 6b3f35813a 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 0375ea4f0b 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 80c2b56927 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 249bb594d8 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into sonicitems 2018-07-02 23:29:21 +01:00
Sryder c8f61edea5 Screen for waiting during intermission after connecting 2018-07-02 22:11:03 +01:00
TehRealSalt 5c7b66cc0f WANTED 2018-07-01 04:36:09 -04:00
Sryder 5c2110dafe Fix the issue with timing out when joining during intermission 2018-07-01 03:06:34 +01:00
toaster d2a8414dee * 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 c0aa630c63 Fade-in intro
Also made flashing not-local, again.
2018-06-26 10:14:59 -04:00
TehRealSalt e39de53fa2 Use strlen for all of the valid zone title/act num checks 2018-06-05 17:28:46 -04:00
TehRealSalt 0fc113e6dd actnum is now a 2 character long string
For Cloud Cradle Zone, Act K
2018-06-05 01:34:05 -04:00
TehRealSalt 762a8f6087 Merge remote-tracking branch 'srb2public/next' 2018-05-30 17:11:02 -04:00
LJSonik 87ba5a2233
Merge branch 'master' into minor-net-command-fixes 2018-05-15 21:31:47 +02:00
Alam Ed Arias 6be0f90fbe Merge branch 'master' into next 2018-05-08 21:26:26 -04:00
TehRealSalt 36b52e1c67 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 a431197921 Fixed "invalid pointer" error when passing "" to Command_connect(). 2018-03-22 21:21:26 -07:00
LJSonik 0ff5b851cd
Merge branch 'master' into minor-net-command-fixes 2018-03-09 17:15:37 +01:00
Monster Iestyn 145616b152 Merge branch 'master' into next 2018-03-08 19:35:51 +00:00
Monster Iestyn aba4adfabc 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 a66824d63f replace the 3 strncpys with a snprintf 2018-03-06 20:20:27 +00:00
Monster Iestyn e3151f26dc 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
TehRealSalt f97ec30493 Made a lot of gametype checks use either G_RaceGametype or G_BattleGametype
Should make it a lot easier to add more gametypes later.
Also some minor fixes:
- Changed up how shell speed scales in mobjscale juuuust slightly, so
it's less messy
- Fixed CHECK showing spectators
2018-03-04 15:27:52 -05:00
LJSonik d1e3275c78
Merge branch 'master' into minor-net-command-fixes 2018-02-14 21:07:10 +01:00
Louis-Antoine bd2334dd93 Fix SV_StopServer not calling D_Clearticcmd correctly 2018-02-14 21:00:55 +01:00
Alam Ed Arias 99552c2ba2 Merge branch 'master' into next 2018-02-14 10:29:24 -05:00
Louis-Antoine c7320f9f82 Don't allocate memory for net commands already executed, as it would cause them to be never freed 2018-02-14 15:09:52 +01:00
Louis-Antoine 490f5beb89 Do not prevent all net commands for the current tic from being executed because of an unkown net command ID 2018-02-13 17:53:18 +01:00
TehRealSalt ec84b46bb4 P != M 2018-02-08 18:14:56 -05:00
TehRealSalt 85a81ed087 Minor adjustments in hopes that I fixed the resynch bomb on gametype switch? 2018-02-08 17:13:06 -05:00
TehRealSalt e6c040b844 Merge remote-tracking branch 'refs/remotes/origin/master' into democracy 2018-02-07 22:34:33 -05:00
Sryder13 483921f1fa Merge branch 'master' of http://git.magicalgirl.moe/KartKrew/Kart.git into gameplay-tweaks
# Conflicts:
#	src/g_game.c
2018-02-04 20:39:53 +00:00
TehRealSalt 202ad11b43 Merge remote-tracking branch 'refs/remotes/origin/master' into democracy 2018-01-29 19:20:23 -05:00
TehRealSalt cc0c99640f Work so far
Crashes, but baseline's there
2018-01-27 01:17:08 -05:00
TehRealSalt 6f1dda7b7a Instead of player->laptime, lets add curlap
Since lap time will only ever be used locally, it makes more sense to
just use one variable instead of a player struct variable
2018-01-21 21:03:44 -05:00
TehRealSalt 672c4b5298 Record best lap time in Record Attack
- Record Attack replays now save best lap time
- Removed instances of NiGHTS Attack
- Removed a lot of unlockable that have no use in Kart (ultimate mode,
perfect bonus, score emblems, etc)
- Removed all methods of activating ultimate mode
2018-01-21 19:15:26 -05:00