Commit graph

371 commits

Author SHA1 Message Date
toaster
4c412d931a Introducing Marathon Run. (I was going to call it Marathon Mode, but NiGHTS Mode being right next to it on the menu looked terrible.)
Basically a dedicated Record Attack-like experience for speedrunning the game as a continuous chunk rather than ILs. Has several quality of life features.

Benefits include:
* An unambiguous real-time bar across the bottom of the screen, always displaying the current time, ticking up until you reach the ending.
* Disable the console (pausing is still allowed, but the timer will still increment).
* Automatically skip intermissions as if you're holding down the spin button.
* Show centiseconds on HUD automatically, like record attack.
* "Live Event Backups" - a category of run fit for major events like GDQ, where recovery from crashes or chokes makes for better entertainment. Essentially a modified SP savefile, down to using the same basic functions, but has its own filename and tweaked internal layout.
* "spmarathon_start" MainCfg block parameter and "marathonnext" mapheader parameter, allowing for a customised flow (makes this fit for purpose for an eventual SUGOI port).
* Disabling inter-level custom cutscenes by default with a menu option to toggle this (won't show up if the mod doesn't *have* any custom cutscenes), although either way ending cutscenes (vanilla or custom) remain intact since is time is called before them.
* Won't show up if you have a mod that consists of only one level (determined by spmarathon_start's nextlevel; this won't trip if you manually set its marathonnext).
* Unconditional gratitude on the evaluation screen, instead of a negging "Try again..." if you didn't get all the emeralds (which you may not have been aiming for).
* Gorgeous new menu (no new assets required, unless you wanna give it a header later).

Changes which were required for the above but affect other areas of the game include:
* "useBlackRock" MainCFG block parameter, which can be used to disable the presence of the Black Rock or Egg Rock in both the Evaluation screen and the Marathon Run menu (for total conversions with different stories).
* Disabling Continues in NiGHTS mode, to match the most common singleplayer experience post 2.2.4's release (is reverted if useContinues is set to true).
* Hiding the exitmove "powerup" outside of multiplayer. (Okay, this isn't really related, I just saw this bug in action a lot while doing test runs and got annoyed enough to fix it here.)
* The ability to use V_DrawPromptBack (in hardcode only at the moment, but) to draw in terms of pixels rather than rows of text, by providing negative instead of positive inputs).
* A refactoring of redundant game saves smattered across the ending, credits, and evaluation - in addition to saving the game slightly earlier.
* Minor m_menu.c touchups and refactorings here and there.

Built using feedback from the official server's #speedruns channel, among other places.
2020-05-14 23:10:00 +01:00
sphere
948582ce4e Restore SHORT(). 2020-05-12 17:20:29 +02:00
sphere
4d9d125a99 Fix some errors and add some comments. Also, actnum is not an INT32. 2020-05-12 17:20:28 +02:00
sphere
21130dfbb0 Support act numbers up to 99 and draw both digits individually. 2020-05-12 17:17:24 +02:00
Sally Coolatta
15d18640de Merge remote-tracking branch 'public/master' into merge-12 2020-05-12 03:16:14 -04:00
sphere
6b761c1486 Make showfps save to config, and add a compact option. 2020-05-08 15:40:50 +02:00
Sally Cochenour
f2aa2bb541 'sal-lighting' code ports from v2 2020-04-25 20:56:50 -04:00
Wolfy
5e4ec61d82 Merge remote-tracking branch 'remotes/bird/isolatedbatching' into awful-mix
# Conflicts:
#	src/hardware/hw_cache.c
#	src/hardware/hw_draw.c
#	src/hardware/hw_glob.h
#	src/hardware/hw_main.c
#	src/r_bsp.h
#	src/r_data.c
2020-04-11 23:47:25 -05:00
James R
61be09e6bf Merge remote-tracking branch 'origin/master' into gifs-port 2020-03-28 21:00:39 -07:00
James R
0a0dede69e Revert "Correcting gamma to match base SRB2."
This reverts commit cdf8c54f2d.
2020-03-24 15:13:54 -07:00
Jaime Passos
f106ba7ac4 Fix color LUT using the wrong palette
(cherry picked from commit 636093a59ddd95b25d79c4ebff51dc6412de1956)
2020-03-23 17:11:13 -07:00
Jaime Passos
b8f5166d8e Avoid recreating the color LUT mid-recording-frame
(cherry picked from commit c3f0e6aa4472f0754a7f392759b9f93cb3c7651b)
2020-03-23 17:10:37 -07:00
Jaime Passos
53f78b7693 Recreate the CLUT when the palette changes
(cherry picked from commit 6e0ff4a4a40306a59c8b18d03ae86560e6a52a4a)
2020-03-23 17:10:34 -07:00
Jaime Passos
1a759a4904 GIF recording
(cherry picked from commit d467d2b2295a9660631774b9edb29555cc5c30fe)
2020-03-23 17:10:33 -07:00
toasterbabe
d688ef2c90 Fix typo.
(cherry picked from commit 5180bff05b)
2020-03-23 16:46:00 -07:00
toasterbabe
2fb599661e Introducing pMasterPalette.
Used instead of pLocalPalette when attempting to determine objective truths, such as "the colours of this gif without color profile modification" and "what indicies should this colormap remap to".

Also, made f_wipe.c's paldiv only get calculated once.

(cherry picked from commit d669a4e84a)
2020-03-23 16:45:57 -07:00
toasterbabe
cdf8c54f2d Correcting gamma to match base SRB2.
(cherry picked from commit 29d5af61c1)
2020-03-23 16:34:59 -07:00
toasterbabe
fcc80b12ad Colour Cube Calibration Menu! (called "Advanced Color Settings" because No Fun Allowed...)
https://cdn.discordapp.com/attachments/237798387070664724/304343382073933824/aa.png

Also, a "Reset all" button for the Monitor toggle menu, a ton of new cvars to match up with the colour cube calibration, and a bunch of variable renames related to colour cube operations.

(cherry picked from commit c3840ba01d)

# Conflicts:
#	src/m_menu.c
#	src/v_video.c
2020-03-23 16:34:34 -07:00
toasterbabe
b1202b617c greem
(cherry picked from commit 9b13caccae)
2020-03-23 16:28:35 -07:00
toasterbabe
a82e5ee916 Figured out what was up. I didn't quite understand my original array!
(cherry picked from commit c2edd6224d)
2020-03-23 16:28:35 -07:00
toasterbabe
f5ecb1b9c9 Introducing the Colour Cube! https://cdn.discordapp.com/attachments/293238104096112641/304015171385294850/aa.png
Basically in preperation of supporting colourblindness modes I implemented the following link when loading palettes.
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html

This basically means I can do whatever the hell I want to the colour profile of incoming paletties, and nobody can stop me. Muahahahaha etc.

Also, I added a saturation feature to show off its full potential, converted gamma from a table to a factor of the calculation, tweaked some menus and made the default value of cvars show up on sliders. Because that's how I roll.

(cherry picked from commit 83e16da83b)

# Conflicts:
#	src/m_menu.c
2020-03-23 16:27:14 -07:00
toasterbabe
ae3c4a0227 Removal of cv_allcaps for console stuff.
(cherry picked from commit 95d89078f5)
2020-03-23 15:05:00 -07:00
fickleheart
33a9e5aa83 Merge remote-tracking branch 'upstream/master' into shaders-222
# Conflicts:
#	src/hardware/r_opengl/r_opengl.c
#	src/i_video.h
#	src/r_main.c
#	src/r_main.h
#	src/screen.c
#	src/sdl/i_video.c
#	src/sdl/ogl_sdl.c
#	src/w_wad.c
2020-03-14 12:52:15 -05:00
James R
f164320c88 Make the order of displayplayers irrelevant and split splitscreen into splitscreen and r_splitscreen 2020-02-23 23:20:20 -08:00
Steel Titanium
fc042e90f0 Merge branch 'master' into next 2020-02-21 21:01:29 -05:00
James R
4331b13952 Merge branch 'thin-fixed' into 'next'
Add more strings (and respective functions) for v.drawString().

See merge request STJr/SRB2!770
2020-02-20 19:27:01 -05:00
James R
2274129f57 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
Jaime Passos
043057532c Merge remote-tracking branch 'origin/master' into sal-oglshaderport 2020-02-17 12:28:16 -03:00
GoldenTails
c25e4bb1d8 Make V_DrawCenteredSmallThinString() a less precise wrapper for V_DrawCenteredSmallThinStringAtFixed() for new "small-thin-center" option in v.drawString() 2020-02-01 11:01:39 -06:00
GoldenTails
7a00a08a52 Make V_DrawRightAlignedSmallThinString() a less precise wrapper for V_DrawRightAlignedSmallThinStringAtFixed() for new "small-thin-right" option in v.drawString() 2020-02-01 11:01:22 -06:00
GoldenTails
8dbdb75abc Create V_DrawCenteredSmallThinStringAtFixed() for new "small-thin-fixed-center" option in v.drawString()
Thankfully "center" is just "right" but with the X offset divided by 2.
2020-02-01 11:01:03 -06:00
GoldenTails
f526cf2b4c Create V_DrawRightAlignedSmallThinStringAtFixed() for new "small-thin-fixed-right" option in v.drawString()
You guys have no idea how long this took to code.
2020-02-01 11:00:45 -06:00
GoldenTails
0306d4580f Make V_DrawSmallThinString() a less precise wrapper for V_DrawSmallThinStringAtFixed() to fix rounding errors. 2020-02-01 11:00:24 -06:00
GoldenTails
5d1b1b7e2b Create V_DrawSmallThinStringAtFixed() for new "small-thin-fixed" option in v.drawString()
I removed the limitation present in "small-thin" by converting all relevant variables to fixed_t's and using FixedMul() and FixedDiv() when necessary. Who'da thunk it would actually work?
2020-02-01 11:00:02 -06:00
GoldenTails
a75bc92146 Create V_DrawCenteredSmallStringAtFixed() for new "small-fixed-center" option in v.drawString() 2020-02-01 10:59:38 -06:00
GoldenTails
933088f3cb Create V_DrawRightAlignedSmallStringAtFixed() for new "small-fixed-right" option in v.drawString() 2020-02-01 10:59:21 -06:00
GoldenTails
ce744a5ebe Create V_DrawCenteredThinStringAtFixed() for new "thin-fixed-center" option in v.drawString() 2020-02-01 10:58:55 -06:00
GoldenTails
e221e0b314 Create V_DrawRightAlignedThinStringAtFixed() for new "thin-fixed-right" option in v.drawString()
These function names are starting to become rediculous...
2020-02-01 10:55:54 -06:00
GoldenTails
a091cf2e31 remove large commented broken version of V_DrawSmallThinString() lol 2020-02-01 10:54:10 -06:00
GoldenTails
7687d4d1ef Create V_DrawSmallThinString() for new "small-thin" option in v.drawString()
Note this has some major limitations to prevent squished text. It defaults to using V_MONOSPACE|V_OLDSPACING and you cannot change the size of characters. V_6WIDTHSPACE seems to act exactly the same as V_OLDSPACING too.
2020-02-01 10:53:06 -06:00
GoldenTails
3d2934350d Create V_DrawCenteredStringAtFixed() for new "fixed-center" option in v.drawString() 2020-02-01 10:51:43 -06:00
GoldenTails
3c00c22a1d Create V_DrawRightAlignedStringAtFixed() for new "fixed-right" option in v.drawString() 2020-02-01 10:50:57 -06:00
GoldenTails
7ef82c6f08 Create V_DrawCenteredThinString() for new "thin-center" option in v.drawString() 2020-02-01 10:50:50 -06:00
GoldenTails
15e83615fa Create V_DrawCenteredSmallString() for new "small-center" option in v.drawString() 2020-02-01 10:50:46 -06:00
GoldenTails
5525f219c9 Add V_COLORMAP support for small-fixed and thin-fixed text. 2020-02-01 10:46:26 -06:00
GoldenTails
8a44ca0a75 Create V_DrawSmallStringAtFixed() for new "small-fixed" option in v.drawString() 2020-02-01 10:43:04 -06:00
GoldenTails
0da462836f Create V_DrawThinStringAtFixed() for new "thin-fixed" option in v.drawString() 2020-02-01 10:42:15 -06:00
Jaime Passos
e1ee02c308 Fix color LUT using the wrong palette 2020-01-27 13:55:13 -03:00
Sally Cochenour
d2e3c832da Merge next 2020-01-07 07:35:39 -05:00
Sally Cochenour
931b44519d Merge next 2019-12-25 14:41:31 -05:00