Commit graph

18981 commits

Author SHA1 Message Date
NepDisk
8b142ceb62 Add kartstats
4942db2806
2025-02-25 14:00:10 -05:00
NepDisk
475524e7ad Add shield sounds and rework bubbleshield
BS now only has two defend / attack uses, trap gives less height and you can dropdash from the trap
2025-02-25 11:40:25 -05:00
GenericHeroGuy
458aef786b Restore wind/conveyor specials for Kart maps 2025-02-25 02:59:07 +01:00
GenericHeroGuy
0b081230c4 Fix oopsie in binary mace setup 2025-02-25 01:58:29 +01:00
NepDisk
8d704be49c Merge remote-tracking branch 'origin/cherries' into blankart-dev 2025-02-24 19:32:26 -05:00
toaster
ab243e6ffa Fix G_UpdateVisited, this time in a forward-thinking way
- Check for if a single local player isn't spectator or no-contested.
- Clean up code to return early if exclusionary conditions are met, rather than one long if conditional bundling them together
2025-02-25 01:05:21 +01: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
James R
45c388b1f1 Fix HUD drawing crash if 1 or more KITEM_NONE
blame 375fb72de
2025-02-24 23:47:02 +01:00
NepDisk
b70282811e Drawfill nametag stem 2025-02-24 17:11:39 -05:00
toaster
1b53d6b4bf Fix special map usage
- Free header on `CLEAR LEVELS` even if it's `tutorialmap`
- `titlemap` infinite recursion prevention Z_Free's instead of leaking
2025-02-24 22:45:26 +01:00
toaster
bde16b96a0 Skip over locked maps/cups when getting nextmap
(carve out an exception for marathon mode, although we will probably want to lock that behind all cups available)
2025-02-24 22:45:26 +01:00
James R
44defb4a86 K_GetRollingRouletteItem: support Battle 2025-02-24 22:45:26 +01:00
James R
ef6addf5d8 Add K_GetRollingRouletteItem, refactor item drawers
Roulette now cycles through all single items (that have
odds). Added missing shields and drop target.
2025-02-24 22:45:23 +01:00
Sally Coolatta
6b6b180738 Remove itnext at top of MobjThinker also 2025-02-24 21:51:44 +01:00
Sally Coolatta
2864b2abd6 NULL itnext in general on removal 2025-02-24 21:51:26 +01:00
James R
fca0231cc7 Add a mode to the toggle command, cycle a set of values
toggle timescale 0.2 0.75 1

If timescale is 0.2, go to 0.75
If timescale is 0.75, go to 1
If timescale is 1 or any other value, go to 0.2
2025-02-24 21:25:34 +01:00
James R
0f8d61fff2 command.c: refactor Setvalue, create CV_CompleteValue 2025-02-24 21:09:06 +01:00
James R
8992878b84 Move choose and chooseweighted commands to command.c
Fixes disabled under dedicated and it's the appropriate
place for these. Effectively cherry pick of 35b82b6dd9
2025-02-24 21:08:18 +01:00
toaster
7b6857bbe9 Replay hut: Show nolvl if the user hasn't added the map, or blanklvl if they have. 2025-02-24 21:02:41 +01:00
toaster
73fbca5629 Refactor handling of escape input a little
- Includes port of KartKrew/Kart-Public!250
2025-02-24 20:22:44 +01:00
toaster
f733d816e8 Modify render delta tics in the server connection ticker
Necessary so Egga Channel visual behaves properly
2025-02-24 20:16:43 +01:00
toaster
1e7eb4a24c Move gamekeydown/deviceResponding memset to D_StartTitle
Fixes an issue where, if the last button used on the menu was ESC going back to the title screen, the connection would be aborted immediately.
2025-02-24 20:15:25 +01:00
toaster
1e1bcd8fc8 Clear menus in one location.
Fixes a number of weird extra fade and gamestate set events.
2025-02-24 20:11:41 +01:00
SteelT
9e2be91e31 Fix function prototype 2025-02-24 20:07:48 +01:00
NepDisk
3779da57a5 Add more stuff to mapnamespace 2025-02-24 00:53:59 -05:00
NepDisk
5a8deb7784 Use mapnamespace for doceiling/dofloor compat 2025-02-24 00:42:09 -05:00
NepDisk
bfb4042d20 Fix Splitscreen lapcount 2025-02-23 23:40:41 -05:00
NepDisk
1a3295f670 More warning fixes, restore old pause, No void in 3p splitscreen 2025-02-23 21:45:33 -05:00
NepDisk
c25974b4b7 Be quiet please. 2025-02-23 21:04:06 -05:00
NepDisk
fce49599d3 Warn about Ring Racers maps 2025-02-23 20:40:20 -05:00
NepDisk
76e40adaf8 Item graphic tweaks 2025-02-23 19:12:44 -05:00
NepDisk
d5d1da5786 Check .kart extension for compatmode 2025-02-23 18:52:40 -05:00
GenericHeroGuy
d5cc422ec3 Make Sonic... slightly less hardcoded
Moved all the skin info to a P_SKIN lump in main.pk3
Also disabled P_SKIN for compatmode files (it's broken anyway)
2025-02-24 00:43:50 +01:00
NepDisk
c6daa4da80 Revert 'New solid object bouncing, and updated player bouncing'
This reverts commit 5ac5ca89d0.
2025-02-23 18:04:20 -05:00
NepDisk
d527740767 Modify and update code for new assets 2025-02-23 17:01:59 -05:00
NepDisk
bf77bd7f3a Adjust wad load order for new assets 2025-02-23 17:01:59 -05:00
GenericHeroGuy
244cfa9538 Imagine relying on C23 features 2025-02-23 16:47:59 +01:00
NepDisk
3161bf2a5d Fix SPB capsule overwriting current item 2025-02-22 22:43:34 -05:00
NepDisk
4b8df73495 Merge branch 'blankart-dev' into bortsport 2025-02-22 22:28:11 -05:00
NepDisk
69b064050a Remove rest of ringsting leftovers 2025-02-22 22:27:56 -05:00
NepDisk
0d4c4a74f6 Merge branch 'blankart-dev' into bortsport 2025-02-22 22:21:09 -05:00
NepDisk
3c09716a78 Fix selfhit playing hitem 2025-02-22 22:07:02 -05:00
NepDisk
894af06eea Fix HUD for itembreaker with rings enabled 2025-02-22 21:59:18 -05:00
NepDisk
13503bf80b Use Kart calc for bumping 2025-02-22 21:53:09 -05:00
NepDisk
1a42afafa3 Adjust player bumping 2025-02-22 21:53:09 -05:00
NepDisk
e562d838b5 bumpspark, bumpspring and small code refactoring and cleanup 2025-02-22 21:53:09 -05:00
NepDisk
d52b1a10b5 Use Kart calc for bumping 2025-02-22 21:52:12 -05:00
GenericHeroGuy
8160267880 Oops, forgot to resize spritecachedinfo in R_AddKartFaces 2025-02-23 01:45:29 +01:00
NepDisk
121fe48ae3 Merge pull request 'Port cliprects over and add Lua Support' (#24) from cliprect into ACS2
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/24
2025-02-22 18:43:05 +00:00
GenericHeroGuy
3928a98d72 Properly fix runaway cliprects so they don't interfere with other hooks 2025-02-22 19:38:35 +01:00
GenericHeroGuy
2e1ba3fa44 Fix patches being turned inside-out by cliprect in GL 2025-02-22 15:51:02 +01:00
NepDisk
b59dd9441f Adjust player bumping 2025-02-22 08:11:23 -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
d022a20c36 update error to be more understandable 2025-02-22 02:15:47 -05:00
NepDisk
553001a6bf Port Waypoints.cpp from final RR as well 2025-02-22 02:10:50 -05:00
NepDisk
51154e346c rename tm to g_tm to fix C conflict 2025-02-22 01:24:53 -05:00
NepDisk
464f9464e9 New botcode works now 2025-02-22 00:41:56 -05:00
NepDisk
553676e588 Basic port of durrs bot code
It doesn't work as of yet.
2025-02-21 22:44:07 -05:00
NepDisk
87720d8be6 Bot friction shit 2025-02-21 21:17:00 -05:00
NepDisk
d52f2344c6 Clean up friciton code 2025-02-21 20:33:24 -05:00
GenericHeroGuy
51aeaa7529 Interop late, fix runaway cliprects, cleanup 2025-02-22 02:25:25 +01:00
hayaunderscore
abc004ddc8 Move V_ClearClipRect after call_mapped
based on toaster's suggestion
2025-02-22 01:51:34 +01:00
hayaunderscore
3e1e1245ce Expose V_SetClipRect and V_ClearClipRect to lua
Via the `v.setClipRect` and `v.clearClipRect` functions respectively.
2025-02-22 01:49:28 +01:00
James R
d4f54fa28e Legacy GL: fix cliprect in top/left
- UV were not adjusted correctly when clipped in the
  top/left.
- Code is more plainly written.
2025-02-22 01:38:09 +01:00
James R
c797b3bff5 opengl: fix bottom and right edge of clip rect 2025-02-22 01:35:56 +01:00
James R
81978cd7f1 OpenGL: clipping support for HWR_DrawStretchyFixedPatch 2025-02-22 01:30:40 +01:00
James R
bdb7d5c6a0 Fix off-by-one when clipping rectangle bottom 2025-02-22 01:30:17 +01:00
Sally Coolatta
34fc4066d7 Prevent modifying cliprect, wordier vars 2025-02-22 01:29:24 +01:00
Sally Coolatta
628b86da4c Clear clipping rectangle before each hook call
Prevents Lua from being able to make a mess.
2025-02-22 01:28:59 +01:00
Sally Coolatta
0c8e8be2a7 Comment out test case 2025-02-22 01:27:26 +01:00
NepDisk
c25e287d40 More lua fixes 2025-02-21 19:24:44 -05:00
Sally Coolatta
11608cd1b7 Clipping rectangle
Instead of the absolute insanity that is V_DrawCroppedPatch, which makes you specify the number of pixels to crop off the top/left and then the number of pixels to show after the crop ... you just use V_SetClipRect to create a rectangle for any future draws to be cropped down to, and V_ClearClipRect afterwards to clear it.

Currently only supported by V_DrawStretchyFixedPatch. Ideally other drawing functions should also receive clipping rectangle support too.
2025-02-22 01:22:54 +01:00
Sally Coolatta
ea3f3a718c Add V_VFLIP
Ironman can now be shitty
2025-02-22 01:22:54 +01:00
GenericHeroGuy
10d1de9f95 Expose itemflags to Lua 2025-02-22 01:19:52 +01:00
NepDisk
437bd25157 Implement PF_SLIDING support 2025-02-21 18:41:18 -05:00
NepDisk
842b7e85b3 Use Kart number here for light_contrast default 2025-02-21 17:03:11 -05:00
NepDisk
0d6aad827b Begin work on making custom lighting optional 2025-02-21 16:51:56 -05:00
NepDisk
ccaf4f8e63 Add More Tracy Zones 2025-02-21 13:58:41 -05:00
NepDisk
64f2ae0f55 Push Kartspeed constants to lua 2025-02-21 12:58:59 -05:00
NepDisk
58151ed644 Expose more globals as writeable 2025-02-21 12:55:44 -05:00
NepDisk
94d192b1da Implement item breaker 3 item limit 2025-02-21 12:45:59 -05:00
NepDisk
c9f02b8e76 Rewrite comments to be accurate 2025-02-21 11:25:46 -05:00
NepDisk
6a03779b05 aggresive ring duration reduction from final RR 2025-02-21 00:02:18 -05:00
NepDisk
dac6374b0a Don't apply tighter minimap angle reticle if minimap names are on 2025-02-20 20:41:59 -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
NepDisk
7a186c057d Remove unnecessary Z_Calloc from HWR_AddPolyObjectSegs
https://github.com/Indev450/SRB2Kart-Saturn/pull/78
2025-02-20 17:53:39 -05:00
NepDisk
e6913db517 Force wall transfering on RR maps 2025-02-20 15:03:31 -05:00
GenericHeroGuy
160897f5ca mapcompat + udmf_namespace = mapnamespace 2025-02-20 19:49:13 +01:00
NepDisk
40b508e3ce Add bot lshield/bshield prediction error
ac119e42ff
2025-02-20 09:37:42 -05:00
NepDisk
a0d2983b5b Handle How RingRacers uses args/scriptargs 2025-02-19 20:47:24 -05:00
GenericHeroGuy
48204a5ba7 Sprite frame/char compatibility 2025-02-20 00:32:31 +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
NepDisk
72a1ba7080 Merge pull request 'Merge in some of Ring Racers' minimap improvements.' (#23) from rrminimap into ACS2
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/23
2025-02-19 20:01:56 +00:00
NepDisk
fba4f40968 renanble minimapdot drawing code 2025-02-18 19:26:16 -05:00
GenericHeroGuy
0838417ebd Fix v.drawOnMinimap 2025-02-19 01:11:13 +01:00
NepDisk
24c0d8086a Make respawn function shut up and expose it to lua 2025-02-18 17:51:08 -05:00
GenericHeroGuy
39997e8c67 Fix compile again 2025-02-18 23:48:18 +01:00
toaster
c9b532ad84 minigen: Add black fragments to common objects on valid road
- Drawn underneath absolutely everything else, because it's the least specific of all the guides minigen can provide
- "Common objects" includes:
    - Rings/spheres
    - Waypoints
    - Item boxes/spots
    - Overtime kiosk
    - Rings
    - Item Capsules
- The above were chosen because they're a good distinctor between sectors that are valid to drive on and sectors that would be valid were there no impassable lines or massive height differences preventing the player from getting there.

Related:
- K_TerrainHasAffect now has a "bad only" check mode.
    - If true only report back for strong friction, any offroad, any damage, or stairjank.
2025-02-18 23:48:18 +01:00
toaster
1b163a93f9 AM_DrawWalls: correct issue with the planes to grab terrain from being incorrect (copypaste error) 2025-02-18 23:48:18 +01:00
GenericHeroGuy
247165d29e Fix compile errors 2025-02-18 23:48:18 +01:00
toaster
b4dcc12e4f Support for user-specified minimap bounds
The totally-not-a-secret reason I made this branch.
- doomednum 770 (associated with polyobject anchors 760/761 and skybox centerpoint 780)
- Place exactly two in a map to draw an implicit rectangle.
    - Supports top-left/bottom-right AND bottom-left/top-right placements.
    - I_Errors if you place too many (or only one).
- You don't *have* to have these, this is just a bonus if you're a map like Power Plant or CDSS1 negatively affected by your skybox.
2025-02-18 23:48:18 +01:00
toaster
8ed510ca88 Precalculate as much shared minimap/automap data on level load as possible
- `P_InitMinimapInfo`
    - Writes to `p_local.h` extern struct
    - Handles everything previously distributed across multiple K_drawKartMinimapIcon calls (and most of AM_findMinMaxBoundaries)
- Reduces complexity of drawKartMinimapIcon significantly
- Last prerequisite before implementing user-placable minimap boundaries...
2025-02-18 23:48:18 +01:00
toaster
ab58883d85 minigen command: Support -m(ultiplier) parameter
Supports values between 1 and 10, with 1 being the default.
If a multiplier greater than 1 is provided, the filename will take the form "MINIMAP-%d.png", where %d is the multiplier.
2025-02-18 23:48:18 +01:00
toaster
281265f777 AM_MinimapGenerate: return NULL if malloc fails 2025-02-18 23:48:18 +01:00
toaster
5cd0f14345 Add an explicit error for attempting to generate a preliminary minimap while the automap is open. 2025-02-18 23:48:18 +01:00
toaster
073c3ed4c2 Refactor in preperation for scaling feature
Return a `minigen_t` struct with explicit width and height instead of extending the UINT8 buffer by 2 to provide that information in a very datatype-limited way.
2025-02-18 23:48:18 +01:00
toaster
8269db8f99 Rework automap/minigen colours
- All pre-existing colours are now actually what the code says they should be for the 2.2 palette
- RR-specific colour changes.
    - Remove all noclimb-specific line colours
    - Render areas that can't be stepped up/down onto as walls
    - Add colours for
        - Tripwire (cyan, but not 0xff cyan)
        - Finish Line (grey)
        - FOF info (blue)
    - Use a low-intensity colour to signal possible offroad/hazard sector or stairjank step
- Rework to support drawing in multiple passes, so that information that is strictly more important (solid walls, finish line) will not be obscured at minimap resolution by nearby lines signalling offroad/stairjank

Related:
- Added K_TerrainHasAffect
    - Returns true if terrain has any properties which would affect the player's gameplay, false if not.
2025-02-18 23:48:18 +01: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
NepDisk
df5e3f76c1 Add safety fallback for respawn code 2025-02-18 17:29:57 -05:00
GenericHeroGuy
a8974a5f71 or just... check longname????? 2025-02-18 22:55:41 +01:00
GenericHeroGuy
7a9bb9deea Don't find old encore/tweak lumps for long map names 2025-02-18 22:48:23 +01:00
SteelT
a314db98dd Fix double-free in W_Shutdown 2025-02-18 16:19:56 -05:00
GenericHeroGuy
bfe1a253da Palette texture hack for palremap 2025-02-18 21:56:24 +01:00
GenericHeroGuy
d3d67d1d0e W_NeedPaletteRemap refactor because I'm stupid 2025-02-18 21:56:24 +01:00
NepDisk
283f5a5fc7 Prevent weather from I_Erroring in GL as well 2025-02-18 15:48:08 -05:00
NepDisk
dd4022ee51 Prevent weather from I_Erroring 2025-02-18 15:29:13 -05:00
NepDisk
b181133810 Fix streamersafemusic Cvar 2025-02-18 14:50:02 -05:00
GenericHeroGuy
71dd3666b8 Fix the other scrollers too 2025-02-18 14:49:24 +01:00
Sally Coolatta
08c67ab0e7 Spec 500 uses the same speeds as other scrollers 2025-02-18 14:33:29 +01:00
NepDisk
dcb3570475 Merge pull request 'Add support for longmapnames' (#22) from longmapnames into ACS2
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/22
2025-02-17 22:38:05 +00:00
NepDisk
dc9a3b4d31 Use final version of 'W_CheckNumForMapPwad' 2025-02-17 17:27:38 -05:00
GenericHeroGuy
8d3083cefe Fix some G_BuildMapName string formats
more like "flex xva" but ok
2025-02-17 21:51:31 +01:00
GenericHeroGuy
723164152f Salvage the remaining parts of 8f68a21
I'm keeping the screenshot mapname tho :^)
2025-02-17 21:51:31 +01:00
GenericHeroGuy
c93fa43f24 xva: dynamically allocated va 2025-02-17 21:51:31 +01:00
GenericHeroGuy
1c1b72bd6c Change thumbnail reference scale to 320x200
Seems more sensible than "it was more convenient at the time"
2025-02-17 21:51:31 +01:00
NepDisk
4d6bbc7b2c Allow skynum online 2025-02-13 12:51:36 -05:00
NepDisk
122b269601 Step up code shit again 2025-02-12 21:29:47 -05:00
NepDisk
c72f81f4e8 Always show the loading text 2025-02-12 11:33:16 -05:00
NepDisk
b72537d6fb Revert "Place this here"
This reverts commit 58c198a6ab.
2025-02-12 11:18:15 -05:00
NepDisk
58c198a6ab Place this here 2025-02-12 01:28:15 -05:00
NepDisk
c71f2f931f p_saveg.c: consolidate P_RelinkPointers copy-pasted code
43d090f699
2025-02-12 01:24:42 -05:00
toaster
21cea6853a Remove heinous pointer-sent-over-the-network hack remnants
This used to be used for `P_RelinkPointers()`, but was superseded by the far saner mobjnum. HOWEVER, its lingering effect was to leave `mobj->info` in an invalid state until a later `P_FinishMobjs()` was called. This is memory unsafety :D

After removing the last remnants of this ancient hack, it is now once again possible to connect to a server without crashing immediately. However, I did get a crash after a few seconds, so there is definitely still *something* nasty going on under the hood.
2025-02-12 01:18:59 -05:00
GenericHeroGuy
e9795f5271 Expose map thumbnails and minimaps to Lua
...

LET'S FUCKING GOOOOOOOOOOOOOOOOOOOOOOOOO
2025-02-12 03:24:11 +01:00
GenericHeroGuy
5f063aa014 I'm sick of cherry-picking, just silence this warning 2025-02-12 01:56:39 +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
GenericHeroGuy
6db125c0f3 Introducing... M_GetMapThumbnail and arbitrarily scaled thumbnails
* only supports two sizes
2025-02-12 01:09:02 +01:00
GenericHeroGuy
ec5f317f28 Oops, forgot about G_LoadDemoInfo 2025-02-12 01:00:10 +01:00
LJ Sonic
edbc5660a7 Fix io.open() crashing the client sometimes 2025-02-11 17:12:44 -05:00
Gustaf Alhäll
f00bdda0bb Fix segfault when going up steep slopes in rare cases 2025-02-11 17:00:37 -05:00
sphere
76022b40bf Merge branch 'fix-slope-convex-sectors' into 'next'
Fix physics quirkiness on slopes with convex sectors

See merge request STJr/SRB2!2250
2025-02-11 16:58:57 -05:00
Lactozilla
5681f5b803 Fix a possible crash in R_RenderMaskedSegRange
R_AllocTextureColumnTables wasn't checking if the tables were never allocated, making the renderer later attempt to render midtextures for drawsegs that don't contain actual midtextures.
2025-02-11 16:48:45 -05:00
Lactozilla
6afcd88727 Interpolate polyobjects properly for the software renderer 2025-02-11 16:46:49 -05:00
NepDisk
8f040ed151 Reapply 'Implement per-texture offsets in UDMF'
This reverts commit c713de1225.
2025-02-11 16:11:03 -05:00
NepDisk
c713de1225 Revert "Implement per-texture offsets in UDMF"
This reverts commit 6808564763.
2025-02-11 15:52:37 -05:00
GenericHeroGuy
4697a69bd9 Ignore old SOC map header fields 2025-02-11 21:33:12 +01:00
NepDisk
50e5725e4a Various UDMF fixes 2025-02-11 15:32:19 -05:00
MascaraSnake
30dd68aea3 Don't require floor touch for currents in non-FOF sectors unless it's a horizontal currents in binary (because backwards compatibility) 2025-02-11 15:14:44 -05:00
GenericHeroGuy
27d51b370f Restore 'map +' command 2025-02-11 21:12:47 +01:00
GenericHeroGuy
d5418e4bdb You win this time, cv_nextmap... 2025-02-11 20:41:54 +01:00
toaster
342f6294eb Kill spstage_start and spmarathon_start 2025-02-11 17:30:03 +01:00
NepDisk
2e693f54e2 Merge pull request 'Use separate table for maskedtexturecol' (#21) from separatemaskedtexturecol into ACS2
Reviewed-on: https://codeberg.org/NepDisk/blankart/pulls/21
2025-02-11 16:27:41 +00:00
NepDisk
77dbfcd3bb Fix Mid texutres not rendering 2025-02-11 11:26:47 -05: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
2c7e7b8aa8 Fix replacing cups' map lists not properly reassigning the cachedlevels 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
toaster
e8f582555d Adjust P_AllocMapHeader and associated
- Prints with more info
- No weird increment/decrement
2025-02-11 16:10:53 +01:00
GenericHeroGuy
c159102ebe I told you I'd forget about it 2025-02-11 15:55:57 +01:00
GenericHeroGuy
79e3116277 And STAY DEAD 2025-02-11 15:50:58 +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
13dacbb162 Demos now store map lumpname rather than mapheader ID
This was the last thing we needed to do before infinite maps. Stay tuned.
2025-02-11 15:35:19 +01:00
toaster
a9f1408376 Remove mapname buffer from serverinfo_pak 2025-02-11 15:28:17 +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
GenericHeroGuy
03d847d416 oops, forgot menu changes 2025-02-11 02:38:20 +01:00
toaster
b9da47c13d discord.c compilation warning 2025-02-11 02:31:14 +01:00
toaster
18fdd8fa9a Repair D_StartTitle component of netgame title fallthrough prevention 2025-02-11 02:30:23 +01:00
toaster
95b98e4147 Disable hardcoded Discord API map icons for now, we can address this at release 2025-02-11 02:27:21 +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
toaster
4b12f8a729 Rework special nextmap events.
- G_MapNumber now handles special NEXTMAP_ nextmapspecial_t constants that exist at the end of the available type.
- Cleanup of G_DoCompleted
- Add bounds checking to the various SOC maincfg map starts (spstage_start, etc)
- Add lump checking to titlemap behaviour
2025-02-11 01:52:05 +01:00
toaster
4f7c632e9c Randmapbuffer now prepared for infinite maps
- Now a struct with zone-allocated buffer member
- Instead of bunging it on the end of the buffer, the time for G_SometimesGetDifferentGametype is its own struct member
2025-02-11 01:52:05 +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
4c109c7161 Don't select a map - whether random (voting screen, randommap command, etc) or specific (map command) if it has no associated lump. 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
toaster
bda189ac5b Don't strip previous thumbnail/minimap information on header replace, since the lumpnum will remain the same otherwise 2025-02-11 01:52:04 +01:00
toaster
f8b4ad70ea Repair bootmap.
We're not even going to use this feature, but it showed up as nonsensical while reviewing, and would take more work to strip out
2025-02-11 01:52:04 +01:00
toaster
78fb4df054 Remove test strtok print 2025-02-11 01:52:04 +01:00
toaster
6a2553cf57 Fix cups.
* Required an adjustment of everywhere using G_MapNumber to return the raw header number, instead of off-by-one ala gamemap.
    * Fixing gamemap is a viable improvement for a future commit, but this commit is already pretty big.
    * Remove SCANTHINGS, since it used G_MapNumber and didn't work with long map names OR virtres anyways.
* Support freeing new information in CLEAR LEVELS maincfg event, since I tried to use that to test cups.
* Make Patch_Free's usability match Z_Free -- passing NULL is permitted and a no-op.
2025-02-11 01:52:04 +01:00
NepDisk
5e9970311f repair 'Change scroller direction' 2025-02-10 18:10:37 -05:00
NepDisk
bec03f0a7a repair 'Change scroller direction' 2025-02-10 18:09:29 -05:00
NepDisk
b9196f921d Use separate table for maskedtexturecol 2025-02-10 17:54:40 -05:00
GenericHeroGuy
a78bfe2785 The rest of the changes from de1f67b 2025-02-10 21:56:07 +01:00
GenericHeroGuy
a1eb4a2865 Dehardcode emblems
Guess who found out the hard way!
2025-02-10 21:26:06 +01:00
GenericHeroGuy
628fbd7218 Reorganize mapheader_t (prepare for de1f67b) 2025-02-10 20:15:14 +01:00
NepDisk
b2b467c68a Improve HUD rendering when drawing stretched patches
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2635
2025-02-10 13:18:07 -05:00
NepDisk
167d20a07e Properly Convert Rocks 2025-02-10 13:04:34 -05:00
NepDisk
5c2d8b744c Properly fix Balloon colors 2025-02-10 12:59:29 -05:00
NepDisk
e8ce92d3ef Make goo like v1 kart 2025-02-10 05:37:35 -05:00
NepDisk
7881542a01 readd pogospring gravirt 2025-02-10 05:27:32 -05:00
NepDisk
0fe1da37f8 Make Blockplayers UDMF only, revert ML_BLOCKPLAYERS to ML_EFFECT6 , readded override gravity flag and fix up binary conversion code. 2025-02-10 05:22:32 -05:00
NepDisk
608b7070be Fix typo and make like v1 2025-02-10 02:06:36 -05:00
MascaraSnake
f422db029e Fix custom ambient sound mobjs not working 2025-02-10 01:27:08 -05:00
MascaraSnake
6808564763 Implement per-texture offsets in UDMF 2025-02-10 01:23:32 -05:00
MascaraSnake
8ee51262be Fix flag mixup in P_GetOldFOFFlags() 2025-02-10 01:06:56 -05:00
NepDisk
3d0b0a28d2 Add sector flags to disable equation slope physics
https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2028
2025-02-10 00:59:17 -05:00