Commit graph

1326 commits

Author SHA1 Message Date
NepDisk
c95225d382 Fix viewserver crash 2025-06-30 16:19:46 -04:00
Anonimus
7c31ca0483 More changes to Alt Invincibility
Bottlenecker has been heavily buffed (8-tic deficit to invince timer at full strength)
The cluster now specifically only tracks losing players, and in the case that no new cluster point is found, instead reads from the last cluster player
Invincibility "hogs the item box" like Grow does, and (currently) can't be cancelled to prevent chaining
Maximum time limit has been buffed to 35 seconds
2025-06-29 01:30:17 -04:00
Anonimus
c07ccf475f Add toggle for legacy Invincibility
Also adds customizable time values for Alternative
2025-06-29 01:30:10 -04:00
Anonimus
99056a47fa Tie Invincibility to clustering, implement new visual
* Invincibility's time limit is now directly tied to a player's distance from the cluster.
* The visual for Invincibility has been reworked to being an additive layer over the player, fading out as you run out of Invincibility.
2025-06-29 01:30:04 -04:00
NepDisk
11e29d5afa Port Saturn's VoteBG scaling code
Thanks to Alug and Indev as per usual
2025-06-26 11:13:37 -04:00
NepDisk
7226fd120e I'm never calling you again
This causes buffer overflow sometimes due to not being resized.
2025-06-26 10:00:37 -04:00
GenericHeroGuy
4be55967f4 ASan kakkoii desu 2025-06-23 17:29:56 +02:00
NepDisk
3ec3320774 Merge branch 'blankart-dev' into socmenus2 2025-06-23 00:07:35 -04:00
NepDisk
a3367858b8 Add expert speed 2025-06-22 11:13:00 -04:00
NepDisk
2830abb7d0 Clean up viewserver code a small bit
This also makes the cheats command show what cvars are active for easy checking
2025-06-19 19:36:02 -04:00
NepDisk
db66b00ec0 Merge branch 'blankart-dev' into socmenus2 2025-06-19 13:05:47 -04:00
NepDisk
e8bafe7fc5 Add kartdebugshrink and remove NOSHOWHELP from kart vars 2025-06-14 08:09:28 -04:00
GenericHeroGuy
e276709d0c A whole lot of refactoring and updates to cvars
cvar items now use their argument to specify the amount to add for each key
press, replacing IT_CV_INTEGERSTEP
cvar items are automatically displayed as strings if they don't have
PossibleValues, replacing IT_CV_STRING
2025-06-12 22:21:49 +02:00
NepDisk
64fd5b93ac raise skinlimit to 4096
Why not UINT16_MAX? Thats 22gb of allocation lmao
2025-06-10 15:38:11 -04:00
GenericHeroGuy
5a0a889cd1 Menu functions now return INT32
Just my best guess what everything should return. Doesn't matter right now
2025-06-05 19:47:08 +02:00
NepDisk
e78e49e3c1 Texture precaching
A simple port from saturn
2025-05-29 12:06:51 -04:00
NepDisk
c96662e714 Fix incorrect gametype 2025-05-28 11:03:06 -04:00
NepDisk
8faba2dd35 Basic voting rows port
Still crashes and seems to mess with the newgametype
2025-05-28 10:51:18 -04:00
NepDisk
6d071fd23a Allow you to toggle how many encore votes appear at once when encore is on 2025-05-28 01:35:08 -04:00
GenericHeroGuy
7fbf5830a7 Trying to handle various different speeds... 2025-05-27 17:05:09 +02:00
GenericHeroGuy
b6b3920a17 Merge branch 'blankart-dev' into improveddrifiting 2025-05-26 22:09:34 +02:00
GenericHeroGuy
9ef9e41dba Use prediction/pathfinding for drift waypoints 2025-05-25 02:44:36 +02:00
GenericHeroGuy
481053a232 An attempt at timing and setting up drifts 2025-05-24 00:33:04 +02:00
GenericHeroGuy
abd496bd61 Behavior fixes, changed variables, an actual bot debugging HUD 2025-05-23 21:11:42 +02:00
GenericHeroGuy
6657cd2c46 What!? Help me! 2025-05-22 23:33:35 +02:00
NepDisk
04d3cea9e6 Fix flipcam playerflag sticking 2025-05-22 08:17:36 -04:00
GenericHeroGuy
360e7419e8 Merge branch 'blankart-dev' into infostuff 2025-05-19 15:23:51 +02:00
NepDisk
e9b79efe2d rename calc_arg_offset to match newest booststack 2025-05-18 17:48:57 -04:00
NepDisk
b9836e4925 Add toggle for deadzone style
The game now defaults to Kart style deadzone to remove that stiffness felt on shallower angles
2025-05-18 14:06:56 -04:00
GenericHeroGuy
0009807746 Unify info lookup functions for SOC/Lua/ACS
Use MAX* constants instead of -1 for invalid values, because enum signedness
is implementation-defined
2025-05-18 17:37:47 +02:00
NepDisk
ff2f058972 refactor giveitem and port other RR cheats. 2025-05-17 12:46:37 -04:00
GenericHeroGuy
1793c2ea95 Use string buffers for mobjs and states 2025-05-14 15:35:26 +02:00
NepDisk
1d6dd4125a Remove Droptarget. 2025-05-10 07:31:51 -04:00
NepDisk
707d8bc88b Allow setting base track complexity 2025-05-06 17:26:30 -04:00
NepDisk
fea7aa001b Use constants instead of magic numbers for roulette info 2025-05-03 12:48:02 -04:00
GenericHeroGuy
4e9ffdaf13 Scrub more references to MD5 2025-04-26 00:57:51 +02:00
GenericHeroGuy
b7f4effe9b Replace MD5 with xxHash for file hashing
Yes, I had to do everything in one sweep, everything's connected...
Incremented demoversion since this changes the header format
2025-04-26 00:25:23 +02:00
NepDisk
d56a5188d1 Fix item usage during respawn and buff flame shield slightly 2025-04-24 17:47:13 -04:00
NepDisk
fef77b3be4 ItemOdds tweak, Nerf bots a bit 2025-04-22 01:29:18 -04:00
NepDisk
67fd8018a8 Fix RAGuard and other minor fixes 2025-04-13 15:09:51 -04:00
NepDisk
f2bb124ab7 Fix TSR in compatmode 2025-04-13 10:50:36 -04:00
NepDisk
8a1d8dafa7 Finish kart purple drfit globalization 2025-04-10 20:02:49 -04:00
NepDisk
9cd4294c21 TA support for extra game toggles 2025-04-10 19:53:44 -04:00
NepDisk
036a87f0a2 More stacking customization cvars 2025-04-09 18:31:31 -04:00
GenericHeroGuy
c936c24d15 Replace mainwads with an enum
The mainwads check in G_SetGameModified is replaced by a modifiedgame check
in D_SRB2Main
2025-04-03 17:36:13 +02:00
NepDisk
911afb22a6 Move freecam state to camera_t
Based on fa89576f34 p1 still controls both cameras for now.
2025-04-01 13:57:27 -04:00
NepDisk
2e2b90f843 Finalize Cvar and push check to lua 2025-03-31 14:04:06 -04:00
GenericHeroGuy
68e0a62966 The slipdash 2025-03-31 01:55:33 +02:00
GenericHeroGuy
2c49adda4d something something consistency 2025-03-27 22:48:56 +01:00
James R
9f6e9c109e Let savecheckpoint work online, work at all
Actually respawns you at this location! 😃

Uses object Z position instead of floor height.
2025-03-27 22:35:01 +01:00
James R
2462a5fcba Let relativeteleport work online
Requires all x, y, z arguments. Floats supported.

Old: rteleport -x 1 -y 2 -z 3
New: rteleport 1.1 2.2 3.3
2025-03-27 21:56:08 +01:00
James R
4cb545a0e1 Cleanup order and indentation of item definitions 2025-03-27 21:25:00 +01:00
NepDisk
f338eec51a Merge pull request 'Hardcoded Stacking and Chaining' (#33) from stackingmaybe into blankart-dev
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/33
2025-03-26 18:30:19 +00:00
GenericHeroGuy
dc791e494d Merge branch 'blankart-dev' into socmenus 2025-03-26 18:49:30 +01:00
NepDisk
945704849f stacking part 6: Implement customization cvars 2025-03-26 13:35:26 -04:00
NepDisk
f0b6ef89eb stacking pt.3: start work on chaining 2025-03-25 18:03:39 -04:00
NepDisk
23f4f41ff3 Merge branch 'blankart-dev' into stackingmaybe 2025-03-25 10:49:54 -04:00
NepDisk
2a0b0d4bae Remove ASM 2025-03-24 22:35:18 -04:00
NepDisk
58e5cb079e Prevent dedi from ending up on titlescreen
Thanks Indev!
2025-03-24 22:12:00 -04:00
NepDisk
35a7f420af Fix spectate button, allow respawning local players 2-4, allow respawn to be binded to button 2025-03-24 18:54:58 -04:00
James R
fd8917092e Improve displayplayers command
- Tabulate data
- Show party members
2025-03-24 10:25:59 -04:00
NepDisk
37c960a14a Various fixes from RR 2025-03-24 10:24:26 -04:00
James R
af09ba91ec Completely rewrite party management code
Replaces g_splitscreen.c with g_party.cpp. Simplifies
party management functions.

Moves externs out of already bloated doomstat.h and
g_game.h into g_party.h.

Cuts down on globals spam.
2025-03-24 09:43:34 -04:00
GenericHeroGuy
a609c7b5ce Replace prevmenu with menustack
menustack[0] replaces both menuactive and activeMenuId
Hopefully this is the last major change to the codebase...
2025-03-23 01:47:19 +01:00
NepDisk
247b566275 Toggle for singleplayer itembreaker 2025-03-22 17:08:20 -04:00
NepDisk
7069c920df Stacking pt 1 2025-03-21 12:12:23 -04:00
NepDisk
52601bdfc2 New input display option for stick display 2025-03-13 22:14:31 -04:00
Sally Coolatta
e1ffc206e7 Finish some unused SDL hat input support to use events rather than polling all of the time 2025-03-11 15:17:51 +01:00
GenericHeroGuy
e61c43a852 Merge branch 'blankart-dev' into newinput 2025-03-10 23:26:30 +01:00
GenericHeroGuy
ef1489aa04 Cleanup, fix menu controls and keyboard 2025-03-10 15:06:52 +01:00
NepDisk
bda7d26a0f Port basic lap anticheat for new waypoints from RR 2025-03-09 20:03:10 -04:00
NepDisk
b9ad30c9e2 Add BlanKart Credits and append new scene to intro 2025-03-08 11:00:54 -05:00
Sally Coolatta
0a98ca63ab First pass on character select device select
Ultra mega hacked in, by saving all "discarded" joysticks to an array so they don't get totally closed & we can still poll them. Events now properly send the device number instead of the player number, which means we can store all controllers pressing buttons, and thus, can detect when ANY controller is pressing anything, and THUS we can make the character select work like we wanted to :V

Did not bother fixing any of the bugs, however. First of all, the opening menus do not properly fallback to default controls. Yet again, we may need a more robust system -- storing all keys from gamekeydown separately? Additionally it seems like when I input gamepad it makes me use keyboard anyway, so I think something fishy is up.

(G: finally, a commit that mostly survived... deviceResponding is useless
    for us right now but might as well keep it. maybe easier assignment on
    the multiplayer setup menu in the future?)
2025-03-07 23:44:59 +01:00
GenericHeroGuy
f419ccee57 New input handling (port of cd8862f0)
More or less a port with gamecontrols left untouched.

Some notable differences:
* ev_joystick now has a separate data1 for each axis, rather than having you
  check which of data2/3 is INT32_MAX and which one isn't
  (pissed me off when updating menu code...)
* Gutted the 1.6 upgrade code, since we're not upgrading from anything :P
* G_GetControlForKey, a helper for menu code
* Turn smoothing code left unused as a reminder to fix it
* Various small fixes so this commit is playable and doesn't segfault

Menu changes:
* Max 4 binds, joystick axes are now bindable like any other button
* The gamepad options submenu has been replaced by its two remaining options
  after the removal of axis cvars (gamepad select and deadzone)

See cd8862f0's message for more details
2025-03-07 00:05:35 +01:00
NepDisk
b0bbf07bdb Custom gametype and gametyperules additions
Many new options have been added.

You can now specify "menucolor" when creating a gametype. This accepts a V_ colorchar flag (IE V_PURPLEMAP) and will be used to color hud elements in menus and on the HUD.

Encore is now controlled by GTR_ENCORE. This allows for custom modes that don't accept encore.

Itemodds are now controlled by GTR_RACEODDS and GTR_BATTLEODDS respectively. If neither is specified on gametype creation, completely random items will be rolled.

General GTR_FREEROAM adjustments
2025-03-02 11:41:30 -05:00
NepDisk
e2f29fd41b Add lagless camera toggle and default to off 2025-02-28 21:20:13 -05:00
NepDisk
064be1b201 Merge branch 'bortsport' into blankart-dev 2025-02-26 19:43:22 -05:00
Alug
19b7019e40 remove "majormods" checks from stuff that saves to savegame
so its only there to throw a notice when you load an addon
2025-02-25 14:09:56 -05:00
James R
b31e79b742 Kill last of DJGPP, WATTCP, _WINDOWS (ol' DirectDraw) 2025-02-25 00:42:42 +01:00
James R
febde8d181 Remove NONET 2025-02-25 00:31:59 +01:00
NepDisk
0d4c4a74f6 Merge branch 'blankart-dev' into bortsport 2025-02-22 22:21:09 -05:00
NepDisk
e562d838b5 bumpspark, bumpspring and small code refactoring and cleanup 2025-02-22 21:53:09 -05:00
NepDisk
2e7e36ac59 Fix mistake 2025-02-22 07:52:48 -05:00
NepDisk
eeeb29d2df Add p_sight.c as well 2025-02-22 07:49:35 -05:00
NepDisk
fee2700b87 Whoops copypaste mistake 2025-02-20 20:35:59 -05:00
NepDisk
0fcf7c7dbd Port small minimap icons and minimap nametags from saturn/snowy, add minimap angle reticle toggle 2025-02-20 20:32:18 -05:00
NepDisk
71225707bf Port freeplay, grow music and invin music toggles from saturn 2025-02-20 18:12:03 -05:00
toaster
017e62f4b2 New console command "minigen"
- Generates "MINIMAP.png" in your srb2home
- Uses inherited automap code to render to a temporary buffer
    - Because am_map.c is a mess of filescope static variables right now, this only works when the automap is disabled.
- Currently an equal alternate method to SLADE's map image export, but because we're in control, additional features can be added later...
    - TODO: Off vertically by one pixel on GHZ. Otherwise effectively identical in shape
    - TODO: the colours are rancid, I wonder if they were even updated for the 2.2 palette

Related:
- Use identical linear-time mechanisms for detecting borders of map geometry between automap and minimap
    - Automap was previously using iteration over all vertices
    - Minimap was previously pointlessly writing min/max values twice
2025-02-18 23:48:18 +01:00
toaster
1475feb734 Refactoring ahoy
* Instead of doing constant G_MapNumbers when finding the relationship between maps and cups...
    * Add a cache of level IDs to cups, to go with the strings.
    * Add a cache of the cup pointer to maps, so we don't have to search through all cups to find our map. (done in P_InitMapData)
    * Pre-emptive work: G_IsSpecialStage and P_GetNextEmerald now reference cup data instead of a hardcoded ID set.
* Remove a bunch of old stuff from mapheaderinfo_t/associated, and reorder what stays
    * Countdowntimer? 💥
    * Startrings? 💥
    * sstimer/ssspheres? 💥
    * forcecharacter? 💥 (distinct from forceskin)
    * interscreen? 💥
    * sstage_start/end and smpstage_start/end? 💥💥💥💥
    * You've been blocked
* G_MapNumber now returns a special NEXTMAP_INVALID if not found, for more consistent reference.
* Incorporate a good chunk of the `edit-headers` branch. Can't clear maps individually because of the new restrictions on sequential mapheaders, but we can add a "disable in vote screen, not even for map hell/archive" flag to a map at some future juncture for equivalent functionality...
2025-02-11 17:22:34 +01:00
toaster
e76f92e5db Port Gametype Preference and associated changes
Notably, makes the PWR-based Encore scrambling component of G_SometimesGetDifferentGametype WAY less spaghettified.
2025-02-11 01:52:05 +01:00
toaster
b92c125928 I_Error in all situations where mapheaders were previously allocated outside of SOC.
Also:
- improved error prints for SOC condition definitions
- improved bounds checking to use `nummapheaders` for iterating over mapheaderinfo
There are still situations that use NUMMAPS like mapvisited, randmapbuffer, etc, which need to be addressed before merger.
2025-02-11 01:52:05 +01:00
NepDisk
77152250dd Remove GTR_CAMPIGN and assign stuff to grandprix instead 2025-02-09 18:47:51 -05:00
NepDisk
63fe2bbfa1 Numlaps updates from RingRacers 2025-02-09 18:45:53 -05:00
NepDisk
0e70fd8ac7 Patch alias and add listskins
https://github.com/Indev450/SRB2Kart-Saturn/pull/33
2025-02-09 18:45:53 -05:00
NepDisk
56745d621b Toggable Lap Emblem Animation 2025-02-09 18:45:53 -05:00
GenericHeroGuy
a3e531d0d4 All the save buffer fixes all at once!
* Register cv_netdemosize so it actually works
* Replace all the raw Z_Frees on demobuf with the appropriate function
* Free demobuf in G_CheckDemoStatus (yay, no more buffer == NULL asserts)
* ...allocating a buffer of uninitialized length? what
2025-02-10 00:24:17 +01:00
Sally Coolatta
5fee047fe6 Add functions to initialize savebuffer_t
g_demo.c is mostly unaltered because it is made of twigs.
2025-02-07 11:12:52 -05:00
NepDisk
3350b02cc8 Long Map Names Port pt 1. 2025-02-05 17:46:21 -05:00
GenericHeroGuy
a6e7c6b70d The purple drift...
...and more changes nobody asked for
2025-01-31 03:27:21 +01:00
NepDisk
c3aa2075d3 Shuffle Speedometer values to be like saturn 2025-01-28 12:04:34 -05:00