A way to disable the underwater reverb of a 3D floor

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: A way to disable the underwater reverb of a 3D floor

Re: A way to disable the underwater reverb of a 3D floor

by Graf Zahl » Mon Jan 11, 2021 2:42 am

Just an example: Imagine we decide to add some view warping for underwater sectors. That would also trigger on the ladder - which is clearly not expected. So we'd have to add the next exception - but since this is an old mod it won't have that feature toggled off.

Re: A way to disable the underwater reverb of a 3D floor

by Rachael » Mon Jan 11, 2021 1:16 am

He isn't talking about that. He's talking about using underwater sectors in a way they clearly weren't made for. And while I can't think of anything that is likely to break anytime soon due to using underwater sectors for ladders, it still has a whole host of problems and additional consequences that obviously the map author did not consider, and if GZDoom ever does expand the concept of underwater any more than it already has, his mod would be impacted by those decisions as well.

Re: A way to disable the underwater reverb of a 3D floor

by Misery » Mon Jan 11, 2021 1:10 am

Graf Zahl wrote:Hacks like this is what commonly breaks mods.
It would really break the game? Isn't underwater reverb just a boolean?

Re: A way to disable the underwater reverb of a 3D floor

by Graf Zahl » Mon Jan 11, 2021 12:56 am

Hacks like this is what commonly breaks mods.

Re: A way to disable the underwater reverb of a 3D floor

by Misery » Sun Jan 10, 2021 6:38 pm

Code: Select all

script 0 (int down)

{
	int z = GetActorZ (0), >> 0;

	if (GetActorPitch (ActivatorTID ()) > 1024) down = !down;

	if ((down && z > LADDER_BOTTOM && z < LADDER_TOP + 24) || (!down && z < LADDER_TOP))
	{
		SetPlayerProperty (0, 1, PROP_FLY);
		ThrustThingZ (0, 16, Down, 0);
		SetLineBlocking (LADDER_FRONT, BLOCK_CREATURES);
		SetLineBlocking (LADDER_BACK, BLOCK_CREATURES);

		ladder = 1;
	}

	else
	{
		SetPlayerProperty (0, 0, PROP_FLY);
		SetLineBlocking (LADDER_FRONT, BLOCK_NOTHING);
		SetLineBlocking (LADDER_BACK, BLOCK_NOTHING);

		if (ladder)
		{
			if (!down) ThrustThing (128, 8);

			ladder = 0;
		}
	}
}
This is the code used in Knee Deep In ZDoom (Z1M3). No underwater reverb, no drowning, etc. Maybe this could serve as a viable alternative.

Re: A way to disable the underwater reverb of a 3D floor

by Nash » Sun Jan 10, 2021 6:37 pm

Yeah don't try to hack engine features to do what they're not meant to do. There so many more little details hardcoded into the underwater movement and physics beyond just reverb and drowning. Don't order a cheeseburger without cheese yadda yadda.

Just implement a proper ladder system. There are several ways to properly do it, using either DECORATE, ACS or ZScript.

Re: A way to disable the underwater reverb of a 3D floor

by SPZ1 » Sun Jan 10, 2021 6:30 pm

I noticed this...
This would also allow the player to drown on the ladder.
Looks like it would also need something such as a new SetActorProperty to specify that oxygen wouldn't run out. :( Otherwise you would just have to hope that the player wouldn't stop on the ladder for too long.

Re: A way to disable the underwater reverb of a 3D floor

by Enjay » Sun Jan 10, 2021 5:53 pm

SPZ1 wrote:I use a swimmable sector to simulate a ladder.
Perhaps worth mentioning that if someone has the Tilt++ mod loaded ( viewtopic.php?t=55413 ), there is a good chance that the underwater view rotating and shifting effect of that mod would probably engage while they were on the ladder.

Re: A way to disable the underwater reverb of a 3D floor

by Misery » Sun Jan 10, 2021 5:13 pm

viewtopic.php?f=3&t=50063

A way to disable the underwater reverb of a 3D floor

by SPZ1 » Sun Jan 10, 2021 3:59 pm

I'm asking for this because I use a swimmable sector to simulate a ladder.

Top