![]() |
ARTICLES |
![]() | ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
As before, this information is, for the most part, intended for WDFUSE users who have an understanding of the basics and a decent knowledge of INF. Keep in mind that there's almost always more than one way to achieve a result. The methods I use here are not necessarily the best or easiest ways to handle their respective tasks. Think of these as starting points from which to develop your own personal techniques that are easiest for you. This time around, I focus on a few somewhat subtle things. Good luck, and if you have a problem, write me or post your question on the Message boards. Making Walls ScrollThe scroll_wall elevator is a personal favorite of mine. Its many uses include waterfalls, animations, sequencer charges, etc. There are a few things I want to cover. Very quickly: The INF for an 'elevator scroll_wall' needs to be placed on a sector, not directly on the wall you want to scroll. You control which walls scroll using a wall's Flag 1 (bit 64 / 128 / 256 / 512). With that out of the way, let's start with a waterfall. Place the following on the sector : seq The speed is adjustable. Place the correct bits on flag 1 of the wall, and that's it. Now, let's go a little beyond the basics. The graphic below displays the appropriate angles that you would use if you wanted to scroll a wall in a direction other than straight down. Notice the ".01"'s. This is because I have noticed that if you set the angle to 90 or 270, the wall will not scroll completely parralel to the floor. See for yourself; set a wall to scroll (at a fast speed) at an angle of 90. Test the GOB and watch the wall scroll by for about a minute. You'll see it gradually move upwards... Next up: Animations. Here's how to make a simple fan. Start with the INF: seq Works like a normal elevator, except that the stops are measured in pixels instead of DF units (1 DFU = 8 pixels). You can make great use of this with custom BMs. By changing the event_mask, stops, etc., you can create a variety of effects. Sky Offsets
You'll see this in a lot of levels:
It may not be the end of the world, but if you can fix it; why not do it? Try this: Take a look at the sector with the sky texture (Flag 1 bit 1). What you need to change is the sector's "Ceiling Tx Z Off". Setting it to 126.00 will align the top edge of the texture with the top of the screen (when looking up). Ain't that something? The number 126 causes the sky texture to move 126 pixels upwards from the top of the screen when the player's view is centered. If you wish to tweak the positioning, then simply add to the 126 to move it up, and subtract to move it down. While I haven't done any experimentation, I assume that adjusting the PARALLAX settings in your .LEV file's header may alter the effect of the offset. Back-up
This is only here because of its great importance. Can't stress it enough. Back-up your work to a floppy disk or two. You won't regret it, but you might regret not doing it… The "Hexagon Trick"
Try creating a hexagon shaped (6 sided) sector / subsector / gap using the Polygon tab of WDFUSE's Tools dialog. Notice that the walls of the new sector are the same length as the sector's radius. For instance, if you build a sector with 6 sides and a radius of 16; you'll end up with a hexagon with 6 equal, 16 DFU long walls. I find this quite useful, but not everyone will see its value… Creating a looping VOC
Now let's get a bit more technical. I'll assume you know what a VOC is. A "looping" VOC is a sound file that plays continuously, restarting whenever it finishes. Examples include the wind and water sounds in DF. Normally, when you create a custom VOC using a program like GoldWave, it will not loop properly when used as an ambient sound object, an elevator moving sound, etc. This is copied directly from a message board posting I made back in December of 1999. Some changes were made, but nothing major: I'll try to make this as simple as possible. You need 2 things: 2. A looping VOC. I'll assume you're using frhed (see hex editor link). |
![]() ![]() |