Commit graph

20612 commits

Author SHA1 Message Date
James R
e2be36c343 drawpickups command to hide collectible items 2022-11-25 16:05:11 -08:00
Sal
90e3d01395 Merge branch 'waterstep-2' into 'master'
Waterstep 2

Closes #329 and #327

See merge request KartKrew/Kart!774
2022-11-25 22:42:19 +00:00
Sal
df68b87e93 Merge branch 'gremlin-fix' into 'master'
Evict the wall gremlin

Closes #326

See merge request KartKrew/Kart!777
2022-11-25 22:39:17 +00:00
Sal
6e791d5c8b Merge branch 'tm-as-struct' into 'master'
Put tm* variables into a struct

See merge request KartKrew/Kart!776
2022-11-25 22:39:04 +00:00
toaster
08a9f69ed6 Multiple BonusGame support
- Comma-separated (exactly the same as levellist)
- Not REQUIRED, you can still make cups with one or zero BonusGame entries
- Happens every (numlevels+1)/(numbonus+1) - 5 and 2 makes after rounds 2 and 4, for example
2022-11-25 22:31:55 +00:00
toaster
5b10fd8d93 Restartlevel respects cv_kartencore 2022-11-25 18:21:19 +00:00
toaster
db95e3144d Re-add mid-game rankings
- gc_rankings, bound to TAB by default
- Now a toggle, rather than a hold behaviour
- Rearrange HU_Drawer to have chat (and cecho/music credits) render over everything else (like, say, tab rankings)
- Update PROFILEVER to 2 so we can add the new control to old profiles
2022-11-25 17:59:18 +00:00
toaster
86813b96a3 Adjust how properties are handled in G_PlayerReborn a little.
For consistency, all conditionals are done when data is being preserved in local variables, not on write back to player struct.
2022-11-23 18:11:50 +00:00
toaster
c2183a626c Actually track lastfakeskin!
Tremendous whoopsie: turns out there's no code that actually saves it outside of netsync. This is now fixed.
Also now allows you to roll Eggman as your first skin, and doesn't cause immediate characterswaps for midgame joiners.
2022-11-23 18:03:27 +00:00
toaster
3ee8bbbfc4 Adjust various EZT_s.
- EZT_KART is now EZT_ITEMDATA.
    - Uses the new one-byte widths to reduce spurious filesize use for item type, item amount, and bumpers.
- EZT_IRONMAN is now EZT_STATDATA.
    - Now includes kartspeed, kartweight, and charflags to be tolerant to restat.
2022-11-23 18:01:23 +00:00
toaster
33203bb53f Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into ironman 2022-11-23 17:21:51 +00:00
toaster
b8f59fd227 Skin and playerstate code in demos has been partly rewritten to support more than was previously possible.
Notable new features:
- Guaranteed native compatibility with SF_IRONMAN even with differing # of skins
- Bots (todo: can still desync midway through round)

Implementation details:
- Demo code (skins):
    - Instead of writing a skin name string, and the player's kartspeed, kartweight, and charflags for each player in the initial player-interpreting loop...
    - Write a skinlist of EVERY skin's name string, kartspeed, kartweight, and flags next to the file list, to be read into `demo.skinlist`.
        - If the skin name isn't loaded, find the skin with (in order)
            - SF_IRONMAN if your skin had SF_IRONMAN, since that's more important to signal
            - the closest stats otherwise (as per previous implementation)
        - Just as tolerant to stats AND the number of base skins changing between versions (the bonuschars aegis situation)
        - Not tolerant to restat, but we can add a DXD or EZT later if we want to natively support that kind of mod
    - In the initial loop and DXD_SKIN, just write an index that can be used for `demo.skinlist`, and store it in `demo.currentskinid[p]`
    - The player's skin is now encoded as EZT_IRONMAN for ghosts (and just in case RNG sync fails for unrelated reasons)
- In the SF_IRONMAN code when demo.playback is true
    - everywhere where `skins[player->skin]` is referenced instead uses an index into `demo.skinlist`
    - SetRandomFakePlayerSkin uses the `demo.skinlist` to build a table to ensure exact random call parity
        - Also means it no longer double rejection-samples.
    - `player->fakeskin` and `lastfakeskin` are always == their original recording values, a skin id which can be used into `demo.skinlist`
- Demo code (playstate, initial player setup loop):
    - Add bot flag (`DXD_PST_ISBOT`, `DEMO_BOT`)
    - Add in-between-level botvars (difficulty, diffincrease, rival)
    - Don't rely on `PF_WANTSTOJOIN` to activate

Additional bugfixes:
- Followerskin set to -1 in CL_ClearPlayer so a bad follower isn't recorded on player join without name and color change arriving immediately
- Accomodate new joiners in demo code even if they're not on DXD_PST_SPECTATING for one reason or another
- Demo extra file list saving is now its own function for code cleanliness
- Actually only modify players relevant to the demo at the end of G_DoPlayDemo, not all 16 by supplying and overwriting garbage values (POSSIBLE MEMORY CORRUPTION FIX, mobj_t pointer was previously dereferenced)
2022-11-22 14:28:48 +00:00
James R
45604a05c3 Merge branch 'servers-16' into 'master'
Server ports from 1.6 + general Dedicated repair

See merge request KartKrew/Kart!760
2022-11-22 05:16:17 +00:00
Sally Coolatta
c41f231de0 No reference count for TryMoveResult_t 2022-11-21 16:12:53 -05:00
Sally Coolatta
8f5e0f63e9 Evict the wall gremlin
Gremlins happened whenever P_TryMove and P_SlideMove/P_BounceMove disagreed on what an object collided with. When TryMove said you collided with a line, but P_BounceMove said that you didn't, then you'd get gremlin'd.

To fix this, P_TryMove now can edit a struct to contain information on what it collides with. P_SlideMove and P_BounceMove no longer try to detect walls on their own and now requires this result from P_TryMove. If a slide/bounce is needed without moving the object, then you'd want to use P_CheckMove to get the result.

Lua is not supported right now.
2022-11-21 16:12:53 -05:00
Sally Coolatta
35f1fe580c P_RestoreTMStruct 2022-11-21 15:59:19 -05:00
Sally Coolatta
11a6287c80 Reference count tm.floorthing and tm.hitthing 2022-11-21 15:41:24 -05:00
toaster
e65d17cd4d Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into ironman
# Conflicts:
#	src/g_demo.c
2022-11-21 15:49:29 +00:00
toaster
62bf8458c5 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into servers-16
# Conflicts:
#	src/d_main.c
2022-11-21 15:29:35 +00:00
Sal
df35a72c58 Merge branch 'fix-soc-kitem-unprefixed' into 'master'
Fix Lua KITEM constants not having KITEM_ prefix

See merge request KartKrew/Kart!761
2022-11-21 03:45:06 +00:00
Sally Coolatta
b31aa1bbb0 Put tm* variables into a struct
This makes it significantly easier to save/restore the state of these variables, whenever we need to do so for calling movement functions in the middle of other movement functions. This will also make it easier to move it out of global variable hell if desired later.
2022-11-20 19:27:34 -05:00
toaster
32855d0e92 Make subtractive blendmodes non-gamma-corrected
Committed FOR TESTING. Do not merge until we've tested to make sure this works across all desired effects
2022-11-19 23:01:49 +00:00
toaster
2e0365e399 Attenuate fastfall bounce underwater (resolves #329)
Probably not worth a branch all by itself, and this branch is already pretty wet
2022-11-19 22:41:55 +00:00
toaster
f83b14e16e Minimum speed of 40% for waterskii (resolves #327)
Not 50% to catch spindashing better
2022-11-19 22:39:14 +00:00
toaster
f06d4b4369 Only return early for floordiff if under-water surface is SLOPED 2022-11-19 22:37:16 +00:00
James R
ad464817dd Fix -Wunused-variable and -Wunused-parameter
blame 2304ef28a5
2022-11-19 01:39:51 -08:00
James R
4316169d99 Fix -Wtype-limits
This subtraction cannot yield a negative value, even if
the type were signed, so the max is useless.
2022-11-19 01:37:12 -08:00
Oni
b79375d0ab Merge branch 'no-modulo-bias' into 'master'
Try some things to reduce rng biases

See merge request KartKrew/Kart!767
2022-11-19 05:04:56 +00:00
Sally Coolatta
d3ab27cb5f Merge branch 'master' into no-modulo-bias 2022-11-18 20:33:35 -05:00
Sally Coolatta
0e1db52ee6 Merge branch 'master' into no-modulo-bias 2022-11-18 20:33:20 -05:00
Sal
fa3feeb44a Merge branch 'player-scale-touchup' into 'master'
Player scale touchup

See merge request KartKrew/Kart!773
2022-11-19 01:32:20 +00:00
toaster
1c8e5b3418 Make momz always base-scale handled, to match how gravity works 2022-11-19 01:01:10 +00:00
Oni
c331958ef4 Merge branch 'waterstep' into 'master'
Waterstep fixes (resolves #319)

Closes #319

See merge request KartKrew/Kart!771
2022-11-19 00:54:46 +00:00
toaster
ea74a219e5 Use K_GrowShrinkSpeedMul instead of custom-built scale inversion (THANKYOUSAL!!!!!!!!!!!) 2022-11-19 00:48:50 +00:00
Oni
996e3c97ef Merge branch 'banana-vfx' into 'master'
Banana visuals

Closes #308

See merge request KartKrew/Kart!772
2022-11-19 00:47:21 +00:00
Oni
2d67c0c460 Merge branch 'chengi-nums-fix' into 'master'
Chengi's position numbers from months ago finally implemented (again)

See merge request KartKrew/Kart!769
2022-11-19 00:45:50 +00:00
toaster
73cc93a76f WIP: Attempt to make shrink/grow tricks consistent with mapobjectscale tricks.
Now the opposite problem - slightly too high momentum for shrink, slightly low momentum for grow. Some other factor I haven't considered..? Would VERY much appreciate an assist.
2022-11-19 00:36:27 +00:00
toaster
cf49a0df6a Flung rings from grow/shrunk players are now at mapobjectscale rather than player scale
This is a HUGE pet peeve of mine considering how ring scale is otherwise very, very consistent and uncoupled
2022-11-19 00:32:52 +00:00
Sally Coolatta
d0b86ee7ed Add banana death particles 2022-11-18 15:55:47 -05:00
Sal
8007446349 Merge branch 'restartmap-menu' into 'master'
Menu Restartmap

Closes #301

See merge request KartKrew/Kart!768
2022-11-18 20:13:51 +00:00
toaster
3ef98fd80d Don't use a seperate count, I literally forgot id is useful for this 2022-11-18 20:08:52 +00:00
toaster
4235798d8a Revert "Make the second page of cups accessible by up/down input at the limit, rather than left/right input"
This reverts commit f01bb3e793.
2022-11-18 20:05:09 +00:00
toaster
70d83da507 More lenient waterskip per VC discussion 2022-11-18 19:59:15 +00:00
toaster
a558c4f5c0 Waterskiing stepdown improvement
Only prohibits when there's a valid stepdown if the object is on a sloping surface.
Fixes Mega Aqua Lake without breaking Water Palace or a modified Nova Shore (after addition of an extra downward slope)
2022-11-18 19:39:56 +00:00
toaster
3422efb2fd Reduce restriction for water skiing slope differences
Only prohibit if slope surface is TOO different along the direction of movement, rather than even slightly different across any axis.
Fixes MK's indev Mirage Saloon
2022-11-18 19:36:01 +00:00
toaster
3174e0cc3d Tryx, tryy for P_GetThingStepUp in increment_move instead of destination x, y 2022-11-18 12:50:24 +00:00
Sally Coolatta
d0cd25328e Remove decabanana 2022-11-18 02:34:59 -05:00
Sal
989b24ae0c Merge branch 'fix-check-tracking' into 'master'
Fix position of CHECK

See merge request KartKrew/Kart!770
2022-11-18 07:19:08 +00:00
Sally Coolatta
32c477e619 Bananas use proper death frame 2022-11-18 01:56:45 -05:00
Sally Coolatta
1688325c67 Banana angle crazy mode
- Randomize banana angles when thrown
- Spin bananas when mid-air
- Add MF_SLOPE flag to control whenever or not pitch/roll are set for an object (replaces MF_BOXICON)
2022-11-18 01:05:01 -05:00