Leaking maps: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Line 25: Line 25:


In the editor, open your map, and then select <code>File -> Pointfile</code>. This will insert a few red lines pointing from the inner world to the outside, hopefully helping you to pinpoint the leak.
In the editor, open your map, and then select <code>File -> Pointfile</code>. This will insert a few red lines pointing from the inner world to the outside, hopefully helping you to pinpoint the leak.
Every time you move something to try and fix the leak, you must save and dmap your map again.  An updated pointfile will be created (assuming the leak is not fixed or there is another leak somewhere else).


Another option is using <code>Edit -> Undo</code> or going back to a previously saved map version.
Another option is using <code>Edit -> Undo</code> or going back to a previously saved map version.

Revision as of 01:55, 29 November 2008

What is a leak?

A leak occures when the geometry of a map is not completely sealed.

In Doom/Radiant editing, the world is an infinite big empty space and your map is a small world placed inside this vacuum. The inner world must be completely sealed against this vacuum, or a leak occurs.

Maps with a leak will not compile and do thus not work at all.

[edit: Springheel] Leaks can also be caused by models. If the origin of a model occurs in the void, it can cause a leak, which is often difficult to track down. If the red line created by the pointfile (see below) does not make sense, check to see if any models have an origin outside the visible model.

How to detect leaks

The easiest way is to watch the console during dmap yourmapname. When a leak occurs, a red warning will be printed.

Other warning signs:

  • Newly added geometry is not showing up
  • You're colliding with invisible things, as the .cm file is still stemming from the most recent compiling version.
  • Textures are not updated (they didn't get saved into the .proc file)
  • Lights/shadows precalculation doesn't take effect.
  • AAS is no longer valid - this will break pathfinding.
  • The map won't run at all if the .cm/.proc files aren't available from a previous version.

How to fix leaks

In the editor, open your map, and then select File -> Pointfile. This will insert a few red lines pointing from the inner world to the outside, hopefully helping you to pinpoint the leak.

Every time you move something to try and fix the leak, you must save and dmap your map again. An updated pointfile will be created (assuming the leak is not fixed or there is another leak somewhere else).

Another option is using Edit -> Undo or going back to a previously saved map version.

Note that the dmap command will print some leak information to the console, which includes the entity the flood algorithm was able to reach from the outside. This can also help pinpointing the leak (sometimes entities are filtered or way outside the map). You can use DarkRadiant's Entity List to look up the entity by name then.