Commit graph

227 commits

Author SHA1 Message Date
Nevur
8b64a6eef3 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement 2017-08-08 10:41:33 +02:00
Monster Iestyn
a0204c6722 Made P_SpecialStageDamage for the lose 10 rings damaging code shared by spikeballs and SS damage sector special 2017-08-06 22:10:29 +01:00
Monster Iestyn
c10c3d0441 Merge branch 'alignment_v2' into 'master'
Consistent flat alignment

Does what it says on the tin. Consistent between the three different plane drawers:

* Software flat (previously the only one working as intended)
* Software sloped (took a lot of work)
* OpenGL flat and sloped (worked reasonably well but used different signs for some reason)

Check out root/!LatestSRB2Files/srb2win_branch_flat2.exe, root/toaster/flatalignment.wad and any in-dev DSZ1 to test it all out.

See merge request !78
2017-08-05 16:04:41 -04:00
Monster Iestyn
cfbe180312 Merge branch 'public_next' 2017-07-25 17:17:22 +01:00
Monster Iestyn
821692fbf7 This was my fault, whoops 2017-07-24 17:53:18 +01:00
Monster Iestyn
0eaebb16fc Check if existing animdefs have the same type as the animdef we're parsing 2017-06-25 18:17:05 +01:00
Nevur
d5e38c087d Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into FileManagement
# Conflicts:
#	src/p_setup.c
2017-06-25 14:51:37 +02:00
Monster Iestyn
e3f627120f Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/p_mobj.c
2017-06-23 17:19:06 +01:00
Monster Iestyn
44f33e6732 Merge branch 'touching_fixes' into 'next'
Fixes with respect to sector special touching and slopes

Some important stuff.

* SF_TRIGGERSPECIAL_TOUCH now actually works. Previously, it abandoned the loop early if ANY bounding sector didn't have that sector flag, which it likely didn't - only checking one extra sector's worth of FOFs. Also, the teleport handling there is more robust, and actually bails out if you teleport, instead of just awkwardly continuing through the loop.
* SF_TRIGGERSPECIAL_TOUCH now works for each time thinkers, too.
* Fixed a bug with being able to go under lava because P_CheckSolidLava doesn't take slopes into account.
* Also, P_CanRunOnWater supports slopes now too.
* Quicksand supports slopes and reverse gravity now.
* Space Countdown supports slopes now.

Also, an experiment behind a #define which currently isn't turned on:

* UNDER A #define, "SECTORSPECIALSAFTERTHINK", WHICH IS CURRENTLY TURNED OFF, BUT I WILL WANT TO TURN ON IN INTERNAL: Moved sector touch handling to P_PlayerAfterThinker (from P_PlayerThinker before movement). Allows for being able to trigger moving slope sectors that are going down, most specifically lava (didn't matter in RVZS in 2.1 because you could clip through the sides and go underneath the lava, causing damage - a sloped testwad version of that prevented going underneath.) Also fixes one-frame standing on deathpits before you die. Basically means sector triggers effectively happen one tic earlier, since it's after movement.

See merge request !131
2017-06-22 17:30:57 -04:00
Monster Iestyn
997eb58c93 Fix invalid sfx numbers supplied to linedef type 414 crashing the game
Had to make P_MobjReadyToTrigger non-inline for this fix though, because the compiler was being stupid
2017-06-07 18:24:06 +01:00
Nevur
d4c324eb30 PK3 stuff again.
-Now can load map WAD files inside Maps/ directory, but they must only contain map data explicitly!

Known problems:
-There's an issue causing a crash with palettes and colormaps in PK3s.
-SS_START and SS_END don't work now. Will check later.
-Standalone lumps for maps in the Maps/ folder don't work anymore; perhaps I should keep that functionality?

Notes:
-It's now a mashup of something dumb that I wanted to do and yet piling hacks again.
-A lot of code duplicity with map lump loading functions.
2017-05-16 21:10:02 +02:00
Monster Iestyn
9238b2d50f Merge branch 'level-specials-setup-stuff' into 'master'
Level specials setup stuff

Some changes to level setup, largely inconsequential for gameplay but maybe helpful for Lua scripting:

* gravity, weather, and some other internal variables are set to their defaults before loading things, so their values from a previous level don't affect mobj spawning potentially
* Tag lists are also initialised before loading things, so that tag-based search functions (such as P_FindSpecialLineFromTag) can be used internally for the maces and particle generator. This should probably extend to Lua as well
* the level header "forcecharacter" no longer recognises "255" as "None" anymore. This is because it no longer takes skin numbers (as of whenever that change was added... version 2.0?), and level headers are auto-cleared when edited anyway.

See merge request !88
2017-05-08 15:15:50 -04:00
Monster Iestyn
7f936d8b57 Add CONS_Alert warning as toaster suggested 2017-05-01 19:34:53 +01:00
Monster Iestyn
bdb3c2ea0e extrainfo now determines "skybox ID", a number between 0 and 16 to identify the viewpoint or centerpoint
also I made that change skybox linedef exec special I guess (linedef type 448)
2017-04-26 18:16:01 +01:00
Monster Iestyn
13cb656f0b Whoops forgot this 2017-04-24 20:43:58 +01:00
Monster Iestyn
4e96f624e7 Split off part of P_SpawnSpecials into a new function called P_InitSpecials
This allows tag lists, gravity, weather, and the "CheckFor" vars to be initialised before running P_LoadThings or P_ResetDynamicSlopes, in case they could affect mobj spawning or cause a netgame desync somehow by carrying over the previous level's values
2017-04-24 20:33:39 +01:00
Monster Iestyn
80637b336b Starting work, noclimb inverts direction (haven't tested if it actually works or not yet) 2017-04-11 22:33:04 +01:00
toasterbabe
dca98e9eb8 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into alignment_v2 2017-04-08 21:04:03 +01:00
Monster Iestyn
bfaf60ceef Merge branch 'public_next' 2017-04-05 21:05:57 +01:00
Alam Ed Arias
4fa188cf01 build: fix 64-bit builds 2017-04-01 17:22:24 -04:00
Monster Iestyn
bf29b5c6d1 Print warning message in console if line->next is NULL 2017-04-01 20:16:48 +01:00
toasterbabe
837291c013 Woops, need to ensure functional equivalence to what came before. 2017-03-31 17:08:46 +01:00
toasterbabe
d5ba29eb9b Get plane scrolling effects working the same on and off slopes in both renderers again. 2017-03-31 16:45:47 +01:00
toasterbabe
d62a628346 Consistency between software off-slope and GL on+off-slope flat alignment! (Software slopes are now MORE broken with respect to this, but that comes later.) 2017-03-30 22:48:13 +01:00
Alam Ed Arias
5feccaad2a Merge branch 'next' into touching_fixes 2017-03-29 16:55:06 -04:00
toasterbabe
99f13c88ae Made jump damage flag application less hacky. 2017-03-18 21:06:06 +00:00
toasterbabe
b2c0930807 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into charabilities_mk3 2017-03-14 18:12:47 +00:00
toasterbabe
7aeeb278fe Increased space in pflags (because we were getting VERY close to full capacity), which I will re-organise when this branch is closer to completion.
* PF_NIGHTSMODE is now CR_NIGHTSMODE as part of player->powers[pw_carry]. This is because it's mutually exclusive to every other "carry" type.
* PF_SUPERREADY is dead because it literally just checked for all 7 emeralds and 50 rings. That's it. You couldn't even appreciably alter its presence with Lua. That logic has been placed back in P_SuperReady.
2017-03-14 18:11:17 +00:00
toasterbabe
75ac351940 It's 2am, I'll upload the exe and player.dta to the ftp later.
* Super sprites are now deliniated via an additional S_SUPER lump between S_START and S_END. Above are normal sprites, below are super sprites. Handled internally via FF_SPR2SUPER.
* Sprite2 numbers are now appropriately limited for the data type that stores them.
* SPR2_SPIN is now SPR2_ROLL, SPR2_DASH is now SPR2_SPIN and SPR2_PEEL is now SPR2_DASH. Makes more sense, right?
2017-03-11 02:09:01 +00:00
Monster Iestyn
d0861a084a Merge branch 'master' into crumble-FOF 2017-01-25 19:38:07 +00:00
Monster Iestyn
fb8140312b Merge branch 'flat_alignment_revamp' into 'master'
Revamps of several dated linedef type effects

Felt like being productive so made some things I hate suck less.

Linedef type 7 (flat alignment) now works as follows.
* Linedef angle (from v1 to v2) is flat angle.
* Origin of flat is manipulated to match v1's coordinates - unless ML_NOKNUX is flagged, in which case uses frontside x and y offsets as flat offsets instead.
* ML_NOSONIC prevents changing floor.
* ML_NOTAILS prevents changing ceiling.
* Both of the above flags at once prints a warning.
* (THZ and probably a few other maps need updating.)

Linedef type 540 (friction) now works as follows.
* Controlled by x offset instead of length - offset of -100 is maximum iciness, offset of +483(!!!) is the maximum sludginess BUT things are scaled such that +100 is about the maximum sludginess any reasonable human being would want in a level, 0 is ORIG_FRICTION)
* Not reliant on a sector special to function (can be applied solely by tag to in-map sectors or solid FOF control sectors)
* Uses less memory, perform less calculations, and not bug out objects which just happen to use movefactor for something
* PHYSICS CHANGE: Low friction surfaces actively impede your acceleration (and make your animation speeds faster to give off that Looney Tunes out-of-control effect)
* (ACZ and Frozen Hillside needs updating.)

Sector types 1 and 3 in section 3 no longer do anything.

Linedef type 3 (zoom tube) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 4 flag rotates the player to match the waypoint direction (same as before).
* (ERZ needs updating.)

Linedef type 11 (rope hang) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 1 flag makes rope transfer one-way. (same as before)
* No climb flag makes rope static. (same as before)
* (ACZ and maybe ERZ need updating.)

Linedef type 258 (laser) is almost the same as before, but has altered functionality.
* Its flashing is less obnoxious. (56.25% to 68.75% instead of 100% to 0%, at half the speed)

Linedef type 14 (Bustable block parameters) is new, and works as follows.
* Tagged to the control sector of a block that is likely to be busted (via executor or collision, doesn't matter)
* Concatenation of frontside textures is MT_ object type to spawn, defaults to MT_ROCKCRUMBLE1 if not present
* Sound played when being busted is object type's activesound
* Frontside x offset is spacing (in fracunits) of spawned particles, defaults to 32<<FRACBITS
* Frontside y offset is the fuse of spawned particles in tics, defaults to 3*TICRATE, if set to -1 fuse is not set
* Effect 1 flag makes particles "fly out" horizontally and vertically from the center of the FOF

Sector types 7 through 15 in section 3 no longer do anything.

Linedef type 250 (Mario Block) is almost the same as before, but has new functionality and is slightly different in another way.
* No Climb flag turns it into a brick block (set on Custom FOF via presence of FF_SHATTERBOTTOM - busts when hit from the bottom, player hits their head/fist/whatever, no more upwards momentum)
* Effect 1 flag makes it an invisible block (set on Custom FOF via absence of (FF_SOLID|FF_RENDERALL|FF_CUTLEVEL) - intangible from every side except the bottom. Becomes visible and tangible when it's hit once)
* Only updates side textures when moving down or stationary, not whilst moving up - more fidelity to the source material, less processing on the CPU, everyone wins.
* If FOF master linedef has a backside, then: [If there's items in it the FOF's flats are set to that of the backside sector's ceiling, otherwise the floor.] Otherwise, no flat change.

Linedef type 4 (Speed Pad parameters) now works as follows.
* Frontside x offset is speed in fracunits.
* Effect 4 flag doesn't center the player. (same as before)
* Effect 5 flag sends them off in rolling frames.
* Frontside upper texture is sound to play on launch, defaults to sfx_spdpad when not given

Sector type 6 in section 3 no longer does anything.

Object type 757 is changed as follows, and no longer works on its own - see Linedef type 15 for more details.
* Tag via its angle field
* Number of objects to spawn per tic around it via its z field, if zero then just spawn at center
* Is flipped if given MTF_OBJECTFLIP.
* (ERZ and Seraphic Skylands - if we use that map - needs updating)

Linedef type 15 (Fan particle spawner parameters) is new, and works as follows.
* Tag is tag of object(s!)
* Object type set via concatenation of frontside textures, MT_PARTICLE is default
* The length of the linedef is the radius the particle is spawned out (zeroed if z field is 0)
* Frontside x offset is speed upwards
* Frontside y offset is number of degrees to turn each tic (zeroed if z field is 0)
* Frontside floor and ceiling heights are the heights in which the particle is bound through some fun mathematics

A_ParticleSpawn is changed, too.
* Object type is now changed through actor->threshold instead of var1 to support Linedef type 15.

Test executable uploaded at /toaster/srb2win_branch_flatalignment.exe on the ftp.

Test file uploaded at /toaster/flatalignment.wad on the ftp.

Breaks compatibility with 2.1 so put in internal.

See merge request !29
2017-01-24 16:49:43 -05:00
Monster Iestyn
4b97333ed7 Merge branch 'plane-displacement' into 'master'
Plane displacement

Basic support for plane displacement, no netplay support as of writing but this is what Nev3r wanted moreorless at least.

Linedef types 66-68 are the plane displacement specials; 66 = move floor only, 67 = move ceiling only, 68 = both

Front sector = control sector
Tag = tag of target sectors to be moved whenever the control sector floor moves
Linedef length = movement factor relative to control sector movement, 256 = 1:1 with control sector. 128 is half as much, 512 is twice as much, etc.

Whenever the control sector floor moves (not ceiling, never ceiling), the selected planes of the tagged sectors all move (mind, they have a tic delay due to how it all works, it's not perfect really). No support for reverse speeds yet sorry.

EDIT: oh, btw, test exe and test map are included in my folder on the FTP (srb2win-plane-displacement.exe and plane-disp-test.wad, respectively)

See merge request !61
2017-01-24 14:29:38 -05:00
toasterbabe
da42165169 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_alignment_revamp 2017-01-16 17:14:58 +00:00
Alam Ed Arias
94025ae947 Merge branch 'master' into lua-additions 2017-01-13 16:47:57 -05:00
Monster Iestyn
edba7834ae Merge branch 'master' into plane-displacement 2017-01-10 14:52:57 +00:00
Monster Iestyn
166c6746cd Merge branch 'public_next' 2017-01-08 16:05:32 +00:00
Monster Iestyn
22020dda03 Merge branch 'savegame-hotfixes' into 'next'
Savegame hotfixes

Yes, this another netgame related fix! Named this "savegame hotfixes" rather than "ERCZ hotfix" or the like in advance of the fact we probably need a general branch for other $$$.sav fixes?

Anyway, fixes included in by this branch:
* ERCZ's lava falls now act as expected rather than being stuck in place for the map's duration, fixing all other known desynchronisation issues known in the map for the time being (yay)
* Changing sector tags in a map no longer causes joiners to netgames to have their SRB2 application stop responding etc
* Player names should no longer turn red in the console in gametypes outside of CTF/Team Match if a resynch occurs (not $$$.sav related, but it's related to netplay so I lumped it in anyway)

See merge request !150
2017-01-07 18:32:07 -05:00
Monster Iestyn
ad30c41179 Fix egg guard shields being endlessly killed by lasers. Simply make sure they have health first before killing them! 2017-01-07 18:02:55 +00:00
Monster Iestyn
5358359ddb Added the thinker creation function and the thinker itself, we now have functional plane displacement thinkers! 2017-01-05 20:29:48 +00:00
Monster Iestyn
b768c4b961 Sync sector tags and tag list variables properly
Dunno who thought it was a good idea to lump tag, nexttag and firsttag together in $$$.sav, but that meant changing sector tags caused SRB2 to stop responding since it lead to the tag lists being broken
2017-01-03 20:48:39 +00:00
Monster Iestyn
f8961d396f Initial commit of what I've done so far, DOES NOT COMPILE 2016-12-13 22:42:47 +00:00
Monster Iestyn
73b8790946 Merge branch 'master' into lua-additions 2016-11-24 19:35:06 +00:00
toasterbabe
05f58df709 Some changes and corrections.
* Cleaner A_ParticleSpawn code.
* Removed several hacks with Mario blocks, and corrected a mistaken assumption with when the FOF's thinker is being applied.
* Made the flashing of T_LaserFlash even less obnoxious.
2016-11-22 16:21:30 +00:00
toasterbabe
e34ef54166 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_alignment_revamp
# Conflicts:
#	src/info.c
#	src/p_mobj.c
2016-11-20 19:21:10 +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
toasterbabe
a2dabd7041 Fixed a bunch of things MI pointed out. 2016-10-31 14:03:53 +00:00
toasterbabe
2d50dd1fd1 A bunch of fixes that allow for proper handling of triggerspecial_touch. Not perfect, but I don't have any more time to spend tonight. 2016-10-31 00:02:38 +00:00
Monster Iestyn
304f4625e5 Merge branch 'master' into crumble-FOF 2016-10-29 17:06:34 +01:00
Monster Iestyn
82d29b59c1 Merge branch 'master' into damage-control 2016-10-29 17:05:59 +01:00
Monster Iestyn
39f837e56f Merge branch 'master' into lua-additions 2016-10-29 17:05:31 +01:00
toasterbabe
b9e7abe7ff Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-10-29 15:59:45 +01:00
Monster Iestyn
f4ddaf51ab Merge branch 'public_next' 2016-10-29 15:37:53 +01:00
Monster Iestyn
98e43ac0d9 Fixed ffloor_t Lua variables not actually saving to $$$.sav
Stupid overlooked semicolons
2016-10-25 16:15:17 +01:00
toasterbabe
76ff26e6fb Revert "Thorough jumpdamage setting."
This reverts commit 8720252059.
2016-10-23 15:53:12 +01:00
toasterbabe
c18c014bef Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-10-23 14:47:37 +01:00
toasterbabe
8720252059 Thorough jumpdamage setting. 2016-10-23 14:42:37 +01:00
Monster Iestyn
6473953c8c Merge branch 'master' into lua-additions 2016-10-22 14:59:01 +01:00
Monster Iestyn
1d70a9d9d2 Merge branch 'master' into crumble-FOF 2016-10-22 14:58:37 +01:00
Monster Iestyn
dd5fa80839 Merge branch 'master' into damage-control 2016-10-22 14:55:06 +01:00
Monster Iestyn
326ad8a14f Merge branch 'wallscrollbylinedef-fix' into 'master'
Wallscrollbylinedef fix

See commit description.

See merge request !43
2016-10-22 09:52:07 -04:00
Monster Iestyn
3bc29919c2 Merge branch 'public_next' 2016-10-20 16:38:39 +01:00
Yukita Mayako
aa3e52f05e Fix ANIMDEFS parsing to allow overwrite.
ANIMATED and ANIMDEFS are now processed in reverse order,
and duplicate definitions in ANIMDEFS are dropped.
2016-10-19 03:24:26 -04:00
Monster Iestyn
fc44e53056 Merge branch 'slopes-even-more-fixes' into 'next'
Even more slope-related fixes

What it says on the tin pretty much:

Currently included fixes:
* Pusher specials applied to FOFs did not properly account for slopes applied to the bottom plane; this probably was just a minor slipup that appeared on adding the support in the first place, I take it? (some waterfall in the last section of SUGOI's Fudge Canyon is the only place I can think of offhand where this bug is noticable)

See merge request !114
2016-10-18 17:19:13 -04:00
toasterbabe
ace44df8b4 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions 2016-10-16 01:32:05 +01:00
toasterbabe
aa8a454ea9 Turning some shield attributes into flags means that environmental protection and ring-pulling can be more elegantly handled. As a consequence, the S3 shields now have all their passives, and are just waiting on me to give them actives (two of which don't have the necessary sprites for...) 2016-10-16 01:23:00 +01:00
Monster Iestyn
8931a6f0fb Merge branch 'public_next' 2016-10-15 22:31:56 +01:00
Nevur
c558900c61 Deleted the Add_WallScroller function entirely from code.
Removed commented out instance using the function.
2016-10-07 18:56:10 +02:00
Monster Iestyn
0fb89c620d Merge branch 'master' into damage-control 2016-09-30 21:05:44 +01:00
Monster Iestyn
155882d2f1 Merge branch 'master' into crumble-FOF 2016-09-30 20:15:20 +01:00
Monster Iestyn
2f85704d87 Merge branch 'master' into lua-additions 2016-09-30 20:14:53 +01:00
toasterbabe
8f181abbb2 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_alignment_revamp
# Conflicts:
#	src/p_mobj.c
#	src/p_spec.c
2016-09-29 13:34:13 +01:00
toasterbabe
5f4f6fdac8 Public remake of a merge request I shouldn't have put in Internal in the first place. 2016-09-26 18:35:13 +01:00
toasterbabe
f933210c03 Let's simplify a lot of stuff. PF_CANCARRY instead of a horrible assortment of checks. 2016-09-24 13:18:08 +01:00
toasterbabe
1de32b3dac Fixed my mistake with static rope hangs.
Also, the same smoothness changes have been ported over to zoom tubes!
2016-09-24 00:37:18 +01:00
toasterbabe
e16648a72b Introducing player->powers[pw_carry]! Also, I made rope hangs a lot smoother.
* PF_ITEMHANG -> CR_GENERIC
* PF_CARRIED -> CR_PLAYER
* (mo->tracer == MT_TUBEWAYPOINT) -> CR_ZOOMTUBE
* PF_ROPEHANG -> CR_ROPEHANG
* PF_MACESPIN -> CR_MACESPIN
2016-09-23 23:48:48 +01:00
Monster Iestyn
9f87841936 Fix bottom of FOF with a pusher special not accounting for slopes 2016-09-08 22:55:11 +01:00
Monster Iestyn
df9ad4a0e6 wall-scroll-by-linedef specials now use just linedef dx/dy to determine scrolling direction, rather than the complex system that was in place before
If there's any reason to bring the old system back we could make it togglable by one of the linedef flags I suppose. Not that many people would actually use it though, most likely
2016-08-16 17:15:39 +01:00
toasterbabe
4ccb3b88d0 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into flat_alignment_revamp
# Conflicts:
#	src/p_mobj.c
2016-08-10 00:10:18 +01:00
toasterbabe
aa93f8a25c Refactored the movefactor changes that made the player go Looney Tunes style on ice. 2016-08-10 00:05:46 +01:00
Alam Ed Arias
c3690092e1 Merge branch 'public_next' into master 2016-08-07 23:29:01 -04:00
RedEnchilada
02d3382408 Leave a note to anyone foolish enough to try to fix this 2016-08-07 12:17:31 -05:00
Monster Iestyn
6ac84687d3 Merge branch 'master' into lua-additions 2016-08-04 18:55:14 +01:00
Monster Iestyn
2b985bda85 Make sure we detect if start >= numlines so we can deal with that properly
for some apparent reason the compiler didn't like the while loop condition edit on its own (it complained about inline failures for P_MobjReadyToTrigger for some reason), so I had to add that extra bit above the while loop... and it was happy again, huh
2016-07-28 14:57:19 +01:00
Alam Ed Arias
59fd7bbe46 Merge branch 'public_next' (early part) into private 2016-07-11 15:50:06 -04:00
Monster Iestyn
3fba690d0a Allow $$$.sav to archive and read ffloor_t userdata Lua extvars
Oh, and P_GetFFloorByID is now a thing, to assist with the above. Also added a suitable description for P_GetFFloorBySec
2016-07-10 17:58:54 +01:00
toasterbabe
26f34d1038 Compiling fixes. 2016-07-09 17:36:24 +01:00
Monster Iestyn
3b2ab4da1d added linedef type 446, for making FOFs remotely fall down 2016-06-21 22:04:58 +01:00
toasterbabe
7af14c20ed Everywhere in the code that was doing things wrong has been changed.
Two interesting points of note:
* The touchspecial sector flag seems to actually do its job now.
* Detection of sectors with polyobjects in seems to have done this incorrectly, but this doesn't mess with anything about touching the polies themselves so it seems to really only handle edge cases where the polyobject was too close to the border of another sector (which would've likely made rendering glitches anyways).
* There was a whole swathe of teetering code that was basically never run properly because of this mistake. I did a simple fix at first, but you started teetering whenever you were slightly less than your radius away from a sector's edge, which was completely different and undesirable behaviour. Instead, I cut out the code that was never running, and just left the hacky method in instead since it was more accurate to what we want in general.
2016-06-09 14:56:24 +01:00
toasterbabe
17e0adcbac Renamed some struct variables so the problem this branch sets out to fix is more obvious at a glance.
* m_snext ==> m_thinglist_next
* m_sprev ==> m_thinglist_prev
* m_tnext ==> m_sectorlist_next
* m_tprev ==> m_sectorlist_prev
2016-06-09 14:16:02 +01:00
toasterbabe
356dd03234 Mario block improvements. (I JUST CAN'T STOP)
* Only change texture when stationary or moving down, for additional fidelity to source material. This has zero overhead, and actually might REDUCE lag in some circumstances... my nitpickiness wins again.
* Apply ML_EFFECT1 to it to make it invisible and intangible (removing (FF_SOLID|FF_RENDERALL|FF_CUTLEVEL) from it) from every side except the bottom. Becomes visible and tangible when it's hit once. Might fuck over players in mp, but really our Mario blocks are so high in the air (and we'd need to update Pipe Towers to take advantage anyways) that they're super unlikely to get a kill this way
* Checks for the Brick Block have been switched over to the presence of FF_SHATTERBOTTOM instead of checking for the source linedef's flags every time.
2016-06-06 18:30:58 +01:00
Alam Ed Arias
fc54ab5917 Merge branch 'master' into flat_alignment_revamp 2016-06-04 22:37:57 -04:00
toasterbabe
76a3c1687c Noticed an assymetry in the Zoom Tube code. I assume the forward-going zoom tube's cancelling of gliding and climbing solved some bug, so I'm mirroring it for the backwards version. 2016-06-05 02:20:26 +01:00
toasterbabe
482c1ce665 Speed pads are now nicer.
Linedef type 4 now works as follows.
* Frontside x offset is dash speed.
* Effect 4 flag doesn't center the player. (same as before)
* Effect 5 flag sends them off in rolling frames. (as a result there is only one speed pad sector type now, not two)
* Frontside upper texture is sound to play on launch, defaults to sfx_spdpad when not given
2016-06-05 00:23:20 +01:00
toasterbabe
7c7a8413c9 Instead of hacking the existing Question Block thinker to ignore the object, let's just... not give the Brick Block a thinker in the first place. 2016-06-04 20:02:11 +01:00
toasterbabe
6f291d667e Bustable blocks revamped. I'm on a roll!
Linedef type 14 (Bustable block parameter)
* Applied to one of the linedefs of any FOF's control sector
* Concatenation of frontside textures is MT_ object type to spawn, defaults to MT_ROCKCRUMBLE1 if not present
* Sound played when being busted is object type's activesound
* Frontside x offset is spacing (in fracunits) of spawned particles, defaults to 32<<FRACBITS
* Frontside y offset is the fuse of spawned particles in tics, defaults to 3*TICRATE, if set to -1 assume infinite lifetime
* Effect 1/Slope Skew flag makes particles fly out

Linedef type 250 (Mario Block):
* No Climb flag turns it into a brick block (busts when hit from the bottom, player hits their head/fist/whatever, no more upwards momentum)
2016-06-04 18:59:24 +01:00
toasterbabe
1e6b213d6c Okay, this is way beyond the scope of the branch... but low-friction surfaces (ice, oil, etc) now:
* Actively impede your acceleration
* Make your animation speeds faster whenever you're moving (to give off that Looney Tunes effect)

The former change is something that was present in the few low-friction circumstances in the classics, and makes low-friction surfaces more of an active challenge. The latter change is just something I did for fun to more clearly communicate that things are different with the physics here.

High friction surfaces DO NOT involve any of this, since it ended up basically cheesing their existing gameplay.
2016-06-03 17:26:50 +01:00
Alam Ed Arias
083350cab2 whitespace cleanup 2016-06-02 21:25:04 -04:00
toasterbabe
27f825f41b Dedicated laser blocks flash less awfully now. 2016-06-03 02:23:27 +01:00
toasterbabe
55bb716c1e On FuriousFox's request: All waypoint sequences now use linedef frontside texture offset for speed and row offset for sequence, ending what is a very long reign of clusterfuck. 2016-06-03 01:30:07 +01:00
Alam Ed Arias
c23b40fa9c Merge branch 'public_next' into master 2016-06-02 18:39:08 -04:00