this fixes a crash in (old) GFZ2 at the ramp as a result of creating pv1/pv2. This probably means before pv1/pv2 there could have been some silly typecasting from vertex_t to polyvertex_t to get fixed vertex coords and such...
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
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
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
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
Smoother ropes and zoom tubes
Makes rope hangs and zoom tubes suck less. Specifically, they handle corners (and vertical height changes, ala sloped rope hangs) a LOT nicer. Ported from internal.
See merge request !139
As LJSonic has pointed out, there's no need for a for loop in either case; just use sector->floorpic/ceilingpic as a levelflats index directly
(Besides, if that was to stop any out-of-bounds indexes being used, that's hardly the way to do it anyway)
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