Commit graph

476 commits

Author SHA1 Message Date
LJ Sonic
2a896538d9 Merge branch 'netcode-rerefactor' into 'next'
Re-delete netcode

See merge request STJr/SRB2!2083
2023-09-18 16:47:28 +00:00
Lactozilla
69df136e2b Merge remote-tracking branch 'stjr/next' into team-gametype-keep-player-color 2023-09-12 19:17:07 -03:00
Lactozilla
8d56a4d32e Move splitscreen code path out of SetSkinLocal and into SendNameAndColor 2023-08-15 12:37:18 -03:00
Lactozilla
a745997243 Better handling of cv_skin/cv_playercolor in singleplayer 2023-08-15 12:27:38 -03:00
Lactozilla
062af20628 Don't change cv_skin or cv_playercolor if there is no need to 2023-08-15 04:29:50 -03:00
Sal
492fe94597 Warp cheat adjustments 2023-08-07 18:35:20 +00:00
LJ Sonic
df0c8e0557 Merge remote-tracking branch 'origin/next' into netcode-rerefactor 2023-08-01 19:00:52 +02:00
Sal
26583a9845 Ring Racers CMake + Debug build improvements 2023-08-01 02:29:45 +00:00
LJ Sonic
0b17e3c418 Move netcode files to a new folder 2023-07-27 15:38:42 +02:00
Sal
a7964ffc69 Merge branch 'm-random-take2' into 'next'
New M_Random implementation

See merge request STJr/SRB2!1780
2023-07-26 14:53:01 +00:00
tertu marybig
9e5a828508 New M_Random implementation 2023-07-26 14:53:01 +00:00
Sally Coolatta
80bf4d6c2d Port SRB2Kart join on intermission fix
All gamestates besides GS_LEVEL are unsupported by the save game functions. This commit forces players joining during these gamestates into GS_WAITINGPLAYERS, which is a basic gamestate that just maintains the connection until we can enter the start of a new one. Also provides an extremely simple drawer for GS_WAITINGPLAYERS so the joining player knows what's going on.
2023-07-16 20:53:28 -04:00
Sally Coolatta
49fa46d80e Online emblems
Currently, emblems share with everyone. Will add an option to toggle this.
2023-06-02 16:06:43 -04:00
MascaraSnake
e4933b3e94 Merge branch 'allow-modified-saving' into 'next'
[SUGOI] Allow saving in modified games.

See merge request STJr/SRB2!1749
2023-05-24 05:04:26 +00:00
spherallic
9d6456c326 Merge branch 'next' into public_next 2023-04-02 19:33:16 +02:00
spherallic
1470d099e3 Update copyright year & credits 2023-03-31 14:53:31 +02:00
spherallic
4a1e99729b Merge branch 'next' into public_next 2023-01-31 15:47:11 +01:00
Eidolon
e5dea805fa Revert "Merge branch 'gamepad-refactor' into next"
This reverts commit 696e2ab909, reversing
changes made to d98d59494f.
2023-01-26 19:26:28 -06:00
LJ Sonic
379cc4207a Revert "Merge branch 'netcode-refactor' into merging"
This reverts merge request !1920
2023-01-15 17:57:23 +00:00
LJ Sonic
717e0d5a17 Move netcode files to a new folder 2022-12-31 14:10:19 +01:00
Eidolon
4c72154d4f Merge remote-tracking branch 'local-SRB2/next' into public_next 2022-12-08 21:26:28 -06:00
Eidolon
aac04b818c Merge branch '22-safe-addfolder' into 'public_next'
Path security checks for addfile, addfolder and exec

See merge request STJr/SRB2Internal!633
2022-12-07 00:43:31 +00:00
Sally Coolatta
a22fa1c455 Compromise on cheats setting modified game
Instead of modifying the game, cheats now set a separate "cheats were used in this session" variable, which returns some of the old behavior.

HOWEVER, cheats will STILL allow spawning / collecting emblems & unlocking unlockables. Cheats will purely prevent saving progress. (It was always frustrating that devmode would make debugging unlockable features harder...)

Lastly, the function to set no-saving was exposed to Lua (`G_SetUsedCheats(silent)`). Just thought it'd be useful for large-scale gamedata-using mods that want to add their own cheat commands.
2022-11-16 11:14:31 -05:00
Sally Coolatta
1b43cdddd5 Allow saving in modified games. 2022-11-16 11:14:29 -05:00
Jaime Ita Passos
46f7fa406f Refactor gamepad code
Implements the SDL Game Controller API, haptics, and axis bindings.
2022-11-14 00:37:08 -03:00
Eidolon
b2fa9e4bd7 Don't sleep w/ fpscap 0 and vsync enabled 2022-11-12 17:18:04 -05:00
James R
76879299f9 Restrict exec path to srb2 directories 2022-10-14 22:10:24 -07:00
James R
b1a86b0b34 Disallow adding files with absolute path or traversing upward
(Except as part of srb2home, srb2path or addons_folder --
this lets addons menu work, primarily.)

- disallowed when using addfile or addfolder
- security check for xcmd receive
2022-10-14 20:41:45 -07:00
Eidolon
41f17495c4 uncapped: Update closed captions only on new tics 2022-10-09 15:29:28 -05:00
Sally Coolatta
8b175398f8 Use old behavior when dipping below 35 with interp 2022-05-30 17:25:43 -05:00
Eidolon
32b166669e Don't interpolate during net lag 2022-05-17 19:57:31 -05:00
Sally Coolatta
4d18329946 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.
2022-05-05 15:07:27 -05:00
Sally Coolatta
40c2f66a5a Move screenshot code before timing 2022-05-04 20:02:36 -05:00
Eidolon
f0d7d8467f 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.
2022-05-01 00:32:46 -05:00
Eidolon
e79654a33a 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.
2022-04-30 16:33:23 -05:00
Eidolon
dcbe929baa Make renderisnewtic is false between tics
I know what I'm doing! I swear
2022-04-30 13:53:56 -05:00
Eidolon
82310e0ae2 Add Lua HUD drawlists
Buffers draw calls between tics to ensure hooks
run at the originally intended rate.
2022-04-30 01:55:10 -05:00
Sally Coolatta
f2a19b29d9 Put interpdebug stuff in perfstats instead 2022-04-27 18:37:45 -05:00
Sally Coolatta
c83d1be21f Add interpdebug 2022-04-27 18:37:45 -05:00
Sally Coolatta
eb6b1f375a Allow dedicated to use precise sleep timing again
Instead of only using one old sleep, just enforce framerate cap to match TICRATE.
2022-04-27 16:33:05 -05:00
Sally Coolatta
9b4e485686 Fix frame pacing when game lags behind
The frame timestamp should've been made at the start of the frame, not the end.
2022-04-27 16:06:03 -05:00
Eidolon
a4ea2c2708 Use old sleep in dedicated mode 2022-04-26 20:56:35 -05:00
Sally Coolatta
80cb9994d5 Move I_FinishUpdate to D_SRB2Loop to sync screen updates with FPS cap, use timestamps in I_FrameCapSleep to simplify the code 2022-04-26 20:56:33 -05:00
Sally Coolatta
f482218913 I_GetFrameTime to try and improve frame pace
(It doesn't feel that much better though.)
2022-04-26 20:56:33 -05:00
Sally Coolatta
b18e53417a 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.
2022-04-26 20:56:33 -05:00
Sally Coolatta
685190fe40 Improve the framerate limiter's timing for extreme stable FPS 2022-04-26 20:56:32 -05:00
Sally Coolatta
53c71d35bc Adjust how FPS cap is checked to improve FPS stability 2022-04-26 20:56:32 -05:00
Eidolon
84f62f91f4 Fix renderdeltatics with new timing data 2022-04-26 20:56:32 -05:00
Sally Coolatta
c186d6402b 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)
2022-04-26 20:56:32 -05:00
James R
1b49a96eed 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 54148a0dd0 too.
2022-04-26 20:56:31 -05:00