Commit graph

105 commits

Author SHA1 Message Date
toaster
860b888460 P_FreeLevelState
A chunk of P_LoadLevel, extracted.
Calling it in D_ClearState should clear up some of the straggling pointers that might cause Laz' reported issue.
With any luck, it should also significantly reduce the amount of memory the menu uses.
2025-06-01 00:02:19 +01:00
toaster
e4907227fc New simpler rewind code + re-enable in UI
- Built off g_fast_forward to utilise a lot of existing structure
- Only does steps of 5 seconds and therefore isn't precise, but that's better than having to rewatch/fastforward through the entire thing
- No single frame step back or general in-motion rewind preview, but that was all overkill
2025-06-01 00:02:19 +01:00
toaster
09e23e6e18 Rip out all the rewinding code
It was all messy and none of it is called in release builds because it was so crashy in testing
2025-06-01 00:02:19 +01:00
toaster
ecb4ffeeca Add bonus pickups in conditions you couldn't grab Spray Cans before
- If you've gotten every Spray Can, or you're on a custom course...
- Only one of these spawns per map
- Correctly save and load these
- Statistics menu counts base-game bonuses
- If there are gaps in the list, or new Spray Cans are added later, these base-game bonuses are converted into the new Spray Cans
- New graphics required so far:
    - SBONA0 to SBONP0 - 16-frame prerendered circling sprite animation
    - GOTBON - 8x8 representation of the SBON object
2025-05-20 20:27:06 +01:00
toaster
3f9c0685eb Move cache_spraycan on the mapheader_t struct to recorddata_t
Still in that struct, just in a more appropriate container
2025-05-20 20:18:11 +01:00
SteelT
b98b4dda5f Add CameraHeight level header option for forcing the player's camera to be at a certain height.
CamHeight can also be used as a shorter alternative to it.
2025-05-17 22:30:33 -04:00
Eidolon
b45f9a8ebf Merge public master 2025-04-25 10:37:43 -05:00
JugadorXEI
68a1271ab0 Fix loop desyncs (by making loop end point sorting consistent) 2025-04-22 19:23:50 +00:00
Eidolon
d3c39907f7 Add md5expected to W_InitFile
Optional parameter that specifies the expected md5sum as a hex character
string.
2025-04-08 09:34:23 -05:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
820fa9b647 Allow GL-specific memoized map properties in all comp modes 2025-03-12 22:16:10 -05:00
Eidolon
e4fc3cc5c2 Fix conditionals on rendermode to allow for more modes 2025-03-12 21:50:37 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Eidolon
1a8467fdaf Merge public master 2025-02-12 19:02:38 -06:00
Eidolon
cdd3bad813 Add level pool allocator and use it for mobj, precip, thinkers
This should substantially reduce the number of malloc/free calls made to
create and destroy mobjs, especially during level load and net
save/load.

memory_resource standard header is not available on the OSX deployment
target we are using, so I had to write my own fixed size pool allocator.
2024-10-30 09:08:04 -05:00
Sally Coolatta
353af883aa Add deep copy functions
Does allocation, a memcpy shallow copy, and a callback to handle memory addresses if desired. Might be reusable for runahead saves.
2024-10-12 12:39:36 -04:00
Sally Coolatta
a7aaf0eddb Level_SetWeather: Use str instead of int 2024-09-21 03:54:54 -04:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
Sally Coolatta
0d3cc16403 Queued skin/color changes
Instead of janky spectate on skin change, let the player finish their current round as their current skin.
2024-09-07 10:54:36 -04:00
Ashnal
df4e99b050 WIP Race Checkpoints
MobjList count

WIP: Checkpoints grant lap bonus

help?

can't allocate vector

 fixed tagged line iteration and collision detection

Multiplayer animations and map retart fixes

Clear between maps
2024-08-13 20:20:21 -04:00
Sally Coolatta
685a125b02 Try preventing players during snapshotmaps
- Try to force spectator.
- Since that doesn't seem to always work, also simply don't draw `MT_PLAYER` when not using `drawpickups`.
2024-07-26 22:59:49 -04:00
Sally Coolatta
6b87b586d2 "snapshotmaps" command
Takes two screenshots for a list of maps that have an "Alternate View Point" thing with tag 0 -- one intended for level select pictures and another for Discord Rich Presence. If no view point exists, the map is skipped.
2024-07-21 08:54:49 -04:00
Lactozilla
00b0b7b848 Fix STJr/SRB2#1153
Committer note: Also fixes KartKrew/Kart#703
2024-06-06 16:45:32 -05:00
Oni
954a95488c Merge branch 'demo-reliability' into 'master'
Demo reliability stuff

Closes #1258 and #1291

See merge request KartKrew/Kart!2335
2024-05-04 18:28:05 +00:00
bitten2up
cfacbd91be Fix implicit casts of int expecting 4-byte width
This fixes the issue with certain compilers that have int set to
different sizes by either explicitly casting or setting templates
manually
2024-05-03 17:53:53 +00:00
toaster
9d0c9ece4b Demos: Use long lumpname when handling staff ghost information
Implements new W_CheckLongNameForNum funcs, which are broadly copypasted from W_CheckNameForNum
2024-05-01 19:55:30 +01:00
Sally Coolatta
4f68707761 Tutorial Skip is at Gear 2 2024-04-25 23:56:43 -04:00
toaster
db73636f5e Fix attract title logo slidein (resolves #1273)
- V_SLIDEIN: For (G_IsTitleCardAvailable == false)/(versus at map start == true) contexts, use timeinmap instead of leveltime
- Don't reset timeinmap when reloading gamestate, so it's more functionally equivalent to lt_ticker
These two changes also fix the hypothetical issue of titlecard-less custom gametypes having weird HUD state on late netgame join.

Timeinmap is exclusively used for HUD, as is st_fadein. timeinmap also doesn't increment under g_fastforward, therefore the best candidate to tie together
2024-04-14 20:59:50 +01:00
toaster
12fe57a805 P_InitMapData: Don't print the base map names in the startup/dedicated log 2024-04-12 14:20:06 +01:00
toaster
6c0118d491 Fix dedicated server Encore warp getting ahead of non-dedicated clients
There was new waiting time added to the non-dedicated behaviour that was not added for the other case
2024-04-12 14:01:24 +01:00
Sally Coolatta
f1f7edbe9a Show last lap time on HUD
Inspired by RoyKirbs' Joypolis journey
2024-04-11 03:05:11 -04:00
Sally Coolatta
7dfa597c7d SRB2 -> DRRR copyright in src, acs, android folder
Be consistent with toaster's recent changes to copyright
2024-04-05 02:08:23 -04:00
Oni
4d0b02413d Merge branch 'gl-no-resend-load' into 'master'
Don't draw OpenGL loading screen when resynching the gamestate

See merge request KartKrew/Kart!2209
2024-04-03 01:06:56 +00:00
James R
f5477f0c4e Confirm FOV override when level is loaded 2024-04-01 19:09:17 -07:00
SteelT
75b7d4bc42 Don't draw OpenGL loading screen when resynching the gamestate 2024-04-01 18:04:19 -04:00
toaster
e9205e19d6 ACS_RunPlayerEnterScript: If betweenmaps, defer until P_PostLoadLevel
Guarantees that the ENTER script actually consistently runs, since previously it was happening before ACS scope invalidation
2024-03-30 15:56:44 +00:00
Gunla
20d6dcda88 Merge branch 'discord-rp-update' into 'master'
Update Discord Rich Presence for Ring Racers

See merge request KartKrew/Kart!2155
2024-03-29 20:30:20 +00:00
toaster
894870295a Spray Can spawning rule cleanup
- You can spawn in Tutorial Challenge, but only if a single can has been picked up already
- Don't print a (DEVELOP-only, but still annoying) error when it doesn't spawn in Tutorial Challenge
2024-03-26 16:41:44 +00:00
AJ Martinez
bca0b48f45 Merge branch 'challenge-final' into 'master'
Challenge Final

See merge request KartKrew/Kart!2140
2024-03-24 06:47:32 +00:00
James R
a4f2712d8a WIP - credits audio/wipe fixes, document this later 2024-03-23 16:21:03 -07:00
Sally Coolatta
af6340741e Add speed to gametype
Set a specific gamespeed per gametype. KARTSPEED_AUTO for it to be decided by game settings.

Wanted this for a while, but also it makes game speed display logic for DRP very straightforward.
2024-03-22 16:58:36 -04:00
toaster
03adb1c093 Don't print the "map has no Spray Cans" error in modeattacking 2024-03-19 19:30:17 +00:00
James R
92bc1c2a17 Sort staff replays
- This lets the 1st replay on the "Replay Staff" selector
  actually be the fastest one
2024-03-18 22:16:12 -07:00
James R
4281cd1283 Attract: fade out and timescale at end of demo
- Do not use a wipe so player can keep moving while fading
  out
- Timescale by half for a "slowdown" effect
2024-03-18 02:42:21 -07:00
James R
7abe285f84 Refactor: replace references to cv_timescale with I_GetTimeScale 2024-03-18 02:42:21 -07:00
James R
244d5e1063 Attract: play demo for 30 seconds, starts at random timestamp
- Starting timestamp is not truly "random"
  - Uses a lookup table because I didn't like the PRNG
    distribution
2024-03-18 02:42:21 -07:00
James R
326e560329 Attract: fix attract demos end handling
Fixes two bugs:

- Attract mode carrying over to gameplay if an attract
  demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
2024-03-18 02:42:21 -07:00
AJ Martinez
bb7c00171c Merge branch 'continuous-music-option' into 'master'
Continous Attack Music option

See merge request KartKrew/Kart!2105
2024-03-16 04:02:24 +00:00
AJ Martinez
d8ae4d9550 Merge branch 'staff-ghost-fixes' into 'master'
Fix staff ghost bugs

See merge request KartKrew/Kart!2115
2024-03-16 04:02:19 +00:00