Commit graph

3317 commits

Author SHA1 Message Date
toaster
92cc3667e3 Fix buffer overrun and iteration clobbering in D_SetupVote by:
* Decreasing number of writes - now the unchanging gametype is only written once, and both gametypes are written as UINT8s instead of UINT16s.
* Increasing size of buffer to match new threshold.
2018-07-24 22:04:27 +01:00
wolfy852
f069a38259 Fix a minor conditional error in d_netcmd.c 2018-07-23 19:50:28 -05:00
toaster
6f3b6f9121 ...fix it properly instead of rushing into it at 1am 2018-07-24 01:12:40 +01:00
toaster
2ce26f613d Fix accidentially tripped PARANOIA error for teamchanges. 2018-07-24 01:03:59 +01:00
toaster
d582a9dd97 Encore mode - a fresh take on mirror mode!
* Palette remaps.
* Branding.

TODO:
* Doesn't work in GL. (Mostly.) I have SOME ideas on how to tackle this, but...
* Transmaps are broken in Encore for some reason.
* I tried to make in-level colormaps shimmy over, but it didn't quite work, so I commented it out and only semi-fixed it.
2018-07-23 23:50:41 +01:00
TehRealSalt
220bab9b28 Orbinaut 2018-07-22 20:55:18 -04:00
TehRealSalt
45a2befd08 Merge branch 'bumpstuff' into sonicitems 2018-07-22 18:19:29 -04:00
TehRealSalt
32b321df63 Item dist scales with low player count instead of just odds, you can change some cvars during start countdown 2018-07-22 18:15:11 -04:00
toaster
fe55d7d9a2 Do Oni's suggested changes to the wipe-based level intro fade. https://cdn.discordapp.com/attachments/270211093761097728/470690865279401994/kart0019.gif 2018-07-22 21:49:17 +01:00
toaster
834c5718a6 MAP HELL IS REAL
* Force map hell if there are two or more non-spectators (ie, same condition as to not be in FREE PLAY) and everyone has selected the RANDOM level slot.
* Unique gasp-and-Shulk-based sounds for both forced and non-forced map hell occourances.
2018-07-22 21:02:31 +01:00
toaster
c072dea796 Force the display of FREE PLAY on the pre-rankingsmode part of the intermission screen, since it's important to show what it was. When in rankingsmode, THAT'S when it's able to freely change with the number of players jumping in and out. 2018-07-22 17:39:09 +01:00
toaster
995c137e14 * 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
ac7ef1ee49 Merge branch 'sonicitems' into bumpstuff 2018-07-22 00:32:11 -04:00
TehRealSalt
ef16b32a6e HERE COMES A NEW CHALLENGER 2018-07-22 00:31:02 -04:00
TehRealSalt
0b033a3958 Merge branch 'sonicitems' of https://git.magicalgirl.moe/KartKrew/Kart into sonicitems 2018-07-21 17:45:25 -04:00
TehRealSalt
08066c1cf4 Map reset timer 2018-07-21 15:54:05 -04:00
toaster
3c65f64d9a * Make cancelling a join work on the pause menu and console. (You need to write "changeteam spectator" to cancel a PF_WANTSTOJOIN.)
* Stop respawning spectators when their PF_WANTSTOJOIN request hasn't been processed yet.
* Handle PF_WANTSTOJOIN requests in GS_WAITINGPLAYERS.
* Refactor K_CheckSpectateStatus, and make it so PF_WANTSTOJOIN requests are processed if there's only one player in the server, even if they're on lap 2 or up.
* Make the player entry mechanism in P_SpawnPlayer use the PF_WANTSTOJOIN mechanism so that it can also take advantage of the level refresh mechanism with no extra code.
	* NOTE: This does a bad hack in order to not send multiple mapchanges while the joining timer is low! If you can think of a better way to do this, please let me know/commit it.
* Change the timer until you can hit ITEM again when a spectator who has to wait to join shorter.
* (controversial, but I think necessary) - flash the ITEM text when the above-mentioned timer is nonzero.
2018-07-21 16:45:08 +01:00
TehRealSalt
044778c8b5 Spectator flashing tweak 2018-07-20 23:01:08 -04:00
TehRealSalt
580463e31b Spinout quick fix 2018-07-20 22:51:18 -04:00
TehRealSalt
6787334521 Merge branch 'sonicitems' into bumpstuff 2018-07-20 19:13:04 -04: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
Alam Ed Arias
6d9bf3c5b3 Merge branch 'master' into next 2018-07-20 17:35:53 -04:00
Alam Ed Arias
f80b4e18a2 Fixup PROFILEMODE 2018-07-20 17:35:18 -04:00
TehRealSalt
19c22655f9 Small correction 2018-07-20 16:13:41 -04:00
TehRealSalt
bb46d1995d More tweaking
- Getting wipeout bumped into offroad slows you down
- Orbinaut & Jawz are relative to your weight (Jawz is heavier), via new function K_GetMobjWeight
- Reorangized where K_KartBouncing is called so that wipeout changes don't affect Eggman Items
2018-07-20 16:13:02 -04:00
toaster
dbc904e093 Fullbright drift sparks. 2018-07-20 13:08:38 +01:00
toaster
928816f5a3 Bugfix the exitlevel music condition to take into account all local players, rather than any player globally. 2018-07-20 13:02:34 +01:00
toaster
4d0dd0cac3 De-ghetto 2P splitscreen FINISH. https://cdn.discordapp.com/attachments/270211093761097728/469827997990649856/kart0012.gif 2018-07-20 12:37:09 +01:00
TehRealSalt
78e54c679e Wipeout items bounce you 2018-07-20 03:41:26 -04:00
TehRealSalt
2c580951f8 Merge branch 'sonicitems' into bumpstuff 2018-07-19 22:38:31 -04:00
TehRealSalt
5af5954fa0 Wipeout bumps
- You can bump other people during spinout.
- Bumping during spinout activates a "slow down" timer, which increases your friction after a few tics.
- You have a Smash-style dust effect after a spinout bump, indicating clearly if you'll slow down or not.
2018-07-19 22:37:32 -04:00
toaster
215e4039e4 Don't show (+ 0) for players that didn't get any points this round. 2018-07-19 16:28:36 +01:00
toaster
98c8926d9a Acommodate MF2_SHADOW in first person view 2018-07-19 16:07:14 +01:00
toaster
20d2be1a51 More FINISH stuff!
* Make it two seconds exactly, instead of two and change.
* Draw it in battle too!
* While testing the above, I discovered 3p's karma comeback timer drawing was slightly broken. Fixed that too.
2018-07-19 15:58:07 +01:00
toaster
e608da587a Fix another bug I introduced, this time on the Tab HUD. I shouldn't have tried to be too clever with lowestposition... 2018-07-19 15:56:21 +01:00
toaster
58346ef123 Minor across-board bugfixes re the past 24 hours of commits.
* d_main.c - fix the wipedef for skipping to the titlescreen to be the checkered one again.
* k_kart.c - Tweak drawtime's setting slightly.
* y_inter.c - Make endtic ALWAYS set when not netgame/splitscreen, to prevent an undesirable, possible hang whenever we add more stuff later.
2018-07-19 14:59:38 +01:00
toaster
2dc6722105 Further improvements to cv_timelimit support, to the point that I DO think it might be worth having on the menu (but mark the game as modified if it's touched, to discourage its overzealous use?) 2018-07-19 14:39:46 +01:00
toaster
9d4fa29b7d Some more intermission stuff.
* Combine three basically-identical functions into a generic framework function that takes a function pointer for the purposes of comparison!
	* Y_CalculateMatchData handles the (re)calculation of data.match whenever necessary.
	* Y_CompareRace handles time comparisons for Race.
	* Y_CompareBattle handles score comparisons for Battle.
	* Y_CompareRank handles rank comparisons for both gametypes.
* Move the recalculation for the rankingsmode to a different, non-drawing function.
* Re-organise Y_Ticker for sanity purposes.
* Tweak the countdown timer on both intermission and vote screens.
2018-07-19 14:29:11 +01:00
toaster
38bef90eb0 * Correct a bug with data.match.increase's ordering changing between CalculateTournamentPoints/CalculateMatchWinners and MakeRankingsTable.
* Per Sal's request, remove all commented out code that was just inhereted from vanilla (or is unlikely to ever be re-enabled again if it was written for Kart) in y_inter.c.
2018-07-19 13:23:15 +01:00
TehRealSalt
c10c788420 Made the items odds smoother!
What the heck does THAT supposed to mean, I hear you ask? Well...
- Mashing for items' effect on chances is now relative to how fast you pressed it! I'll give a more detailed explanation in #main_kart_dev.
- Instead of coding the Auto Frantic Items setting like I said I would, I did the same effect in a completely different way! Odds will automatically get better depending on how many players below 5 there are.
2018-07-19 03:31:14 -04:00
TehRealSalt
50711ce0b5 Use simpler logic for squishing other players
Instead of comparing k_growshrinktimer in awkward ways, just make sure the squishing player's scale is high enough above the victim's scale. This way, we can allow shrunk players to bump other shrunk players, and grown players to bump other grown players.
2018-07-19 01:11:21 -04:00
TehRealSalt
f1d21b008d Enhance toaster's awesome intermission work a bit further
- Further divide the 2 screens' functionality; the first screen is purely for match results, the second screen is purely for rank results. (only time/score is on the first page, only rank and rank increase is on the second page, instead of time/score and rank increase being on the first page, then rank increase carries over to the rank page...)
- The page switch now happens at exactly the halfway point of the intermission timer
- It now uses a cool picture of the view buffer, like SRB2 SP, except faded, instead of the previous intermission tile.
- Fixed an issue with the previous commit.
2018-07-19 00:07:13 -04:00
TehRealSalt
255a6d9d2a I'll one-up your request, toaster
Just make P_EndingMusic not do anything for non-local players, since P_RestoreMusic wouldn't either.
2018-07-18 22:01:52 -04:00
toaster
c14bdac3c4 Fix the egregrious bugs from our last testing netgame.
* Made Got_Teamchange's level-based stuff only happen in GS_LEVEL.
* If, by chance, DoTimeOver gets called on a player without an object, it won't crash either.
* Make ending music play when you get time overed.
* Make changing-to-spectators get removed from the intermission drawer.
2018-07-19 01:27:36 +01:00
toaster
1890eb5df8 COOL(!/?) 2018-07-18 23:42:34 +01:00
toaster
86347a56e2 RACE FINISH ANIMATION GRAPHIC! Scrolls across the screen, magestically. Like an eagle. Piloting a blimp. 2018-07-18 23:20:08 +01:00
toaster
88c826a443 A bunch of little things.
* Fix both cv_timelimit and cv_pointlimit as "hidden options" for people to play with if they know about them via the console.
* Show GAME SPEED on the tab screen.
* Fix Invincibility and Grow's music changes being broken. (I didn't test them properly when making them P_RestoreMusic calls, sorry.)
* Stop showing the First Person Kart view in spectator mode, per Sal's request.
2018-07-18 21:40:04 +01:00
toaster
d27ba2cd75 *A biggie: two-tier intermission screen!
* Have the entire thing slide the fuck away a short while into the intermission.
	* The tab screen is modified to work off similar behaviour and presentation.
* To go with it, a revamp of how Battle's scoring is handled.
	* It's now considered "hits", and is stored in a reuse in one of the vanilla NiGHTS variables, allowing it to use exactly the same ranking mechanisms as race.
	* No more resetting of score between battle rounds.
* Minor, unrelated general code cleanup in places.
* Disable the YEEEAH in splitscreen, otherwise you'll hear it *all the time*.
2018-07-18 20:23:46 +01:00
TehRealSalt
880231b141 Merge branch 'sonicitems' of https://git.magicalgirl.moe/KartKrew/Kart into sonicitems 2018-07-17 20:24:23 -04:00
TehRealSalt
4d45193e11 Better first person
turning and drifting is now taken into account in the x offsetting
2018-07-17 20:23:22 -04:00