Commit graph

541 commits

Author SHA1 Message Date
Eidolon
0dc337c9a5 Fix lots of code for clang-cl compatibility 2025-09-17 17:24:32 -05:00
Antonio Martinez
ffe55a267f Stamp RC versions during gameplay 2025-09-10 15:56:44 -04:00
toaster
be3c0faf7e More gracefully amend Splits/Attackstart data on ghost load rather than splits load 2025-08-21 18:25:03 +01:00
Ashnal
7410978882 Cleanup
No functionality changes
2025-06-22 23:36:21 -04:00
Ashnal
2a36838b54 grading refinements attempt 2025-06-12 00:09:44 -04:00
Ashnal
083cc4a44f Exp rework. Uses the entire valid range of gradingfactor to map to exp instead of clamping some range off. 2025-05-25 17:13:28 -04:00
Ashnal
2c97f2bf1e fix defines post rebase 2025-05-18 14:30:52 -04:00
Ashnal
8242cb89f0 Replace GP points with exp
update GP results screen lap patches with exp patches
2025-05-18 14:30:45 -04:00
Ashnal
2ed951d6e8 Amp scaling 2025-05-04 18:24:16 +00:00
Eidolon
3e0b8203f4 Merge public master 2025-02-14 13:07:53 -06:00
Craftyawesome
06696e78b5 windows clang fixes 2025-02-14 12:53:41 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Sally Coolatta
45bbb4826a DUMPCONSISTENCY for the modern age
- dumpconsistency cvar is always enabled (rather than a define), but is now a cheat.
- It now dumps on resend, instead of on consistency failure kick. (Those don't even happen on too many resyncs anymore, anyways...)
- It now dumps for both the server & the client that is resyncing, so there's gamestates to compare. The two files are given names with metadata so they can be matched up.

It's not great, but it was easy enough to do and more useable than having 0 tools to inspect resync at all.
2024-10-22 02:22:31 -04:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
Sally Coolatta
87a223d5e2 New ice slope physics
Make them stronger by the same factor as acceleration is weakened. This feels a lot more natural, since your top speed tends to be higher on ice, which was making them feel strangely easier to climb ... even though driving on ice is hard mode (even in real life)

Also fixes an oversight where P_SpawnFriction was using the outdated movefactor constants from SRB2 instead of the ones from SRB2Kart that the rest of the codebase was using, by unifying it into one function.
2024-08-24 22:19:08 -04:00
toaster
d0724c263a Bring roundsplayed_t into the highest common denominator header
No indirect, hard-to-maintain magic number range in modetimeplayed arrays
2024-04-06 21:01:56 +01:00
James R.
17b267035c Merge branch 'commit-in-all-builds' into 'master'
Keep PT_SERVERINFO struct the same in all builds

See merge request KartKrew/Kart!2233
2024-04-06 00:00:30 +00:00
James R
4ce0476d17 Extern comprevision_abbrev_bin in all builds too 2024-04-05 16:45:44 -07:00
Sally Coolatta
c8b0ac1ad4 Fix update alert
- UPDATE_ALERT is not defined for DEVELOP, instead of being commented out manually.
- Added button prompt to the alert, removed "Press a key" text from the alert
2024-04-05 11:45:48 -04:00
toaster
7f6de407f1 Copyright update: Add Kart Krew (2024) in general for high-traffic inherited sourcefiles 2024-04-02 17:42:38 +01:00
Eidolon
21a407e478 Update RR mainwads loading 2024-03-21 19:29:49 -05:00
James R
1a330dd471 Raise TRAVERSEMAX 2 -> 8
- Improves nextwaypoint searching on a problem spot in
  Endless Mine
- I think the sight checking fail state can trigger too
  quickly, so this makes it more lenient? (I'm sorry,
  I don't really understand it myself.)
2024-03-06 18:48:32 -08:00
James R
5eeb45228c DEVELOP: add debugtraversemax cvar to improve sight check consistency 2024-03-06 18:48:32 -08:00
James R
c6bdf4eae3 Remove RANGECHECK, replace with devmode prints
- All code that would I_Error behind RANGECHECK, simply
  return
- Add debug prints under devmode render
2024-03-03 17:31:33 -08:00
James R
56e710266c M_TokenizerOpen: pass size in as argument instead of calling strlen implicitly
This function is used for parsing TEXTMAP and the data is
not NUL-terminated.
2024-02-08 18:16:41 -08:00
James R
a879975e83 devmode DEMO: replay buffer usage displayed in real-time on the HUD
- Buffer usage in megabytes, bytes and percentage
- Approximate usage per second
- Estimated time until buffer runs out and replay is stopped
2024-01-29 02:20:26 -08:00
Sally Coolatta
de3d9a29c8 Make PWRLV work in Battle
Additionally, add DBG_PWRLV for devmode so the debug prints can be accessed without needing to edit the code any.
2024-01-23 00:00:26 -05:00
Eidolon
2bad8126ac Delete outdated memcpy optimization
The libc memcpy is faster
2023-09-24 18:32:22 -05:00
James R.
472f7d060c Kill HW3SOUND related code (in files that are actually used) 2023-09-22 02:00:42 -07:00
Sally Coolatta
867253540c Sonic 3-style intermission coloring
Not just tan, but blue & a tiny bit of green!
2023-09-07 16:19:37 -04:00
James R
6c0b042eed Refactor cvar definitions completely, move everything to cvars.cpp
- No need to call CV_RegisterVar
- Cvar definitions live in only one file, easier to locate
- Organized into sections -- netvars, cheats, etc.
- Use builder pattern to initialize cvars
- Still need to extern if you want to read the cvar value
2023-08-25 17:22:40 -07:00
toaster
e1b7cb66cb Rework the Spray Can system to ACTUALLY be what we want
Instead of being specific to each level, Spray Cans are stored in a list on gamedata that will be stepped along each Spray Can you collect.
They are only assigned to a level on collection - which prevents you from farming the same easy location for every colour in the game.

In addition, this new system is one step short of dehardcoding them entirely. Now only Spray Cans specifically asked for by the existence of UC_SPRAYCAN will be put in the list, and if a secondary parameter is either "Yes" or "True", it will be put at the head of the list. This could technically support custom skincolours one day, but the author of this commit doesn't care to do the last bit of work necessary to make it happen.

There's a slight extra overhead in that skincolor_t now also holds a `cache_spraycan` (renamed from `cachedcan`, which maps had previously)

Currently, there's no safeguard against grabbing it on a custom course - you'll lose the Spray Can as soon as you load a fresh game again - but  I consider that easy to fix (tomorrow) and necessary before merger, because the author of this commit does NOT want complaints on release because we forgot to protect users who keep on losing their skincolors.
2023-08-23 00:46:46 +01:00
toaster
1d06637a38 First pass at assigning unique spraycans to level headers
Increments gamedata minor version, be aware
- M_AssignSpraycans
    - Called in M_FinaliseGameData.
    - Attaches a hardcoded set of colours to all race maps in cup order, stopping once we run out.
    - The colours are shuffled, with some "freebies" always at the head of the list.
    - Integrates partial lists pretty well.
    - In DEVELOP builds, I_Errors if it produces corrupted state.
- G_LoadGameData, G_SaveGameData
    - Save & Load is implemented for these assignments
2023-08-19 15:08:55 +01:00
toaster
5036719280 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into seeecret-colors
# Conflicts:
#	src/k_menudraw.c
2023-06-26 23:25:47 +01:00
toaster
12ff436877 Make a first-class feature instead of a passworded secret
- Now called "Grand Prix Backup"
- Filename is now `gpringsav.bkp`
- Since available in standard contexts, do a little extra guarding against unsporting behaviour:
    - In non-DEVELOP builds, delete Grand Prix Backup when returning to the titlescreen/menus.
- "undo your extra work and make it more generic" - Tyron
2023-06-25 23:44:37 +01:00
toaster
e372d348cd Live Event Backup
Associated menu stuff is rough and unpolished, but it's 1am for the author of this commit.
- Activated for this session by either of the following Passwords.
    - `savetheframes`
    - `savetheanimals`
    - The idea is that if Ring Racers were ever ran at a GDQ, runners would swear their alliegance to a particular Metroid routing at the startup stage, because I think it's funny and cute.
- A live event backup is created/overwritten on non-cheated grandprix level change.
- It's wiped on reaching the podium.
- When hitting PLAY on the main menu, if a live event backup exists, make a Menu Message.
    - If you hit A, turn live event backups on for this session, and load the backup.
    - If you hit B/X, delete the backup and proceed to character select.
        - Done this way to avoid cheating a different character to the end of GP.
- Unlike the (maybe a little over-)engineering of ringdata.dat, liveringbak.bkp is streamlined as all hells and has very little recovery for differing file lists.
2023-06-25 23:44:37 +01:00
wolfy852
b1524a8c7f intermission skincolor + demolition of sanity 2023-05-10 14:42:53 +01:00
Sally Coolatta
d953049c78 ACS: User properties can tell bool from string 2023-05-02 18:44:30 -04:00
Sally Coolatta
c486ec19af SECRET_COLOR 2023-04-25 14:19:52 +01:00
James R
5ee4461bfc hardware/hw_main.c: remove unused clipping code, remove ifdef NEWCLIP 2023-04-08 21:08:07 +01:00
AJ Martinez
535fc17875 Fix RRID/crypto primitive size defines 2023-03-30 20:36:10 -07:00
Eidolon
610351b872 Normalize all volume scales to 0-100 2023-03-08 15:22:29 -06:00
SteelT
ff15a4bf69 Make PARANOIA be on by default for DEVELOP builds 2023-02-26 22:27:52 -05:00
James R
601fb49d6d Turn on RANGECHECK in all builds 2023-02-18 22:34:51 -08:00
James R
a77234233b doomdef.h: enable most debugging ifndef NDEBUG 2023-02-14 04:16:57 -08:00
James R
4e51ad6c78 Add devmode music
Song: <NOTHING>

        Song:    DEMOZ
      Format:      OGG
      Volume:   50/100
      Loop A: 00:00.65
      Loop B: 01:06.00
     Elapsed: 01:09.00
2023-01-12 03:29:43 -08:00
James R
55636fa690 Separate git commit subject line from comprevision, add SRB2_COMP_NOTE 2023-01-05 18:32:20 -08:00
James R
f5b985bcc3 doomdef.h: refactor comptime externs 2023-01-05 18:30:12 -08:00
James R
5887c36111 Show CMAKE_BUILD_TYPE on title screen
Includes a hint if optimizations may have been turned off.
2023-01-02 01:46:05 -08:00