Commit graph

20638 commits

Author SHA1 Message Date
Sally Coolatta
05413eeb2d Add proper comments for each function
(I think this is the only code style I want to actively enforce :p)
2022-12-15 16:19:06 -05:00
Sally Coolatta
6554c8bfb1 Improve scope handling of the roulette
All of the player_t references are now full-const instead of const pointer after a certain point. This is because I've made two mistakes so far of modifying the player with this, when it's supposed to be safe to call for HUD as well.

Also uses this split to add a more efficient way to prevent multi-Shrink/SPB.

Also handles NULL player better, for the sake of Battle's K_CreatePaperItem.
2022-12-15 02:13:46 -05:00
Sally Coolatta
167df6cca7 Remove item roulette between maps 2022-12-15 01:44:09 -05:00
Sally Coolatta
ffe9d5cd1d Properly support small splitscreen itembox 2022-12-15 01:41:34 -05:00
Sally Coolatta
f7e53ec811 Cleanup lots of the older roulette code
- Most of it now requires a reference to itemroulette_t, rather than copying all of the variables over.
- Increased the effect of Frantic Items, as the old scaling was made extremely low because  item distance was exponential back then.
- A lot of variables are pre-calculated in itemroulette_t instead of redoing the calculations every time (player count, first place's dist, etc)
- Make most of these functions only accessible by k_roulette.c
- Even when single items get forced into your roulette, the Super Ring Debt effect can happen
- Make the game support setting single items from other gametypes (Pogo Spring-only races work now)
- Fix some item distances not accounting for scale
- Prevent multiple of certain items from rolling at once; Shrinks (not a big deal) and SPBs (OH GOD NO)
2022-12-15 01:23:23 -05:00
Sally Coolatta
8d43acccb7 Use predetermined roulette speed for Time Attack 2022-12-13 18:03:44 -05:00
Sally Coolatta
6b8a011aa1 Flicker other items when selecting
Makes the lerp back to the middle less jarring, since the items that were just there won't disappear.
2022-12-13 18:02:21 -05:00
Sally Coolatta
2a546df3fb Fix debugger breaking, reduce size 2022-12-13 12:44:11 -05:00
Sally Coolatta
c184567361 No longer dynamically allocate roulette list
Done with the issues trying to sync this memory over the wire, so now it's just a long static array...
2022-12-13 12:06:52 -05:00
Sally Coolatta
59ee8177d7 Try some things for roulette sync
- PU_STATIC instead of PU_LEVEL, since player_t is always kept around anyway.
- Don't alloc itemList when cap is 0
- Read/write 0 when itemList is NULL
2022-12-13 00:00:37 -05:00
Sally Coolatta
7713ce0ebb Fix speed being messed up near level start
Used the wrong constant, leftover from an earlier experiment that was only partially reverted. Fixes "ghost" roulettes.
2022-12-12 19:41:33 -05:00
Sally Coolatta
8534703de6 Further improve item debugger visibility
- Half the scale of the item graphics, and reduce the spacing, so more of the reel can fit in one column.
- Move the item table text over to the right, depending on how many columns were drawn.
- Display the item roulette speed, as well.
2022-12-12 17:43:32 -05:00
Sally Coolatta
a73e62c163 Re-add roulette itemList user
Turns out the Z_Free error is something else in r_patch.c, seems unrelated to what I made.
2022-12-12 16:59:29 -05:00
Sally Coolatta
b0537de79e Re-implement debugitemodds 2022-12-12 16:44:24 -05:00
Sally Coolatta
9e3ded610d Get rid of my TODO notes
I implemented it, lol
2022-12-12 16:19:45 -05:00
Sally Coolatta
63f6b18d59 No user for roulette itemlist
Fixes the occasional Z_Free complaint
2022-12-12 11:55:28 -05:00
Sally Coolatta
8d2eb9220d Make Super Ring flood happen at 0 rings too 2022-12-12 11:46:03 -05:00
Sally Coolatta
13d7c791f5 Make the slowest speed slower
Was designed for Snap's tiny item sprites, for the huge ones it still feels pretty fast. The fastest speed is unchanged, though :)
2022-12-12 04:36:32 -05:00
Sally Coolatta
e45cef44df Make bots stop roulette instead of waiting it out
Done in kind of a lazy way, might revisit later.
2022-12-12 04:35:51 -05:00
Sally Coolatta
c8f3533b00 Roulette speed adjustments
- Speeds up the farther in the course you are
- Speeds up the further in the front you are
- Slows down before the 20 second mark
2022-12-12 04:01:09 -05:00
Sally Coolatta
10145b75d1 Fix incorrect item reel in actual races 2022-12-12 02:59:58 -05:00
Sally Coolatta
202c505664 Implement roulette visuals 2022-12-12 02:18:18 -05:00
Sally Coolatta
534026764c Make Eggman Mark actually work 2022-12-12 00:22:14 -05:00
Sally Coolatta
79813f1398 Merge branch 'clipping-rectangle' into deterministic-roulette 2022-12-11 23:58:55 -05:00
Sally Coolatta
a481e4b34b Deterministic roulette
The roulette contains NO (non-seeded) RNG anymore. You manually stop it at any time.

Still needs the visual of the items scrolling, to make it not blind.
2022-12-11 23:58:11 -05:00
James R
db062fd0bb OpenGL: clipping support for HWR_DrawStretchyFixedPatch 2022-12-11 17:45:15 -08:00
James R
09c55858b7 Fix off-by-one when clipping rectangle bottom 2022-12-11 17:43:11 -08:00
Sally Coolatta
8cdfcea319 Prevent modifying cliprect, wordier vars 2022-12-11 16:47:25 -05:00
Sally Coolatta
b50fbce5ee Clear clipping rectangle before each hook call
Prevents Lua from being able to make a mess.
2022-12-11 14:14:12 -05:00
Sally Coolatta
3a8b1ea8e6 Comment out test case 2022-12-11 14:02:48 -05:00
Sally Coolatta
b95a18676f Clipping rectangle
Instead of the absolute insanity that is V_DrawCroppedPatch, which makes you specify the number of pixels to crop off the top/left and then the number of pixels to show after the crop ... you just use V_SetClipRect to create a rectangle for any future draws to be cropped down to, and V_ClearClipRect afterwards to clear it.

Currently only supported by V_DrawStretchyFixedPatch. Ideally other drawing functions should also receive clipping rectangle support too.
2022-12-11 13:53:51 -05:00
James R
32f747fd5a Merge branch 'voltage-damage' into 'master'
Add voltage damage type, for Lightning Shield

See merge request KartKrew/Kart!804
2022-12-09 04:14:31 +00:00
James R
f4a7aa487c Merge branch 'scale-smoldering-momz' into 'master'
Mobj scale explosions smoldering rising momentum

See merge request KartKrew/Kart!803
2022-12-09 04:14:15 +00:00
James R
70cf67bd15 Merge branch 'scale-speed-to-weight-buff' into 'master'
Mobj scale weight buff from moving above top speed

See merge request KartKrew/Kart!802
2022-12-09 04:13:54 +00:00
Sal
697daba74b Merge branch 'testrun-develop' into 'master'
Start on Test Run by default, only in DEVELOP builds

See merge request KartKrew/Kart!797
2022-12-06 10:22:44 +00:00
Sal
c5472a23f6 Merge branch 'spring-reset' into 'master'
Reset pitch/roll on springs + trick panels

Closes #348

See merge request KartKrew/Kart!798
2022-12-06 10:22:29 +00:00
Sal
b51769c015 Merge branch 'fix-solid-midtex' into 'master'
Fix solid midtextures

Closes #349

See merge request KartKrew/Kart!799
2022-12-06 10:22:16 +00:00
Sal
aa44e7682a Merge branch 'egg-capsules-solid-fix' into 'master'
Egg Capsule fixes

See merge request KartKrew/Kart!800
2022-12-06 10:22:00 +00:00
James R
90a4159acd Add IMON sprite definition 2022-12-05 13:45:26 -08:00
James R
cbb1f3c714 Fix NULL lump name guard for W_CheckNumForName 2022-12-05 13:06:52 -08:00
James R
3bc359e298 Mobj scale explosions smoldering rising momentum 2022-12-05 13:06:23 -08:00
James R
abdb2e3ac3 Set Lightning Shield attack to DMG_VOLTAGE 2022-12-05 13:04:47 -08:00
James R
7b2095f6a5 Scale player weight buff from speed to mobjscale 2022-12-05 13:03:46 -08:00
James R
5f42692b8f Merge branch 'S_ReducedFXSoundAtVolume-player_t-owner' into 'master'
Use player_t parameter in S_ReducedVFXSoundAtVolume

See merge request KartKrew/Kart!790
2022-12-05 21:00:36 +00:00
James R
c7ad1e659e Merge branch 'universal-typedef' into 'master'
Move all typedef into one file

See merge request KartKrew/Kart!791
2022-12-05 20:59:43 +00:00
Sally Coolatta
2140c2f616 Use P1-4 starts in Capsules Attack / Bonus Stage
Rather than randomized Battle starts.
2022-12-03 04:45:59 -05:00
Sally Coolatta
226cb7d736 Update capsule parts
- The pieces do the positioning, instead of the capsule itself. This makes it so that the parts update after the capsule has applied its momentum.
- Use proper inradius instead, so the sides line up.
- Because of the above change, the capsule as a whole is bigger. This means...
- Increased hitbox again
- Changed a few of the sprites
2022-12-03 04:25:34 -05:00
Sally Coolatta
d6bd869b92 Give Egg Capsules drop shadows 2022-12-03 03:08:44 -05:00
Sally Coolatta
e8e02058ef Bigger Egg Capsule hitbox 2022-12-02 04:21:23 -05:00
Sally Coolatta
bdbd79dd41 Fix Egg Capsule interp 2022-12-02 04:15:56 -05:00