Commit graph

170 commits

Author SHA1 Message Date
toaster
83bfca8009 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into karmegg 2018-10-09 21:09:52 +01:00
toaster
76eebe6cf7 If you hit a one-bumper person with a karma fake, you get to come back immediately! 2018-10-09 21:09:39 +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
42307c0ea0 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into karmegg
# Conflicts:
#	src/p_inter.c
2018-10-07 15:17:31 +01:00
toaster
2f061a531a Karma Eggman. Does what it says on the egg. Tried very hard not to merge conflict with frameperfectegg.
Also includes some adjustments to:
* Horizontal offset of Eggman countdown in splitscreen again. It's not perfectly centered either way, but on second thought I like this better.
* Sound of Lat`'s Mine/SPB explosions - now uses same sound as Karma bombing, instead of that shitty paraloop.
* Correctly wipe k_eggmanblame when it is appropriate to do so.
2018-10-07 11:40:06 +01:00
toaster
2effb6adc3 Halt frame-perfect egg crash.
(The code is slightly modified from what I put in bug-reports as a potential fix, but I'm glad I was on the right track.)
2018-10-05 23:24:26 +01: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
147b7a5786 Modified SPB to not route through P_DamageMobj (so wehave more control over the shield dropping/item obliteration, given Sryder picking up his own Thundershield...) 2018-10-01 21:48:52 +01:00
toaster
659810cd81 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into itemdrop
# Conflicts:
#	src/dehacked.c
#	src/info.c
#	src/info.h
2018-09-23 11:47:29 +01:00
TehRealSalt
487e114fee raceexittime var 2018-09-22 18:59:26 -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
6f6fcc9615 Merge branch 'sal-misc' of https://git.magicalgirl.moe/KartKrew/Kart.git into itemdrop
# Conflicts:
#	src/info.c
#	src/sounds.c
#	src/sounds.h
2018-09-12 15:04:53 +01:00
TehRealSalt
a794386d8e New drift sparks 2018-09-11 19:52:00 -04:00
toaster
baf50a1dbf * Slightly more papersprite stability!
* Slightly more sane Minecraft item scaling!
2018-09-07 14:26:00 +01:00
toaster
4de68f7fe2 Dropping items!
* Shield Drop...
	* Whatever you've got orbiting or trailing you, DROP THEM WHERE THEY STAND. (Except for the ghost sink. That one's OK.)
	* Pops your Thunder Shield.
	* Happens upon ANY hit, except for deathpits.
* HUD Drop...
	* Also does the above, except for the Thunder Shield thing.
	* If there's any item left in your item box, pop it out as a little hovering, rotating Minecraft item!
	* You can pick up the Minecraft item by driving over it if your item box is sufficiently empty, or the item which is contained within it is of the same type.
	* Happens upon Size Down and battle elimination.
	* Can also be forced on with `cv_kartdebughuddrop on`!
* Some other random stuff.
	* Fix a bunch of `a->scale = b`'s into `P_SetScale(a, b)` form, for maximum validity.
	* Make K_CleanHnextList and K_UpdateHnextList one function, since they only differed by one continue clause (and the type of their input parameter).
	* Allow shrunken players to pick up item boxes again.
	* Fix MF_NOCLIPTHING. (Gonna pass this fix to vanilla when I get the chance, too.)
	* Break NiGHTS a little through my machinations.
2018-09-06 22:17:29 +01:00
TehRealSalt
e271c2de5d If the game would normally end in a bomb kill, then always switch their places 2018-09-04 20:16:42 -04:00
TehRealSalt
001d46873d Ghost sink "shield"
Sink shield that makes it double-press to use, gives the trailing item slowdown, and shows other people that you have it, but doesn't have any collision
2018-09-04 19:14:44 -04:00
toaster
a6813ae08e No longer are orbiting/trailing objects in charge of removing themselves.
* They're clearly not quick enough at the job, since it causes a bunch of silly race conditions.
	* Instead, K_UpdateHnextList and K_CleanHnextList are in charge of removing them, which are called in the circumstances itemamount (and itemheld/eggmanheld) is changed.
	* Also, tweak a few places so that trailers AND orbiters can use the same system.
Also, some minor thingies.
	* Turn all the useless ```if (a) { A } else if (!a) { B }``` bullshit into ```if (a) { A } else { B }``` bullshit.
	* Fix up some minor inaccuracies in the playerarrow stuff that doesn't result in creating more sprites.
2018-08-24 15:14:18 +01:00
SeventhSentinel
9655dcf350 revert this for the future 2018-08-12 11:17:30 -04:00
SeventhSentinel
995f2a9d06 added return 2018-08-12 11:12:18 -04:00
SeventhSentinel
6fa4c27bf6 fakes use MF_SPECIAL, no longer destroyable 2018-08-12 11:04:36 -04:00
SeventhSentinel
4ea7c26c11 New pickup conditions for fakes
Instead of checking for item slot, it checks for invincibility or if you already have a fake
2018-08-12 10:22:28 -04:00
SeventhSentinel
ff893f8f63 hud stuff
eggman nums & rocket sneaker bar
2018-08-12 10:15:55 -04:00
SeventhSentinel
82343719e2 fixed n blame 2018-08-11 20:54:08 -04:00
SeventhSentinel
cde54211c2 eggman
broken
2018-08-11 20:19:09 -04:00
TehRealSalt
cc009aca4f Flashing tics length depends on speed stat
Change to speed-weight when the bump buff gets added
2018-08-11 00:12:41 -04:00
toaster
2abf256531 * Fix various instances where bananadrag might not be reset.
* Improve K_KillBananaChain to be tail recursive.
2018-08-06 16:19:07 +01:00
toaster
0dddf7623a Buggy netgame! Sorry yalls.
* Fix free play on intermission.
* Fix crash in killing/damaging mobj with null death/pain state.
2018-07-29 23:07:10 +01:00
TehRealSalt
f9e5a11060 - Instashield on failed damge
- Ballhog explosion separated onto another sprite
- Disabled banana jitter
2018-07-26 20:12:42 -04:00
toaster
bd12658355 Added the ability to toggle the f-zero style elimination of last place specifically.
Type `karteliminatelast off` to turn it off, and `karteliminatelast on` to... you know the rest.
2018-07-25 21:33:03 +01:00
TehRealSalt
f820733d9b Orbinaut 2018-07-22 20:55:18 -04:00
TehRealSalt
cac613f3ef Merge branch 'sonicitems' into bumpstuff 2018-07-22 00:32:11 -04:00
TehRealSalt
77165631c4 HERE COMES A NEW CHALLENGER 2018-07-22 00:31:02 -04:00
TehRealSalt
584082882c 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
TehRealSalt
b891ebe614 Wipeout items bounce you 2018-07-20 03:41:26 -04:00
toaster
a036e9cdc8 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
2b7298e959 *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
toaster
69b6845029 * 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
toaster
1d88cdf40d Mammoth commit!
* Deaths in record attack no longer put you into a glitchy singleplayer game-over state that we somehow both kept around and also broke since we branched Kart off of Vanilla..
* Fix non-standard mapscales making the Death Egg respawn octagons dissasemble themselves.
* Allow for MULTIPLE TIME EMBLEMS PER MAP, at least in the emblem UI on the timer. It shows all completed emblems plus the uncompleted emblem up to a total of three.
* Major tweaks to the First Person HUD.
	* I know this was your baby, Sal, and some of the changes may prove controversial - so I've put the ones that are likely to cause the most fuss inside an ifndef block, so that you can toggle it as you please with minimal code changes.
	* Dontdraw-ness, transparency, and colorization match the player's object!
	* Moves around on the screen with respect to the direction of the player object's motion, to make drifting look nicer!
	* Flashes the colour of your drift sparks.
* Did a WHOLE bunch of things with respect to music. I'm not sure how to describe this, so I'll go through step-by-step.
	* Countdowns now play the drowning music again.
	* Removed/disabled extraenous P_RestoreMusics.
	* Made map-ending music called by its own function, P_EndingMusic(player_t *player).
	* Made the ending music play on the LAST player crossing the finishing line in splitscreen, rather than first.
* Make dead players spinout and clip through the floor, at least until we add the new death anims.
* Fix prior pogo spring usage making dead players fall faster.
* Make the time over countdown use the kart font when not splitscreen with 3 or 4 players.
* Removed a weird bonus HWR_DrawCroppedPatch function signature in the hardware header.
2018-07-16 20:19:30 +01:00
TehRealSalt
6574e1f0fc Shrink debug command, trailing items spawn directly on players, rainbow win 1 is more faithful, make springs more powerful for shrunk players, correct Grow/Shrink fullbright frame 2018-07-12 01:31:33 -04:00
TehRealSalt
6627483e37 Misc tweaks (mostly color related)
- Smoothed out Ruby & Sepia
- Made Sapphire more distinct from Blue
- Made Navy more distinct from Jet
- MD2 colors weight a few colors even more heavily
- Revised ColorOpposite table
- Fix Wanted not updating on hit
- Very minor item odds adjustment for Battle
2018-07-06 14:22:48 -04:00
TehRealSalt
fbcf566874 WANTED recalculates on hit, tons of spectator changes 2018-07-03 21:12:25 -04: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
TehRealSalt
5c7b66cc0f WANTED 2018-07-01 04:36:09 -04:00
TehRealSalt
4a9c3618c3 Reverted scoring back to what it was before, change order-of-operations to allow switcheroos from bombs. 2018-06-30 23:35:38 -04:00
SeventhSentinel
dd04d68c09 Held item changes 2018-06-27 15:58:43 -04:00
SeventhSentinel
501bfae9ac Revert MT_FIREBALL to vanilla, remove MT_FIRETRAIL, MT_BALLHOG added, bigger Jawz explosions 2018-06-25 17:12:01 -04:00
SeventhSentinel
18b3d2d14c Spinout type is now passed through K_SpinPlayer
This means we don't have to reset spinouttype's value immediately after using it, which means no more wipeout timer garbage.
2018-06-25 06:58:23 -04:00
SeventhSentinel
ab64504213 Kitchen sink is back
Haven't tested yet
2018-06-25 01:36:21 -04:00