Exactly how to use bitsets to modify heights:
First off, determine how high you want it, what object it is, and what flags it has. When you right click on an object and hit Raw Data, it should show a box called bitset with something along the lines of 0x0007 in it. The last number is the flags used on the object: Easy, Normal, Hard, and Deaf. To give the object a height above zero, we're going to use that extra zero space in front of it to give it a height.
In order to do this, you should probably know how hexadecimal works. Hexadecimal is base 16, and has 16 "numbers", 0-9, a-f. The place value is by powers of 16, so there is the 1s place, the 16s place, the 256 (16*16) place, the 4096 place, etc. We're going to do our calculations in decimal (Base 10, what we normally use), and convert them to hexadecimal afterwards. However, the number you get will make more sense if you know how bases work. It should still work even if you didn't understand a word of that, though.
Now to actually give it a height. For most objects, the Multi flag will not do anything, so it is ignored completely. For these objects, you multiply by 16. A few objects, the player starts and Eggman, use the Multi flag and henceforth need to be multiplied by 32.
The math itself is VERY simple.
object height * multiplier + original flags = bitset
Object height is the height you want to make it. The multiplier is what you multiply it by so it's not affecting the original flags, and the original flags are what you see when you look at the bitset.
As an example, let's place a ring 1024 units above the ground. Note that this height is above the ground, not the absolute height. So if the floor is 1000, this bitset would place the object at 2024. The ring's normal bitset is 0x000f. F is a 15 in decimal. Remember how hexadecimal works, so 0x000a would be 10 and 0x000f is 15. A ring is not a player start or Eggman, so its multiplier is 16. Hence the formula is:
1024 * 16 + 15 = 16339. Use a calculator to convert that to hex, and you get 400F. Often, hexadecimal numbers are written 0x400f to signify that they're hexadecimal, but in math, they're written with a subscript of 16 to signify they're in base 16. I will always use 0x to signify a hexadecimal number.
Now, all you have to do is place that in the bitset, or at least you would in 1.09. Unfortunately, 1.08 does not understand what the Deaf flag means when bitsets are used. The Deaf flag on a ring makes the ring hover 32 units above the ground to make it look correct. Henceforth, we need to add 32 to our original height if we want it to hover 32 units above the FOF.
Since we already know the formula and how to use it, this should be a piece of cake. Since we're removing the Deaf tag because it doesn't currently work, remember to make the ring not Deaf, so when 1.09 comes out, it won't go even higher than you make it. A non-Deaf ring with all difficulty levels will be a 0x0007 bitset. 1024 + 32 = 1056. 1056 * 16 + 7 = 16903. 16903 converted to hexadecimal is 0x4207. Now all you need to do is Edit Raw Data, place that bitset on the ring, and you're good to go.
Also, when applying the bitset to a lot of objects, do note that WadAuthor is annoying and doesn't let you select a lot of objects and alter their bitsets at the same time. However, when you copy and paste, it DOES save the bitset given to it, so a good way to set the bitset of a lot of objects is to do one, copy it, and paste it to all the locations where you want the altered bitset.
That's absolutely all there is to bitsets. I know it sounds really hard with all of that information, but in reality, it's really quite simple math. Try it a few times and you'll find out how easy it really is. I also suggest PCalc (
www.analogx.com) for doing the calculations, because it's a damn lot nicer than the calculator that comes with windows for doing hexadecimal numbers.