Commit graph

23913 commits

Author SHA1 Message Date
Sally Coolatta
3c8eb505cc Merge branch 'master' into thing-script-args 2023-08-25 18:32:55 -04:00
Oni
148b56eccf Merge branch 'kill-dead-shit' into 'master'
Remove some unused code

See merge request KartKrew/Kart!1420
2023-08-24 22:10:43 +00:00
Oni
669bc1ed76 Merge branch 'spraycans' into 'master'
Spraycans

Closes #609

See merge request KartKrew/Kart!1419
2023-08-24 22:10:11 +00:00
toaster
29c3943366 M_AssignSpraycans: Forgot to remove an irrelevant check, now should update if new Spray Can conditions are added 2023-08-24 21:38:17 +01:00
toaster
6d5770ff5a M_AssignSpraycans: Fix off-by-one in shuffled prepended colours causing crashes
The prepended colour list passed to M_Shuffle_UINT16 was off by one, leading to possible pollution of the region with an uninitialised value.

For some reason, some people's machines guarantee clean stack memory on game startup, while other people's do not. This is why some people were crashing on Spray Can list generation and some weren't.

The stack memory was DEFINITELY not clean by the time you could navigate to the gamedata clear menu, which is why that was crashing without fail.
2023-08-24 21:33:06 +01:00
James R
f4ca6001d8 s_sound: remove unused OpenMPT stuff 2023-08-24 04:56:02 -07:00
James R
c5e341769b Remove unused cvars
- growmusicfade
- invincmusicfade
- music_resync_powerups_only
- music_resync_threshold
- renderstats (wasn't even registered in the console!)
- resetspecialmusic
- resume
- samplerate
- stretch
- tailspickup
2023-08-24 04:52:41 -07:00
James R
0a9d15ceb0 Remove remnants of LJOYSTICK 2023-08-24 04:34:19 -07:00
toaster
9076b3c99b Self-review: Correctly initialised gamedata spraycan map id in clear_Levels 2023-08-24 01:16:14 +01:00
toaster
595b3d67d5 Add UC_CHARACTERWINS
Just in case I don't get to do a major pass on adding a ton of extra unlockable conditions later, this is an easy, quick add featuring a stat gamedata and the statistics menu has been tracking for a while.
2023-08-23 18:58:10 +01:00
toaster
b9a6f7362b M_UpdateConditionSetsPending: Fix invalid character names returning the entire loop early 2023-08-23 18:54:28 +01:00
toaster
b0ee900422 d_netcmd.c: Fix errors with multiple _OnChange functions
- Skin_OnChange
    - Now always checks for cheats for any machine-local player skin change in non-netgame, non-K_CanChangeRules contexts
    - Previously applied only to consoleplayer in Time Trial
- Color_OnChange
    - Fixes straight up incorrect condition that prevented honest players from changing color mid-game via the developer console
2023-08-23 18:24:45 +01:00
toaster
e7dc2cda0c d_netcmd.c: Fix default values for color cvars (and associated lastgoodcolor) to not error when we make basically all of the colours unlockables. 2023-08-23 18:18:37 +01:00
toaster
6d2e120e77 M_DrawCharSelectCircle: Fix offset colour id when number of colors available is odd VS even 2023-08-23 17:54:09 +01:00
toaster
a3640110ae Only permit Spray Cans to be grabbed on base game levels
I would not be so heavy handed against preventing players from grabbing Spray Cans on custom levels, but designing a system that permits unloaded headers to retain their cans is frankly overkill. There are plenty of other ways the same kind of level-scouring play can be experienced on custom levels.
2023-08-23 17:16:07 +01:00
toaster
53549bfa2d M_Shuffle_UINT16: Fix to not rule out half of all possible Spray Can orders 2023-08-23 17:08:06 +01:00
toaster
e1b7cb66cb Rework the Spray Can system to ACTUALLY be what we want
Instead of being specific to each level, Spray Cans are stored in a list on gamedata that will be stepped along each Spray Can you collect.
They are only assigned to a level on collection - which prevents you from farming the same easy location for every colour in the game.

In addition, this new system is one step short of dehardcoding them entirely. Now only Spray Cans specifically asked for by the existence of UC_SPRAYCAN will be put in the list, and if a secondary parameter is either "Yes" or "True", it will be put at the head of the list. This could technically support custom skincolours one day, but the author of this commit doesn't care to do the last bit of work necessary to make it happen.

There's a slight extra overhead in that skincolor_t now also holds a `cache_spraycan` (renamed from `cachedcan`, which maps had previously)

Currently, there's no safeguard against grabbing it on a custom course - you'll lose the Spray Can as soon as you load a fresh game again - but  I consider that easy to fix (tomorrow) and necessary before merger, because the author of this commit does NOT want complaints on release because we forgot to protect users who keep on losing their skincolors.
2023-08-23 00:46:46 +01:00
toaster
6735868e26 MT_EMBLEM: Adjut to not run anything if not local 2023-08-23 00:31:10 +01:00
toaster
3ccf668fda Rename numspraycans to nummapspraycans
- Consistency with nummaprings
- Prevents confusion with incoming gamedata struct variable
2023-08-22 23:12:02 +01:00
toaster
f7635c4399 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into spraycans 2023-08-22 19:57:28 +01:00
Sally Coolatta
f02e6dbe3c Final thing args code cleanup
- Fix the last few bugs I could find with thing args
- Move version update code
- Rename internal variables to `thing_[string]args` to make older code merge issues more obvious
2023-08-22 02:14:09 -04:00
Oni
2926f4c201 Merge branch 'skip-intermission' into 'master'
Offline: intermission doesn't move automatically, skip with A button

See merge request KartKrew/Kart!1414
2023-08-21 16:53:23 +00:00
Oni
852e2c1035 Merge branch 'acs-game-over' into 'master'
ACS script type for game over (lose GP round with no extra lives), improve MapWarp and add a handful of functions

Closes #591 and #572

See merge request KartKrew/Kart!1403
2023-08-21 16:50:18 +00:00
toaster
7ce5ae03b0 Merge branch 'fix-gl-sprite-rollangle' into 'master'
Fix OpenGL sprite rollangle for non-papersprites

Closes #616

See merge request KartKrew/Kart!1416
2023-08-21 12:22:31 +00:00
toaster
1c44c1066a Merge branch 'podium-music-fix' into 'master'
Podium music fix

Closes #607

See merge request KartKrew/Kart!1417
2023-08-21 11:40:34 +00:00
SteelT
7785eb9f71 Merge branch 'fix-build-errors' into 'master'
Update Catch2 to latest version

See merge request KartKrew/Kart!1415
2023-08-21 11:13:30 +00:00
James R
f234c47d8a ACS: add Music_Play, Music_StopAll and Music_Remap 2023-08-21 01:04:19 -07:00
James R
5f9f573f20 Remove all code related to linedef 413, Change music 2023-08-21 00:44:27 -07:00
Sally Coolatta
013d149151 Merge branch 'thing-script-args' of https://git.do.srb2.org/KartKrew/Kart into thing-script-args 2023-08-21 03:42:21 -04:00
Sally Coolatta
e4c8af058b Fix badly placed version check
Made old maps get malformed during reading
2023-08-21 03:42:03 -04:00
Sally Coolatta
65269736be Unset mapthing spritex/yscale when converting old maps 2023-08-21 03:33:05 -04:00
Sally Coolatta
0cbd7d43db Allow writetextmap outside of binary maps
This allows for using -writetextmap as a conversion method for old version maps, while the editor does not have it.
2023-08-21 03:33:05 -04:00
Sal
eb72019426 Make UDMF scale compatible with ZDoom's spec 2023-08-21 03:33:05 -04:00
Sally Coolatta
55b8609251 Add UDMF version system
This is needed to convert maps, since I needed to change thing arguments' variable names...
2023-08-21 03:33:05 -04:00
Sally Coolatta
9d940ed654 Separate script args from mapthing args
SRB2 uses a LOT of mapthing args compared to Hexen (which has none) and ZDoom (which only has them on objects that will never ever activate scripts). So we really badly needed to separate the two if we want attaching scripts to things to be useful.
2023-08-21 03:33:04 -04:00
Sally Coolatta
82e9257284 Fix frequent legacy GL crash that Jeck is getting
This uses `gl_frontsector`, which can sometimes be NULL.
2023-08-21 01:40:05 -04:00
James R
2b02daca14 P_LoadLevel: don't randomize Podium music 2023-08-20 17:40:43 -07:00
James R
78ee9a7e0b G_StartTitleCard: don't play titlecard sfx for Podium 2023-08-20 17:18:39 -07:00
James R
f67c3df3ed HWR_ProjectSprite: fix rollangle for non-papersprites 2023-08-20 16:46:01 -07:00
SteelT
dbe80ab3a2 Update Catch2 to latest version
Fixes build errors related to it
2023-08-20 19:43:05 -04:00
James R
21706c6edf Merge branch 'shrink-sync' into 'master'
Shrink Sync

See merge request KartKrew/Kart!1413
2023-08-20 22:59:27 +00:00
James R
8412a1a787 Merge branch 'reset-ticcmd-angle' into 'master'
P_ForceLocalAngle: reset ticcmd angles and localsteering

See merge request KartKrew/Kart!1409
2023-08-20 22:57:00 +00:00
James R
9c14fe1aeb Merge branch 'pause-graphic-sound-test' into 'master'
Don't draw PAUSE graphic in the Stereo menu

See merge request KartKrew/Kart!1407
2023-08-20 22:56:52 +00:00
James R
99d9d4452b Offline: intermission doesn't move automatically, skip with A button
- Press A button the first time to do the card flip.
- Press A button a second time to end the intermission.
  - Will not end literally immediately, in order to let
    tally sounds finish and GP progression bar animate.
2023-08-20 15:40:55 -07:00
toaster
274e72ed2d Shrink Sync
Obj_CreateShrinkPohbees: Fix potential uninitialised memory being used that could cause a differing number of pobbys to spawn between client and server, causing an (extremely recoverable but still undesired) desync
2023-08-20 22:13:53 +01:00
toaster
434e451b8c Merge branch 'bios-pk3-real' into 'master'
Make bios.pk3 consistent filename

See merge request KartKrew/Kart!1412
2023-08-20 21:08:50 +00:00
toaster
ba7d319457 Make bios.pk3 consistent filename
Removes all reference to main.kart, not just the obvious ones.
2023-08-20 22:06:11 +01:00
James R
0b9d691ad6 acs/call-funcs.cpp: add ExitLevel function 2023-08-20 00:56:05 -07:00
James R
2ffc41b52e G_MapNumber: let parse NEXTMAP 2023-08-20 00:36:00 -07:00
James R
1a3ef843a5 acs/call-funcs.cpp: add StopLevelExit function 2023-08-20 00:36:00 -07:00