Commit graph

102 commits

Author SHA1 Message Date
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
SteelT
e7f2afdcb2 Fix RNG sync when in attract mode
P_ResetLevelMusic is not called during attract mode to advance the MUSICSELECT RNG
Resulting a warning (although harmless) about playback sync
2024-03-15 03:14:50 -04:00
James R
630e02217d Free ghosts when level data is freed 2024-03-14 01:27:16 -07:00
James R
d3034bba54 Menus/Sound Options: add Continuous Attack Music option
- On by default (current behavior)
- Off
  - Restart music in Attack modes
  - Also plays POSITION music
2024-03-13 22:43:35 -07:00