Commit graph

2109 commits

Author SHA1 Message Date
Monster Iestyn
46afe9b3e0 Merge branch 'shield-actions' into 'master'
Shield actions

The branch is basically complete, I just need to figure out the best way to have the whirlwind shield let the player know you can use it.

SRB2 shields:
* WHIRLWIND SHIELD - It's like King Dedede. You can't improve on perfection. (Might get some new sprites as tells for being able to use it, though.)
* ARMAGEDDON SHIELD - Create a bomb burst whenever you pick up another of the same shield FOR FREE!
* MAGNETIC SHIELD - Homing attack towards enemies only, no stopping when you hit 'em, no zooming off if you're not near enemies.
* ELEMENTAL SHIELD - Perform a piercing stomp that rips through enemies (that don't have spikes on their heads) and creates a fire burst when you land above water.
* FORCE SHIELD - Perfect stop in midair.

S3NK shields:
* FLAME SHIELD - Additive thok on the spin button.
* BUBBLE SHIELD - Bubble bounce to 1.5*jumpheight (also rips through enemies).
* THUNDER SHIELD - Double jump, but with no uncurl and a twang noise.

Supers don't have access to shield actives. Characters with thok can superfloat like usual.

New Lua hooks:
* "ShieldSpawn" in the form function(player), hooks into P_SpawnShieldOrb.
* "ShieldSpecial" in the form function(player), hooks into the shield activation code.

See merge request !31
2016-12-13 17:06:29 -05:00
toasterbabe
d8d5f31898 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-12-13 22:03:59 +00:00
toasterbabe
fe6b4c4875 Reduced momentum killing of groundpound into slime per Mystic's request. 2016-12-13 21:48:16 +00:00
Monster Iestyn
6f8969aec0 Merge branch 'spindash-dust' into 'master'
Spindash dust

Charging a spindash kicks up dust, we all know this feature was dying to get in at some point. Bubble and flame forms of spin dust are included from FSonic, for underwater and elemental respectively.

Oh, and as a bonus I reorganised the spindash/spinning/other ability2 stuff code to look a bit neater and more organised.

New resources:
* MT_SPINDUST - the object
* S_SPINDUST1 to 4 - the normal form's states
* S_SPINDUST_BUBBLE1 to 4 - the bubble form's states
* S_SPINDUST_FIRE1 to 4 - the bubble form's states
* SPR_DUST - the normal form's sprite set (uses frames A to D, just pinch FSonic's sprites really)
* SPR_FPRT - the flame form's sprite set (frame A only)

SF_NOSPINDASHDUST disables spindash dust for a character

See merge request !52
2016-12-13 15:15:33 -05:00
Monster Iestyn
68c8b8a68a Merge branch 'multipatchtex-translucent-cyanpixel-fix' into 'master'
Multi-patch texture support for transparency AND translucency

Fixes the transparent bits of the multi-patch glass texture in THZ1 turning cyan when linedef types 900-908 are applied for translucency

See merge request !56
2016-12-12 14:29:44 -05:00
Monster Iestyn
3f3a26b7d4 Merge branch 'zoom_fix' into 'master'
Zoom tube camera fix

Fixed a mistake where I accidentially allowed people to change the player angle whilst in a zoom tube when previously improving them.

See merge request !57
2016-12-12 14:29:03 -05:00
Monster Iestyn
29764c574d Merge branch 'TEXTURES-additions' into 'master'
TEXTURES additions

Some new features and fixes for textures and the TEXTURES lump:

* Flipping of individual patches used by textures is now supported, both horizontally and vertically. The formatting for doing so in TEXTURES should match that of ZDoom's:

```
WallTexture EXAMPLE, 128, 128
{
	Patch TEST, 0, 0
	Patch TEST, 64, 0
	{
		FlipX
	}
	Patch TEST, 0, 64
	{
		FlipY
	}
	Patch TEST, 64, 64
	{
		FlipX
		FlipY
	}
}
```
(in other words you need { and } below the Patch you want to flip, containing FlipX if you want horizontal flipping or FlipY if you want vertical flipping... or both, if you want both!)

* Negative patch y-offsets should now work properly for multi-patch textures or single-patch textures with no holes.

See merge request !58
2016-12-07 16:33:16 -05:00
Monster Iestyn
84f3102ad0 Added FLIPX support for single patch textures with holes
This completes FLIPX/FLIPY support for all textures
2016-12-01 22:37:33 +00:00
Monster Iestyn
52a84cf309 Fix negative y offsets for both normal and y-flipped patches 2016-12-01 21:43:27 +00:00
toasterbabe
c833497d39 Correcting slip-up I made when originally improving zoom tubes. 2016-12-01 14:40:58 +00:00
Monster Iestyn
410b55ebcd Work on FLIPX/FLIPX support:
*Added FLIPX/FLIPY support for multi-patch textures and single-patch textures without holes
*Added FLIPY support for single-patch textures with holes; I'll sort FLIPX support out later
2016-11-28 22:21:54 +00:00
Monster Iestyn
cc2612c2d8 Merge branch 'master' into TEXTURES-additions 2016-11-27 19:49:56 +00:00
toasterbabe
095a438e9e * Super float now back on spin button, again takes precedence over shield actives.
* Fixed BIG mistake where ShieldSpecial hook bailed out of the entire function instead of just the shield section.
2016-11-24 14:29:29 +00:00
toasterbabe
1424c3f6cd Regardless of what I'm doing next, this removal of limits in this place still should've been done a while ago. 2016-11-23 22:20:47 +00:00
toasterbabe
85fb02aaf6 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions
# Conflicts:
#	src/p_inter.c
#	src/p_user.c
#	src/st_stuff.c
2016-11-20 16:44:38 +00:00
Monster Iestyn
2941521806 Add R_Draw2sMultiPatchTranslucentColumn_8, for columns of multi-patch textures used as midtextures on two-sided linedefs with both transparency AND translucency
...that was a mouthful
2016-11-16 18:43:25 +00:00
Monster Iestyn
eab2df5627 Merge branch 'public_next' 2016-11-16 12:20:37 +00:00
Monster Iestyn
9dec74f9f3 Merge branch 'next' into public_next 2016-11-16 12:20:07 +00:00
Monster Iestyn
694bb73ef7 Merge branch 'master' into next 2016-11-16 12:16:51 +00:00
Inuyasha
672ae61b10 Merge branch 'drawfill-opengl-fix' into 'master'
HWR_DrawFill support for V_NOSCALESTART

This fixes the console selection highlighting being wrongly positioned and sized for OpenGL.

See merge request !135
2016-11-16 07:14:29 -05:00
Monster Iestyn
42f985cda5 Remove pdupx/y and just use sdupx/y for everything, thanks Inuyasha 2016-11-16 12:10:56 +00:00
Monster Iestyn
0726dbe018 Started work on making HWR_DrawFill support V_NOSCALESTART properly ...so far I've got the console text select highlight in the right place outside of 320x200 (and 320x200 is still fine), but for whatever reason it's too large in width and height
Oh well, we're part of the way there, anyway
2016-11-15 20:33:07 +00:00
Inuyasha
f02f06aed8 Merge branch 'spr2stuff' into 'master'
Stupid spr2 fix

Name on tin

See merge request !53
2016-11-13 17:40:35 -05:00
Monster Iestyn
6e70acc82d Added SF_NOSPINDASHDUST to disable spindash dust 2016-11-13 22:33:57 +00:00
toasterbabe
7746553273 * Fixed A_1upThinker having a standing sprite for a single frame on spawn.
* Removed the noalt stuff because it's not actually helpful. Everything's gotta come back to something at some point or there'll be errors.
2016-11-13 22:33:10 +00:00
Inuyasha
c4996aad7e So how long have these been pulling the wrong sprites? 2016-11-13 14:29:19 -08:00
Monster Iestyn
c81665b9af Added flame version 2016-11-13 22:02:29 +00:00
Inuyasha
908907d668 Merge branch 'spr2stuff' into 'master'
Sprite2 changes

Some stuff!

* Lua access to sprite2.
    * Introducing new Lua-exclusive function, P_IsValidSprite2(mo, spr2). Basically just a wrapper for (((skin_t *)mobj->skin)->sprites[spr2].numframes > 0), useful for creating custom sprite2 defaulting functions since hooking into P_GetMobjSprite2 wouldn't be worth it.
* FF_ANIMATE support for sprite2s. The var2 of the state works identically to normal FF_ANIMATE, but var1 is completely disregarded - it just runs all of the frames available to that one sprite2 animation set.
    * As a result, a bunch of states which were either not previously animatable or had animated at constant speed now get animation without state changes.
* P_SetMobjState now supports sprite2 defaulting like P_SetPlayerMobjState does.

See merge request !51
2016-11-13 16:59:26 -05:00
Inuyasha
63622cb2dd Update new music cues to use correct names 2016-11-13 13:55:32 -08:00
Inuyasha
e62b0f219f Merge branch 'damage-control' into 'master'
Damage control + Match rebalancing

This is two branches in one since while I was working on damage-control's changes months back, I felt it was best Match rebalancing was merged in here too (thanks JTE for helping me do so).

Changes from damage-control:
* `player->health` (formerly the "HUD copy" of `player->mo->health`) is now `player->rings`, and is also now the player's actual ring count.
* `player->mo->health` (formerly rings + 1) is now always 1 when alive, regardless of ring count; if player with rings is damaged, this is untouched.
* P_RingDamage now includes ring spilling code.
* P_ShieldDamage now has a damagetype argument, allowing me to remove the last MT_NULL hack left in from the pre-damagetype days that I forgot about.
* The old "switch-to-seestate" enemy damaging behavior in P_DamageMobj has been removed. This was a Doom left-over and doesn't really affect SRB2's enemies anyway - see, Doom enemies had a random chance of using seestate or painstate, SRB2 enemies always use painstate.
* Other minor efforts to reorganise damaging code and have it make more sense, but otherwise nothing that should affect gameplay in general.

Changes from match-rebalancing:
* New weapon/ammo dropping behavior: if you have the weapon panel + ammo, you drop the panel (but not the ammo); if you don't, you just drop the ammo.
* New Match ammo consumption: Weapon rings can now be fired with no rings at double the ammo cost.
* New emerald behaviour: collecting all 7 emeralds no longer turns you super (read: Match super is dead now) but instead steal points from enemies and gives you and teammates invincibility + sneakers
* Tails ringslinger buff: Any character with CA_FLY will now throw rings 1.5x as fast.

See merge request !28
2016-11-13 16:47:05 -05:00
toasterbabe
b7298a5574 Revert "Nev3r wants to make barrels which are both shootable and die when you break them like you break monitors."
This reverts commit 286a8b0289.
2016-11-12 15:39:47 +00:00
toasterbabe
0cca852eb6 Revert "Correction of some other relevant places to the previous commit."
This reverts commit a88b21f703.
2016-11-12 15:39:42 +00:00
toasterbabe
11a391dbb5 Making FF_SPR2ENDSTATE consistent between P_SetMobjState and P_SetPlayerMobjState. 2016-11-12 15:06:49 +00:00
toasterbabe
a88b21f703 Correction of some other relevant places to the previous commit. 2016-11-12 14:34:25 +00:00
toasterbabe
286a8b0289 Nev3r wants to make barrels which are both shootable and die when you break them like you break monitors.
To that end, I've made MF_MONITOR *without* MF_SHOOTABLE act like MF_MONITOR does, and MF_SHOOTABLE allow for both missiles AND players to destroy. This has had the side effect of allowing MF_ENEMY and MF_BOSS to use MF_MONITOR as a substitute for MF_SHOOTABLE that doesn't allow missiles to cause them damage, which might be useful for Jetty-syns.
2016-11-12 14:08:27 +00:00
toasterbabe
645e7298c0 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-11-12 13:43:02 +00:00
toasterbabe
20677c7a66 * Introducing new Lua-exclusive function, P_IsValidSprite2(mo, spr2). Basically just a wrapper for (((skin_t *)mobj->skin)->sprites[spr2].numframes > 0), useful for creating custom sprite2 defaulting functions since hooking into P_GetMobjSprite2 wouldn't be worth it.
* All Lua-originated sprite2 settings are now forced through P_GetMobjSprite2. Makes sense because of SPR2_JUMP, which none of the main characters have sprites for yet all use.
* Cleaned up P_GetMobjSprite2 to not set irrelevant, otherwise-unused variable.
2016-11-11 23:23:41 +00:00
toasterbabe
4756b4ce2c Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into spr2stuff 2016-11-11 21:38:35 +00:00
toasterbabe
9aa41582c3 Lua support for sprite2. 2016-11-11 21:37:28 +00:00
Inuyasha
c545194bef update colors to new palette 2016-11-10 16:53:27 -08:00
toasterbabe
d8096d237a Nullification of a lot of irrelevant nextstates for infinite length states. It makes sense. 2016-11-11 00:30:49 +00:00
Inuyasha
1ff498fcfd Merge branch 'public_next' of http://git.magicalgirl.moe/STJr/SRB2Internal
# Conflicts:
#	src/console.c
2016-11-10 16:20:03 -08:00
toasterbabe
6c1483266c You know, I should've converted these with the earlier commit. Silly me. 2016-11-11 00:15:41 +00:00
Inuyasha
6c40eb5cd7 Merge branch 'next' of http://git.magicalgirl.moe/STJr/SRB2 into public_next 2016-11-10 16:13:35 -08:00
toasterbabe
07e5fe9546 Swapped around in an attempt to streamline. 2016-11-10 22:35:33 +00:00
Monster Iestyn
47c67472ff Added bubble form of spin dust 2016-11-10 21:09:05 +00:00
toasterbabe
fc64feee60 FF_ANIMATE now cooperates with Sprite2, and to this end a few player states which have non-varying animation speeds (some which previously had a speed of 0) now use it. 2016-11-10 18:27:01 +00:00
Monster Iestyn
ce97c1e986 Added basic spindash dust
Also cleaned up some of the code in P_DoSpinAbility while I was at it
2016-11-10 17:51:10 +00:00
Monster Iestyn
fea97b4880 Merge branch 'master' into next 2016-11-10 16:45:49 +00:00
toasterbabe
080b3c1d6d Decouple the Sprite2 defaulting from P_SetPlayerMobjState. 2016-11-10 16:05:40 +00:00