Commit graph

1077 commits

Author SHA1 Message Date
Sally Coolatta
581b989fe4 Fix bots being unable to trigger
UDMF regression
2022-11-27 03:00:48 -05:00
Sally Coolatta
05e74c3e9d Fix linedef 499 conversion 2022-11-27 02:57:48 -05: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
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
c4fd7d74dd P_AddWadFile partial stages port from SRB2Kart 1.6
Originally written by x.organic, flattened rewrite due to massive changes between RR and SRB2Kart codebase
Notable changes:
- p_adding_file has been reworked into partadd_earliestfile to allow for final setup to use
- much like the public version required removing TEXTURE SOCs, this one required removing Flats support from ANIMDEFS
2022-11-04 16:15:53 +00:00
toaster
e5d1b39e30 Add R_RelativeTeleportViewInterpolation
Adjusts pview_old for relative teleport to attempt a contigious motion
2022-11-03 13:52:17 +00:00
AJ Martinez
8d2d6bfc78 Ironman: return to base character when exiting 2022-11-03 03:38:56 -07:00
AJ Martinez
8c800cf88e Ironman: use introtime transform in non-race 2022-11-03 03:38:55 -07:00
AJ Martinez
8cc535925b Ironman: Randomize every lap and after intro 2022-11-03 03:38:55 -07:00
James R
42f9443de1 UDMF: Add back #900 and #901 additive, subtractive special alpha values for FOFs
Fix fourth digit blend mode being off by one.

see ebe38ff518
2022-10-16 18:07:39 -07:00
Sally Coolatta
8953cf54bb Speed Pads are now a TERRAIN effect
- Use `SpeedPad` to set the strength. Intended to be scaled like Trick Panels, so 1 for yellow, 2 for red, so on. Can use floating point.
- Use `SpeedPadAngle` to rotate the thrust direction. This is in the same system as map angles, so east is 0, north is 90, west is 180, and south is 270. Also accepts floating point.
- Speed Pad angle accounts for the flat alignment itself, as well.
- Like Sneaker and Trick Panels, the sector / line special are now deprecated.
2022-10-11 02:26:54 -04:00
Sally Coolatta
6fb56cc940 Finish line + respawn line use args 2022-10-10 09:12:41 -04:00
Sally Coolatta
7f75501606 Linedef 80 updated
- Uses args instead of texture offsets.
- Compares tag lists, instead of thing angle.
- Made the arguments accept 0 as a "catch-all" option (args[0] == 0 means don't care what type it is; line tag == 0 means don't care what tags they have)
2022-10-10 08:55:49 -04:00
Sally Coolatta
aa7e26e40e Fix credit on ChangeMusic, use args 2022-10-10 08:03:41 -04:00
Sally Coolatta
032ffafd39 Award Player Rings uses args for overload 2022-10-10 07:02:45 -04:00
Sally Coolatta
a8ac5a9922 Make Kart Z FOF Thwomp delay use args 2022-10-10 07:00:08 -04:00
Sally Coolatta
3f94c6def8 Fix wrong names 2022-10-10 06:10:38 -04:00
Sally Coolatta
21dd68d392 Reimplement Invert Encore
Also add removal warnings for sector Sneaker Panels, Trick Panels, and fast-approaching deprecation warnings for sector Offroad.
2022-10-10 06:08:25 -04:00
Sally Coolatta
f2a815ddca It's actually just one type 2022-10-09 03:14:59 -04:00
MascaraSnake
3b971835ee Add Lua backwards compatibility for FOF flags 2022-10-09 01:56:50 -04:00
Nev3r
5c9599f0a9 "UDMF: The whole thing" merged
See merge request STJr/SRB2!1714

Barely any RR features reimplemented
2022-10-09 01:13:37 -04:00
James R
05dd7d7871 Merge remote-tracking branch 'origin/master' into HEAD 2022-10-01 14:45:39 -07:00
James R
f3668fbd7c Merge branch 'top-final' 2022-09-29 10:52:45 -07:00
James R
e30232e103 Kill last of MF2_TWOD -- toggletwod, line action 432 2022-09-29 03:16:11 -07:00
James R
56a5432f41 Adjust most player physics for Garden Top
- Auto accel
- 800% acceleration
- 110% top speed
- Infinite tether like Lightning Shield

- Resists going upward on slopes
- Less friction

- Can always turn your sprite
- Turning speed does not get weaker at high speeds
- Turning speed is normal underwater
- Keeps moving in momentum direction, regardless of how
you turn
- Releasing a drift redirects all your momentum in that
direction

- Floats over bananas, damage sectors and offroad
- No stair janking while floating

- Hold drift for extra gravity. Not only does this fast
fall (this stacks with true fast falling), it builds
momentum down slopes too!

- Parries Big Players (Grow), Invincibility, Flame Shield
and, of course, other Tops -- all except if you're
grinding
- Wipes out anyone you touch
- Infinite weight like Bubble Shield

- Does not water skip
- Does not water run while holding drift
2022-09-28 02:01:37 -07:00
toaster
d8bb2fe8fe Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into setangle
# Conflicts:
#	src/k_kart.c
#	src/p_enemy.c
#	src/p_mobj.c
2022-09-26 16:25:06 +01:00
Sally Coolatta
139d6f4a49 Merge branch 'master' into rng-states-2 2022-09-25 14:04:19 -04:00
toaster
6ab24e6055 Add extra categories and apply based on non-blocking review
- PR_RANDOMANIM // FF_ANIMATE|FF_RANDOMANIM
- PR_BUBBLE // Decorative air bubbles
- PR_RULESCRAMBLE // Netgame rule scrambing events
- PR_ITEM_DEBRIS // Item debris
- PR_ITEM_BUBBLE // Item bubbles
- PR_ITEM_BOOST // Boost
- PR_SMOLDERING // Smoldering particles
- PR_SPARKLE // Endsign and/or Emerald
- PR_MOVINGTARGET // Randomised moving targets
2022-09-24 22:01:00 +01:00
toaster
5c36e72115 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into rng-states-2
# Conflicts:
#	src/p_enemy.c
2022-09-24 20:29:53 +01:00
toaster
871de857ae Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into setangle
# Conflicts:
#	src/p_enemy.c
#	src/p_mobj.c
2022-09-24 20:23:35 +01:00
toaster
fe49543456 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into big-large-map-markers 2022-09-24 19:53:36 +01:00
AJ Martinez
9ecd5b9c4b Add shockwave support to K_SpawnDriftElectricSparks 2022-09-23 22:14:10 -07:00
toaster
48e9138dda Refactoring ahoy
* Instead of doing constant G_MapNumbers when finding the relationship between maps and cups...
    * Add a cache of level IDs to cups, to go with the strings.
    * Add a cache of the cup pointer to maps, so we don't have to search through all cups to find our map. (done in P_InitMapData)
    * Pre-emptive work: G_IsSpecialStage and P_GetNextEmerald now reference cup data instead of a hardcoded ID set.
* Remove a bunch of old stuff from mapheaderinfo_t/associated, and reorder what stays
    * Countdowntimer? 💥
    * Startrings? 💥
    * sstimer/ssspheres? 💥
    * forcecharacter? 💥 (distinct from forceskin)
    * interscreen? 💥
    * sstage_start/end and smpstage_start/end? 💥💥💥💥
    * You've been blocked
* G_MapNumber now returns a special NEXTMAP_INVALID if not found, for more consistent reference.
* Incorporate a good chunk of the `edit-headers` branch. Can't clear maps individually because of the new restrictions on sequential mapheaders, but we can add a "disable in vote screen, not even for map hell/archive" flag to a map at some future juncture for equivalent functionality...
2022-09-22 17:14:41 +01:00
Sally Coolatta
a60d4a13a1 RNG classes, take 2
Redone version of my old branch
2022-09-19 00:04:57 -04:00
toaster
1a284ec7c6 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into big-large-map-markers
# Conflicts:
#	src/d_netcmd.c
2022-09-17 13:57:26 +01:00
Sally Coolatta
2fddc9f343 Merge branch 'master' into big-large-map-markers 2022-09-10 16:01:02 -04:00
toaster
d62147e8b5 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into setangle
# Conflicts:
#	src/k_kart.c
2022-09-07 14:23:56 +01:00
James R
37c3a55dda Fix conflicts 522467a88 2022-09-05 11:56:30 -07:00
toaster
2c91f83a02 Store tripwire pass level on the player
Fixes tripwire leniency fadeout - previously broken two commits ago
2022-08-30 21:22:26 +01:00
toaster
3a4b485c5d Remove P_InitAngle and its kin, considered on a case-by-case basis for also setting old_angle as well. 2022-08-25 11:35:09 +01:00
Sally Coolatta
7f4b3e7c2a maybe fix lightning crash idk lol 2022-08-24 03:34:03 -04:00
Sally Coolatta
81582e8cac Some fixes
- No longer counts position laps
- Intermission TRULY fixed?!
- Attempted code refactor & simplification for forfeiting
2022-08-14 19:30:43 -04:00
Sally Coolatta
4899a020e0 Finish da code 2022-08-14 17:39:48 -04:00
Sally Coolatta
ebb34ff9d4 Lap based power level 2022-08-14 06:00:37 -04:00
James R
0a1862a28c Merge branch 'scale-weather-speed' into 'master'
Scale weather momz

See merge request KartKrew/Kart!629
2022-08-01 14:52:15 +00:00
Sal
9cb72a73d7 Merge branch 'line-460-animate-2' into 'master'
Play ring collect animation for line 460

Closes #235

See merge request KartKrew/Kart!627
2022-06-12 17:15:27 +00:00
James R
f18f316b8e Scale weather momz 2022-06-10 20:40:19 -07:00
James R
6bc1d65442 Merge branch 'custom-weather' into 'master'
Allow freesloting & editing precipprops

See merge request KartKrew/Kart!612
2022-06-11 03:05:37 +00:00
James R
58b9b00e8e Line 460: animate rings, toggle ring boost cap
Uses K_AwardPlayerRings so rings can be overloaded.
2022-06-10 00:05:22 -07:00
James R
70e55a0911 Run line 80 (raise things to FOF) after things spawn
Blame 3cad7398f0
2022-06-07 00:56:56 -07:00