Commit graph

2139 commits

Author SHA1 Message Date
Monster Iestyn e37d680a4a Starting work on porting hw_clip.c/h code, Makefiles and CMake can compile them at least
Other notes:
* Renamed all new functions to have HWR_ prefix instead of gld_, for consistency
* HWR_FrustrumSetup and HWR_SphereInFrustum are disabled and require HAVE_SPHEREFRUSTRUM. This is because 1) SRB2CB did not need the code, so presumably neither will we, and 2) there are some OpenGL API functions used there that due to our way of using OpenGL we don't use outside of r_opengl.c, which makes dealing with HWR_FrustrumSetup complicated in theory
* The new clipping functions are not added to OpenGL's "main" rendering code itself just yet, they're just available to use now once hw_clip.h is included
2017-01-09 22:13:26 +00:00
Monster Iestyn 0538c98251 Added missing checks in HWR_AddLine from the software version, move v** vars to the top since R_PointToAngle calls use the same values anyway 2016-12-21 22:31:09 +00:00
Monster Iestyn 41dfba65c9 Hack to make sure even (extra)subsectors without planepolys have segs adjusted
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...
2016-12-21 22:10:27 +00:00
Monster Iestyn 106e1aa8d5 Merge branch 'master' into opengl-improvements 2016-12-21 19:49:02 +00:00
Monster Iestyn 6ae2c24484 Merge branch 'public_next'
# Conflicts:
#	src/p_user.c
2016-12-14 18:53:00 +00:00
Monster Iestyn 504e8c5f12 Merge branch 'next' into public_next 2016-12-14 18:44:50 +00:00
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 aa82042cf8 Merge branch 'credit_switch' into 'next'
No switching skins mid-credits/custom cutscene in SP

Does what it says on the tin.

See merge request !129
2016-12-13 09:33:53 -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 1ec97c242a Merge branch 'smooth_ropes' into 'next'
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
2016-12-12 14:18:36 -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
Alam Ed Arias 5e74318fb2 Merge branch 'master' into next 2016-12-06 17:29:43 -05:00
Monster Iestyn 64801a1a8e Merge branch 'sdl2-cleanup' into 'master'
SDL2 i_video.c code cleanup

Made some code look a bit neater, removed the need for some SDL2STUBs Fury placed, vid_info console command actually kind of has a use again, etc

See merge request !138
2016-12-06 17:18:47 -05:00
Monster Iestyn ac966bf790 Merge branch 'mfe_onground-is-stupid' into 'next'
Fix ceiling springs thrusting themselves down in midair on touch

What the title says. I blame MFE_ONGROUND for being stupid, but for now I made it behave a bit better with flipped items at least.

See merge request !140
2016-12-06 16:22:33 -05:00
Monster Iestyn 7c07f39019 Make sure flipped things placed directly on ceiling get MFE_ONGROUND
This fixes ceiling springs apparently flying down with you in various scenarios
2016-12-05 22:07:16 +00: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
toasterbabe 02d78b355b Smoother ropes and zoom tubes ported from internal. 2016-12-01 14:33:44 +00:00
Monster Iestyn ae3e11369e Revert "(Messiness warning) attempt to start using SDL_SetRelativeMouseMode instead of the old hacks of making the mouse do movement without leaving the window and be hidden"
This reverts commit 347b531881.

(Too experimental, may end up adding new bugs; let's just keep it to clean up for now)
2016-11-30 17:21:28 +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
Monster Iestyn 347b531881 (Messiness warning) attempt to start using SDL_SetRelativeMouseMode instead of the old hacks of making the mouse do movement without leaving the window and be hidden
Seems to work so far though
2016-11-25 21:13:39 +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
Monster Iestyn 8bbbeff2a9 Make Impl_SDL_Scancode_To_Keycode look a bit neater
This way it's easier by eye to see from the list which SDL scancode maps to which SRB2 key code
2016-11-23 17:08:37 +00:00
Monster Iestyn 5cf4767aed Clearing away lots of disabled code (some of it would no longer work on SDL2 anyway) 2016-11-23 16:51:37 +00:00
Monster Iestyn 153ba39f19 Remove remnants of SDLK_ stuff, we use scancodes now not keycodes
(Apparently SDLK_LMETA/SDLK_RMETA don't exist anymore in SDL2 anyway?)
2016-11-22 22:41:02 +00:00
Monster Iestyn 1606a45b18 Some cleanup/reorganisation in SDLSetMode and Impl_CreateWindow 2016-11-21 22:07:05 +00:00
Monster Iestyn 208546165b Comment out SDL2STUB from Impl_SetWindowIcon 2016-11-21 20:59:44 +00:00
Monster Iestyn 168f8d5c5e Un-stub Surfaceinfo and just print the parts that still work in SDL2
This means the console command vid_info also works properly too now (well, it does nothing in OpenGL mind)
2016-11-21 20:40:02 +00:00
Monster Iestyn f4705b01f4 Don't call SDLESSet
Turns out sdl12's version of this function only did stuff for DC/GP2X ports; support for them have been cut out for SDL2, so for now let's just not use the function at all
2016-11-21 19:42:39 +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