Commit graph

917 commits

Author SHA1 Message Date
Sally Coolatta
92b8e38f11 Actual Ring Shooter functionality 2023-04-17 00:23:09 -04:00
lachablock
c98ff9616b Start Ring Shooter respawn: while e-braking, enter the respawn command to spawn a Ring Shooter. Currently purely visual and does not despawn. Steals the player's face for funsies. 2023-04-17 00:22:07 -04:00
James R
a3c64068e6 Replace bumpers completely with health
Adds some functions:

- K_Bumpers, bumper count for the count, intended for
  where player->bumpers was used in HUD and visual
  contexts.
- K_BumpersToHealth, converts bumper count to health
  points.

player->mo->health replaces player->bumpers where it was
used in health contexts.

Removes some functions:

- K_HandleBumperChanges
- K_DestroyBumpers

Everything K_HandleBumperChanges did has either been
removed or moved elsewhere. P_KillMobj also already called
K_CheckBumpers.

K_DestroyBumpers became pointless after player->bumpers
was removed.
2023-03-07 22:54:33 -08:00
Sally Coolatta
1f00e3fc3f A_SetScale: Scale by mapthing scale 2023-03-03 18:03:03 -05:00
Sally Coolatta
82313de499 Awayview cleanup
- Moved variables to awayview_t
- Arbritrary +20 is no longer added to z pos, it will use the thing position as the camera position directly.
2023-03-03 16:09:54 -05:00
toaster
d046b2cb30 p_enemy.c: All object gravity arc calculations now collaborate with mapobjectscale again. 2023-02-16 16:52:55 +00:00
toaster
425a02d09b Make GTR_BUMPERS less monolithic
* Battle-like item box respawn handling inverse of GTR_CIRCUIT
* Make battle fullscreen overlay forbid GTR_CIRCUIT
* Make GTR_ITEMARROWS actually do something
* Make everything related to points actually use GTR_POINTLIMIT
* Fobid sphere addition without GTR_SPHERES, to mirror ring addition forbidding
2022-12-31 23:12:41 +00:00
Sal
03b37e2871 Merge branch 'deterministic-roulette' into 'master'
Deterministic roulette

See merge request KartKrew/Kart!808
2022-12-16 00:50:45 +00:00
James R
7f569fe168 Rename K_SpawnBrolyKi to Obj_SpawnBrolyKi, move to objects/broly.c, spawn MT_BROLY 2022-12-15 04:14:38 -08: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
James R
34dec00539 Add K_SpawnBrolyKi, green circle shrinks during explosion hitlag 2022-12-14 19:54:31 -08: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
Sally Coolatta
581b989fe4 Fix bots being unable to trigger
UDMF regression
2022-11-27 03:00:48 -05:00
Sally Coolatta
e331910fe3 Reduce VFX toggle
Can be used to disable VFX, so it can only appear if its owner is a display player. If no owner is provided, then it will be removed entirely.

Applied to most things that Ivo asked for
2022-11-26 20:12:00 -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
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
James R
58bb648b0a Merge branch 'udmf-cherrypick' into 'master'
Update our UDMF

Closes STJr/SRB2#862

See merge request KartKrew/Kart!727
2022-10-29 06:54:48 +00:00
toaster
19e427f5db Compilation warning: disambiguating parens in A_AttractChase 2022-10-15 15:15:58 +01:00
toaster
f281f47c6f Support alternate gameplay events during GP
- Implementation details:
    - grandprixinfo.eventmode is the reference point
    - All bots have spectator applied and removed at map start depending on eventmode, and I've done my best to guard against side effects of not removing them entirely
    - You shouldn't turn off grandprixinfo.gp when turning on things like specialStage.active or bossinfo.boss when pursuing eventmode behaviour
    - Probably needs to be integrated into XD_MAP for any future netplay support, is currently disabled.
    - You technically don't have to assign a Capsules map to be the bonus and a Special Stage to be the special. A Capsules map can be assigned to a Special Stage too, and a Boss can be assigned to either of them.
    - Special Stages are still just as incomplete as they were before.
- Break the Capsules has special behaviour.
   - Timelimit starts at 20 seconds.
   - Earn 10 seconds (plus a little extra cheaty time) every capsule you destroy.
   - WIN + extra life if you bust all the capsules, COOL if you get some but run out of time, LOSE if you lose your bumper or run out of time without breaking a single capsule.
   - Supposed to also give you rings, but ran into a LOT of difficulty with this and didn't want to commit half-baked stuff, so it'll be a later project.
Also:
- Fix a long standing bug where totalring was reset between maps, preventing the sum from adding up across GP rounds and depriving you of extra lives you were owed.
- Fix an issue where Break the Capsules record attack was KARTSPEED_HARD.
- Send timelimitintics in savegames, since it's handled seperately now.
2022-10-14 18:34:43 +01:00
Sally Coolatta
4896a9c843 MT_MAYONAKAARROW uses args 2022-10-10 10:36: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
Sally Coolatta
80d9637dda devmode cheat online 2022-09-29 12:19:45 -04: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
15edb40eb5 Merge branch 'master' into rng-states-2 2022-09-25 14:04:42 -04:00
Sally Coolatta
139d6f4a49 Merge branch 'master' into rng-states-2 2022-09-25 14:04:19 -04:00
Sally Coolatta
928d9116da Merge branch 'master' into projectile-sanity 2022-09-25 13:25:55 -04:00
Sally Coolatta
b0e3840550 Add jawz.c + new backwards behavior 2022-09-25 11:27:07 -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
James R
fe6bfd1ff2 Merge remote-tracking branch 'origin/master' into wall-transfer-everything 2022-09-23 23:40:37 -07:00
James R
79f4454016 Let jawz wall transfer; don't thrust in air 2022-09-23 21:06:33 -07:00
Sally Coolatta
569021ba91 Update item debris for rng states 2022-09-23 11:30:10 -04:00
Sally Coolatta
d582cf0a3f Merge branch 'master' into rng-states-2 2022-09-23 11:23:49 -04:00
toaster
abb567ab81 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into big-large-map-markers 2022-09-21 23:06:24 +01:00
Sally Coolatta
b7f0f05f84 Merge branch 'master' into new-spb 2022-09-21 02:12:53 -04:00
James R
e7b0e223e1 Fix respawning item boxes with P_RespawnBattlesBoxes 2022-09-20 10:36:32 -07:00
James R
f6ef29cf03 Refactor item debris cloud
- The "cloud" is stationary and spawned on the item box
instead of the player. Still scales up with speed.
- Single particles are spawned behind the player. No
longer scales. Lasts longer but can end early if the
player slows down.
2022-09-20 05:45:28 -07:00
James R
c2b2cd9a43 Reenable item box respawning
Old code was shit so I removed it (4d67cc632). Turns out
none of that bullshit actually mattered to make this box
respawn and it just needs to go to an invisible state!

Makes use of some nifty flickering code (that was already
there but effectively disabled) shortly before it actually
respawns.
2022-09-20 05:45:28 -07:00
Sally Coolatta
1563660a39 Add a few RNG classes
- PR_ITEM_ROULETTE: Used for item results
- PR_ITEM_RINGS: Flung ring direction
- PR_ITEM_SHRINK: Shrink gun offsets
- PR_PLAYERSTARTS: Battle mode player starts
- PR_TERRAIN: TERRAIN particles
- PR_DECORATION: Generic decoration
- PR_VOICES: Player voice sounds
2022-09-19 00:55:11 -04:00
Sally Coolatta
a60d4a13a1 RNG classes, take 2
Redone version of my old branch
2022-09-19 00:04:57 -04:00
toaster
7d990c4f15 Rework nextmap to be automatic
- Refactor significantly (now has its own func, `G_GetNextMap`)
    - If gametype uses cups, iterate through cups to find the current level, then grab the next valid level
    - If not, get the next valid mapheader for your gametype
    - SOC `nextmap`/`marathonnext` is not just deprecated but REMOVED
    - Hide the NEXTMAP_ constants again, but leave support dummied out for if we have them publically accessible again
- Also get rid of a bunch of OTHER mapheader stuff we're never gonna use
    - NiGHTS Grades? NOPE
    - Vanilla titlecard patches? NOPE
    - Boss music fadeout/replacement? NOPE
    - Select Heading? NOPE
    - You've been blocked.
- Don't show maps without lumps on the level select list
- this is me being petty, but making it NOTIMEATTACK in SOC instead of TIMEATTACK so we can reconsider the maps with/without them.
2022-09-18 20:00:28 +01:00
Sally Coolatta
5767315787 SPB in its own file + better waypoint movement 2022-09-18 01:07:46 -04:00
James R
4d67cc6324 Replace shitty item box pop with flying debris and dust clouds
Debris flies forward and outward from the player in the
direction of momentum. Debris particles bounce once then
disappear when they hit the ground for the second time.
Clouds spawn on and trail behind the player for a short
duration.
2022-09-17 06:41:44 -07:00
spherallic
3a2fe22485 Don't read or set MT_NULL's properties in A_SkullAttack
(cherry picked from commit 878b4dc5b6025e1deef775ccb72b8a871833598a)
2022-09-05 11:56:30 -07:00
James R
72342338b1 Use P_CheckMove
(cherry picked from commit 9dfa153e7497403d874e980868b7aa6d15595286)
2022-09-05 11:56:30 -07:00
James R
b17717babe A_LobShot: remove ???
MT_NULL spawning, not cool bro.

(cherry picked from commit f6f002e70b645982dddd83d6f831a601faa0fdae)
2022-09-05 11:56:30 -07:00