Commit graph

448 commits

Author SHA1 Message Date
Monster Iestyn
9f726bc66d Merge branch 'new_coop' into 'master'
New Co-op

See merge request !104
2017-08-16 15:01:39 -04:00
toasterbabe
a00deee209 * Combine all shield-giving functions into a single one, since they were practically identical anyways.
* Expose P_SwitchShield(player, shieldnum) to Lua.
2017-08-10 13:57:09 +01:00
toasterbabe
780f9b1645 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/hardware/hw_md2.c
2017-08-07 20:36:14 +01:00
Monster Iestyn
42ed41aeb1 Merge branch 'maces_but_better' into 'master'
Maces but better

See merge request !103
2017-08-07 15:27:05 -04:00
toasterbabe
e2a9d47ef6 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop 2017-08-05 12:28:31 +01:00
Monster Iestyn
3fd9e9be3a Merge branch 'wallspike_tweaks' into 'master'
Wallspike tweaks

Sorry, MI. You told me to test the objects via objectplace, and they worked fine there - but @FuriousFox had some [issues](http://i.imgur.com/DQuLYzz.png) when he finally got to place them via mapthing.

Specifically, I think the problem this was caused by was a straight up copypaste of the "height" attribute of MT_SPIKE into the "radius" field of MT_WALLSPIKE, when it should technically be half that to match the intended collision box. Some other stuff also got adjusted to match when I solved this.

FF's happy now - they work well enough to place, even if their [collision is a little wonky](http://i.imgur.com/o2rG0tV.gifv), but that's an MF_PAPERCOLLISION issue and more than a quick fix to be done in an evening.

Nab ```<root>/!LatestSRB2Files/srb2win_branch_spikefix.exe``` to test.

UPDATE:

* Support for MF_PAPERCOLLISION tmhitthing in P_SlideMove.
* Knockback for wallspikes is much more consistent, fixing FF's gif as posted above/below.
* Optimised away a FixedDiv call when determining the slopetype of a line.
* Changed the position of the wallspike base slightly.
* Made it so NOTHING can step up onto the player outside of other players, essentially killing a bunch of springs-launch-with-players style bugs. (I was able to recreate that issue with the wallspikes until I added this, which is why I did it in this branch.)
* Wallspikes are now bustable.
* Invert the solidity mapthing flag for spikes and wallspikes.
* Improve the frame arrangement for vertical spikes' spriteset. (Requires new patch.dta)
* Make all spikes consistently do damage with DMG_SPIKE.
* (unrelated) renamed "flame stomp" to "elemental stomp" in P_HitDeathMessages.
* (unrelated) Make gas jets not make noise if they have the ambush flag, per Sphere's request.

See merge request !107
2017-08-04 14:28:44 -04:00
toasterbabe
1180f0418e Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop 2017-07-26 17:52:34 +01:00
toasterbabe
be5184a8cc ...fixed some weirdness with spinning I accidentially introduced in an attempt to fix it. 2017-07-26 16:34:33 +01:00
toasterbabe
672bcc349c * Hide the number of lives you can steal if game-overed. It's not directly relevant unless you're game overed.
* Fix an issue where everyone being game overed except for one person, and then kicking that one person, meant the game over trigger was never met.
* Fix an issue where the spectator text could be overridden with a count of the number of remaining players to complete the level.
* Fixed a few glitches with spinning. (Unrelated to the branch, but exposed through new_coop testing.)
2017-07-26 16:10:08 +01:00
Monster Iestyn
cfbe180312 Merge branch 'public_next' 2017-07-25 17:17:22 +01:00
toasterbabe
8941379c64 Implementation of all the new skincolours. No new exe yet, though, since I'm still doin' stuff. 2017-07-22 23:24:12 +01:00
toasterbabe
a5477737d7 Whooh boy. Probably requires re-review.
* Support for MF_PAPERCOLLISION tmhitthing in P_SlideMove.
* Knockback for wallspikes is much more consistent.
* Optimised away a FixedDiv call when determining the slopetype of a line.
* Changed the position of the wallspike base slightly.
* Made it so NOTHING can step up onto the player outside of other players, essentially killing a bunch of springs-launch-with-players style bugs. (I was able to recreate that issue with the wallspikes until I added this, which is why I did it in this branch.)
2017-07-18 14:17:23 +01:00
Monster Iestyn
7d4513f2f1 Don't be stupid with FF_BLOCKPLAYER/FF_BLOCKOTHERS flags please 2017-07-17 20:47:00 +01:00
toasterbabe
1f2743ce64 Clean up the event and caption when a life is transferred. 2017-07-08 19:42:01 +01:00
toasterbabe
a0cf28671c Remove some jankiness from spectators. 2017-07-08 19:12:46 +01:00
toasterbabe
317259a459 Two fixes to playersforexit changes.
* Crash prevention if total somehow becomes zero.
* Don't waste time multiplying and demultiplying the HUD check if it's just gonna net you the same number.
2017-07-08 19:02:28 +01:00
toasterbabe
88546abb08 Fix a few things noted during a test netgame with Salt and FuriousFox.
* Hide the individual lives on the tab menu whenever they're irrelevant.
* Make co-op spectators appear on the tab menu.
* Hide one frame of spectatorhood stuff in splitscreen.
* Fix joining netgames whilst in a special stage not giving the startinglives.
* Make monitors that don't appear to do anything play the failure sound.
* Only make players flash if they're REspawning, rather than spawning into a fresh level - unless it's a NiGHTS level, in which case never.
2017-07-07 13:35:48 +01:00
toasterbabe
25fb318a0b * Fixed a typo with the bit-shifting of the max speed, meaning that it wasn't being set as desired.
* Made the speed capping/minimising done at the point of changing it via player control, as opposed to the point of macerotate, in an attempt to fix a potential cause of mace rotation desynchronisation (not netplay, just https://cdn.discordapp.com/attachments/293238104096112641/331453363499696139/srb20180.gif stuff.)
2017-07-06 22:26:31 +01:00
toasterbabe
0bf676498a woops, the check was accidentially inverted 2017-07-05 22:43:45 +01:00
toasterbabe
014c1d8f03 https://cdn.discordapp.com/attachments/297148222332469249/332227405747847168/unknown.png
betterexit integration!
2017-07-05 19:33:41 +01:00
toasterbabe
125646e521 Some minor tweaks to make countdown not COMPLETELY broken. 2017-07-04 21:33:16 +01:00
toasterbabe
a65598a97a Fixed Game Over being broken in singleplayer. Woopsie doodle! 2017-07-04 14:57:22 +01:00
toasterbabe
bc066a16a0 Whoops, I did some menu stuff in here. Oh well.
NEW COOP BASED:
* Add "Infinite" option to cv_cooplives, inspired by SUBARASHII. Lives still exist, but are hidden from the player's view, and are prevented from falling below 1 at any cost. As a result, made the variable CV_CHEAT.

OTHER MULTIPLAYER BASED (semi-related):
* Made cv_autobalance an on/off switch which determines the allowed difference based on the number of people in the server, instead of a weird and opaque number from 0-4.

MENU BASED (not related):
* Add horizontal arrows to menu options which respond to the arrow keys.
* Make the menu arrows bob.
* Switch out the seperate arrows for combination arrows on the joystick menus.
* Minor cvar description tweaks.
2017-07-04 13:17:29 +01:00
toasterbabe
50496970d1 Fix weird visual artifacting caused by restarting the level in co-op, which was a direct result of my code being messy. This is significantly better to deal with, anyways. 2017-07-03 15:43:29 +01:00
toasterbabe
ca76dd41f8 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into new_coop
# Conflicts:
#	src/p_user.c
2017-07-03 15:41:00 +01:00
toasterbabe
370d9c3176 Hooh boy.
****
* MF2_MACEROTATE. Apply to any object. Replaces the indiscriminate spamming of A_MaceRotate each tic.
****
* Mace point mapthings have been slightly modified.
   - MTF_AMBUSH: bigger luke theory (has no effect on custom mace, different effect on spring mace)
   - MTF_OBJECTFLIP: flips the objects, but nothing else - just so it doesn't look out of place in gravflip sections
   - MTF_OBJECTSPECIAL: keeps it from attempting to play swinging sounds
   - angle: tag of controlling linedef
   - parameter: number of "spokes" minus one - for example, a parameter of 2 results in 3 equidistant maces rotating around the same point.
****
* Mace linedefs have been significantly revamped.
   - line dx: number of chain links
   - line dy: speed (in FU)
   - frontside floor height: Pitch (in degrees; how much it "tilts" over - Yaw influences the axis it's tilting on)
   - frontside ceiling height: Yaw (in degrees; rotation of entire thing on xy plane)
   - frontside x offset: Phase (in degrees; how far it is through the rotation cycle)
   - frontside y offset: Max speed (in FU; if less than speed, set to speed*2)
   - backside floor height: Pinch (in degrees; 0 if no backside; essentially makes rotation conical instead of wheel-like)
   - backside ceiling height: Roll (in degrees; 0 if no backside; rotates on the axis of the spinning - identical to Phase for spinning maces, but useful for rotating swinging maces as opposed to just offsetting them)
   - backside x offset: Number of "antispokes" (0 if no backside; makes that many spokes not exist so you can put another mace/chain type in there instead; for combo mace/chain instead turns them into chains directly)
   - backside y offset: Width (in number of extra chains per side; 0 if no backside; creates a "skiprope" arrangement)
   ----
   - ML_NOCLIMB: for chains and chain-mace combos, allow for player control of yaw through strafe keys
   - ML_EFFECT1: replacing the seperate mapthings, this makes a mace type swing instead of spin.
   - ML_EFFECT2: for all spokes of the mace wheel ending in maces, make the chains out of the mace type (inverted for firebars)
   - ML_EFFECT3: spawn a bonus mace type at the center(s) of rotation
   - ML_EFFECT4: don't clip inside ground
****
* Mapthing 1104 represents both spinning and swinging maces from prior versions of SRB2.
* Mapthing 1105 has gone from being a swinging mace variant to a combination of chains and maces in a single unit, provided the number of "spokes" is greater than one.
* Mapthing 1105 has gone from being a swinging chain variant to a vertical spring-on-a-ball-on-a-chain. Yellow by default, apply MTF_AMBUSH to turn into a red spring.
* Mapthing 1107 represents both spinning and swinging chains from prior versions of SRB2.
* Mapthing 1108 is completely untouched except to port over 2.1's functionality to the new backend.
* Mapthing 1109 is a Mario castle-level style firebar. This inverts the functionality of ML_EFFECT2 on the tagged linedef.
* Mapthing 1110 is a free slot should we want to implement another type of base-game mace.
* Mapthing 1111 is a custom mace. Use the linedef's frontside texture slots to identify a macetype mobjtype, then use the backside texture slots to identify a linktype mobjtype (defaults to MT_NULL if no backside).
****

Whooh. Requires new patch.dta for sprites.
2017-07-02 15:11:09 +01:00
toasterbabe
86f9b6d409 After discussions, flipping the flag that means you CAN'T turn the CEZ chains now means that when it's enabled, you CAN turn them. In order to get base game parity by default, rather than as an obscure option. 2017-06-27 23:34:55 +01:00
Monster Iestyn
e3f627120f Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/p_mobj.c
2017-06-23 17:19:06 +01:00
toasterbabe
faabca552f Okay, I guess this DID need to be done. (Something from the old nights fixes branch which I didn't port over initially.) 2017-06-04 00:48:32 +01:00
toasterbabe
8d8ae2b538 Renamed again, and this time I'm happy with it.
* "playstyle" to "coopstarposts"
* "lifedistribution" to "cooplives"
2017-06-03 17:55:03 +01:00
toasterbabe
ae3441659e Unrelated to the branch, but I was messing around with heights and shadow.wad and figured I might as well tweak it whilst I remember. 2017-06-03 13:47:08 +01:00
toasterbabe
f3cad19184 * Renamed "steallives" to "lifedistribution".
* Gave lifedistribution a "Sharing" option to go along with its previous individual and stealing options.
* Made the game over graphic and music only happen if everyone's out of lives if you're sharing or stealing lives.
* Fixed a bug where game over wouldn't come to fruition because it kept on happening each tic of the countdown2.
* Made spectator stuff display in Co-op splitscreen.
2017-06-03 12:26:42 +01:00
toasterbabe
51f0d6f2e2 Import some NiGHTS stuff from some-more-nights-fixes, so I can delete that old branch. 2017-06-01 22:20:36 +01:00
toasterbabe
3857b720cd * Make music reset when game over is dealt with more consistent.
* Make setting steallives to true respawn every game overed spectator.
* Make a minimum on the number of lives GetLives can get you.
* Add "You'll steal a life on respawn" to spectator screen.
2017-06-01 18:44:19 +01:00
toasterbabe
464699fce2 * Make handling of life theft more consistent.
* Make sure that a life theft always takes you from 0 (or less) lives to 1 life.
* Fix a bracket level typo that meant new Co-op style respawning was being done for all gametypes.
2017-05-31 17:07:24 +01:00
toasterbabe
4353fa65a2 * Spectatoring for game over supported.
* Don't lose lives when you die as a spectator.
2017-05-30 20:31:51 +01:00
toasterbabe
9fbcd6e883 Accidentially broke game overs. Fixed now. 2017-05-30 17:07:37 +01:00
toasterbabe
ff7ee4aa12 ...forgot to check in these changes 2017-05-29 22:19:31 +01:00
toasterbabe
2f3e4c3c65 * Per Mystic's request, made lives for 100 rings individual.
* P_GiveCoopLives bundles the coop lives reward for everyone versus reward for one person in other gametypes thing into one function. Available in Lua.
2017-05-29 22:18:02 +01:00
toasterbabe
fd873185ae * Respawn players that are spectators if it's not a special stage.
* No need to call a function for changing the number of lives when we're within bounds.
2017-05-29 21:59:24 +01:00
toasterbabe
da05371e69 woops 2017-05-29 21:24:09 +01:00
toasterbabe
726cd9757b Spectators in new Coop instead of staring at a dead screen all the time!
Needs a bunch of changes to HUD rendering, especially in splitscreen, which doesn't try to show spectator stuff whatsoever. Also, if you're the player whose respawn determines when the map reloads, you'll see the spectator text during the front half of the fade. Unless, of course, it's 2-player mode.
2017-05-29 21:23:00 +01:00
toasterbabe
964df31ee5 * Combine cv_sharedstarposts and cv_respawntype into cv_playstyle (Individual, Sharing, Together).
* Put steallives on menu.
2017-05-29 00:03:46 +01:00
toasterbabe
4239036cec Life theft! No menu item, but anything is possible with zombocom.
cv_steallives, defaults to "On"
2017-05-28 21:55:41 +01:00
toasterbabe
ce181da83c ...i am fool 2017-05-28 17:08:41 +01:00
toasterbabe
965e1f6b45 * Make 100 rings give everyone a oneup in New Coop.
* Make oneup boxes only give everyone a oneup in New Coop.
2017-05-28 17:07:20 +01:00
toasterbabe
3723eff9f7 The start of the Co-Op revamp! Not tested over netplay yet, but uses TD's implementation of various Co-op friendly things as a reference (or in one place an outright code steal, thanks Sryder!)
* cv_sharedstarposts - Makes everyone share starposts, defaults to "On"
* cv_respawntype - Defaults to "Starpost". If set to that, people respawn at the starpost you just hit (assuming cv_sharedstarposts is on - may have to combine the two variables later, but seperate for testing for now). The other option is the old, unrestricted spawning. We COULD add TD bubble spawning at a later time using this variable, though.

The level DOES reset if everyone dies, but not in a way which allows for Mystic Realm style non-resetting resets. I'll handle that later.
2017-05-28 15:33:35 +01:00
toasterbabe
2696ed52fd Fixed the thing where Robo Hood's jump was messed up.
Also, ditto re Super Sonic's floaties.
2017-05-09 12:50:28 +01:00
toasterbabe
73f1550242 There are now captions for specific types of music! (Currently signified with an M, but I'll change that in a bit...) A whole lotta things needed to be modified for this, though.
* Serious refactor of - and internal exposure of - what has become S_StartCaption().
* Renaming of a few existing captions.
* The prevention of access to - or writing over - sfx_None's stuff in SOC or Lua.
* The new Lua wrapper function S_StartMusicCaption(string, tics, optional player), which essentially allows custom music captions to be created. (This is best used for stuff like final lap music in SRB2 Kart or bonus time in a thokker-like game, not a comprehensive Now Playing expy. That'd be a different kettle of fish.)

Also, updated all the lock-on stuff to use P_IsLocalPlayer instead of rolling my own.
2017-04-29 16:27:52 +01:00
toasterbabe
bef9520556 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into Deez_NewUserXperiences 2017-04-19 23:03:47 +01:00