This is by far the most complicated effect in this guide. Credit to Gijs de Vries, whose map I tore apart to figure out how it worked. This effect uses a combination of three different effects: stretching/shrinking sectors, submergible water with sloped surfaces, and rising/lowering ceilings and floors. When a switch or touchplate is activated, all of these effects combine to make rising submergible water on a sloped surface. This demonstration is very specific, so follow each step to the note. Once you've finished making the effect for the first time, you should understand it enough to make your own in any style you wish.
Begin by switching to the largest grid size and creating these two sectors. The sector on the bottom is just for the player to start in. We'll be focusing on the top sector. It is very important that your top sector be exactly 5 grid squares horizontal, 3 grid squares vertical on the largest grid size. This is important because the values given to you throughout this example are designed with this exact setup in mind.
Create two rectangular sectors adjoining the left wall of the top sector. Don't worry about their size, because they will be resized and moved in the following steps.
Switch to the smallest grid size. Move the two rectangular sectors to the following positions. Note that one vertex from each sector will be overlapped and deleted. I turned off the grid in the image so you could see the sectors clearly. It is very easy to screw up on this step, so examine the image carefully. Each sector had one vertex which was overlapped and deleted when connected to the nearest corner.
Join the two sectors with a wall. Move the new wall and sectors to the exact middle (use Right Shift
to highlight them all at once). You may need to switch to a larger grid
size to determine the location of the middle point. Set the 'first
wall' (with Alt + F
) of all three sectors as shown in the image (shown as blue).
Switch to 3D mode and use the ]
key on the floors of all three sectors to slope them. press the ]
key exactly 3 times per sector. Texture the flat floor with water and lower it until it matches the lowest point of the sloped sectors.
From here on, the flat water sector will be referred to as the
'above-water sector'. Switch to 2D mode, and tag the above-water sector
[0,1]
. Tag the two thin sloped sectors [0,27]
. Turn grid locking off (with L
) and place the following sprites inside the two thin sloped sectors: S[0,20], A[0,Channel], Speed[0,OpeningDistance]
(these sprites must be placed within close proximity to each other). Angle both S
sprites to the left in 2D mode (so the sector will shrink when first
activated). For OpeningDistance, use a value of 2600. That value works
best just for this demonstration, but you'd have to experiment with it
if you had sectors of a different size.
Turn grid locking back on (with L
). Add the following sprites to the above-water sector: S[0,31], A[0,Channel], Speed[0,RiseSpeed]
.
For RiseSpeed, use a value of 48. Again, that value works best just for
this demonstration, but you may have to experiment with it if you use a
different setup. Make sure the angle of the S
is facing up. Raise the S
until its bottom matches the height of the slope's highest point (or
just use the floor beside it as a reference like I did). The height of
the S
indicates the water's final height.
Place either a T[NumberOfActivations,Channel]
or a switch tagged [ActivationSound,Channel]
.
We're going to test how the effect is coming along. I suggest a switch because it makes things easier at the moment. We're still only about half-way through setting up the effect, but it's good to take a break and see how it looks so far. From the test we can conclude if something has gone wrong in the process. If your water rises up the slope smoothly, and stops when it reaches the top of the slope, you've done everything correctly so far. Now, supposing something did go wrong (and there's a good chance something will), don't panic. Here are a few problems and solutions:
The water rises to the wrong height/doesn't rise at all!
Check that you've placed the three sprites in the above-water sector and tagged them accordingly. Also make sure the S
is angled up and raised to the proper height. If the water doesn't rise
at all, check to make sure the Switch and Activators all have the Same
Lo-Tag (Channel).
The water doesn't travel far enough up the slope/The water travels too far up the slope causing it to crash right through the wall!
This probably means you didn't pay attention during step one where I emphasized that the sectors be exactly the same size as in the image. But you may have just entered the wrong value for OpeningDistance. The correct value is 2600. If your value is correct but you still have a problem, you've done something wrong in the first few steps. Fixing this will take some experimenting, but it's quite simple. If your water travels too far up the slope, try smaller values for OpeningDistance until something works. If your water doesn't make it far enough up the slope, try larger values for OpeningDistance until the water reaches the top of the slope.
The water rises smoothly the first time I activate it, but after that it seems to pause before moving!
You've mistakenly given the S[0,31]
a Channel Hi-Tag. In fact, the Hi-Tag is an undocumented Delay value. Leave it as 0.
The water reaches the wall and rises to the proper height, but it moves way too fast/slow looking totally fake!
I have no idea how you pulled that off, but it means you need to adjust your water's RiseSpeed.
Hopefully you've got everything working properly up to this
point. This is a very complex effect so it's expected that everyone
will run into problems at some point. What we have left to do is make
the water submergible and get the underwater sector to rise/lower
properly. First we copy the whole above-water setup. Highlight the
sectors (using Right Alt
) and press Insert
. Then use the Left Mouse Button
to drag the copied sectors over to the right (make it an even number of
spaces, this will keep the floor textures in proper coordination with
the above-water floor textures). Once you've got a copy made, press Right Alt
to make it stop flashing green.
The copy will now be referred to as the below-water sector. Use Right Ctrl + Delete
to delete the large sloped sector between the two thin sloped sectors. Change the below-water sector's tag from [0,1]
to [0,2]
. Assign the below-water sectors 'first wall' (with Alt + F
) as shown in the image (shown as blue).
Switch to 3D mode. Texture the ceiling as water and texture the
floor with the same texture as used on the above-water slope. Use the [
key exactly 3 times
to slope the floor so it matches the slope above the water. Flatten the
slopes of both thin sectors, then raise their floors until they touch
the ceiling.
Add an S[Channel,7]
to both water sectors. Place the below-water S
at the lowest point on the slope. To do this, switch to 2D mode and
move it close to the first wall. Angle it away from the first wall, and
press the letter O
) on it. This will move it directly onto the first wall. Now switch to 3D mode and use Ctrl + PGDN
to set it directly on the lowest point of the slope. Once you've done all of this, you have to move the above-water S
to the exact same position in the above-water sector.
Change the tag of the below-water S[0,31]
to S[0,32]
. Angle it so its tail faces down. This changes it from a floor rise effect to a ceiling rise effect. Now the height of the S
indicates the water's initial height, and the height of the ceiling indicates the water's final height. Our S
is already set to the right height, so all we need to do is make the
ceiling match the height of the slope's highest point. For this
particular setup, all you have to do is press PGDN
once on the ceiling. If you had a different setup, you would have to experiment to get it just right. Use the O
key to orientate the walls of the below-water sector. This will force
them to stay motionless while the water rises. Finally, you can test
the finished product. This is what it should look like when raised:
There are a few things you can do to make the effect look smoother. You can pan the wall textures of the above and below-water sectors so they match. You can also try to hide the ugly ceiling movement above the thin sloped sectors by making them even thinner. One last thing, you could use a Masterswitch in place of the Activator if you want the water to rise only once. Now, in case something went wrong and your finished effect doesn't work, here are some more problems and solutions:
The below-water ceiling rises/lowers too far!
If the water rises too high, lower the ceiling a few units and try again. If the water lowers too far down, raise the S
a few units. Keep experimenting and testing until it works properly.
I have problems submerging into the water!
The above-water sector must be tagged [0,1]
, and the below-water sector must be tagged [0,2]
. Make sure the above and below-water S
sprites are in the exact same location in each sector. Also check that they are tagged correctly, and that the below-water S
is touching the lowest point of the first wall (the first wall is the axis for the slope). The above-water S
must be directly on the floor as well.
The below-water sector doesn't work at all!
You may have accidentally deleted some sprites, or changed sector Lo-Tags. Make sure the two thin sectors are tagged [0,27]
,
and that all of the sprites are present and tagged accordingly. A quick
rundown: you should have three sprites per thin sector, and four per
water sector (above and below). Also double check that the sprites
which need to be angled are facing the correct direction. If the whole
thing seems to be falling apart, start over and follow the steps more
carefully. Believe me, I understand the aggravation involved in
creating this effect (I had to reverse-engineer it and write this
tutorial).