Commit graph

476 commits

Author SHA1 Message Date
Monster Iestyn
fa935be129 Fixed the issue where diagonal springs couldn't teleport you to their centers anymore (guess whose fault that was! =D ). Basically I just made P_DoSpring boolean, which probably could be useful to Lua peeps as well. (it returns true if you were sprung, false if not) 2015-07-28 19:28:51 +01:00
Monster Iestyn
6138845930 Removed all "-1"s from R_PointToAngle and R_PointToAngle2, in order to allow ALL basic compass directions at the least to be given the right angle by these functions.
Note: Before this change, North and West directions would be returned as ANGLE_90-1 and ANGLE_180-1. This caused the pusher polyobjects in THZ2 to slowly move sideways as a side-effect (and probably caused similar bugs in the past too, these functions have barely been touched in a decade it turns out.)
2015-06-21 16:58:34 +01:00
Alam Ed Arias
ac5c8f10e9 Merge remote-tracking branch 'public/lua-32bit-changes' into next
Conflicts:
	src/lua_mobjlib.c
2015-06-18 10:22:07 -04:00
Alam Ed Arias
c4ac9643ad Merge branch 'goop-dampen' into 'next'
Goo Water (THZ Goop) adjustements

At Nev3r's request:
Adjusted goop so that you spend less time bouncing around in it. The goop will become a walkable surface with a higher velocity threshold.

The actual goop physics haven't been altered as far as the initial entrance and underwater time is concerned, only leaving goop and subsequent bounces has been dampened significantly.

See merge request !7
2015-06-18 10:11:27 -04:00
Alam Ed Arias
904c3c227b Merge branch 'trigonometry-fix' into 'next'
finesine table

I pasted in finesine from #11 and made a merge request.

This has been lightly tested to ensure the renderer doesn't immediately break. No ill effects have been observed so far.

See merge request !17
2015-06-18 10:09:04 -04:00
Alam Ed Arias
b2e330d64c Merge branch 'idk-what-to-call-this-branch' into 'next'
A_SetObjectFlags tweak

Only reset the sector/blockmap links on an object calling A_SetObjectFlags if the MF_NOSECTOR|MF_NOBLOCKMAP flags change. Fixes a freeze related to LD442 demonstrated in MascaraSnake's example WAD at https://dl.dropboxusercontent.com/u/27962790/statetest.wad .

See merge request !11
2015-06-18 10:06:46 -04:00
Alam Ed Arias
f0054be951 whitespace fixup 2015-06-18 10:05:51 -04:00
Alam Ed Arias
a03fc205b4 Merge branch 'hotfix-pltz' into 'next'
Re-add/fix broken platform momz mobj code.

The changes in this branch re-add the platform's momentum to players and mobjs which leave the platform (eg. by jumping) so that they move with relative velocity as expected. This behavior was unintentionally broken in SRB2 2.0, which adds a lot of artificial difficulty to certain segments of the levels, where you have to jump between high velocity moving platforms which seemingly cut your jump height to nothing.

Not only has the behavior been fixed, but it has now been enhanced to move the camera while free-falling between platforms as well, completing the illusion of full relative velocity with minimal hiccups. [Observe.](http://i.imgur.com/zmSfUyp.gifv)

See merge request !14
2015-06-18 10:04:54 -04:00
Alam Ed Arias
f7747f43ba Merge branch 'misc-fixes-tomerge' into 'next'
Miscellanous fixes to merge

These are the commits from the "miscellanous-fixes" branch that are okay to merge in.

Bugs fixed include the following:
* CTF flags respawning incorrectly: they cannot z position themselves correctly, and they cannot flip themselves.
* The weird "jumping" spring/monitor effect: this is the result of an internal mobj_t pointer (tmfloorthing, specifically) not resetting itself to NULL for the next object's thinker, resulting in Z movement code thrusting the object vertically at tmfloorthing->momz.

See merge request !18
2015-06-18 09:51:59 -04:00
STJrInuyasha
45515df790 Make sure "word" in readlevelheader gets reset
... because some things (Lua. custom header entries) move it.
https://mb.srb2.org/showthread.php?t=40580

(Technically breaks netgame compatibility for Lua-heavy mods, so in next.)
2015-06-13 15:56:28 -07:00
Yukita Mayako
0af32ee2fa Move garbage collection out of Lua hooks.
That's supposed to be run once a frame, not once per hook
per mobj per frame you moron. If you just run it seven
thousand times a frame, of course your framerate will drop.
2015-06-10 13:42:45 -04:00
Yukita Mayako
c139e93fe6 Applied new finesine table.
finesine[0] == 0 now. This naturally fixes a bunch of math fudging.
No ill effects have been observed so far.
2015-06-10 12:07:08 -04:00
Yukita Mayako
06b82d172b lua_pushfstring only allows %d not %x
Stupid JTE.
2015-06-10 11:06:56 -04:00
Yukita Mayako
6ac5013802 Only push userdata to the stack when needed!!
Dummy, what do you think you're doing? If you
just push mobjs and players into Lua all willy-
nilly everywhere, you'll wind up generating
tons of metatables and stuff you arne't even
gonna use!

Oh. Thanks me, I'm really smart.
2015-06-10 08:06:16 -04:00
Yukita Mayako
120c9c5ad5 Change int32_t to __int32 on MSC.
I can't just say screw it and include the full
doomtype.h here (windows.h conflict?) so a
small hack here will have to do. :I
2015-06-10 07:41:44 -04:00
Yukita Mayako
ecdf3412c0 Rewrote the entirety of lua_hooklib.c
This _should_ solve some significant performance
issues Lua experiences. If not, I will be very
upset for having wasted so much time and effort.

There will be bugs, this kind of thing needs to
be thuroughly tested and this is just the first
iteration of it.
2015-06-10 07:28:09 -04:00
Yukita Mayako
36cf4c1bd2 Fix comma error. 2015-06-09 19:53:35 -04:00
Yukita Mayako
fc649ce195 Merge branch 'next' of git@git.magicalgirl.moe:STJr/SRB2.git into hotfix-pltz
Conflicts:
	src/dehacked.c
	src/p_mobj.h
2015-06-09 07:38:21 -04:00
Yukita Mayako
9a9025b1ee Remove pmomz from players who are on ground.
Assume that every frame the player is on the ground, their pmomz will
be re-set properly if the floor is moving, therefore if the platform
STOPS, we need this to set it to 0.
2015-06-09 06:59:34 -04:00
Monster Iestyn
b88600dac6 tmfloorthing and tmhitthing are set to NULL at the start of P_MobjThinker, preventing any weird cases of carrying over the previous mobj's floor object or such.
This fixes the issue with upside-down springs shooting downwards if you touch another of its kind. Also fixes one of the issues with monitors in Icicle Falls (after you phase inside the East-most float-bob FOF's monitor via the other bug and jump up to break it while there, the NEXT monitor moves upwards too)
2015-05-31 13:57:27 +01:00
Yukita Mayako
c16516ef0d Partial revert.
This partially reverts commit a1c67e7e67.
2015-05-29 17:22:31 -04:00
Yukita Mayako
a1c67e7e67 Add MFE_APPLYPMOMZ to fix camera movement.
Here's how it works: When a player walks off the
moving platform, it applies their pmomz once, and
then _keeps pmomz set_ so that the camera still
adds pmomz to its movements until they hit another
floor. This way, the camera doesn't jerk around.
2015-05-29 13:53:06 -04:00
Monster Iestyn
c6ade27b6a Fixes to CTF flag respawning, particularly reverse gravity and z-positioning. 2015-05-29 14:59:13 +01:00
Yukita Mayako
213a0caa23 Hotfix amendment
Also gain velocity from walking off an "up" elevator normally?

This _looks_ incorrect because the camera stops matching
the platform movement the moment you step off, but I
assure you it is a correct and accurate movement.
(Try it with chasecam off.)
2015-05-29 05:47:01 -04:00
Yukita Mayako
3bc56a91b2 Hotfix for platform movement being dropped on players.
Now players will apply platform movement when jumping,
but only if the platform is moving the same direction
as their jump is, and all other objects will have an
appropriate pmomz in reverse gravity FOF situations.
2015-05-29 04:34:53 -04:00
RedEnchilada
e00d682185 Fix issue with objects getting stuck IN floors 2015-05-25 13:25:23 -05:00
RedEnchilada
5e18db79e9 Fix mobjs sometimes clipping through floors (whoops!) 2015-05-25 12:16:19 -05:00
RedEnchilada
d9d3752b4e Unbreak FOF specials 2015-05-25 11:46:09 -05:00
RedEnchilada
32759312a1 Shut up the Kalaron 2015-05-24 18:22:56 -05:00
RedEnchilada
bddcf98355 Remap slope line specials to 7xx range: shim old values for now 2015-05-24 15:59:17 -05:00
RedEnchilada
a9d49cd9fa Make all specials reliant on floor touch work right with sloeps
(I might've missed some, though)
2015-05-24 12:53:30 -05:00
RedEnchilada
a9dba0ffd1 Condense GetFloor/CeilingZ into fewer functions, and use macros for the rest 2015-05-24 11:27:52 -05:00
RedEnchilada
e0d97e4b1a Slope planes should now not turn into static in 99% of cases 2015-05-23 16:27:15 -05:00
RedEnchilada
109d379980 Fix conveyor slopes eventually turning to static 2015-05-23 15:44:53 -05:00
RedEnchilada
b121bcca68 Remove P_GetZAtf (it didn't seem to work right anyway) 2015-05-23 12:23:24 -05:00
RedEnchilada
485f671f23 Sloped planes now respect flat offsets 2015-05-23 02:18:32 -05:00
RedEnchilada
a5d7356fd2 Sayonara, m_vector.c 2015-05-23 01:32:28 -05:00
RedEnchilada
3629a2141b Slope planes work again. I hacked an alignment fix in too. 2015-05-23 01:19:38 -05:00
RedEnchilada
89319b1c2a Dummy out m_vector and use m_fixed's functions instead
These functions were already here before, and I /swear/ the slope
physics became slightly less glitchy after switching to them...
Only issue is the slope plane mapping code hasn't been properly
converted yet, so they don't render properly for now.
2015-05-22 22:07:07 -05:00
RedEnchilada
3f8e7b1739 Revert/remove unused/broken junk from original slopes port
m_vector removal to come later. The little thing commented out in it
is so I could revert the weird tables.c change.
2015-05-22 20:57:58 -05:00
RedEnchilada
8c54ee44e7 Slopey physics for some things that aren't players
This is incredibly messy and probably needs redone differently at
some point, but... fuck it.
2015-05-22 12:33:12 -05:00
JTE
f783df718c Reset tmthing after P_CheckSector calls from Lua
tmthing must not be set outside of P_MapStart and P_MapEnd
or the game will fail a sanity check which ensures that
mobj references are not persistent across frames and crash.
2015-05-22 01:51:40 -04:00
JTE
c91cd3860b Revert "Wrapped Lua MapLoad hook in P_MapStart / P_MapEnd."
This reverts commit 6ee50e803b.
2015-05-22 01:46:59 -04:00
RedEnchilada
fb9d07b8ba Bugfixes to sloped FOF plane clipping 2015-05-21 22:13:51 -05:00
JTE
6ee50e803b Wrapped Lua MapLoad hook in P_MapStart / P_MapEnd.
This fixes a crash if a script tries to use a MapLoad hook
to immediately edit the map in some way the moment it
finishes loading.
2015-05-21 19:55:22 -04:00
JTE
dfa8ac7ccb Added sidedef texture and offset manipulation to Lua. 2015-05-21 19:05:17 -04:00
RedEnchilada
0d9f8028b7 Players now bounce off of slopes on bouncy FOFs 2015-05-21 15:49:49 -05:00
RedEnchilada
f23f5d4379 Fix flat slopes eating jumps 2015-05-21 15:49:26 -05:00
RedEnchilada
e24595ed52 Make the crumble check account for slopes for... some reason 2015-05-21 10:17:53 -05:00
RedEnchilada
3d2b71b24c Make cameras properly collide with slopes 2015-05-21 09:36:20 -05:00
JTE
ef0e61fc33 Change LUA_NUMBER to fixed_t, change angle_t handling in Lua.
Angles now go from 0 to 0xFFFF (360 degrees == FRACUNIT) instead
of using a full UINT32. Lua only has one number type, so signedness
gets in the way of using angle_t directly. This handling of angles
matches up with how ZDoom ACS scripting and the like does it.

I also changed all the integer casts and pushes of fixed_t to
their own macro in preperation for possible future seperation.
2015-05-20 23:54:04 -04:00
RedEnchilada
7a3c5b3dd9 Scenery objects (notably, bubbles) now use slope when finding water surfaces 2015-05-20 19:21:44 -05:00
RedEnchilada
0e94cc66ff 2-in-1! Fixed slide movement AND climbing when around slopes 2015-05-20 19:08:49 -05:00
JTE
9d36cf37bd Removed EvalMath from base Lua.
EvalMath is for SOC only.
It spawns an entirely seperate instance of Lua and requires
uppercase-only strings, and it's ability to parse strings to
enums is redundant to Lua's _G table (try using
_G["MT_BLUECRAWLA"] for instance)
2015-05-20 18:44:03 -04:00
JTE
1e62be15ce ALL7EMERALDS is a boolean you idiot, not an integer. 2015-05-20 17:29:32 -04:00
RedEnchilada
7b0e98ef35 Change sliding physics and standing/rolling rules on slopes 2015-05-20 13:18:41 -05:00
RedEnchilada
1376f399d3 Sprite lighting obeys the slope overlords now 2015-05-18 00:23:44 -05:00
RedEnchilada
e7bc004bbf Sloped lights n shit 2015-05-17 23:51:38 -05:00
RedEnchilada
e83844796e Proper sorting fix for sloped FOFs and sprites 2015-05-17 21:49:13 -05:00
RedEnchilada
41573b118c I'm a dumbass 2015-05-17 12:36:06 -05:00
RedEnchilada
0af3852273 Add translucent slope renderer 2015-05-17 12:24:20 -05:00
RedEnchilada
780c568aaf Fix sprite-to-plane sorting on sloped FOFs 2015-05-17 12:03:52 -05:00
RedEnchilada
d138f7e14f Collision with FOF slopes (might be unfinished, idk) 2015-05-17 11:53:28 -05:00
RedEnchilada
8ba5b66853 Slight optimization (don't get seg ends for slopes if there are no slopes) 2015-05-16 23:55:49 -05:00
RedEnchilada
c08253d796 FOF sides now render slopified too! 2015-05-16 23:04:54 -05:00
RedEnchilada
4e11d6d615 Make FOF planes render slopedly if set 2015-05-16 22:32:12 -05:00
RedEnchilada
d81cecdac9 Minor cleanup so it stops bugging me 2015-05-16 19:59:52 -05:00
RedEnchilada
09f8dec7d1 Optimization/configuration option: No Tails on a slope line makes a slope non-dynamic 2015-05-16 00:04:19 -05:00
RedEnchilada
6fcdac494f Spawned things spawn relative to slope floor/ceiling heights now
This was a headache. :<
2015-05-16 00:02:01 -05:00
RedEnchilada
36d576adf4 I think those were being cast wrong 2015-05-15 12:36:16 -05:00
RedEnchilada
445e778309 Improvements to slope collision/landing/ejecting/fajitas 2015-05-15 12:35:54 -05:00
RedEnchilada
b69678f1a6 PLACEHOLDER, DO NOT PUSH THIS COMMIT 2015-05-15 10:23:53 -05:00
RedEnchilada
bd0b7829bb Fix rotated flats on slopes 2015-05-14 10:55:43 -05:00
RedEnchilada
e39c8aa62e Fix ceiling slopes lol 2015-05-13 21:57:47 -05:00
RedEnchilada
0cc917a0ff Plane lighting for slopes now actually acts like it should 2015-05-13 21:41:54 -05:00
RedEnchilada
2187dac49b Fix random texture triangles rendering on lines with slopes????? 2015-05-13 16:48:34 -05:00
RedEnchilada
a3358479f0 Improvements related to slope collision, and quantize momentum properly for landing 2015-05-13 16:15:32 -05:00
RedEnchilada
371e23d55d Reduce acceleration pushback to less absurd levels 2015-05-13 16:02:19 -05:00
RedEnchilada
2183912100 Change upper/lower textures to not skew by default, add new linedef flags on normal linedefs:
Effect 1: Restore skewing on upper/lower textures
Effect 2: Disable skewing on midtextures
Effect 3: Flips effect of Lower Unpegged for midtextures only
(Effect 3 w/o LU: midtexture sticks to bottom, bottom texture sticks to
upper edge. Effect 3 w/ LU: midtexture sticks to top, bottom texture
sticks to lower edge.)
2015-05-04 17:45:02 -05:00
RedEnchilada
7e13cb8b47 Fix various issues/crashes with texture alignments 2015-05-04 16:40:02 -05:00
RedEnchilada
1b9180111c Pin midtextures based on slopes, including bending on wall crossing 2015-05-04 15:15:57 -05:00
RedEnchilada
c66bb1c330 Make textures skew according to slope (midtextures not fixed yet) 2015-05-03 15:47:40 -05:00
RedEnchilada
79fedf91a0 Fix occasionally running into an invisible wall around slopes 2015-04-30 18:36:21 -05:00
RedEnchilada
3644d4d883 Minor code cleanup around renderer gunk
(Who let that silhouette == 1/etc thing sit there all those years? :V)
2015-04-30 00:41:29 -05:00
RedEnchilada
234f734fe5 Fix sprite clipping and some blocking walls being rendered around slopes 2015-04-30 00:38:51 -05:00
RedEnchilada
02d63aa011 Tweaks to slope physics + add accel rules for slopes
Your acceleration vector parallel to the slope is reduced based on slope
angle if it's going up the slope. The pull physics' momentum increase was
toned down a bit to go along with this. Also, I removed the ifdefs for
OLD_MOVEMENT_CODE because why should that be kept around?
2015-04-30 00:32:44 -05:00
RedEnchilada
fe8a2ae680 Fix compile error 2015-04-29 01:45:39 -05:00
chi.miru
c4306b624d Optimized R_DrawTiltedSpan_8 2015-04-29 02:36:18 -04:00
RedEnchilada
ae935a0955 Stop rubbing my ass on the code long enough to fix reverse gravity 2015-04-29 00:36:24 -05:00
RedEnchilada
db883f6a23 Add a bunch of slope physics
I know giant commits all at once like this are a bad thing, but
too bad I worked without staging commits and now it's all here
at once :)
2015-04-29 00:35:54 -05:00
RedEnchilada
1f0f6b64c1 Store the slope an object is resting on (if applicable) 2015-04-29 00:33:04 -05:00
RedEnchilada
de81d01fbc Fixes to slope generation (backfloor crash and wrong zdelta/zangle) 2015-04-29 00:30:39 -05:00
RedEnchilada
776b5254e6 Slope collision fixes 2015-04-29 00:29:51 -05:00
RedEnchilada
10ba850871 Fix dynamic slopes not working right in some cases 2015-04-27 14:07:04 -05:00
RedEnchilada
6694480f68 Overhaul slope collision (NOT PHYSICS) to work almost perfectly 2015-04-27 13:20:50 -05:00
RedEnchilada
58dd6d42af Add P_GetFloorZ and P_GetCeilingZ as boilerplate to facilitate better slope collision
I have not used this anywhere in the code yet.
2015-04-27 13:18:12 -05:00
RedEnchilada
0c477c685d Removing unused cruft 2015-04-26 22:20:03 -05:00
RedEnchilada
6fa1448f59 More cleanup, and made dynamic sloping more efficient/fixed memory leak 2015-04-26 21:50:50 -05:00
RedEnchilada
d0a726c00b Teeny optimization in renderer code?? 2015-04-26 13:06:45 -05:00
RedEnchilada
aeef23e816 MakeSlope_Line cleanup/fixed-point conversion 2015-04-26 13:06:23 -05:00