Commit graph

2442 commits

Author SHA1 Message Date
James R
7738d6bb7c Activate loop endpoints 2023-02-28 20:27:11 -08:00
James R
b3511a9149 Player orbiting physics 2023-02-28 20:27:11 -08:00
James R
49bb2a377e Add P_SpawnItemLine, spawn a row of mapthings between two points 2023-02-28 19:14:35 -08:00
James R
290d3fd3e8 Do not selectively reset mobj interpolation state at the beginning of P_MobjThinker
Fixes P_MoveOrigin not interpolating if used before
P_MobjThinker, i.e. during player think.

These are reset at the start of a tic anyway, before
anything else, with R_UpdateMobjInterpolators.
2023-02-28 19:14:35 -08:00
James R
2d063445a6 Automatically toggle director depending on number of players
- Upon becoming a spectator: if there are any players who
  can be spectated, e.g. haven't finished the level, then
  turn on director cam.

- Removes director cvar.
2023-02-26 05:55:44 -08:00
James R
e6da831e36 HUD target player with most points
- Replace battlewanted global with g_hiscore, keeps track
  of the current highest number of points.
- Adds HUD tracking for player(s) with the hiscore.
- Should target both players in a tie.
2023-02-24 23:21:47 -08:00
James R
deac3a373f Battle: replace Karma Bomb with death
- Lose 2 points when you die.
- Respawn with 3 bumpers.
2023-02-24 23:21:47 -08:00
James R
923b8414a1 Merge branch 'refactor-kitemcap' into 'master'
Refactor kitemcap

See merge request KartKrew/Kart!955
2023-02-22 11:23:51 +00:00
James R
b4b1543e0e Add 5 second fuse for empty kart, flickers right before despawning 2023-02-22 00:16:40 -08:00
James R
4adf585590 Give TARGET HUD tracking to UFO Catcher 2023-02-21 20:12:37 -08:00
James R
061e5b01ec Refactor trackercap
- Don't clear every tic. This is what P_RemoveTracker is
  for.
- Link in P_SpawnMobj. Should cover all cases.
- Remove excess objects. These were leftover from when
  Shrink destroyed items. Just track Jawz, SPB and Break
  the Capsules.
2023-02-21 18:27:46 -08:00
James R
be4c341316 Rename kitemcap to trackercap 2023-02-21 17:48:14 -08:00
Oni
3389c882b3 Merge branch 'gachabom-sprites' into 'master'
Add Gacha Bom sprites

See merge request KartKrew/Kart!950
2023-02-21 06:39:58 +00:00
James R
1f496e05ec Refactor objects/orbinaut.c for Gacha Bom
- Add flags variable to toggle much of Orbinaut behavior.
- Don't spawn afterimages for Gacha Bom.
- Animate facing angle of Gacha Bom when thrown backward.
- Let tossed Gacha Bom drive forward after landing.
2023-02-20 20:57:17 -08:00
James R
5cce81f4cd Add fuse to Pogo Spring
15 seconds, flickers for the last second.
2023-02-18 16:09:05 -08:00
Oni
a096f10236 Merge branch 'normalize-magician-box-offsets' into 'master'
Normalize magician box offsets

See merge request KartKrew/Kart!941
2023-02-18 23:47:33 +00:00
James R
ba908edf55 Add player sprzoff to Heavy Magician Box 2023-02-18 14:49:38 -08:00
James R
8770d76a4e Add P_SpawnMobjFromMobjUnscaled, does not scale offsets 2023-02-18 14:39:43 -08:00
James R
b1fac18844 Add Garden Top arrows
Two arrows. One above the player, floating. One below the
player, on the ground.

Both arrows use the player's facing angle. Arrows are only
visible to their own player (other players can't see them).

The floating arrow is a papersprite. You can see the arrow
turn with you as you turn your camera.

The grounded arrow is a splat with additive blending. It
tilts to match the slope of the ground you're driving on.
2023-02-18 03:15:04 -08:00
James R
e8ab92fa64 p_mobj.c: guard some cases where a mobj could be removed 2023-02-14 04:17:04 -08:00
James R
33145ab2ae p_mobj.c: reference count kitemcap and overlaycap
With the old code, if the object at the head of the list
was removed, it would leave the reference behind,
extending the lifetime of the thinker until P_RunKartItems
or P_RunOverlays was run.
2023-02-14 04:17:04 -08:00
James R
98a4a90129 PARANOIA: do mobj scramble last 2023-02-14 04:16:57 -08:00
AJ Martinez
32ea795639 Fault rework cleanup for merge 2023-02-13 15:31:39 -07:00
AJ Martinez
101db619e6 Add visual flicker in and out when faulting 2023-02-03 02:23:52 -07:00
Oni
271dae4643 Merge branch 'refcount-goofin' into 'master'
Additional P_SetTarget mobj_t pointer fixes on player struct

See merge request KartKrew/Kart!875
2023-01-25 01:00:42 +00:00
Oni
13563ce922 Merge branch 'acs' into 'master'
Action Code Script

See merge request KartKrew/Kart!728
2023-01-22 03:22:32 +00:00
Oni
584b714e72 Merge branch 'fix-z-movement-discard-mom' into 'master'
Let P_ZMovement use momentum changes from P_CheckPosition call

Closes #365

See merge request KartKrew/Kart!869
2023-01-22 03:15:42 +00:00
Oni
90274359db Merge branch 'magician-spectator' into 'master'
Heavy Magician adjustment

See merge request KartKrew/Kart!876
2023-01-22 01:59:48 +00:00
James R
65eedaa9ee Merge branch 'overlay-offsets' into 'master'
MT_OVERLAY exception flags

See merge request KartKrew/Kart!878
2023-01-21 20:26:23 +00:00
James R
6e058d66e1 Merge branch 'capsuletest' into 'master'
Add capsuletest cvar

See merge request KartKrew/Kart!884
2023-01-21 20:26:06 +00:00
James R
d7d365f1e4 P_ZMovement: take object's momentum after P_CheckPosition 2023-01-21 17:24:16 +00:00
toaster
d2d7421072 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into acs
# Conflicts:
#	src/CMakeLists.txt
2023-01-21 15:32:13 +00:00
toaster
2e35a40b80 SF_IRONMAN: handle randomised skin and hurt/death states differently
- P_DamageMobj
    - Become skin temporarily to show off the hurt frames
    - Sets charflags, so P_PlayerThink can handle reversion
    - Add sparkles for losing disguise
- P_KillPlayer
    - Sets charflags, so P_PlayerThink can handle reversion
    - Add extra sound for losing disguise
- G_PlayerReborn
    - Sets charflags in not-betweenmaps case as well, so P_PlayerThink can handle reversion
- P_SpawnPlayer
    - Use set skin for spawn again (partial revert of previously committed code)
- P_PlayerThink
    - More specific conditions for fakeskin reversion
        - Not hurt, dead, or respawning (except for last part of drop)
    - Add sound and sparkles for reapplying disguise
2023-01-21 14:43:54 +00:00
toaster
1ae8a6dec5 P_SpawnPlayer: Guarantee correct fake skin on player object at spawn 2023-01-21 12:30:01 +00:00
toaster
a4a74a7d2f Do not continue to run thinker for MT_MAGICIANBOX if removed by running out of lifespan 2023-01-21 12:30:00 +00:00
James R
610e2c66be Adjust Garden Top physics
- 110% -> 150% top speed
- no friction decrease if grinding
- 250% -> 300% gravity when grinding (for slope sliding)
- 275% -> 325% max boost when releasing grind
- 60% minimum boost speed when relasing grind
2023-01-14 18:11:46 -08:00
toaster
9ed9147640 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into overlay-offsets 2023-01-12 16:30:48 +00:00
toaster
51a9a6d363 P_RefreshItemCapsuleParts: Check for NULL before P_MobjWasRemoved 2023-01-12 16:14:16 +00:00
toaster
1ac869cbb3 P_RefreshItemCapsuleParts: Correctly assign part->tracer's OV_DONTSCREENOFFSET 2023-01-12 16:14:12 +00:00
James R
ba27c87ff0 Add capsuletest cvar
- capsuletest off - default behavior.

- capsuletest multiplayer - always spawn non time attack
capsules, even in FREE PLAY.

- capsuletest timeattack - always spawn time attack
capsules, even in multiplayer.
2023-01-11 21:46:21 -08:00
toaster
c7525fb5a6 Introduce MT_OVERLAY exception flags
- Applied via threshold of Overlay mobj
    - OV_DONTSCREENOFFSET
        - spritexoffset, spriteyoffset
        - Given to Item Capsule quantity numbers
    - OV_DONT3DOFFSET
        - sprxoffset, spryoffset, sprzoffset
    - OV_DONTXYSCALE
        - spritexscale, spriteyscale
    - OV_DONTROLL
        - rollangle, pitch, roll
Makes overlay on UFO emerald follow the emerald's spriteyoffset now
2023-01-08 18:16:04 +00:00
toaster
2a87cfcdf1 Additional P_SetTarget mobj_t pointer fixes on player struct
* CL_ClearPlayer (player departing server)
    - In GS_LEVEL, decrement refcount for all relevant pointer
    - Clearer comments
* G_PlayerReborn (initialisation before any player spawn)
    - Preserve skybox data and hoverhyudoro (except between maps)
    - Clean up follower handling
* Cross-codebase: use P_SetTarget for setting skybox-specific pointers, to match p_saveg.c
2023-01-08 15:15:44 +00:00
toaster
3d9137a9cf Pre-emptively fixes a possible issue where a player who is exiting would have their realtime adjusted on respawn, affecting final results. 2023-01-08 14:02:02 +00:00
Sally Coolatta
0601579af3 Disable linedef executors in UDMF maps 2023-01-07 00:00:27 -05:00
Sally Coolatta
5b147f59ed Add sector action
Linedef actions, but on sectors. Including args, stringargs, and unique activator flags.
2023-01-06 05:31:53 -05:00
Sally Coolatta
1caf255f5c Merge branch 'master' into acs 2023-01-05 22:23:51 -05:00
James R
ac250d45f1 Merge branch 'monitors' into 'master'
Monitors

See merge request KartKrew/Kart!845
2023-01-06 02:00:24 +00:00
toaster
724c9b774e Cleaner reference handling for the following extern-scope netsynced mobj_t*.
- `skyboxcenterpnts` and `skyboxviewpnts`
    - P_InitSkyboxPoint`, which calls `P_SetTarget`
- `waypoint->mobj`
    - Make sure NULL before using `P_SetTarget` on
- `tubewaypoints`
    - Use `P_SetTarget`
    - Use `UINT32_MAX` for the invalid mobjnum, since 0 is a valid one.
- `waypointcap` and `kitemcap`
    - NULL before reset

Our international nightmare is over.
2023-01-05 23:32:12 +00:00
James R
691e84f489 Give item drops a trail upward, fall faster 2023-01-03 05:31:30 -08:00
James R
3491bd0b1d Add Battle monitors
- Includes a struct definition for symmetrical objects
made out of papersprite sides.
- Dimensions of papersprite sides are looked up using
sprite cache.

- Monitors may contain multiple types of items.
- Item RNG is deterministic from the time the monitor is
spawned but the item types are not stored in memory.
Instead the RNG seed is restored every time an item type
needs to be determined. Item types need to be determined
every time the icon on the monitor's screen changes and
when the monitor is popped and drops all its items.
- Monitors sparkle like emeralds if there is an emerald
inside.

- Monitors take damage from players simply bumping into
them. The damage scales up with speed and weight.
- Activating a lightning shield in proximity decimates the
monitor into being able to be destroyed in one hit by
anything thereafter.
- All throwable / deployable items destroy a monitor in
one hit.
2023-01-03 05:31:30 -08:00