Commit graph

443 commits

Author SHA1 Message Date
Anonimus
a697f924c8 Introduce the goner table
I'm Wing Gaster, the royal scientist!
2025-10-15 07:30:50 -04:00
GenericHeroGuy
4eaf109786 Update p.exiting and exitcountdown to match Kart (closes #142)
exitcountdown is now manually set and G_BeginLevelExit doesn't touch it
g_exit now has an "already finished" flag to avoid relying on these
2025-10-01 22:28:41 +02:00
NepDisk
e4a9561261 Make usage of battlespeed cvar a gametyperule 2025-09-27 09:06:36 -04:00
Anonimus
eade241d3b Add SPBs to battle mode
The ultimate means against camping
2025-09-26 00:05:06 -04:00
NepDisk
3778520ee6 Unhardcode more behaviour as gametyperules 2025-09-25 21:28:00 -04:00
NepDisk
1f2cc02db4 Fix unused flag 2025-09-25 19:39:54 -04:00
NepDisk
179db51639 Battlemode fix ups 2025-09-25 19:37:20 -04:00
NepDisk
2f84779d41 Update rest of the existing files to use blankart branding 2025-07-01 00:23:30 -04:00
NepDisk
f004b36dbb Revert 'Merge pull request 'File loading refactor' (#68) from wadstrbuf into blankart-dev'
This reverts commit f72475b557, reversing
changes made to 0c89c85aae.

Sorry Generic this branch is really cool but it needs more work. I shouldn't have merged it too early...
2025-06-30 01:45:01 -04:00
NepDisk
4eeb3a5d2a Merge pull request 'Add an alternative Invincibility type' (#69) from Anonimus/blankart:invincerework into blankart-dev
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/69
2025-06-30 01:06:14 +02:00
NepDisk
d9bfb3c192 Rename freeroam to nocountdown and clean up some relatedcode
Also yes no skipping introtime now
2025-06-29 14:30:21 -04:00
Anonimus
c07ccf475f Add toggle for legacy Invincibility
Also adds customizable time values for Alternative
2025-06-29 01:30:10 -04:00
GenericHeroGuy
92c59ddbcb Merge branch 'blankart-dev' into wadstrbuf 2025-06-27 18:46:47 +02:00
GenericHeroGuy
e987c96651 Sanitize textprompts and cutscenes 2025-06-25 22:49:42 +02:00
NepDisk
02196b622c Allow reading and writing *time variables from SOC and Lua
This should also for simple edits such as extending hyudoro length without janky lua scripts
2025-06-24 10:44:48 -04:00
NepDisk
e78e49e3c1 Texture precaching
A simple port from saturn
2025-05-29 12:06:51 -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
3163dcf9c4 Remove bird window shake
sorry jartha
2025-05-15 14:35:46 -04:00
NepDisk
bd233a9201 Per map track complexity and modifier max 2025-05-13 15:49:21 -04:00
NepDisk
012df40fcd Terrain Def Mapheader toggle 2025-04-21 13:31:41 -04:00
NepDisk
06d35a774e Merge branch 'blankart-dev' into portv1objects 2025-04-15 16:41:57 -04:00
NepDisk
1d1f697f2f Compat changes for TOLs 2025-04-15 16:39:19 -04:00
NepDisk
15a02fdeed Merge branch 'blankart-dev' into portv1objects 2025-04-12 13:23:55 -04:00
NepDisk
28a493dbc3 Tri map records pt.3: Finalize changes 2025-04-12 13:12:24 -04:00
NepDisk
0ab033c497 Tri map records pt.1 2025-04-12 09:13:58 -04:00
NepDisk
a580bc9433 Port v1 objects pt 4.5: extra stuff 2025-04-09 16:39:58 -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
Alug
fe30efacdd refactor postimg stuff so it can be combined with each other better
thx much indev! <3
everything now works with encore!
software now also supports screen effects in splitscreen!
2025-03-28 18:22:01 -04:00
GenericHeroGuy
dc791e494d Merge branch 'blankart-dev' into socmenus 2025-03-26 18:49:30 +01: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
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