Commit graph

412 commits

Author SHA1 Message Date
NepDisk
52601bdfc2 New input display option for stick display 2025-03-13 22:14:31 -04:00
GenericHeroGuy
e61c43a852 Merge branch 'blankart-dev' into newinput 2025-03-10 23:26:30 +01:00
NepDisk
bda7d26a0f Port basic lap anticheat for new waypoints from RR 2025-03-09 20:03:10 -04: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
ef11c55b41 Merge and Update Flameshield overhaul concept 2025-02-28 00:54:24 -05:00
NepDisk
8b142ceb62 Add kartstats
4942db2806
2025-02-25 14:00:10 -05:00
NepDisk
e562d838b5 bumpspark, bumpspring and small code refactoring and cleanup 2025-02-22 21:53:09 -05:00
NepDisk
0d6aad827b Begin work on making custom lighting optional 2025-02-21 16:51:56 -05:00
GenericHeroGuy
160897f5ca mapcompat + udmf_namespace = mapnamespace 2025-02-20 19:49:13 +01:00
GenericHeroGuy
37969a3415 Add mapcompat global (AKA fix remapping on palette texture skyboxes)
Rather than setting udmf earlier in P_SetupLevel and continuing to awkwardly
check udmf everywhere, I'm adding a new global solely for compat purposes.

For now, have it mirror udmf to avoid supporting two binary formats.
(still keeping the 2.2 conversion code tho?)
2025-02-19 22:45:34 +01:00
toaster
4e559aed87 Level and cup header information: Hashing for referencing by name
Foundational assistive work.
Also guarantees a consistent cup name length in memory, as some places read/wrote 15 bytes, and some places read/wrote 16 bytes. We settle on the latter (including null terminator) for the broadest backwards compatibility.

G: partial merge, missing lots of cup stuff
2025-02-12 01:50:46 +01:00
toaster
2c3fc38f27 "Monitor" parameter for cups
- Defaults to 1, AKA Sonic 1/2 monitor
- Set to 2 for Sonic 3k monitor
- Supports a range of 1-9 and A-Z
- Permits fine-grained rapid-prototype stretch goal Chaotix monitor stuff later in development
2025-02-12 01:24:47 +01:00
toaster
342f6294eb Kill spstage_start and spmarathon_start 2025-02-11 17:30:03 +01:00
toaster
551c5531d5 Enforce maximum length of 63 for map lumpname
Also, in g_demo.c, use SKIPSTRING (instead of READSTRINGN into a discard buffer)
2025-02-11 17:22:34 +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
GenericHeroGuy
66f965c2c0 Get rid of basenummapheaders
More oddball differences causing merge conflicts...
2025-02-11 17:22:31 +01:00
GenericHeroGuy
92af45dac5 Oh boy, another mapheader_t shuffle 2025-02-11 16:14:11 +01:00
GenericHeroGuy
c159102ebe I told you I'd forget about it 2025-02-11 15:55:57 +01:00
toaster
4d5cfc38bb NUMMAPS is dead
Dynamically allocated mapheaderinfo. 1035 reserved slots in a google doc is a thing of the past
2025-02-11 15:38:43 +01:00
toaster
07c1fbf426 Move two of the three remaining NUMMAPS arrays part of the mapheader_t struct
- mapvisited and recorddata_t (previously mainrecords)
- Changed how gamedata is saved and loaded
- Change the versioncheck (funny hex provided by chengi) AND call it `developringdata.dat` in develop builds
- Fix a bunch of off-by-ones in condition and emblem data
ALSO, for Time Attack:
- Fix menu not showing off your times
- Now save times even when gamedata modified, since the menu didn't care (come back to it?)
- Don't save times or do intermission screen if the Capsule Attack ended because you lost all your bumpers
- Fix a crash adding ghosts in Capsule Attack
2025-02-11 03:47:36 +01:00
toaster
88ae398eea Rework nextmap to be automatic
- Refactor significantly (now has its own func, `G_GetNextMap`)
    - If gametype uses cups, iterate through cups to find the current level, then grab the next valid level
    - If not, get the next valid mapheader for your gametype
    - SOC `nextmap`/`marathonnext` is not just deprecated but REMOVED
    - Hide the NEXTMAP_ constants again, but leave support dummied out for if we have them publically accessible again
- Also get rid of a bunch of OTHER mapheader stuff we're never gonna use
    - NiGHTS Grades? NOPE
    - Vanilla titlecard patches? NOPE
    - Boss music fadeout/replacement? NOPE
    - Select Heading? NOPE
    - You've been blocked.
- Don't show maps without lumps on the level select list
- this is me being petty, but making it NOTIMEATTACK in SOC instead of TIMEATTACK so we can reconsider the maps with/without them.
2025-02-11 02:24:01 +01:00
GenericHeroGuy
a78bfe2785 The rest of the changes from de1f67b 2025-02-10 21:56:07 +01:00
GenericHeroGuy
628fbd7218 Reorganize mapheader_t (prepare for de1f67b) 2025-02-10 20:15:14 +01:00
NepDisk
77152250dd Remove GTR_CAMPIGN and assign stuff to grandprix instead 2025-02-09 18:47:51 -05:00
SteelT
14e5796cf2 Support reading PICTURE/MINIMAP/ENCORE/TWEAKMAP lumps from a map resource
This supersedes the header-based method of fetching those lumps.

(G: a LOT of creative liberties... but i'd rather this thing compiles)
2025-02-07 02:41:06 +01:00
NepDisk
3350b02cc8 Long Map Names Port pt 1. 2025-02-05 17:46:21 -05:00
NepDisk
92d86be813 Implement distance based itemodds when legacy waypoints are in play 2025-01-22 13:15:42 -05:00
NepDisk
7948720595 Revert cheats streamine but keep stuff needed for online cheats
cheats 1 is not desired appearently

This reverts commit 9fbe107211.
2025-01-10 11:16:16 -05:00
Sal
9fbe107211 Merge branch 'cheats-streamline' into 'master'
Streamline cheats

See merge request KartKrew/Kart!697
2025-01-10 10:03:52 -05:00
NepDisk
7bdf9633bc Remove emeralds from battle 2024-12-17 10:13:09 -05:00
NepDisk
4b1324da69 Remove Battle capsule stuff and turn it into Item Breaker
You have to smash every itembox in a map as fast as you can. When you mash you get a pogospring and waiting gives a sneaker
2024-12-17 00:24:20 -05:00
NepDisk
13703c3c2a Flameshield rework
The idea is to return it as a meter item while keeping and putting a restriciton on the speed building and storing part from the previous version. Using the boost while its active will drain time from the main timer to fill up store as it were, this store is what handles the boost duration which caps at 2 seconds. The speed increase from using the flame shield more and more now diminishes and caps around 81 fu/t on knuckles for example and is done seprately from the main drain timer and the store.
2024-10-20 04:36:43 -04:00
NepDisk
b5c21c8d88 Read-only mapthing_t 2024-10-16 13:11:13 -04:00
NepDisk
af277ad1d9 Split G_ExitLevel into G_BeginLevelExit and G_FinishExitLevel 2024-10-15 16:19:50 -04:00
Eidolon
d08b923f06 Merge branch 'extern-c-everything' into 'master'
Add extern "C" in C++ to all headers

See merge request KartKrew/Kart!842
2024-10-15 14:14:43 -04:00
James R
9e801c66d5 Merge branch 'universal-typedef' into 'master'
Move all typedef into one file

See merge request KartKrew/Kart!791
2024-10-15 04:16:58 -04:00
NepDisk
5a31a68ddf change default gravity to one used in kart 2024-09-19 22:28:38 -04:00
NepDisk
1085c6ceb0 Implement blan folder and reimplement walltransfer
Wall transfering can now be used by enabling cvar BG_forcewalltransfer or putting WALLTRANSFER into your map header
2024-09-10 22:36:45 -04:00
Oni
8012a21070 Merge branch 'alt-music' into 'master'
Alt Music

See merge request KartKrew/Kart!915
2024-09-07 13:57:13 -04:00
Oni
089fd65f37 Merge branch 'encore-directional-lighting' into 'master'
Add encore variants of LightContrast, LightAngle and SpriteBacklight to level header

Closes #593

See merge request KartKrew/Kart!1388
2024-09-05 15:51:01 -04:00
James R
99c05156f6 Sprite directional lighting, add SpriteBacklight option to level header
- Sprites have directional lighting, like walls
- For normal sprites: contrast is much stronger than walls
- Papersprites look the same as walls

- SpriteBacklight option in level header weakens the contrast for sprites only
  - SpriteBacklight subtracts from LightContrast
  - E.g. SpriteBacklight = 0 would let it match LightContrast
  - E.g. SpriteBacklight = 60 would make the contrast much weaker
  - Negative values make the contrast stronger
2024-09-05 15:18:50 -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
Sal
a4d475dc4c Merge branch 'hostcode' into 'master'
HOSTCODE initial pass

Closes #240

See merge request KartKrew/Kart!615
2024-07-31 03:01:45 -04:00
NepDisk
9b307973ef Assorted stuff
Things include brining back kstart music, removing position etc
2024-07-30 00:13:53 -04:00
NepDisk
64b36b90ae Use kart titlecard, redo fade and fix grow canceling 2024-07-29 15:38:06 -04:00
JugadorXEI
f17f6b7525 banishing hell map forcing
# Conflicts:
#	src/d_netcmd.c
#	src/y_inter.c
2022-08-28 17:11:19 +01:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
Sally Coolatta
0e96aeec84 Add water particles 2022-06-05 06:24:55 -04:00