Commit graph

22597 commits

Author SHA1 Message Date
toaster
54137ad468 Eggmark fixes
- Update eggmanblame on K_EggmanTransfer
    - Currently blames the bumper, but could blame the source's eggmanblame if we wanted to change that
- Use K_FlipFromObject for correct reverse gravity placement
2023-10-17 22:19:16 +01:00
toaster
3e494a342c UCRP_GACHABOMMISER
Break a target (Prison Egg/UFO) using exactly one Gachabom again and again
Becomes invalid if an Insta-Whip collides with a target, or you throw two at the same time
2023-10-17 21:09:22 +01:00
toaster
01b97cb829 Update UCRP_UFOATTACKMETHOD into UCRP_TARGETATTACKMETHOD
Supports Prison Eggs and Gachabom now as well.
For the original behaviour, combine with the new UCRP_SMASHUFO.
2023-10-17 21:03:20 +01:00
toaster
b91823540b UC_PRISONEGGCD: Don't use K_FlipFromObject, this was heinously incorrect 2023-10-17 20:57:19 +01:00
toaster
3836cfddcb UCRP_UFOATTACKMETHOD: Only check roundconditions the frame the UFO is destroyed, not hit 2023-10-17 12:49:50 +01:00
AJ Martinez
38aa1f9d6b Waypoint flag to block lightsnake 2023-10-17 03:54:23 -07:00
Oni
59661f33a7 Merge branch 'ringbox-mace' into 'master'
Fix random items on maces stuck as Ring Box (resolves #712)

Closes #712

See merge request KartKrew/Kart!1555
2023-10-17 09:29:27 +00:00
Oni
005d05ac15 Merge branch 'threaded-software' into 'master'
Threaded software

See merge request KartKrew/Kart!1553
2023-10-17 09:28:59 +00:00
toaster
d11fe78e90 UCRP_UFOATTACKMETHOD
`Condition1 = UfoAttackMethod [type]`
    - "smash a UFO Catcher using only [type]"
        - Combine with `Prefix_SealedStar` or `Prefix_IsMap [special stage stage]`
        - Shows up as "???"
    - Types supported:
        - `Boost` - "boost power" (sneakers)
        - `Whip` - "Insta-Whip"
        - `Banana` - "Bananas"
        - `Orbinaut`- "Orbinauts"
        - `Jawz` - "Jawz"
        - `SPB` - "Self Propelled Bombs"
    - Other types could be added on request, these were just the easy ones

In addition, the prototype for P_MobjWasRemoved was moved to `p_mobj.h`.
It's EXTREMELY important that we're able to safely check mobj pointers anywhere a mobj_t is possible to observe, without including the full `p_local.h`...
2023-10-17 01:07:03 +01:00
AJ Martinez
f9f5c74244 New bans 2023-10-16 23:50:50 +00:00
Eidolon
183ca15989 Fix parallel slope plane calculations 2023-10-16 17:09:35 -05:00
toaster
f0d1813752 UCRP_TRACKHAZARD: Optimise implementation to not be 100 booleans
Much like player->availabilities, use a set of bits on UINT8.
2023-10-16 18:04:23 +01:00
toaster
d4e3d8433d UCRP_TRACKHAZARD
A series of 100 booleans on the roundconditions struct, one per possible lap.
Allows for a full suite of track hazard touching conditions - see the following examples.

- `Condition1 = Prefix_IsMap RR_MOTOBUGMOTORWAY
- `Condition1 = TrackHazard No`
- `Condition1 = IsMap RR_MOTOBUGMOTORWAY`
    - "MOTOBUG MOTORWAY: Don't touch any track hazard"
- `Condition1 = Prefix_GrandPrix`
- `Condition1 = IsMap RR_HARDBOILEDSTADIUM`
- `Condition1 = TrackHazard Yes`
- `Condition1 = And`
- `Condition1 = FinishPlace 1`
    - "GRAND PRIX: On HARD-BOILED STADIUM, touch a track hazard every lap & finish in 1st"
- `Condition1 = Prefix IsMap RR_DEATHEGG`
- `Condition1 = Trackhazard No 8`
    - "DEATH EGG ZONE: Don't touch any track hazard on lap 8"
- `Condition1 = Prefix_IsMap RR_SPEEDHIGHWAY
- `Condition1 = TrackHazard No Final`
    - "SPEED HIGHWAY: Don't touch any track hazard on the final lap"
2023-10-16 17:09:12 +01:00
toaster
3c5e03428a UCRP_HITMIDAIR: Fix typo for object type check 2023-10-16 15:48:08 +01:00
Eidolon
25ca00c553 wrong argument to SetSlopePlaneVectors 2023-10-15 20:55:19 -05:00
AJ Martinez
53a001da08 Fix visual type desync on respawned battle items 2023-10-15 18:03:53 -07:00
Eidolon
ecbc62f667 Slightly optimize tilted translucent spans 2023-10-15 19:33:05 -05:00
Eidolon
33f959628e Calculate slope vectors per tilted ripple span 2023-10-15 19:32:18 -05:00
AJ Martinez
8023b7c1b0 Change perma ringbox flag to dodge mace flags 2023-10-15 16:20:26 -07:00
AJ Martinez
3c84d82d7f Robust sigchecks: actually stage the entire diff 2023-10-15 14:51:06 -07:00
AJ Martinez
dcaa1c3902 Don't skip signature check steps if server is lagging 2023-10-15 14:38:55 -07:00
Oni
2e1983dd7f Merge branch 'fuck-you-loops' into 'master'
Fix inaccuracies on loop exit + smoother entry

See merge request KartKrew/Kart!1552
2023-10-15 21:36:54 +00:00
Eidolon
89f8c7d15b Fix mac build 2023-10-15 15:12:42 -05:00
Oni
1e6ab6107e Merge branch 'fix-bbox-col-raster' into 'master'
Fix renderhitbox in Software renderer

See merge request KartKrew/Kart!1548
2023-10-15 15:10:55 +00:00
Oni
f94b693dcb Merge branch 'koopa-beach' into 'master'
Bots don't spindash in weak offroad

See merge request KartKrew/Kart!1546
2023-10-15 08:20:31 +00:00
James R
27609b008f Loops: triple exit spring grease 2023-10-14 21:28:12 -07:00
James R
905592003d Add K_SetTireGrease, spawn spring grease VFX and set tiregrease 2023-10-14 21:28:11 -07:00
James R
0baad7b863 Loops: lag camera correctly 2023-10-14 21:28:11 -07:00
James R
c87ffeba29 Loops: try to position player so hitbox edge touches loop radius
Large enough momentum will still position the player
beyond the loop radius initially. This is intentional so
that there is no jerk when entering the loop. Without
a more sophisticated algorithm to revolve asymmetrically,
this is the best I can do. The player is guaranteed to
exit at the correct position, though.
2023-10-14 21:28:11 -07:00
James R
2c1cce17b2 Loops: fix momentum cut on grounded exit 2023-10-14 21:28:11 -07:00
James R
107809d876 Loops: guarantee exit at exact intended angle 2023-10-14 21:28:11 -07:00
James R
428106c014 Loops: correct origin point over duration of loop
- Players moving into a gate with a lot of momentum would
  offset the origin point from its intended position
- Find intersection of player movement and gate
- Correct origin point between loop entry and exit by
  interpolating the difference between player position on
  entry and intersection point
2023-10-14 21:28:10 -07:00
SteelT
0cd57b7712 Fix linux crash on quit 2023-10-14 23:06:03 -04:00
James R
b9615d7225 objects/loop.c -> objects/loops.cpp 2023-10-14 19:27:31 -07:00
James R
bca2c8cb19 sdl/i_system.cpp: fix compiler errors 2023-10-14 18:49:29 -07:00
Oni
97ddaba295 Merge branch 'charge-instawhip' into 'master'
More flexible instawhip

See merge request KartKrew/Kart!1551
2023-10-15 01:40:43 +00:00
Oni
f495b9ff7d Merge branch 'splitscreen-spectator' into 'master'
Complete splitscreen spectator support (parties not tested) -- Director working, freecam working, HUD working and polished

See merge request KartKrew/Kart!1541
2023-10-15 01:40:33 +00:00
AJ Martinez
763a7e03bf Charge instawhip test fixes 3 2023-10-14 18:25:03 -07:00
AJ Martinez
17cfff1dfd More lenient whip charge tether 2023-10-14 17:42:14 -07:00
toaster
6b2e0a508d UCRP_RINGS, UCRP_RINGSEXACT
`Rings 10` - "with at least 10 Rings"
`RingsExact -14` - "with exactly -14 Rings"
(`Rings 20` will also be parsed as "with exactly -20 Rings")
2023-10-15 00:17:20 +01:00
AJ Martinez
1eab3a6838 More whip tuning 2023-10-14 16:09:21 -07:00
toaster
b2aac22856 UCRP_FINISHPERFECT
Complete a perfect round (1st every lap) to get this
2023-10-14 23:21:51 +01:00
toaster
e4a3b85adf UC_UNLOCKPERCENT: Make SECRET_COLOR option actually count Spray Cans, not unlockables directly 2023-10-14 22:36:41 +01:00
Gunla
cbbb820414 Merge branch 'darken-header' into 'master'
"DARKNESS" mapheader option for Shrink lighting

See merge request KartKrew/Kart!1549
2023-10-14 21:34:42 +00:00
Eidolon
68a8f2b274 Multithread software drawing 2023-10-14 15:26:52 -05:00
Eidolon
9e00c6ffde Only render HWR player view if literally in opengl 2023-10-14 15:26:52 -05:00
Eidolon
2d614781eb i_system.c -> cpp, disable mumble 2023-10-14 15:26:52 -05:00
Eidolon
61a021ce4a Add SPMC queue + thread pool job executor 2023-10-14 15:26:52 -05:00
Eidolon
010d917f16 Add realloc and freetags tracy zones 2023-10-14 15:26:52 -05:00
Eidolon
28f22e3f71 Add per-frame linear memory allocator 2023-10-14 15:26:52 -05:00