Boom has a feature that allows the designer to draw a faked floor/ceiling, displaying a different "underwater" colormap when below it. This allows for convincing deep water without experiencing any HOM or other nasty side-effects. Sprites are clipped accordingly. The faked floor/ceiling is created by a dummy sector which has a new trigger (242) on one of its 1st-sided linedefs referencing to the affected sector... this "transports" the properties of the dummy sector's floor/textures to the affected one.
This is how it works. A dummy sector (control sector, CS for short) is made, with one of the 1st sided linedefs carrying the 242 trigger. This is tagged to the affected sector (the 'real' sector, RS for short, displaying this feature). The linedef carrying the trigger has three walls as usual: one for the lower texture, one for the middle, one for the upper one. In boom you can give these the names of alternative COLORMAPs, defined in your main wad between a special C_START and C_END dummy entry. The alternative COLORMAPS (eg "MYCOLOR") will be used when in certain parts of the affected sector. The COLORMAP can be made using a tool like Inkworks (229K) or by the utility CMAPTOOL found in the Editing Utilities package.
See the picture on your right for a diagram of which gets painted where. Firstly, the heights of the ceiling and floors, both real and faked. The real sector's ceiling and floor determine the real sector and floor height. The control sector's ceiling and floor determine the faked ceilings/floors between section A-B and B-C, as indicated by the black text.
The picture also depicts which textures are painted where, indicated by blue text. Section A has the control sector's flags and the COLORMAP indicated by the upper texture of the control linedef. Section B has the flags of the real sector and the COLORMAP indicated by the middle texture of the control linedef, while section C the one from the lower texture of the control linedef and the flags of the control sector.
An example follows below.
![[deep water]](gfx/boom1.jpg) |
SECTORS 1 : ceiling/floor 256/0 2 : ceiling/floor 256/-24; texture ceiling/floor A/B 3 : ceiling/floor 256/0; texture ceiling/floor C/D |
LINEDEFS a : has trigger #242 tagged to sector 2
|
The trigger 242 will "transport" the texture of floor/ceiling of dummy sector 3 to sector 2, drawing it at a height of 0. Result is a sector with an absolute (true) ceiling of 256 with ceiling texture A, a (faked) floor texture B at height 0 (the surface of the water as seen from above, if you will), a (faked) ceiling texture C at height 0 (the surface as seen from underwater) and an absolute (true) floor at height -24 with texture D (the bottom of the well). Properties of sector 2 (such as light level) will be seen in the "above water" section while properties of sector 3 will be seen only underwater.
To duplicate this effect just recreate the situation sketched above. Assign a dummy trigger (eg. "lights off") to linedef 'a' and tag it to sector 2. Use CLED to assign the correct trigger to linedef 'a' after compiling the level; this will change the trigger number but preserve the tag to sector 2. CLED's command-line parameter should be "cled mywad.wad linedef(mapnumber,linedefnumber).type=242".
If the control sector has a F_SKY ceiling then the result will be a "kaleidescope" effect.
You can also create a dummy sector with a ceiling/floor height of 0/-24, which will cause differences in which texture gets painted where and which sector's properties can be seen when. When the floor height of sector 2 is actually higher then the dummy one, the real floor is invisible like you're standing on air. For special effects you can apply tags to the dummy sector. For example, you can make the floor of sector 3 move up and down, to let the surface of the water rise and fall accordingly. Pretty neat, uh? :)
Setting A Floor/Ceiling Light Independently
Trigger 213 allows you to set a floor's light setting independently from the rest of the sector; trigger 261 does the same for the ceiling. This can be used to create a bright lava floor in an otherwise dark room. To recreate this effect create a dummy sector with the desired light setting. Give one of the dummy sector's 1st linedefs a dummy trigger and tag it to the affected sector. Use CLED to replace the dummy trigger with trigger 213, and you're all done. Trigger 261 does the same for the light setting on a ceiling.
Note that you can combine this with eg. Deep Water, tagging either the dummy sector or the affected one.
Translucent Walls
Tagging walls with trigger 260 makes them translucent. If this tag is equal to '0' (that is, when you 'just' tag a wall with this trigger) this linedef's normal middle texture is now translucent. You can't have translucent upper and lower textures for now. If the tag is not equal to '0' then all similarly-tagged 2s linedefs middle textures are made translucent using an alternative (valid!) TRANMAP lump as specified by the triggered linedef's 1st middle texture, thus allowing different modes of translucency in the same wad (much like defining which colormap should be used in deep water). If the first side's middle textures is not a valid translucency lump name, it will be displayed just as the normal texture. To get a tag that is not equal to '0' assign a dummy trigger to the intended linedef and tag it to a dummy sector. Do your things and assign the correct trigger, using CLED.
You can create an alternative tranmap lump by setting the desired percentage in boom.cfg, eg. 33%. Run Boom, quit and rename TRANMAP.DAT (to be found in your Boom directory) into eg. TRAN33.DAT. Use the utility found in the Editing Utilities package to convert the .DAT file into a .LMP which you can insert in your PWAD (but not between markers).