Commit graph

22470 commits

Author SHA1 Message Date
James R
bced5ecbc5 Render precip through blockmap instead of during BSP
There can be very many precipmobjs in a sector. During BSP
rendering, for each sector reached by BSP (the entire
visible level at least), all the precipmobjs would be
iterated and their distance from the camera calculated, to
determine whether they are within draw distance.

The issue with the old approach is that there really are
too many precipmobjs in each sector. By iterating the
blockmap within a certain range instead, precipmobjs
out of view are not iterated at all, saving some time.

Caveat: drawdist_precip is no longer respected as an
exact value, since it must round to the precision of the
blockmap.

List of potentially scary changes:

- Removes snext/sprev for precipmobj_t
- Removes preciplist for sector_t

- Adds bnext/bprev for precipmobj_t
  - mobj_t and precipmobj_t field offsets are symmetrical

- Modified P_SetPrecipitationThingPosition and P_SetThingPosition
  - The syntax in these functions is kind of wacky
2023-04-06 05:41:06 -07:00
James R
8955f2ead0 R_RenderPlayerView, HWR_RenderPlayerView, HWR_RenderSkyboxView: cut down on duplicated code 2023-04-06 04:47:14 -07:00
toaster
dccd70129a Merge branch 'fix-portal-slime-trails' into 'master'
Fix line-based portal slimetrails

See merge request KartKrew/Kart!1139
2023-04-05 13:00:02 +00:00
toaster
3d5e59b986 Merge branch 'r-bsp-cpp' into 'master'
Convert r_bsp.c to C++, light refactoring

See merge request KartKrew/Kart!1144
2023-04-05 12:58:26 +00:00
toaster
d6a0f79ed9 R_CrunchWallSegment: New function name in I_Error message 2023-04-05 13:27:26 +01:00
toaster
a97f53874e Merge branch 'misc-sanitize' into 'master'
Misc fixes for memory errors revealed by -fsanitize=address

See merge request KartKrew/Kart!1143
2023-04-05 11:40:45 +00:00
toaster
0ac1768ee6 Merge branch 'new-voting' into 'master'
Split voting screen to a new file

See merge request KartKrew/Kart!1141
2023-04-05 11:28:52 +00:00
James R
d55b1b194a r_bsp.cpp: merge R_ClipSolidWallSegment and R_ClipPassWallSegment into one templated function
Prep for creating a third variant. Control flow is largely
the same between these two leveraging if constexpr seems
appropriate.

Also splits the crunch goto label away into a new function
called R_CrunchWallSegment.
2023-04-05 00:09:24 -07:00
James R
ccd5f3bfc4 Convert r_bsp.c to r_bsp.cpp 2023-04-04 23:58:58 -07:00
James R
b92bf69ce5 R_RasterizeFloorSplat: set ds_brightmap to NULL
Previously did not set ds_brightmap, so it could sneak in
from a previous span renderer.
2023-04-04 22:15:47 -07:00
James R
f087d6d865 ST_drawDebugInfo: fix displayplayers access out of bounds on startup
On startup, the cvar is not registered yet so the value
went negative subtracting from zero.
2023-04-04 22:10:44 -07:00
James R
e5d51d5a31 R_RenderSegLoop: fix FINETANGENT sometimes going out of bounds 2023-04-04 22:06:32 -07:00
James R
32ed5fe4ae Newsnapshotfile: increase array size to fit webm extension 2023-04-04 22:04:09 -07:00
James R
a469cebef7 M_DrawPause: fix iterating beyond bounds of menuitems 2023-04-04 22:01:42 -07:00
Eidolon
91a6bcf8be Merge branch 'shader-postproc' into 'master'
Shader-based postimg effects

See merge request KartKrew/Kart!1138
2023-04-04 03:37:43 +00:00
Sally Coolatta
15f60a1f14 Split thing voting screen to a new file 2023-04-03 20:57:31 -04:00
Eidolon
86dd34d807 Merge branch 'pad-rumble' into 'master'
Gamepad rumble

See merge request KartKrew/Kart!1098
2023-04-03 21:15:34 +00:00
toaster
6e819e1506 rumble2 rumble3 rumble4 typo 2023-04-03 10:37:03 +01:00
James R
4e79b4ead2 Set portal clipping in R_RenderSegLoop
Previously, line-based portals accessed global
ceilingclip/floorclip before the current seg was rendered.
This means clipping for such portals would be based on
whichever seg happened to render before. Additionally,
ceilingclip/floorclip have more to do with clipping the
visplanes than the height of the wall between (for
instance, using these values doesn't work for two-sided
lines that create a "window" between the planes). The
correct approach that should always work is using the
midtexture's height from inside of R_RenderSegLoop.
2023-04-03 01:12:26 -07:00
James R
20692de47a Replace portalline boolean with g_portal pointer to current portal 2023-04-03 01:11:57 -07:00
Eidolon
356e3317df hwr2: Do postimg in hardware
Depends on updated shaders
2023-04-02 19:46:21 -05:00
toaster
8c58cde072 Rumble: Also vibrate on the first half-second of a sneaker (panel), attenuating in strength with numsneakers. 2023-04-03 00:13:17 +01:00
toaster
6942298862 Adjustments to Rumble
- Cause more intense rumble for damage/damage-causing hitlag
- Reduce intensity for offroad/bananadrag rumble
2023-04-02 23:55:16 +01:00
toaster
380beaa023 Refactor Rumble condition check to iterate over splitscreen players once in p_tick.c, instead of players*splitscreen players in k_kart.c 2023-04-02 23:49:45 +01:00
toaster
89fc9a618e Rumble toggle attached to profile
- Will silently merge conflict with !1093, make sure to adjust PROFILEVER handling
- (profile_t *)->rumble
- cv_rumble[MAXSPLITSCREENPLAYERS]
- cv_dummyprofilerumble
- Disables all current rumbles when toggling off
- Prevents new rumbles from being set while turned off
2023-04-02 23:16:58 +01:00
toaster
7a9779d242 Remove a bunch of mouse console variables that hold no relevance to us 2023-04-02 23:09:56 +01:00
AJ Martinez
d84ee59887 Merge branch 'fix-spectator-noclip' into 'master'
Let noclip cheat remove floor/ceiling clipping while in spectator mode

See merge request KartKrew/Kart!1134
2023-04-02 21:20:08 +00:00
AJ Martinez
d73b91bc81 Merge branch 'cascade-cleanup' into 'master'
Cascade Cleanup

See merge request KartKrew/Kart!1128
2023-04-02 21:19:53 +00:00
AJ Martinez
e1e7db4c49 Merge branch 'debugrender-portal' into 'master'
Add debugrender_portal command

See merge request KartKrew/Kart!1133
2023-04-02 21:19:47 +00:00
AJ Martinez
da28707fe1 Merge branch 'no-way-unlocks' into 'master'
R_GetLocalRandomSkin

See merge request KartKrew/Kart!1135
2023-04-02 21:19:41 +00:00
AJ Martinez
1606fd80d7 Merge branch 'hold-flipped' into 'master'
Flip HOLD! in Encore

See merge request KartKrew/Kart!1136
2023-04-02 21:11:13 +00:00
Eidolon
3cd232601e Use boostpower instead of offroad for rumble 2023-04-02 21:56:41 +01:00
Eidolon
c64bdca667 Reset rumble on net pause and pause menu 2023-04-02 21:56:41 +01:00
Eidolon
a71c7dfad6 Reset device rumble on exitlevel, exitgame, map 2023-04-02 21:56:40 +01:00
Eidolon
839f2a6d15 Add G_ResetAllDeviceRumbles 2023-04-02 21:56:40 +01:00
Eidolon
f7ca9043a1 Add offroad gamepad rumble 2023-04-02 21:56:39 +01:00
Eidolon
17daf1aeba Add G_ functions to rumble a player's device 2023-04-02 21:56:39 +01:00
Eidolon
769ce2ef65 Add I_GamepadRumble, I_GamepadRumbleTriggers 2023-04-02 21:56:39 +01:00
toaster
4d8e6f235a Flip HOLD! in Encore 2023-04-02 19:15:57 +01:00
toaster
92d3392c97 R_GetLocalRandomSkin
Randomisation of unlocked characters only for
    - Intro ticker taunt
    - Waiting Players NO WAY? NO WAY!
2023-04-02 19:11:03 +01:00
toaster
37e7b82b8b Merge branch 'profile-testing' into 'master'
Add -profile through -profile4 flags for splitscreen testing

See merge request KartKrew/Kart!1130
2023-04-02 17:00:21 +00:00
toaster
016697cfe4 Merge branch 'fix-parties' into 'master'
Fix parties

Closes #452 and #316

See merge request KartKrew/Kart!1099
2023-04-02 16:59:36 +00:00
toaster
b2969af84f P_IsLocalPlayer: Fix returning whether consoleplayer was in consoleplayer's party (ie, always true) instead of actual requested player.
Fixes replacement music applying when bots use powerup items.
2023-04-02 17:43:02 +01:00
James R
0774cd2c80 Remove player from old party when directly joining another 2023-04-02 17:26:34 +01:00
James R
dfe49a5bf3 Fix srb2::StaticVec::pop_back
lmao
2023-04-02 17:26:34 +01:00
James R
062d238f2f G_BuildTiccmd: update correct localangle while in parties 2023-04-02 17:26:34 +01:00
James R
62624efcef Parties: fix interaction with viewpoint management / spectator mode
- Fixes G_ResetView and G_ResetViews not accounting for
  parties -- fixes viewpoint switching while in parties.
- Fixes spectator controls sometimes activating while in
  parties.
2023-04-02 17:26:34 +01:00
James R
a0985eb043 Parties: fix invite command letting you invite local splitscreen players 2023-04-02 17:26:33 +01:00
James R
9b5b07b03c Completely rewrite party management code
Replaces g_splitscreen.c with g_party.cpp. Simplifies
party management functions.

Moves externs out of already bloated doomstat.h and
g_game.h into g_party.h.

Cuts down on globals spam.
2023-04-02 17:26:33 +01:00
James R
a3a3f4cd18 Add missing return statements to invite and cancelinvite commands 2023-04-02 17:26:07 +01:00