Commit graph

2146 commits

Author SHA1 Message Date
James R
dd7e3e4c26 Loop camera
It zooms out, pans to the side and toward the player.

Loop Center thing:

- arg2: zoom-out speed in tics (zooms out when entering the loop)
- arg3: zoom-in speed in tics (zooms in when exiting the loop)
- arg4: zoom-out distance in fracunits (multiply by 65536)
- arg5: angle to pan to the side of the loop in degrees fracunits (multiply by 65536)
  - This will be flipped depending on where the camera was
    facing before entering the loop.
- arg6: panning speed in degrees fracunits (multiply by 65536)
- arg7: panning acceleration in tics (camera gradually pans to side of loop)
- arg8: panning deceleration in tics (camera gradually pans back to normal)
2024-09-12 13:04:37 -04:00
James R
7dfa273dde Loops: lag camera correctly 2024-09-12 13:01:41 -04:00
Oni
4c994de722 Merge branch 'loops' into 'master'
Sonic Loops

See merge request KartKrew/Kart!991
2024-09-12 12:10:40 -04:00
NepDisk
443737fc9d Implement Outrun terrain type with a twist!
Since I want to keep the v1 style speed cap, I am going to use a timer set alongside the outrun to enable/disable the ground speed cap so the speed boost doesn\'t get neuterd hard
2024-09-06 17:08:19 -04:00
toaster
0532cc8484 Remove P_InitAngle and its kin, considered on a case-by-case basis for also setting old_angle as well. 2024-09-04 01:18:51 -04:00
Sal
f54ba922a9 Merge branch 'fix-reset-interpolation' into 'master'
P_Ticker: update view interpolation at the start of a tic

See merge request KartKrew/Kart!1192
2024-09-04 01:05:12 -04:00
Oni
67689e9993 Merge branch 'enable-bustables' into 'master'
Let players bust bustable FOFs again

Closes #351

See merge request KartKrew/Kart!945
2024-09-03 21:28:34 -04:00
James R
049c03456a Refactor player waypoint code
- Condense K_GetPlayerNextWaypoint and
  K_UpdateDistanceFromFinishLine into slightly smaller
  functions
- Rename K_GetPlayerNextWaypoint to
  K_SetPlayerNextWaypoint
- Add K_UpdatePlayerWaypoints
2024-09-02 07:08:44 -04:00
NepDisk
39185c1c7c Looking backwards no longer makes the player seasick (fixed camera distance)
c62dfa20d2
2024-09-02 05:00:17 -04:00
James R
25a926b11d Quaketilt: fix jitter at certain momentum angles 2024-08-21 15:37:47 -04:00
James R
0c0d15c621 Fix quake tilt speed scaling varying by map scale 2024-08-21 15:37:39 -04:00
Sally Coolatta
841b52eb98 Move camera Z slightly faster
RR has more & taller slopes than SRB2K, so the old values were a bit jarring (you go off-screen a LOT more often)
2024-08-20 14:20:17 -04:00
NepDisk
a2fcc4bc20 UDMF cherry-pick cherry-pick 2024-08-20 02:47:00 -04:00
NepDisk
31205ce934 GTR_FREEROAM and Fix players constantly JUSTHITFLOOR when walking slowly at the top of slopes 2024-08-19 00:28:36 -04:00
NepDisk
ac27f0438a Port antigrief from SRB2Kart
Ported this one spefically since I prefer how it works
2024-08-18 01:39:26 -04:00
NepDisk
9ba2140b3d Restore old respawn PT1
All the code from k_respawn.c has been nuked. The gameplay of respawning works but it doesn't currently drop the player in the right spot for both legacy and new waypoints
2024-08-12 14:49:12 -04:00
NepDisk
fd6ec7746f remove more unused DI code 2024-08-08 19:14:32 -04:00
NepDisk
51178216e2 Remove trick panel leftovers 2024-08-05 12:24:00 -04:00
AJ Martinez
cfb86f00e4 Use bot mo angle in demo chasecam 2024-08-05 01:13:06 -04:00
Oni
ca03f2b777 Merge branch 'bot-realtime-fix' into 'master'
Bot `realtime` fix

See merge request KartKrew/Kart!874
2024-08-05 00:52:16 -04:00
James R
1567e669d4 Merge branch 'bot-online-desync' into 'master'
Fix bots desyncing in netgames

See merge request KartKrew/Kart!748
2024-08-05 00:45:10 -04:00
toaster
9016f65440 Support alternate gameplay events during GP
- Implementation details:
    - grandprixinfo.eventmode is the reference point
    - All bots have spectator applied and removed at map start depending on eventmode, and I've done my best to guard against side effects of not removing them entirely
    - You shouldn't turn off grandprixinfo.gp when turning on things like specialStage.active or bossinfo.boss when pursuing eventmode behaviour
    - Probably needs to be integrated into XD_MAP for any future netplay support, is currently disabled.
    - You technically don't have to assign a Capsules map to be the bonus and a Special Stage to be the special. A Capsules map can be assigned to a Special Stage too, and a Boss can be assigned to either of them.
    - Special Stages are still just as incomplete as they were before.
- Break the Capsules has special behaviour.
   - Timelimit starts at 20 seconds.
   - Earn 10 seconds (plus a little extra cheaty time) every capsule you destroy.
   - WIN + extra life if you bust all the capsules, COOL if you get some but run out of time, LOSE if you lose your bumper or run out of time without breaking a single capsule.
   - Supposed to also give you rings, but ran into a LOT of difficulty with this and didn't want to commit half-baked stuff, so it'll be a later project.
Also:
- Fix a long standing bug where totalring was reset between maps, preventing the sum from adding up across GP rounds and depriving you of extra lives you were owed.
- Fix an issue where Break the Capsules record attack was KARTSPEED_HARD.
- Send timelimitintics in savegames, since it's handled seperately now.
2024-08-05 00:41:06 -04:00
NepDisk
47cda284e6 Remove steering, use v1 turnvalue calcs, remove handleboost 2024-08-04 10:16:51 -04:00
NepDisk
473917e572 remove unneeded loops from bot turning 2024-08-03 03:24:10 -04:00
NepDisk
23ca6b1326 Give bots thier own non localangle dependent turning code 2024-08-03 02:58:02 -04:00
NepDisk
d7dd4f68e2 rings disable toggle, rebalance rings 2024-08-01 14:06:24 -04:00
NepDisk
608e2b6844 flipcam and encore flipcam 2024-08-01 11:46:59 -04:00
NepDisk
515be6e6b7 make flashing more accurate and remove the need for inflictor for P_damagemobj 2024-07-31 21:49:14 -04:00
NepDisk
f162efe6db Fix forwardmove 2024-07-31 18:55:24 -04:00
NepDisk
ac72e705a6 Reimplement squishing damange 2024-07-31 17:05:16 -04:00
NepDisk
f2f1a0aa66 Remove ebrake, spindash and fastfall. cleanup unused states and sprites 2024-07-31 12:46:03 -04:00
Sal
1d8475a958 Merge branch 'hooklib-port' into 'master'
Hooklib refactor ported and (mostly) squashed

See merge request KartKrew/Kart!662
2024-07-31 02:30:20 -04:00
James R
74e90f4a04 Merge branch 'spritestuff-ports' into 'master'
Spritestuff ports

See merge request KartKrew/Kart!669
2024-07-31 02:02:05 -04:00
James R
da1e2a7e98 Merge branch 'oldcmd' 2024-07-31 01:46:58 -04:00
NepDisk
d0b0af4bf1 Fix opengl sprite clipping and fix legacy checkpoint crash 2024-07-31 00:35:03 -04:00
NepDisk
50ee4edd02 Reimplement side move, start of pogospring, redone controls,stuff 2024-07-30 21:08:14 -04:00
NepDisk
f611554cbc Assorted Changes 2
Restored old titlescreen, generally made the game closer to v1 gameplay wise and visual wise
2024-07-30 18:00:37 -04:00
NepDisk
ec09f8a7e5 Make legacy checkpoints work along with respawn 2024-07-30 04:26:40 -04:00
NepDisk
763a278d38 Temporary disable spectate cam so netsync works 2024-07-30 00:49:27 -04:00
NepDisk
9b307973ef Assorted stuff
Things include brining back kstart music, removing position etc
2024-07-30 00:13:53 -04:00
NepDisk
da89e60929 Revert shrink and grow size changes, revert grow item
grow cancel doesn't work yet for whatever reason
2024-07-29 13:10:00 -04:00
NepDisk
3d25b4a2e2 Port v1 turning from noire 2024-07-29 05:48:52 -04:00
NepDisk
48871a8b68 Remove tumble. 2024-07-29 03:40:28 -04:00
NepDisk
8f3b2db7d3 Remove hitlag. 2024-07-29 03:24:40 -04:00
NepDisk
ec7cfc56fb Remove Stairjank. 2024-07-29 02:59:03 -04:00
Sally Coolatta
38dc572699 Reset fast falling in P_ResetPlayer
Resets it for springs
2022-09-05 10:58:50 -04:00
Sally Coolatta
bc538a066f Fast falling
E-Brake in the air for x4 gravity, at the cost of a tiny bounce on landing.
2022-09-04 21:21:25 -04:00
SteelT
ebcb76645b Adjust default camera dist and height
cam_dist is now 190
cam_height is now 75
2022-08-29 20:16:46 -04:00
Sally Coolatta
ddfa9e9d88 Fix NO CONTEST Pwr.Lv when more than 1 lap behind 2022-08-15 19:47:01 -04:00
Sally Coolatta
81582e8cac Some fixes
- No longer counts position laps
- Intermission TRULY fixed?!
- Attempted code refactor & simplification for forfeiting
2022-08-14 19:30:43 -04:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
Sally Coolatta
8815b065b3 Merge branch 'master' into bot-rubberband-edit 2022-05-25 23:29:04 -04:00
Sal
e3a0945566 Merge branch 'eggbox-cinders' into 'master'
Eggman Mark cinder fix

See merge request KartKrew/Kart!600
2022-05-25 07:37:08 +00:00
Sally Coolatta
a896d73334 Precalculate bot controller & rubberbanding
These both require a couple loops to preform each, which probably adds up over multiple bots. Let's just precalculate them at the start of bot ticcmd.
2022-05-24 15:28:36 -04:00
Sal
8b9adb1b4c Merge branch 'follower-maintenence' into 'master'
Follower angle lag + lookback

See merge request KartKrew/Kart!597
2022-05-24 06:49:15 +00:00
Sally Coolatta
c678146f0c Drastically simplified bot rubberbanding 2022-05-23 23:59:18 -04:00
AJ Martinez
3bc5fac430 Adjust steering lock after successful DI 2022-05-23 16:47:27 -05:00
toaster
17d007d418 * Restore player colour and colorization correctly when the Eggman Mark concludes its effect.
* Allow colorisation types to not completely crowd each other out.
    * For example, it's possible for invincibility + grow to flicker Invincibility, Eggman mark, and grow colours if the conditions for each type of flash are true on different frames!
2022-05-23 22:04:14 +01:00
Sally Coolatta
fcff62fc9e Lag of FRACUNIT matches your position exactly 2022-05-23 02:45:32 -04:00
Sally Coolatta
b5334e6b42 Move follower code to its own file 2022-05-23 00:23:46 -04:00
Sal
14053a55cd Merge branch 'tilttrack-absolution' into 'master'
Fix HUD tracking with viewrollangle

See merge request KartKrew/Kart!593
2022-05-23 00:25:34 +00:00
Sal
e492a04976 Merge branch 'lookback-snapback' into 'master'
Fix lookback interpolating

See merge request KartKrew/Kart!596
2022-05-23 00:19:50 +00:00
Sally Coolatta
6f42d84b2a Fix turn prediction in F12 2022-05-22 19:49:33 -04:00
toaster
946beabdf6 Fix lookback interpolating
# Conflicts:
#	src/p_setup.c
#	src/r_fps.c
2022-05-22 22:25:17 +01:00
Sally Coolatta
fa792e3378 Merge branch 'master' into turn-predict 2022-05-22 16:50:19 -04:00
Sally Coolatta
0dc472a255 Try resetting driftend 2022-05-22 15:38:08 -04:00
Sally Coolatta
51bde5c934 Merge branch 'master' into turn-predict 2022-05-22 14:42:54 -04:00
Sally Coolatta
83b5bfef59 Super Circuit hit confirms
After getting hit, you'll hear the person who hit you's hit confirm from any distance
2022-05-22 03:26:32 -04:00
toaster
9c0e793088 Incorporate some of the advances from tilttrack.
* Set view context in the player HUD loop inside `ST_overlayDrawer()`.
* The HUD code now gets all interpolated camera data from the view context instead of half-heartedly recreating it.
* Move Lua HUDlib data to the view context system instead of an else ladder.
* View roll support in HUD tracking, because the other changes made this trivial.
* Remove old_viewrollangle as it is now redundant.
2022-05-21 16:51:03 +01:00
toaster
38e6cba181 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into uncapped-absolution
# Conflicts:
#	src/f_finale.c
#	src/sdl/i_video.c
#	src/st_stuff.c
2022-05-21 13:40:20 +01:00
James R
8718d2c2f3 Merge branch 'rewrite-lightning' into 'master'
Lightning Shield fixes

See merge request KartKrew/Kart!589
2022-05-21 09:13:17 +00:00
Sally Coolatta
4b149c103c Bring back camera turn prediction
REALLY complicated, because just emulating player turning in ticcmd code is broken.
2022-05-21 03:11:37 -04:00
Sally Coolatta
6e8e0ad0f5 Lightning Shield fixs
- Rename to Lightning Shield (it keeps fucking me up when I want to kartgiveitem it to myself)
- Fix inflictors causing damage being considered damage hitlag. Fixes the player using Lightning Shield being in damage hitlag state (most notable in the DI branch because hurting someone with it lets you DI afterwards, which also fucks with your turning)
- Rewrote attack function to use custom blockmap search instead of P_NukeEnemies.
- It can no longer attack below you, only above & around you.
- Increased the attack radius, so that it actually lines up with the sprites...
- Fixed extremely inconsistent ring blockmap search by moving it to playerafterthink (don't ask me why)
- Rings get joulsted by Lightning Shield when you pass by them without
- Added MAXRADIUS to the blockmap checks for lightning shield & mines, to reduce blockmap inconsistencies
2022-05-20 18:12:34 -04:00
Sally Coolatta
56c23339be Directional Influence
Pretty much just copy+pasted from Snap the Sentinel!!
- Hold left/right to adjust the momentum angle after hitlag, up to 22.5 degrees. (Only angle can be adjusted, so you can't adjust your speed, only your direction.)
- It's relative to your angle, so sometimes you need to use forward/back, or even diagonals (forward/back throws now store full analog data for this to work)
- Bananas flip DI direction, to make them not baby easy mode
- Tumble has x3 DI (so angle adjustments of 67.5!!), and hitlag on each bounce to allow even more control.
2022-05-20 01:45:16 -04:00
James R
11f97049b1 Merge remote-tracking branch 'origin/master' into uncapped-absolution 2022-05-11 17:09:59 -07:00
Sally Coolatta
72d77f7fb5 Invincibility updates
- You flash white while in invincibility
- Invincibility is not rainbow UNTIL you go above the initial timer.
- Increased visibility of the shield effect around invincible players.
- Invincibility sparkles have trailing afterimages.
- Disabled invincibility speed lines; they now use the normal speedlines but grey/rainbow. (The code/sprites will be used for something later.)
- Using invincibility adds time, instead of setting it.
- Player hitbox is finally bigger, to actually match the shadow size.
2022-05-08 03:43:53 -04:00
Eidolon
f7ec2f182f Uncapped (squashed v2)
Squashed SRB2 2.2 Public uncapped without UDMF merge

Implement interpolation at the renderer level

Instead of interpolating thinkers, we interpolate mobjs inside the
renderer. Further interpolation is TBI.

Place Frame Interpolation in "Experimental" video options header

This seems like an appropriate way to describe the feature for now.

Add smooth level platter under interpolation, `renderdeltatics`

`renderdeltatics` can be used as a standard delta time in any place,
allowing for smooth menus. It will always be equal to `realtics`
when frame interpolation is turned off, producing consistent
framerate behavior everywhere it is used.

Add smooth rendering to save select screen

Add smooth rendering to Record/NiGHTS Attack, F_SkyScroll

Ensure viewsector is accurate to viewx/viewy

This fixes a potential crash in OpenGL when changing between levels.

Ensure + commands get executed before map start

Always have precise_t defined

Fix misc dropshadow issues

Reset view interpolation on level load

Remove unnecessary precipmobj thinker hack

Add reset interpolation state functions

Reset precip interpolation on snap to ceil

Reset mobj interp state on TeleportMove

Only swap view interp state if a tick is run

Run anti-lag chasecam at tic frequency

Fixes jittery and unstable chasecam in high latency netgames

Homogenize mobj interpolations

Add sector plane level interpolations

Add SectorScroll interpolator

Add SideScroll interpolator

Add Polyobj interpolator

Intialize interpolator list at a better time

Delete interpolators associated with thinkers

Interpolate mobj angles and player drawangle

Interpolate HWR_DrawModel

Add functions to handle interpolation

Much less code duplication

P_InitAngle, to fix angle interpolation on spawning objects

Fully fix drop shadows

It used the thing's floorz / ceilingz directly -- that wouldn't account for interpolated coordinates.

Do not speed up underwater/heatwave effect in OpenGL

Closer OpenGL underwater/heatwave effect to Software

Interpolate from time of previous tic

Previously interpolated from last 35th of a second, which
may be offset from game time due to connection lag.

Consider this the proper fix to 6ecac4159a too.

Calculate FPS stuff even if frame is skipped

I decided ultimately to actually keep the frame skip optimization disabled, because I think it is actually a little bit helpful that you can still get accurate rendering perfstats while paused, however if we decide otherwise then we can have this optimization back without making the game act like it's lagging.

Keep rect in memory

Feel better about this than creating one all da time

Lots of FPS stuff

- Disabled VSync, due to the numerous problems it has.
- Instead, added an FPS cap.
- Frame interpolation is now tied to fpscap != 35.
- By default, the FPS cap is set to the monitor's refresh rate.
- Rewrote the FPS counter.

(This also consolidates several more commits ahead of this
fixing various issues. -eid)

Misc changes after Kart cherry-picks

Fix renderdeltatics with new timing data

Update mobj oldstates before all thinkers

Allow FPS cap values

Adjust how FPS cap is checked to improve FPS stability

Fix precip crash from missing vars

Improve the framerate limiter's timing for extreme stable FPS

Handle the sleep at the end of D_SRB2Loop instead of the start

Simplifies logic in the other parts of the loop, and fixes problems with it frequently waiting too long.

Reset mobj interp state on add

Add mobj interpolator on load netgame

Move mobj interpolators to r_fps

Dynamic slope interpolators

I_GetFrameTime to try and improve frame pace

(It doesn't feel that much better though.)

Move I_FinishUpdate to D_SRB2Loop to sync screen updates with FPS cap, use timestamps in I_FrameCapSleep to simplify the code

Fix plane interpolation light level flickering

Fix flickering plane interpolation for OpenGL in the exact same way

Funny OpenGL renderer being at least 50% copy-pasted Software code :)

P_SetOrigin & P_MoveOrigin to replace P_TeleportMove

Convert P_TeleportMove use to origin funcs

Revert "P_InitAngle, to fix angle interpolation on spawning objects"

This reverts commit a80c98bd164a2748cbbfad9027b34601185d93f5.

Waypoint polyobjects interpolate z & children

Add interpolation to more moving plane types

Adds interpolation to the following:
- Crumbling platforms
- Mario blocks
- Floatbob platforms (this one works really strangely due to two thinkers, maybe double-check this one?)

Reset overlays interp states each TryRunTics

Interpolate model interpolation (lol)

Use interp tracer pos for GL linkdraw

Papersprite angle interpolation

Makes the ending signpost smooth

Move intermission emerald bounce to ticker

Bring back shadows on polyobjects

Also optimizes the method used so rings can show their shadows too. Using just the subsector is a tad bit imprecise admittedly but any more precise methods get really laggy.

Fix a bunch of ticking in hu_ drawing functions

Revert "Reset overlays interp states each TryRunTics"

This reverts commit a71a216faa20e8751b3bd0157354e8d748940c92.

Move intro ticking out of the drawer

Adjust 1up monitor icon z offsets

Fixes interpolation issues with 1up monitors.

Delta time choose player menu animations

Add drawerlib deltaTime function

Interpolate afterimages further back

Use old sleep in dedicated mode

Clamp cechotimer to 0

Fixes issues with cechos staying on-screen and glitching out
(NiGHTS items for example).

Revert "Remove unnecessary precipmobj thinker hack"

This reverts commit 0e38208620d19ec2ab690740438ac2fc7862a49e.

Fix frame pacing when game lags behind

The frame timestamp should've been made at the start of the frame, not the end.

Fix I_FrameCapSleep not respecting cpusleep

Jonathan Joestar bruh

Allow dedicated to use precise sleep timing again

Instead of only using one old sleep, just enforce framerate cap to match TICRATE.

Make Lua TeleportMove call MoveOrigin

Reset Metal fume interp state on appear

Add interpdebug

Put interpdebug stuff in perfstats instead

Add timescale cvar

Slow the game down to debug animations / interpolation problems! Speed it up if you need to get somewhere quickly while mapping!

Enable timescale outside of DEVELOP builds

It has NETVAR, so it should be fine -- put an end to useful debugging features excluded in multiplayer!

Force interpolation when timescale != 1.0

Reset old_z in MT_LOCKON think

Fixes interpolation artifacting due to spawn pos.

Fix cutscenes in interp

Fix boss1 laser in interp

Interpolate mobj scale

Precalculate refresh rate

Slower PCs can have issue querying mode over and over. This might kinda suck for windowed mode if you have different refresh rate displays but oh well

Fix interp scaling crashing software

Reset interp scale when Lua sets .scale

Disable angle interp on fresh mobjs

Fix interp scale crash for hires sprites

Interp shadow scales

Copy interp state in P_SpawnMobjFromMobj

Fix multiplayer character select

Don't interpolate mobj state if frac = 1.0

Fix Mario block item placement

Interpolate spritescale/offset x/y

Fix offset copies for SpawnMobjFromMobj

THANKS SAL

Add Lua HUD drawlists

Buffers draw calls between tics to ensure hooks
run at the originally intended rate.

Rename drawerlib deltaTime to getDeltaTime

Make renderisnewtic is false between tics

I know what I'm doing! I swear

Completely refactor timing system

Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.

This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.

Ensure mobj interpolators reset on level load

Ensure view is not interpolated on first frame

Disable sprite offset interpolation (for now)

Refactor timing code even more

System layer is greatly simplified and framecap
logic has been moved internally. I_Sleep now
takes a sleep duration and I_SleepDuration
generically implements a precise sleep with spin
loop.

Adjust spawned mobj z by gravity inversion

Only check VERTICALFLIP for old_z calc

Fix Marathon Mode menu for uncapped

Move screenshot code before timing

Only play emerald hunt sounds on new tics

Restore deleted zofs (fixes signpost sparkles etc)

Revert to before screenUpdate boolean was added

Was done this way for the sake of an older version of uncapped's timing; now that the new timing is much better, I decided it should remain as close to pre-uncapped as it can be.

Run UpdateLevelInterpolators in preticker

Fixes KartKrew/Kart-Public#10

Run UpdateMobjInterpolators in preticker

Reset view interp in preticker

Add per-split player view resets
2022-05-06 22:47:39 -05:00
toaster
1beee50942 Fixed the conditions where bad splitscreen player reads were occuring in P_EndingMusic.
Was only evident when someone joined and then left the 3p or 4p position of party, which is why we didn't discover it in testing.
2022-03-27 20:19:10 +01:00
toaster
babf630587 Set the target of a spawned ghost to where it came from.
# Conflicts:
#	src/p_user.c
2022-03-18 13:42:57 +00:00
toaster
a45b163bd1 Make P_EndingMusic *also* operate on local players rather than display players. 2022-03-12 19:32:03 +00:00
toaster
31db72256d Merge branch 'master' into boss
# Conflicts:
#	src/y_inter.c
2022-03-12 19:24:23 +00:00
toaster
65feacc16c Merge branch 'musicataparty' into 'master'
Music at a party

See merge request KartKrew/Kart!543
2022-03-12 18:40:03 +00:00
toaster
f794908430 Merge branch 'followtweak' into 'master'
Follower adjustments

Closes #202

See merge request KartKrew/Kart!514
2022-03-12 18:37:15 +00:00
toaster
f518ae5c58 * Fix some music and visual bugs with dying in Battle at the conclusion of the round.
* Fix emeralds HUD overlapping minimap in 2P splits.
2022-03-06 18:19:28 +00:00
toaster
61577e5026 * Re-enable kickstartaccel in battle.
* Add a little "ding" sound and HUD dorito bounce when your kickstartaccel reaches max, so you can let go of accelerate/know when you need to tap to stop.
* Make the name on top of the boss healthbar only show up once the titlecard is over.
* Properly reset boss healthbar fill between maploads.
2022-03-01 18:18:01 +00:00
toaster
c1f3237157 Boss API + assorted relevant bugfixes, will go over the featureset of this branch with a fine toothed comb when it's time to write the merge request description so this is all you're getting right now 2022-02-24 21:19:03 +00:00
James R
82377fb001 Merge branch 'invinc-color-fix' into 'master'
Invinc color fix

See merge request KartKrew/Kart!553
2022-02-17 07:59:29 +00:00
Sally Coolatta
39da886447 Merge branch 'master' into invinc-color-fix 2022-02-16 23:01:23 -05:00
Sally Coolatta
a750fdd810 Invincibility wasn't using K_RainbowColor anymore, what the function was designed for... 2022-02-16 23:01:07 -05:00
James R
9095261a18 POSITION music
Play SA2 "shwing" at title card; play POSITION music once
camera is steady (instantly in 1v1).

Encore: play portal warp sound instead of "shwing"; play
portal drone instead of POSITION music, always start
instantly.
2022-02-15 15:51:47 -08:00
James R
f749424de7 Turn kstart into sfx 2022-02-14 15:04:30 -08:00
toaster
006b6f00ac Rewrite the awayview reset for both Got_Teamchange and P_SpectatorJoinGame. 2022-02-11 12:09:00 +00:00
toaster
913610b1b7 Fixed P_RestoreMusic using displayplayers instead of local players (did not use any of the functions directly and so was missed). 2022-02-11 10:38:16 +00:00
toaster
4567d9c57f Fix allowteamchange (although this code wasn't being run, it still SHOULD return early...) 2022-02-11 00:35:11 +00:00
toaster
7508e0e198 P_IsLocalPlayer changes
This is the function that controls whether a bunch of music-related function (and also whether certain error messages get printed).

* P_IsLocalPlayer now supports party players (currently untested, but the code is pretty airtight).
* P_IsLocalPlayer now always returns false in replays.
* P_IsMachineLocalPlayer now exists for the one situation the game determines local players that actually has a net-related function (kicking illegal character changes).
* Invincibility/grow sfx now operates based on whether the player is NOT local (it used to be whether it was NOT a displayplayer).
* Refactored P_SpectatorJoinGame to make future team support easier, and also reset the relevant camera focus, rather than always the consoleplayer's.
* Fix viewpoints on non-local players having overlapping viewpoint text.
2022-01-24 22:03:40 +00:00
SinnamonLat
14961f6127 Let ThunderShield combo players 2022-01-23 17:58:08 +01:00
Sally Coolatta
7613cabfae No flashing tics in Battle 2022-01-05 03:17:38 -05:00
toaster
30fe173617 Bracketing (fixes a weird bug with bubble) 2022-01-04 23:21:28 +00:00
toaster
6651bd4043 Also fix bubble 2022-01-04 23:03:51 +00:00
toaster
60f08f2380 Defines per Sal request 2022-01-04 23:02:09 +00:00
toaster
a749160c6b Make followers only stretch for their movement *relative* to the player, not their movement in general. 2022-01-04 22:43:54 +00:00
toaster
316cd61d9f * Fix follower colour being limited to UINT8.
* Fix follower colour not being set in offline mode (based on Steel's fix but no UINT8).
2022-01-04 22:41:35 +00:00
Sally Coolatta
ef5a4f01d4 Merge branch 'master' into terrain-lump 2022-01-04 12:34:47 -05:00
Sally Coolatta
cc250afd45 P_InitAngle, to fix angle interpolation on spawning objects 2021-12-24 12:45:51 -05:00
Sally Coolatta
da459a9c73 Add terrain splashes 2021-12-19 00:57:45 -05:00
Sally Coolatta
8667aeb620 Add footstep particles 2021-12-18 21:23:41 -05:00
Sally Coolatta
0cd3efc76d Merge branch 'master' into terrain-lump 2021-12-18 18:36:05 -05:00
James R
1140410e2c Spawn SPHERE BOXES randomly in Battle
They look like random item boxes (the ones in Race) but
have a blue sphere inside of them. One box is worth 10
blue spheres. More boxes spawn during Overtime.

New sprite: SBOX
2021-12-14 01:05:42 -08:00
Sally Coolatta
cd0a259bbe Code cleanup
- K_FindBotController returns the line_t directly, instead of a linedef index.
- Trick panel code is in its own function.
- Try to fix infinite bot heat death
2021-12-12 02:32:03 -05:00
Sally Coolatta
8d5cec5ebf Move where PF_HITFINISHLINE is removed
Also removes a few remaining instances of player->bot being checked to affect gameplay where it shouldn't from vanilla, but it's code that is rarely used / completely unused anyway.
2021-12-11 04:12:06 -05:00
Sally Coolatta
35a72e56dc Implement splash & footstep blocks, commentate more of the code
They do nothing atm, but they can be set properly now :)
2021-12-09 14:45:59 -05:00
James R
3ae09d750c Merge branch 'water-physics-mkii' 2021-12-07 16:40:00 -08:00
James R
84170a59fa Cap underwater steering tilting 2021-12-06 20:35:26 -08:00
James R
2a74ee07f1 Update underwater physics
- Reduce steering effect and remove increased friction.
- Strafe into turns and tilt the inside wheels up.
2021-12-05 20:12:48 -08:00
Sally Coolatta
83444ce5d5 Interpolate angle & nametags 2021-12-01 16:50:17 -05:00
toaster
2ca195961b Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart.git into fix-followers 2021-11-30 13:43:10 +00:00
Sal
a326e180ca Merge branch 'replayfixes' into 'master'
Replay fixes mark whatever

See merge request KartKrew/Kart!463
2021-11-30 02:28:57 +00:00
Sally Coolatta
a52dc0f845 Copy interpolation data to afterimages 2021-11-29 20:47:28 -05:00
Sally Coolatta
3d2ad0b95e Fix water trails not interpolating properly 2021-11-29 17:59:15 -05:00
toaster
3141ca0221 Replay fixes mark whatever
Not a pancaea for EVERYTHING, just a bunch of good stuff.

* Some issues with spectators not == true because the assignment wasn't casted.
* Netgame status (or rather its inverse) is recorded in netreplays now, to allow for power levels controlling spawn position.
* Fixed tally screen for replays to not scream infinitely at you.
* P_IsLocalPlayer now uses display players in replays.
* A bunch of good testing prints that helped me find these problems, commented out for now just in case we need them again soonish.
2021-11-28 20:03:49 +00:00
James R
8109bc8e61 Merge branch 'fast-snake' into 'master'
Quick reptile

See merge request KartKrew/Kart!451
2021-11-22 07:30:33 +00:00
James R
239e91c439 Do not tilt while respawning; speed up camera (snappier) 2021-11-21 22:20:04 -08:00
toaster
6ad177cb42 Gainax eyesparkle (surprisingly, not a name for a pony...)
* Hold lookback to create a tiny twinkle in your eye.
* If an opponent is behind you, that sparkle is pretty big and plays a cool animation.
* If an opponent is behind you and you have an item, initiate the Chengi Gleam.
* These sparkles are only visible for every player except you. (Currently even with hyuu ghostliness)
2021-11-21 21:39:43 +00:00
SinnamonLat
647dfd98fb forgot to change something back 2021-09-02 13:40:57 +02:00
SinnamonLat
f96f7c6ba3 Fix follower colours 'Match' and 'Opposite' not working 2021-09-02 13:34:17 +02:00
SinnamonLat
caf1ed37ac fix janky follower movements due to lag type being changed from int32 to uint32 in the struct 2021-09-02 08:17:43 +02:00
Sally Coolatta
4eee8ab1d7 Fix tilting in splitscreen
R_GetPitchRollAngle used R_PointToAngle. This was fine because it was meant for rendering code. However tilting does its code mostly in player thinker, and it also uses this function, so it was not fine -- it would have some remainder tilt settings from the last player's screen.
2021-06-12 02:15:00 -04:00
SteelT
b3cee8b8fc Merge branch 'master' into trick-panels-changes 2021-06-10 23:45:35 -04:00
Latapostrophe
29e11a0378 changes to the delay, boost when doing upwards trick 2021-04-22 15:11:15 +02:00
Sally Coolatta
48c8843feb Merge branch 'master' into stair-janking 2021-04-21 21:44:23 -04:00
toaster
00972a83d2 remove the prefix since everything seems to function 2021-04-17 11:30:08 +01:00
toaster
b3d006b093 structs gunched 2021-04-17 00:27:13 +01:00
James R
786dec30ad Tweak stair janking physics a bit
- Fuck up turning for half the duration of the animation.
- Treat drift the same as turning (just ignore it).
2021-04-11 02:09:26 -07:00
James R
50c198cc0f Fuck up turning even more
- Lose control of turning for 2 tics instead of 1.
- Drift angle is also increased (less inward).
2021-04-10 04:22:44 -07:00
James R
2b173f1ec0 Rumble the jart when stepping on staircases
- Sprite tilts back and forth 5.625 degrees, two tics each
  side, for 17 tics (half a second).
- Turning is ignored--as if in the air--every other tic
  during those 17 tics.
2021-04-10 03:22:23 -07:00
Sal
22c3dae600 Merge branch 'invinc-changes' into 'master'
Invincibility changes

See merge request KartKrew/Kart!412
2021-04-07 02:46:32 -04:00
Sally Coolatta
05915e641c Merge branch 'master' into turn-mom 2021-04-07 01:25:34 -04:00
SteelT
3545836ea1 Merge branch 'master' into invinc-changes 2021-04-07 01:20:12 -04:00
James R
7e74a1d823 Cap camera tilt at 45 degrees; remove excess airborne easing 2021-04-06 21:53:14 -07:00
James R
5660cac3ad Stronger tilt on sliptiding + turn to face the camera
Oni's Sick Nasty
2021-04-06 20:45:47 -07:00
James R
9dcce02e5e Don't add tumble/sliptide rollangle to camera tilt 2021-04-06 20:43:31 -07:00
SteelT
fc8bd429f3 Merge branch 'master' into invinc-changes
Also made changes to sparkles, invincibility speedlines now replaces the sparkles if boosting.
2021-04-06 22:40:02 -04:00
James R
0818be1b8a Tilt camera less quickly with more air time 2021-04-06 19:16:48 -07:00
James R
46ba47785d Ease camera tilting quickly toward a steep angle, slowly toward a shallow angle 2021-04-06 17:52:03 -07:00
James R
bdc4b50de2 Let viewrollangle be independent of camera tilting 2021-04-06 16:25:25 -07:00
James R
f313eece7e Use pitch/roll for camera tilting 2021-04-06 16:25:25 -07:00
James R
696e405038 Lift the wheels of your jart a little when sliptiding 2021-04-06 16:25:25 -07:00
James R
c74e02d9dc Tweak camera tilting
- Grow divisor with delta. Reduce divisor base from 32 to
  17. This makes small changes in tilt snappier, while
  larger ones ease in.
- Added tilting during quakes is subtler.
2021-04-06 16:25:25 -07:00
Sally Coolatta
72dc88c043 Attempt at a non-controller dependent compromise for turn easing
Values are subject to tweaking.

(AngleDelta stuff is a leftover of the previous attempt, but I think the code's useful so I kept it in this commit anyway)
2021-04-05 23:52:56 -04:00
Sally Coolatta
8bb1fa57d4 Merge branch 'master' into 22-merge-again 2021-04-05 01:11:26 -04:00