Commit graph

436 commits

Author SHA1 Message Date
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
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