Valve Hammer Editor
If you're interested in porting a map from one Half Life mod to another, this tutorial will show you how to do it. EG if you want to port a Condition Zero map to Half Life, this will show you how to do it.
Step 1: collecting assets
Extract Resgen to the source directory of the maps which you want to copy. Click and drag the maps you want to copy onto resgen.exe.
Resgen will dump some *.res files, open these up. The *.res files will tell you which WAV, TGA, MDL, SPR and WAD files you will need to copy over. Make sure when you copy these files that you retain file directory structures!
Once you have copied these files, copy over your maps. You should now be able to load up the maps, but many of the entities probably won't display properly (or at all).
Step 2: fixing entities
Run BSPedit, and direct it to your mod's map directory. It should show up the maps which you have copied over.
Load up one of these maps, and start looking at the entities. Typically you will need to change MONSTER_ WEAPON_ or AMMO_ entities. A simple way of doing this is to copy all the text you see into notepad, and using the "replace" tool.
For example, if you want to convert a Condition Zero map to Half Life you would use replace all "weapon_m4a1" to "weapon_9mmar", or "monster_ct_gsg9_mp5" might become "monster_barney".
Some maps may have props in. If they do, you will need to convert the props from something like env_model/item_generic to a cycler_sprite (buggy) or env_sprite.
Paste this text back into BSPedit, and save the map. Load the map up in game, and with any luck it should run more or less perfectly!
You may that find some games with unusual entities don't work quite properly. These maps will require further editing.
Step 3: further editing
If Step 2 isn't enough, you will need to do some further editing.
A typical problem encountered may be that some doors may not open in your map. If this happens you will need to decompile the map, and load it up in Hammer. Look for the problematic door, and note down the entity name.
Load up BSPedit again, and search for that entity name. This should bring up the problematic door in question. Rename this door to func_derp or some other useless name - this will result in the door not appearing in game.
Afterpoint: adding more detail to a map
If you want to add in more detail/entities to your map, you can do so with Hammer and BSPedit.
Load up a decompiled map in Hammer, and start adding entities as you please. As you add the entities, note down the entity name, X Y Z coordinates, targetname, and angles.
Once you have all the entities you want added, close down Hammer and load up BSPedit. We now need to copy the entity names, X Y Z coordinates, targetname and angle data of the new entities into the original compiled map.
There you have it! This is a complicated process to go through, but once you get the hang of it becomes easy.