Commit graph

6005 commits

Author SHA1 Message Date
toaster
f7fe418f7c Slight buff to MT_LHRT. 2019-06-20 23:43:05 +01:00
toaster
f182bb867f HUD stuff.
* Re-fix chat HUD position, and make it not move in match (which it needed to do in 2.1).
* Fix HU_drawPing for the new palette.
* Change the condition for greying out players, since the current one was buggy.
* Allow for tokens on the coop MP HUD, and use the small emeralds so there's space for them.
* Fix the mapping between skincolours and name colours in new chat, specifically to take into account every possible text colour (as opposed to the port previously done, which only used the 2.1 text colours and looked like ass as a result).
2019-06-20 22:57:47 +01:00
toaster
eac36e73a3 Correct some oversights where drawangle was incorrectly ignored. 2019-06-20 00:43:55 +01:00
toaster
460632ad3b Some preliminary work to make multiple bosses in the same map work nicely together, by allowing parameter to alter the linedef executor tag to call in increments of 100.
Also: Making sure every single reserved tag is recorded as an LE_ constant.
2019-06-20 00:24:13 +01:00
toaster
f9e09ec31f Tweak Boss5MakeItRain's bomb launch angles to properly smash the ceiling in the new arena. 2019-06-19 23:35:18 +01:00
toaster
84ff2a57a1 As I wanted MI to do but he was too exhausted at the time from hardcoding, make the Fang bullet knockback less hardcoded and instead give it MF2_SUPERFIRE. 2019-06-19 23:29:39 +01:00
toaster
2e6898f29e PITY IN PINK!
* Smoothen Pity Shield animation to go with sphere's updates to Nev3r's sprites.
* Added LHRT object, designed to be summoned with CA2_MELEE.
    * Gives a pink Pity Shield (SH_PINK) on same-team player contact.
    * Deals damage to non-player enemies.
    * Harmlessly fades into nothing when touching an enemy player, players with SH_PINK already, and players capable of applying SH_PINK to others (through non-Lua methods).
* Basically, you-know-who is the Healer of the party whenever they're around. Fun consequences for the Co-op and CTF metas.
2019-06-19 23:20:24 +01:00
toaster
6a58ae34d1 In order to make P_PlayerCanDamage more flexible, I ended up bundling the invincibility/super checks into there.
Also, the start of my improvements to CA2_MELEE. Users of that abiliy can only damage enemies/monitors if they touch the front of the player object, but to make up for it, the player is no longer forced away from the direction of the screen at bigger movement speeds.
2019-06-19 13:20:34 +01:00
toaster
3eb9b85fd4 "PlayerCanDamage" hook!
* Takes function(player, mo) input.
* Return TRUE for stating that yes, the player is in a state that can cause contact damage, do with that what you will.
* Return FALSE for stating that no, the player is weak and vulnerable and cannot cause contact damage, do with that what you will.
* Return NIL for allowing the function to continue regular operation.

Fills a different ideological niche than ShouldDamage - that's for determining whether damage dished between two objects should happen, this is for determining which way around damage should be dished when considering a player-object interaction.

Or, in other words, think of it as "ShouldDamage is whether damage that has been requested should be granted, for object-object interaction, while PlayerCanDamage is for whether global player properties should cause damage to enemies and monitors in the first place, like spinning, hammering or stomping."
2019-06-19 12:55:05 +01:00
toaster
28dfeb344b Instead of only performing a hook if the Lua Hook loop determines its type to be the one we want, actively continue through the loop if it's NOT. This optimisation was performed while preparing the following commit; I have generously split them out for less shitty commit-by-commit review. 2019-06-19 12:28:57 +01:00
toaster
ef6e00e8a2 P_PlayerCanDamage(player_t*, mobj_t*), ported from the abandoned project_birthday because GOD the code looks awful with those huge monolith conditions in it. Available to Lua.
(Also, minor fixes to lib_pSpawnLockOn, and removing the SH_OP fuckery.)
2019-06-19 12:09:02 +01:00
toaster
b0326b6dec Do some minor HUD fixes.
* Move HUD text's anchoring to underneath STR instead of above Lives.
* Adjust chat position slightly, to take advantage of SRB2's HUD layout having less content towards the bottom (unlike Kart, where it has roughly equal).
* Fix Match emeralds not displaying while in tab rankings with all-seven invuln/shoes bonus active.
2019-06-18 18:51:24 +01:00
toaster
1d65caa250 With permission from Kart Krew (Sal and Sryder specifically - they don't know WHY vanilla's using it):
* Port across the additional colour translation maps, including mobj-level support for "colorized" objects.
* Make Fangboss and both Metal Sonic objects greyscale if, on spawn, there is a player in the game who is not a spectator whose skin is that character.
* Allow bosses with MF_GRENADEBOUNCE to opt out of the MF2_FRET colour-flashing tomfoolery, and give this flag to Fang.
2019-06-18 17:55:57 +01:00
toaster
96d6cea569 Support backspace for resetting various menu values, just like Kart. 2019-06-18 14:36:06 +01:00
toaster
861d0d0b0a Improve rain/weather.
* Like Kart, remove cv_precipdensity.
* Like Kart, replace "Infinite" draw distance value with "None".
* Better thinker with more return optimisation.
* Better placement of thinking in rendering, to avoid ceiling-mounted sprite glitches.
2019-06-18 14:22:10 +01:00
Nev3r
740c561b0e Merge branch 'portals2' into 'master'
Portal-based skybox rendering replacement for the software renderer

See merge request STJr/SRB2Internal!226
2019-06-16 04:08:00 -04:00
Nev3r
a1b2a0a344 Properly take skybox viewpoint angle into account. 2019-06-11 14:47:58 +02:00
Nev3r
ae6997621d Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal into portals2 2019-06-10 18:14:03 +02:00
Nev3r
c014235ad3 Fix 1 extra column rendering on portal-clipped vissprites. 2019-06-10 17:59:12 +02:00
Nev3r
d2605e0314 Remove remnants of portalcullsector. 2019-06-10 17:13:04 +02:00
Nev3r
581e80ed69 Made Portal_Add static; move ffloors clip reset from R_RenderPlayerView to r_plane. 2019-06-09 22:48:54 +02:00
Monster Iestyn
e7e3b0ef38 Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/hardware/hw_draw.c
#	src/m_misc.c
#	src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj
2019-06-09 20:04:08 +01:00
Nev3r
f536ab3467 Fixed crash regarding opening reallocating. A thousand thanks go for MonsterIestyn for figuring this out.
I carelessly changed the line's drawsegs to curdrawsegs without researching what that piece of code did.
2019-06-09 20:04:07 +02:00
Steel Titanium
bfa7325295 Merge branch '2.1.24-prep' into 'next'
Update version to 2.1.24

See merge request STJr/SRB2!495
2019-06-08 17:08:34 -04:00
Monster Iestyn
f5d883bd12 Merge branch 'next' into 2.1.24-prep
# Conflicts:
#	debian-template/control
#	debian/changelog
2019-06-07 23:18:31 +01:00
Alam Ed Arias
ea08ba3fba Merge branch 'master' into next 2019-06-07 18:07:32 -04:00
Alam Ed Arias
83b8a98df4 Merge branch 'gme-msvc' into 'master'
Add GME to MSVC 10 solution

See merge request STJr/SRB2!448
2019-06-07 18:06:51 -04:00
Steel Titanium
c0c1e5416f Merge branch 'next' into 2.1.24-prep 2019-06-07 18:02:09 -04:00
Alam Ed Arias
3edf73f181 Merge branch 'travis-deployer' into 'master'
Deploy OS X and Debian packages from Travis-CI

See merge request STJr/SRB2!449
2019-06-07 17:57:29 -04:00
Steel Titanium
3c08ee1313 Merge branch 'master' into travis-deployer
# Conflicts:
#	.travis.yml
2019-06-07 16:56:19 -04:00
Steel Titanium
e1d025cd2b Merge branch 'jimita-flashpals-on-screenshots' into 'next'
Flashpals on screenshots

See merge request STJr/SRB2!492
2019-06-07 16:37:59 -04:00
Steel Titanium
eb99ad0437 Merge branch 'more-limits' into 2.1.24-prep 2019-06-07 11:28:43 -04:00
Monster Iestyn
6f6d912fa6 Update version to 2.1.24 2019-06-07 15:48:33 +01:00
Nev3r
0795c7811a Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal into portals2 2019-06-07 13:11:51 +02:00
Nev3r
8c3ddd61d5 Refactored a bit of code regarding visplane bound trimming for portals; reset ffloor's f_clip/c_clip so that FOFs on portals don't interfere with previously acquired bounds. 2019-06-07 13:10:12 +02:00
Nev3r
d2692ddd24 viewx/viewy also need to be stored/restored. 2019-06-06 13:31:48 +02:00
Nev3r
0d77e8afaf Add pad checks for visplanes; invalidate invalid columns from visplanes (visplane renderer and column renderers don't speak exactly the same language).
The visplane portal top boundary offset has been restored since all known bugs involving it have been fixed.
2019-06-06 11:26:13 +02:00
Nev3r
5284817259 Fix sigsegv when there is no main skybox viewpoint. 2019-06-05 18:45:36 +02:00
Nev3r
1c14062e8b Vissprite clipping improvements.
Vissprites are now only clipped against their respective portal's geometry obtained from their BSP run.
Additionally, if a portal is provided, they're clipped to the portal's clip boundaries.
The work on this branch should conclude after a pair of remaining glitches are fixed.
2019-06-05 18:07:08 +02:00
Nev3r
25b56ffecd Masked elements are now fully grouped individually for each portal/view; fixed viewz-related glitches,.
The drawnodes are now fully grouped in separate lists, and then sorted individually. This fixes sorting problems caused by portals belonging to differently perceived scales (skyboxes for example).

Drawsegs and vissprite/drawnode sorting require the viewz, so the viewz is stored for each portal/view, and then restored when needed; without this, the rendering process erroneously sorts the elements, and draws some at wrong positions.
2019-06-05 12:10:59 +02:00
Nev3r
b22aa784fb Set a default frontscale for visplane portals.
I don't know whether this is necessary or not but I'm poking blindly trying to fix the sorting issues for now.
2019-06-04 21:04:35 +02:00
Nev3r
8abecc7f86 Created drawnode lists for each view/portal.
Each shall eventually have its specific vissprites/drawsegs; currently only drawsegs are stored in their correct list, vissprites are stored in the first list as a placeholder.
The idea is to sort each list individually, and then render their masked elements, starting from the last drawnode list.
This retains a non-recursive function calling method while still rendering things in order.
2019-06-04 20:15:42 +02:00
Nev3r
3ceaae9573 Merge branch 'revert-1d401d84' into 'master'
Revert "Merge branch '144-scrolltweaks' into 'master'"

See merge request STJr/SRB2Internal!225
2019-06-04 13:37:53 -04:00
Monster Iestyn
0fd3668111 Revert "Merge branch '144-scrolltweaks' into 'master'"
This reverts merge request !213
2019-06-04 17:34:59 +00:00
Steel Titanium
d4dac52766 Upped freeslots limit 2019-06-03 15:23:48 -04:00
Nev3r
2aabf6ffd5 Moving away more portal-related global vars to r_portal. 2019-06-03 13:33:12 +02:00
Nev3r
942c34a6af Moved validcount++ to where it used to be.
It seems to screw up the portal rendering in odd ways if it's in the wrong position. I apologize for not even knowing what it's meant to do nor how it works.
2019-06-03 13:04:27 +02:00
Monster Iestyn
68585dbc70 Merge branch 'checksight-fixes' into 'master'
P_CheckSight fixes

See merge request STJr/SRB2Internal!223
2019-06-02 13:13:48 -04:00
Monster Iestyn
b7f75246e4 Merge branch 'master' into checksight-fixes
# Conflicts:
#	src/p_sight.c
2019-06-02 18:13:02 +01:00
Monster Iestyn
9e6fd595da Merge branch 'acz-boss-hardcode' into 'master'
ACZ boss hardcode

See merge request STJr/SRB2Internal!221
2019-06-02 13:09:38 -04:00