Commit graph

2632 commits

Author SHA1 Message Date
toaster
43eb61dfcb Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into prisons-death-fix
# Conflicts:
#	src/p_inter.c
2023-08-31 14:02:38 +01:00
James R
b8b286b177 Merge branch 'softer-stumble' into 'master'
Smoothlanding leniency (resolves #602)

Closes #602

See merge request KartKrew/Kart!1428
2023-08-28 07:49:20 +00:00
James R
67c2ae021b P_SpawnPlayer: add back explicit spectator handling for bots; also remove it from k_grandprix.c
Not needed in K_UpdateGrandPrixBots or
K_LoadGrandPrixSaveGame because P_SpawnPlayer takes
priority.
2023-08-27 16:00:53 -07:00
Oni
055e4f1e50 Merge branch 'moar-sneaker-panels' into 'master'
More Sneaker Panels

See merge request KartKrew/Kart!1430
2023-08-27 19:29:11 +00:00
James R
eabef184f1 Add P_ResetPitchRoll 2023-08-27 04:17:16 -07:00
AJ Martinez
03b491a2fa Fix Magician Box going crazy when player changed scale 2023-08-26 23:49:33 -07:00
Lach
ac9b96e98b Add spawn rate arg to Sneaker Panel Spawners; allow sneaker panels to scale themselves redundantly 2023-08-27 14:01:23 +10:00
Sally Coolatta
ea7ad31fef Add Radius Action thing
Thing type 4096, activates its action when a player enters the specified radius
2023-08-26 20:28:50 -04:00
toaster
e123ed7480 MAJOR cleanup of Spectator set/unset
- G_AddPlayer now contains CL_ClearPlayer, G_DestroyParty, and playeringame set
- Instead of a nasty, complicated block in P_SpawnPlayer, externalise it into G_SpectatePlayerOnJoin
- All mid-game human player-to-spectator transitions are handled by P_SetPlayerSpectator, instead of lots of `spectator = true` and associated boilerplate
    - Simplifies Got_Teamchange MASSIVELY
        - Of course this is helped by also stripping back team change
    - This is called by P_KillPlayer, too
- P_KillPlayer no longer eats DMG_SPECTATOR when lightsnaking or exiting
- G_GametypeHasSpectators condition tidied
2023-08-26 19:48:20 +01:00
James R
6c0b042eed Refactor cvar definitions completely, move everything to cvars.cpp
- No need to call CV_RegisterVar
- Cvar definitions live in only one file, easier to locate
- Organized into sections -- netvars, cheats, etc.
- Use builder pattern to initialize cvars
- Still need to extern if you want to read the cvar value
2023-08-25 17:22:40 -07:00
James R
c194ccb81a Remove more unused cvars
- respawnitem
- respawnitemtime
- respawndelay
- startinglives
2023-08-25 17:18:21 -07:00
Sally Coolatta
3c8eb505cc Merge branch 'master' into thing-script-args 2023-08-25 18:32:55 -04: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
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
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
Sal
eb72019426 Make UDMF scale compatible with ZDoom's spec 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
Oni
07aabdfdb3 Merge branch 'battle-emerald-collect' into 'master'
Emerald collection polish, animation for Battle and tweak to Sealed Star

See merge request KartKrew/Kart!1408
2023-08-20 06:10:35 +00:00
toaster
dc695e7acf First pass at implementing Spray Can pickups
- Replaces a few D00DKart objects because the doomednum specifically replaced one of these
- Reports on load if the map has too many, or if one's assigned but the object doesn't exist
2023-08-19 22:21:20 +01:00
James R
414d6f3647 Don't reset camera position when spectating
Fixes a software renderer crash due to hitlag VFX from the
player's death (death from spectating) being too close to
the camera.
2023-08-19 05:01:41 -07:00
James R
01e2a26689 DEVELOP: let us spectate or pause the game at all times
TODO: This should be available as a debugging option at
release, since it would be useful for addon authors.
I don't want to make more cvars, those are getting
cluttered and should maybe be coalesced into a single
debugging option.
2023-08-19 05:01:40 -07:00
James R
fcc35c1bb1 Toggle between freecam and director using C button 2023-08-19 05:01:40 -07:00
James R
4857d48633 Add "twinkle" lens flare to emeralds
- Battle: plays once the orbiting collection animation
  finishes and the player's emerald flags are updated
  - Centered on the player

- Sealed Star: plays as soon as the orbiting animation
  begins
  - Centered on the emerald
2023-08-19 03:40:17 -07:00
James R
dd7f6b17dd Add fuse behavior to emerald orbit, Battle collect animation
- Battle emeralds orbit into the player's body upon
  collection
- Emerald shrinks down to a speck
- Orbiting speed increases over time
- Player's emerald flags altered at the end of the
  animation
2023-08-19 03:28:41 -07:00
Lach
53b48d057c Rename Lost Colony symbols to Ark Arrows and add 10 new symbol types 2023-08-15 22:47:04 +10:00
James R
af26848cf9 Spawn literal MT_EMERALD for UFO Catcher, remove MT_SPECIAL_UFO tracking
Side effects:

- HUD tracking icon now uses emerald's color in Sealed
  Stars.
- UFO emerald doesn't disappear when collected. This is
  WIP because the emerald is intended to orbit the player.
2023-08-12 21:41:21 -07:00
James R
1c2a2155c0 Deduplicate a bunch of emerald related code
- Add K_BattleOvertimeKiller
  - Kills an object if it is outside of the Overtime
    Barrier in Battle

- Add Obj_SpawnEmeraldSparks
  - Use this function for MT_EMERALD, MT_MONITOR and
    MT_SPECIAL_UFO

- Move thinking code for MT_EMERALD and MT_MONITOR to
  objects/monitor.c and objects/emerald.c
2023-08-12 19:34:26 -07:00
James R
2c8b889eee Apply sprzoff to Jawz reticle
Fixes alignment for UFO Catcher, and probably Garden Top.
2023-08-12 18:52:06 -07:00
James R
b94f64e82f Fix misc -Wmaybe-uninitialized
These only show up for me ifdef TESTERS, for some reason.
2023-08-08 15:29:30 -07:00
AJ Martinez
688ba7a705 Ring Box mapper arg 2023-08-07 22:39:11 -07:00
VelocitOni
3b1edb903c Super Flicky trackables
Super Flickies have HUD tracking, have map tracking, and are 3x big when chasing instead of 2x
2023-07-30 00:48:59 -04:00
Oni
e9cea99ae7 Merge branch 'dashrings' into 'master'
Hardcode MT_DASHRING & MT_RAINBOWDASHRING

See merge request KartKrew/Kart!1345
2023-07-29 18:29:08 +00:00
Oni
a18982dc55 Merge branch 'splatbooster' into 'dashrings'
Hardcode MT_SNEAKERPANEL & MT_SNEAKERPANELSPAWNER

See merge request KartKrew/Kart!1349
2023-07-29 18:28:48 +00:00
AJ Martinez
6607722b64 Simpler 120-tic flame shield behavior 2023-07-29 05:10:14 -07:00
Lach
fd8ba4236d Hardcode MT_SNEAKERPANELSPAWNER & adjust FF_GLOBALANIM behaviour 2023-07-29 17:51:25 +10:00
toaster
16e036a0bd Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into dashrings 2023-07-28 23:12:06 +01:00
toaster
f040523b19 Implement the Sunbeam Palm decoration
- Randomised tilt
- Randomised leaf angles
- Technically specifiable number of leaves, but the default of 5 is sane enough
2023-07-25 18:01:07 +01:00
Oni
b82392dee6 Merge branch 'more-conversions' into 'master'
More UDMF conversions

See merge request KartKrew/Kart!1336
2023-07-23 17:24:17 +00:00
toaster
e0b47b16e7 Improve Spectator entry handling
- Re-entry SHOULDN'T get stuck nonzero on first join for a given node
    - Set to 0 for all players on level start
    - Set to 0 for all players on level end
    - DEFINITELY never intentionally set on join with teamchange finalisation
    - This basically just prevents people from spamming New Challenger after hopping out mid-session, since the previous version, in addition to being buggy, was a little annoying.
- New Challenger no longer happens on tic 0 of mapload
    - Handles any late, pending PF_PF_WANTSTOJOINs without threat of reset in P_PostLoadLevel
2023-07-22 14:03:11 +01:00
Lach
2d7ae88586 Hardcode MT_BOOSTPAD as MT_SNEAKERPANEL 2023-07-21 19:19:28 +10:00
Lach
ed76ca72fa Merge branch 'dashrings' into splatbooster 2023-07-20 19:22:30 +10:00
Lach
bb5070afb0 Merge remote-tracking branch 'origin/master' into dashrings 2023-07-20 19:04:42 +10:00
Lach
476d53d305 WIP: Hardcode MT_BOOSTPAD 2023-07-20 19:02:13 +10:00
toaster
ba7307b425 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into more-conversions 2023-07-19 22:46:49 +01:00
Lach
a21e509a94 Hardcode MT_DASHRING & MT_RAINBOWDASHRING 2023-07-19 21:47:41 +10:00
toaster
e6619df2d4 Servant Hand: Refactor to use its own thinker
Since it's already ticking for the sake of a fuse, make it handle its own movement/scaling as well.

Spawning is still handled by the player thinker (and can be blocked by hitlag), but this permits it to disappear when a player dies/disconnects the server.
2023-07-18 15:45:49 +01:00
toaster
c1810ac891 P_SetupSpawnedMapThing: Re-add missing MT_AMBIENT 2023-07-18 10:59:06 +01:00
toaster
45012dbd6a Make sure MT_LOOPCENTERPOINT doesn't have an invalid stack-allocated spawnpoint pointer
Fixes connecting to a server that's currently on a map with a loop.

Also tidies P_SpawnItemRow, P_SpawnItemCircle to reduce the likelihood of this happening again, and possible crash with Lua-shortcircuited loop spawning
2023-07-17 13:51:48 +01:00