Commit Graph

1881 Commits

Author SHA1 Message Date
toasterbabe 3aa9d2a1b1 Sonic 3 shields implemented at a basic visual/functional level - no abilities yet. 2016-10-15 23:39:54 +01:00
toasterbabe 6e47a07a04 Fixed monitors not making sounds if you had that monitor already and it wasn't mariomode. 2016-10-15 17:58:08 +01:00
toasterbabe 05aefc3ede Removed bit of code that'd never run. 2016-10-14 18:11:31 +01:00
toasterbabe 2d85b146ea Messed up the force shield stuff when implementing SH_MUSHROOM. 2016-10-14 14:44:49 +01:00
toasterbabe 91f9770caf Fixed up the coin-looping. 2016-10-14 11:23:13 +01:00
toasterbabe 2903180dee Treat the loss of the mushroom as a weapon-ring-spilling event in Mario-themed ringslinger, based on comments MI made on IRC about how different mariomode ringslinger would be. 2016-10-14 11:09:46 +01:00
toasterbabe 5e92ca1a4a Okay, made the Mushroom a seperate shield instead of a hacked pity shield. This is a lot nicer in general. 2016-10-14 10:43:46 +01:00
toasterbabe 8f1493e135 Start big. (He's been on the same powerpoint slide for 30 minutes now.) 2016-10-13 15:49:35 +01:00
toasterbabe a119db3a85 Coins are no defense now! (This lecture is boring.) 2016-10-13 15:36:37 +01:00
toasterbabe 80300ac476 Fireflower is now on same level as all other shields, as opposed to being an additional stack layer. (MID LECTURE COMMIT STRATS YO) 2016-10-13 15:14:13 +01:00
toasterbabe 4997564d30 I like this timing more. 2016-10-12 23:55:16 +01:00
toasterbabe a36912baef In Mario mode...
* shields give you 1000 points
* redundant shields don't make you puase
* checkpoints give you 2000 points
* falling down a deathpit is just falling, not bouncing
2016-10-12 23:47:18 +01:00
toasterbabe dff9209bd2 A fix for the thing where you can get stuck inside a Mario block that has a monitor in it. 2016-10-12 22:06:40 +01:00
toasterbabe 71b7db4e0d Refinements to flashing. 2016-10-12 22:06:12 +01:00
toasterbabe d4f0afa0d1 A Heckloada Mario Stuff
https://gfycat.com/MasculineSatisfiedAfricanwilddog and https://gfycat.com/PastCompetentGypsymoth describe this all in varying states of completion
2016-10-12 17:55:07 +01:00
toasterbabe a842d96a48 Forgot to commit this change when moving everything over to shortmarioshifts. 2016-10-11 23:38:34 +01:00
toasterbabe 64a1fa5421 Players are half height in Mario mode when they don't have any shields, the Mario mode pity shield is invisible, and Mario mode players immediately get a pity shield when they lose any other type of shield. So basically that's a Red Mushroom, right?
https://gfycat.com/ThoughtfulAcademicChrysalis
2016-10-11 23:35:48 +01:00
toasterbabe d25e908b80 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions
# Conflicts:
#	src/p_map.c
2016-10-11 16:25:24 +01:00
Monster Iestyn f3efebe889 Merge branch 'vertical-sky-distort2' into 'master'
Proper barrel sky distortion

Skies now use proper barrel distortion in both axes, rather than just the x-axis (i.e. just horizontally) as in all previous SRB2 versions. Credit goes to Nev3r for the original change and idea.

Was going to make an option for a non-barrel distorted sky, assuming barrel distortion is the default, but I just can't quite get it to work in a way that is pleasing to the eyes. So I've not bothered with it here for now, unless someone objects to barrel distorted skies for any reason?

See merge request !35
2016-10-07 17:30:15 -04:00
Monster Iestyn f43d615607 Merge branch 'fof-slope-skew' into 'master'
FOF wall slope skewing

FOF walls now can optionally skew with respect to slopes (software mode only currently):

* Upper Unpegged on the CONTROL linedef enables wall skewing
* Lower Unpegged on the IN-LEVEL linedefs ^1 determine which slope to skew with respect to (off = top slope, on = bottom slope)
* If Transfer Line is used however, Lower Unpegged on the control sector's linedefs does the above's job instead

^1 (this is because they already control pegging of individual FOF walls as it is, so this is for convenience and my sanity that they also deal with skewing)

See merge request !39
2016-10-07 17:29:21 -04:00
Monster Iestyn 303648bf3b Merge branch 'horizontal_fix' into 'master'
Fixes to horizontal spring collision

Fixed various issues arising from collision with exclusively horizontal springs. Thamks to @Inuyasha for the heads up! Of note:

* If you hold down your jump button whilst jumping into it, you no longer immediately use your ability.
* Characters with (CA_DOUBLEJUMP && CA2_MULTIABILITY) or CA_FLOAT or CA_HOVER no longer lose track of their jump count.

Also:

* Upped the strength of info.c's red and yellow horizontal springs.

See merge request !41
2016-10-07 17:28:54 -04:00
Monster Iestyn c5f51ded32 Merge branch 'horizon_lines' into 'master'
Horizon lines

Horizon lines for software mode! Place a Linedef type 41 somewhere on a one-sided linedef and it'll do fancy rendering hacks to draw the adjacent floor/ceiling to the "horizon". One small thing to sort out when I remember to do so, but this is good enough for merge already.

See merge request !44
2016-10-07 17:28:25 -04:00
Monster Iestyn 9160c8aeb4 Merge branch 'animate_global' into 'master'
FF_ANIMATE additions: globally synced animations

FF_GLOBALANIM = makes the animation synced to the level's timer, so all objects will display the same frame at the same time

![](https://dl.dropboxusercontent.com/u/3518218/22/srb22-0008.gif)

I mean, doesn't that look so much prettier?

There's also some changes to FF_MIDDLESTARTCHANCE (FF_ANIMATE behavior was split due to not acting consistent between that and SPR2 behavior).

See merge request !46
2016-10-07 17:27:53 -04:00
Inuyasha 482f60e5bc warning: suggest parentheses around arithmetic in operand of '|' 2016-10-03 00:51:18 -07:00
Inuyasha 0fdfb1a472 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal into animate_global
# Conflicts:
#	src/p_pspr.h
2016-10-03 00:27:49 -07:00
Monster Iestyn 22d772f08a Merge branch 'flat_sprites' into 'master'
Flat sprites and collision bounds, controllable sprite ordering, and allowing sprite flipping without gravity flipping!

Okay, so I'm silly. Red showed off some ACZ2 clips of the minecart and I was like "FUCK, THAT LOOKS TERRIBL- oh wait i drew that". But it wasn't the sprites that were bad, no - it was the fact that the sprites occupied a single position in 3d space and had pre-built-in-perspective, and THAT was terrible. So I basically over-engineered a solution instead.

FF_PAPERSPRITE (name voted on by the public! http://i.imgur.com/i6g5P73.png) has:
* Accurate perspective as if it were a linedef midtexture IN-MAP!!!!!!!!!!!!!!!!!!!!! might need a little bit of tweaking though, @RedEnchilada cough meow
* As good ordering as you can get without seperating the sprite down the middle whenever it intersects something
* Pretty dang accurate clipping - only exception is http://i.imgur.com/QNjbATB.png - where the MF_PAPER mobj has moved close to the wall and then turned, and you can't really solve that without cutting Sonic's feet off like in OGL <-- might be inaccurate, need to check with fixed ordering
* I suck at understanding the casting to INT64 stuff that's used for overflow prevention elsewhere in the code, so I just cleaned up the most obvious and predictable overflow glitches manually. Still needs tweaking, though.
* GFY one - the player rotating on the spot (recorded with the player having MF_PAPER): http://gfycat.com/WhichSpectacularDesertpupfish
* GFY two - a ring box stays static as the player turns (recorded with the MF_PAPER check turned off): http://gfycat.com/SimpleShallowDeviltasmanian
* GFY three - THE ACZ2 MINECART! What I MADE this for... http://gfycat.com/EsteemedPleasedDuck

Also, MF_PAPERCOLLISION!
* Collision bounds are limited to the surface of the MF_PAPERCOLLISION. These objects can kinda get stuck inside solid stuff when they turn, though - I tried to do some rudimentary pushing but it's glitchy as hell so it's put behind a #define for now, since stuck is generally better than overt glitching and can at least be user-mitigated.
* To make space for this, MF_AMBUSH is now MF2_AMBUSH. Because it's more like an MF2 in all its uses, honestly. Literally no object definitions in info.c use that flag, and it's always applied at runtime - like all the other MF2s! Heck, there's some precedent - the mapthing flag MTF_OBJECTFLIP applies MF2_OBJECTFLIP. It just makes sense, and prevents wastage of our precious MF_ resources which are already dwindling so.

Ultimately, I see several major uses of various combinations of these things:
* Walls (for boxes/other shapes) with perspective that can cross sector boundaries at the expense of not being as thoroughly visually handled as polyobjects.
* Flat, potentially moving hazards like Scrap Brain sawblades that are excessively simple to set up.
* Robo-Hood's arrows and other types of elongated missiles being possible to dodge based on their apparent collision bounds rather than a solid cuboid.

Nev3r is obviously of course already salivating thinking about what he can do with this.

Unfortunately, the collision issues with regards to solid stuff will probably prevent people from giving MF_PAPERCOLLISION to everything (sorry, no Paper Mario Koopa Blast for now) since it's way too easy to get stuck at the moment. Hopefully that can be ironed out down the line - but if that makes you think this branch is incomplete, keep in mind that that this level of development was never actually my intent. In the end, I just wanted flat sprites to make my shitty minecart better, and I got that - the sawblade style stuff working accurately is just a further bonus!

No relevant OpenGL code included because you know how I feel about that, but that should be easy enough for someone else to do at a later date considering the effect happens a lot in that renderer unintentionally. :V

ALSO: I added another feature which (ab)uses some structural changes I made for papersprites. It's MF2_LINKDRAW!

* Sets the sortscale of the mobj to that of its tracer.
* Basically, Smiles' tails won't clip through shields thanks to this.
* http://gfycat.com/GraveGlassEwe

ALSO ALSO: I added ANOTHER feature. FF_VERTICALFLIP allows sprite flipping without gravity flipping. No need to bullet point, it stacks properly with gravity. http://gfycat.com/FrailLongKusimanse

Test using <root>/toaster/flatminecart.wad (and <root>/!LatestSRB2Files/srb2win_branch_paper.exe if you can't compile!) MF2_LINKDRAW doesn't have a testwad but I'm doing a lot of Smiles stuff right now so it probably won't be too long.

See merge request !37
2016-10-02 14:47:01 -04:00
toasterbabe 5614ff5691 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_sprites
# Conflicts:
#	src/p_enemy.c
#	src/p_mobj.c
2016-10-02 19:38:53 +01:00
toasterbabe 664cfa2a9d Disabled MF2_LINKDRAW's ability to work in chains because it required modifying flags2 to prevent infinite loops, and that isn't network safe at all. 2016-10-02 18:17:23 +01:00
Monster Iestyn 20555c8887 Merge branch 'public_next' 2016-09-30 16:07:26 +01:00
Monster Iestyn 2c00c89a98 Merge branch 'next' of git@git.magicalgirl.moe:STJr/SRB2.git into public_next 2016-09-30 16:06:45 +01:00
toasterbabe cdaab7ec9f * Upped speed of info.c's red and yellow horizontal springs
* Turn off friction for the one tic after touching a spring
2016-09-30 16:00:34 +01:00
toasterbabe f6fc99b06d How did this disappear? 2016-09-30 14:38:56 +01:00
toasterbabe a694ebc348 Fixed issue where holding spin when going into a non-horizontal spring would use your whirlwind shield ability immediately. 2016-09-30 14:33:15 +01:00
toasterbabe 9cbe7a342a Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into horizontal_fix 2016-09-30 14:26:40 +01:00
toasterbabe aa4fca0339 Added description to P_SwitchShield. 2016-09-30 14:18:13 +01:00
toasterbabe 4f79157a50 Fixed that bug the wrong way, THIS is a much better solution for what I wanted to tweak. 2016-09-30 14:12:26 +01:00
toasterbabe dc57a34213 Revert "Fixed another bug where you were able to use the whirlwind shield ability after using the force shield's dodge dash."
This reverts commit cbe703478c.
2016-09-30 14:06:53 +01:00
toasterbabe cbe703478c Fixed another bug where you were able to use the whirlwind shield ability after using the force shield's dodge dash. 2016-09-30 13:56:19 +01:00
toasterbabe f1fb276e5a Fixed a bug where using your shield ability just before your shield changed got you stuck in whatever state it left you.
To do that, P_SwitchShield was born! Don't use with Force.
2016-09-30 13:48:33 +01:00
toasterbabe 18ec4297ee Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-09-30 13:06:55 +01:00
Inuyasha 64e8c8581e add missing prototypes 2016-09-30 05:04:08 -07:00
toasterbabe e05528e4a3 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-09-30 12:44:08 +01:00
toasterbabe 011af0daff Tweaks to some sections of the code that recognise what shields the player has. Specifically:
* introducing the new friend, SH_FORCEHP (which is used as a bitmask to get the extra hitpoints of a force-shield user)
* P_DamageMobj now considers the unimplemented shield constants as well as the implemented ones.
2016-09-30 12:15:22 +01:00
Inuyasha afb22b968b FF_GLOBALANIM for synced animations
and a few other frame flag changes
2016-09-30 03:20:57 -07:00
Inuyasha 7997753d24 Merge branch 'repeat-monitors' into 'master'
Monitor reworking + infinite repeat use 'gold' monitors

All the monitor sprites, states, and objects are completely changed to be simpler. 'Gold' repeat use monitors are also introduced.

I'm gonna be keeping my playtest EXEs in !LSF from now on.

See merge request !20
2016-09-29 22:40:52 -04:00
Inuyasha 074cc9b965 Dehacked, as usual 2016-09-29 19:32:21 -07:00
Inuyasha ae542e616a Fixed sprite conflict BS
Also added the eggman goldbox back
2016-09-29 19:24:05 -07:00
Inuyasha f1b8bfcfe7 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal into repeat-monitors
# Conflicts:
#	src/info.c
#	src/p_map.c
2016-09-29 18:08:50 -07:00
Inuyasha 92da141394 Yes, that stupid off-by-one due to spawning objects in the middle of thinkers being run still applies. 2016-09-29 17:27:33 -07:00
toasterbabe d6a404e1ef * On Mystic's reccomendation - an alternate method which has the direction to shoot off based on the direction you're moving, not the direction you're holding.
* When not pressing any direction, you now go backwards by default - to emphasise that this is primarily for defensive, not offensive, purposes.
* The camera can now handle the player going backwards without them going completely off-screen.
* Fixed some overzealous checks.
2016-09-30 00:34:17 +01:00