Commit graph

117 commits

Author SHA1 Message Date
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
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
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
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