There are a number of new features and capabilities of the Source engine which the Half-Life 1 mapper may wish to take advantage of. This is not intended as a complete list of all new features, but should be enough to get you interested in exploring some of the new capabilities of the Source engine.
For more reading on other aspects of map conversion, see Source Mapping for Half-Life 1 Mappers.
Fire and Smoke
There are two new entities which are excellent for creating fire and smoke effects. They are env_fire and env_smokestack. They should be pretty self explanatory to use and create. If you aren't sure of what values to set, just use the default values you get when creating a new instance of these entities in Hammer.
Steam and Fog
To give your map fog, place an env_fog_controller entity in the map. Setting it's keyvalues control how "thick" the fog is in your map. To create a steam jet (like you'd have in a broken pipe), create an env_steam entity. Point it the direction you want the steam jet to go, and trigger it to create a blast of steam.
Rain and Snow
To create rain or snow, place a func_precipitation brush entity covering the area where you want to have precipitation. Set it's attributes to the density and type of precipitation you want.
Ropes and Wires
To create hanging wires and ropes in your map (such as power lines), place a move_rope entity at both ends of where the line should be. Give one of them a name, and set the Next Keyframe value in the other to this name. You should see a line representing the wire/rope in Hammer's 3d view.
Also see Cables and Ropes.
Dust and Splashes
To create a floating dust mote effect, make a func_dustmotes brush entity. The space in the entity will be filled with small floating dust motes. Very effective where you are simulating sunlight shining in a window for example. To make a splash happen in water, place a env_splash point entity over the water surface where you want the splash to happen. When triggered, the entity creates a "splash" effect on the water's surface.
If you want to make a brush based object be a "physics" object, make it a func_physbox.