Commit graph

2490 commits

Author SHA1 Message Date
Sally Coolatta
1abc097bb5 Remove P_NightsItemChase
Keeps being called in some strange instance by rings, even though the case that calls it shouldn't happen, and causing a crash -- just delete it.
2023-05-15 21:45:25 -04:00
toaster
ab68be49e1 cv_antigrief
- Increments a timer on human players who aren't making progress, does it even faster if they're going backwards.
    - Only applies in:
        - Netgames
        - GTR_CIRCUIT after the timer starts
        - If there's no timelimit, pointlimit, or K_Cooperative (because unproductive behaviour there will be punished by other rules)
    - The rate at which this changes needs trial and error, but getting the feature functional is more important to start out with.
- If this timer reaches cv_antigrief's value in seconds , the player gets a "Grief Strike"
    - This doesn't happen if:
        - There's only one active player in the server, so FREE PLAY permits mappers to test what increments/decrements the counter
            - Turn `debugwaypoints` on to observe this
        - The cvar is set to 0
    - Less than 3 grief strikes is a forced spectate
    - Anything more is a kick via "automatic grief detection"
        - Unless your node is the host (or an admin)
    - Remove grief strike strike for finishing normally

# Conflicts:
#	src/d_clisrv.h
2023-05-01 16:57:35 +01:00
toaster
15b0141700 Spectator re-entry timer
- On becoming a spectator in a netgame, there is a delay before you can de-spectate.
    - 30 seconds by default.
        - This can be changed using the cvar `spectatorreentry`.
    - ...unless there's only two people left including you, in which case it's three minutes!!
        - This can be changed using the cvar `duelspectatorreentry`.
        - If spectatorreentry is set to greater than duelspectatorrentry, the former is used instead.
    - This timer is wiped on mapload and intermission, so NEW CHALLENGER APPROACHING !! and level changes in general allow people in.
- General purpose cleanup of K_CheckSpectateStatus
2023-05-01 16:57:34 +01:00
Oni
1c9ee9f907 Merge branch 'chunky-items' into 'master'
Bigger, chunkier items test

See merge request KartKrew/Kart!1177
2023-05-01 03:28:52 +00:00
Sally Coolatta
833131b319 Make MAXRADIUS bigger
MAXRADIUS was previously an arbitrary value id Software set as whatever their biggest object would be (which they broke that rule anyway). It is now the radius of a blockmap block, which should be a large enough of a nudge value to handle all cases. (Still don't recommend making objects any bigger than a Spider Mastermind though.)
2023-04-30 10:31:26 -04:00
AJ Martinez
54ebe2571d Fix paren placement SIGFPE 2023-04-29 22:48:07 -07:00
VelocitOni
8a4ad078a3 Compile error
Sorry, the branch doesn't compile without this opening parenthesis :holdingbacktears:
2023-04-30 01:31:18 -04:00
Sally Coolatta
20d0f2d3fb Return random items to old doomednum 2023-04-29 17:52:19 -04:00
Sally Coolatta
d9d561ee28 Make big items look better
- Bobbing
- Scaling
- Different heights on debris

Also cap scale in full scale maps
2023-04-29 17:46:41 -04:00
Sally Coolatta
1a9841272b Bigger, chunkier items test
- Random & Sphere Items are x3 bigger.
- Eggman Items grow to x3 bigger when they land.
- Eggman Item hitbox reverted from 24 to 16 again, since the x3 size increases their hitbox even more anyway.
- Random item temporarily moved to 2011 and 2000 objects ignored, as per Ivo's request.

The idea behind this branch is to start turning tons of item clusters into single file item rows with only a few items per. The original intent was to make 9P+ more bearable by making item sets no longer free, but in a way that's engaging & takes thought. This does eliminate one of the reasons I had originally standardized MK64-style clusters, but honestly no one really hides eggman items anymore :P

I'm not totally confident that this will make massive netgames enjoyable on its own, but it's one step towards that and this change has a lot of other benefits as well like less clutter and better visibility.

Due to the mapthing type shuffle, this needs to be tested on a few maps with changed item sets, and then swap it back before merging.
2023-04-29 13:47:37 -04:00
Sally Coolatta
f4e14f5fe3 Faster ring respawn once again 2023-04-29 12:33:15 -04:00
James R
efcdfbe665 Fix some instances of boolean not being set to true exactly 2023-04-24 18:14:37 -07:00
James R
56dcfaedf8 Respawning: set MF2_OBJECTFLIP directly in P_GetMobjGravity
K_RespawnOffset is called before the player is actually at
the waypoint's position, so even if P_GetMobjGravity is
called there to check, it reflects the player's current
sector, which may not necessarily be the waypoint's
sector.
2023-04-24 18:13:37 -07:00
toaster
b0cb804fe4 Merge branch 'faster-cam-z' into 'master'
Improve camera Z following

See merge request KartKrew/Kart!1197
2023-04-24 22:35:09 +00:00
Sally Coolatta
85eaf2eeea Make camera follow platform momentum 2023-04-23 14:51:29 -04:00
toaster
af288571bd P_SetupEmblem: Correct flags *before* Obj_AudienceInit 2023-04-21 17:37:26 +01:00
toaster
945a00df6e Permit emblem pickups that take on the visage of a Follower
- If Global-type map emblem has GE_FOLLOWER, attempt to take on the appearance of the follower specified by var2.
    - Unlike MT_RANDOMAUDIENCE, this picks whether the object should be floating or hopping based on the specified mode of the source Follower.
    - Always chooses to face the nearest player.
- Rearrange some properties affected by Obj_Audience/audience.c to not conflict with MT_EMBLEM
2023-04-21 15:17:43 +01:00
toaster
8878bf8465 P_SetupEmblem: Only call Tag_FGet once, and store the result for loop iteration/error messages 2023-04-21 15:12:06 +01:00
toaster
1e5fadc901 Audience-related functions: Rename + adjust
- Since they're not necessarily going to be randomised, make the prefix Obj_Audience instead of Obj_RandomAudience.
- Externalise some properties that we may not want affecting all hypothetical uses.
    - Flag auto-application should be done externally, since this won't be general.
    - Focusing on player should be controlled by the function call, not an ambiguous flag.
2023-04-21 15:09:07 +01:00
toaster
a74b7995c9 Implement Follower Audience object
- Replaces Chao audience entirely
    - Convenient, because one of the two default follower types used in the audience is Chao
- Can provide one follower, or a list of followers, on the stringarg1 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the mapheader follower list
- Can provide one skincolor, or a list of skincolors, on the stringarg2 (seperated by spaces/commas) and it'll pick randomly between them
    - If not provided, uses the follower's default color
    - If the follower's default color is Match/Opposite or the user provides "Random" in stringarg2, pick a random skincolor
- If arg3 is set, floats in the air
    - MTF_OBJECTSPECIAL in binary format
- If arg4 is set, faces the closest player
    - MTF_AMBUSH in binary format
    - Uses some funny mathematical tricks to avoid checking on the same frame as every other audience member at once
2023-04-20 23:15:56 +01:00
toaster
9eacdb4be4 P_SetupSpawnedMapThing: Catch more P_MobjWasRemoved 2023-04-20 22:58:50 +01:00
Sally Coolatta
4e7b6f0cc3 Add ring shooter tire grabbers + more player logic 2023-04-17 00:23:08 -04:00
Sally Coolatta
319cee4afa Move ring shooter to its own file 2023-04-17 00:23:07 -04:00
Lach
f9317b265e Correct Ring Shooter countdown 2023-04-17 00:22:09 -04:00
lachablock
a458490639 Ring Shooter: countdown animation & experimental stretchy spawn 2023-04-17 00:22:08 -04:00
lachablock
c98ff9616b Start Ring Shooter respawn: while e-braking, enter the respawn command to spawn a Ring Shooter. Currently purely visual and does not despawn. Steals the player's face for funsies. 2023-04-17 00:22:07 -04:00
toaster
4edae065cb MT_RANDOMITEM: Fix Prison Break/Versus delayed spawn
`leveltime`'s behaviour was changed, and this code was fragile and dependent on the old behaviour
2023-04-14 20:58:54 +01:00
Oni
d6d8cf548a Merge branch 'optimize-precip-think' into 'master'
Optimize precipitation by eliminating the thinker entirely

See merge request KartKrew/Kart!1157
2023-04-09 05:31:31 +00:00
James R
9eab5317f3 Stop calling P_NullPrecipThinker
In levels with tens of thousands of precipmobjs, the
overhead of running a thinker for all of them is too much,
no matter how small the thinker is.

ALL thinking is done inside the renderer now, where it can
be limited by distance. Precipmobjs track the last
leveltime they thunk, so interpolated frames don't think
twice.
2023-04-08 13:34:42 -07:00
Sally Coolatta
010fc344df Add equivalent of "Each Time" triggers for ACS 2023-04-06 18:05:05 +01:00
James R
652fb5452e MF_NOCLIPHEIGHT: remove restrictions on first-person camera
Fixes spectator noclip camera being clamped to
floor/ceiling heights.
2023-04-02 05:22:17 -07:00
James R
56694b2740 Merge branch 'udmf-riser' into 'master'
Add foflayer field to UDMF things, spawn offset from a specific FOF in the thing's sector

Closes #417

See merge request KartKrew/Kart!1120
2023-04-02 07:27:51 +00:00
James R
1c9ccab159 Use foflayer when spawning mapthings
- foflayer offsets the thing from an FOF in its sector.
  - foflayer 0 uses the base sector heights.
  - foflayer 1 uses the lowest FOF top height, or highest
    FOF bottom height when the thing is flipped.
  - foflayer 2 uses the second lowest / second highest and
    so on.
2023-03-29 22:23:56 -07:00
James R
75d5c5b68f Move P_GetMobjSpawnHeight to p_mapthing.cpp 2023-03-29 20:21:57 -07:00
James R
ed0d3adccc Don't render item capsule numbers mirrored in Encore mode 2023-03-29 19:09:45 -07:00
Sal
83b5b26a12 Merge branch 'packet-hack' into 'master'
Experimental: Improve level load processing

See merge request KartKrew/Kart!1077
2023-03-28 23:41:33 +00:00
James R
04bc0b6b9d Add fuse to Emeralds in Battle, same as dropped items 2023-03-23 19:39:28 -07:00
Oni
b9bbb6cb8a Merge branch 'conditions-cascading' into 'master'
Conditions Cascading

Closes #366

See merge request KartKrew/Kart!1053
2023-03-23 23:51:30 +00:00
Chromatian Keiske
fd122e7d62 Merge branch 'paranoia-mobj-reference-count' into 'master'
Tune up PARANOIA warnings for mobj reference count

See merge request KartKrew/Kart!1070
2023-03-23 08:11:04 +00:00
Gunla
6f6df2cfe2 Merge branch 'fix-perpetual-damage-floor-respawn' into 'master'
Reset TERRAIN when respawning

See merge request KartKrew/Kart!1068
2023-03-23 01:00:49 +00:00
Sally Coolatta
ffb65a3583 Experimental: Improve level load processing
- P_PreTicker ("defrosting") is dead. Levels now actually start on tic 0 instead of tic 2.
- Netxcmds are ran before G_Ticker, instead of after.
- All netxcmds are required to be processed before the level will finish loading (up to 5 gametics, to prevent any possible lock-up from malicious clients).
2023-03-22 10:59:29 -04:00
AJ Martinez
312e847151 Merge branch 'fix-faulty-mobj-references' into 'master'
Fix faulty references for monitors and players

See merge request KartKrew/Kart!1071
2023-03-22 07:43:37 +00:00
Gunla
9b1179518a Merge branch 'blue-target' into 'master'
Give Drop Target a weaker state when thrown forward

Closes #471

See merge request KartKrew/Kart!1049
2023-03-22 00:37:44 +00:00
James R
a396ffe676 Init mobj references before mobj specific spawning in P_SpawnMobj
Fixes MT_MONITOR leaking references due to
Obj_MonitorSpawnParts called before P_AddThinker.

Thanks to toaster
2023-03-20 20:00:10 -07:00
James R
d0719ef5ba Fix mobj reference management of player->mo
Thanks to toaster
2023-03-20 20:00:10 -07:00
James R
67f4505a06 Revert "Add cv_scrambleremoved, disable scramble on P_RemoveMobj"
This reverts commit a55ddef528.
2023-03-20 19:57:00 -07:00
James R
509a023329 PARANOIA: add debug to P_SetTarget if references go negative
Prints mobj address, mobj type, thinker function,
reference count and source code line number.
2023-03-20 19:57:00 -07:00
James R
abc11fc16f Reset TERRAIN when respawning
Fixes damage floor TERRAIN applying for the entire
duration of lightsnake.
2023-03-19 22:40:43 -07:00
toaster
4c0077e07c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-19 13:01:06 +00:00
toaster
bfbbfc2842 Merge branch 'prison-ufos' into 'master'
Prison UFOs

See merge request KartKrew/Kart!1060
2023-03-19 13:00:31 +00:00