OMGIFOL - Oh my God! It's full of lumps!

A Python WAD library


Latest release

2006-03-17: omgifol-0.2

Project links

Sourceforge project page
Sourceforge project forums
Sourceforge project bugs

Contact information
--------

Info in Questions/Answers format:

What's this?

OMGIFOL is a Python library for manipulation of Doom WAD files. OMGIFOL is primarily intended to let people with little actual programming experience (or insufficient patience to write full WAD processors for single tasks) perform relatively powerful batch operations on WADs with relatively little effort.

Of course, batch processing is not its only purpose. In the future, OMGIFOL might get a GUI wrapped around it to become less esoteric for the novice user, and if you're feeling brave, you could try using it already as a plain CLI WAD editor for doing ordinary tasks (it's easier than you think, once you get the hang of it :).


So what, exactly, can be done with it?

OMGIFOL is still in its alpha phase, and there are more things that don't work than there are things that do. The things that work:

  • Loading WADs to memory and saving them back to files.
  • Inserting, moving, renaming and deleting lumps.
  • Loading raw lumps from files and saving them back.
  • Performing operations on multiple WADs simultaneously in memory.
  • Loading graphics from files and saving them back. As OMGIFOL relies on PIL for opening and saving image files, many formats such as PNG, BMP and GIF are supported. There are currently two issues with image importing: high-resolution graphics (taller than 255 pixels) cannot be loaded, and files must already be converted to Doom's palette before you import them.
  • A couple of other functions for various (hopefully handy) operations.

Remember that since OMGIFOL uses Python, which is a fully-featured programming language/environment, you aren't restricted to OMGIFOL's built-in functions in what you can do.

<ad> Tired of your favorite WAD editor having illogical restrictions that just annoy you and make work harder? Did you even try OMGIFOL, but noticed that it doesn't do a particular function exactly the way you want it to? No problem, just write a custom script or modify OMGIFOL itself to suit your needs. Since Python is a dynamic, interpreted language, no compilation is ever required. </ad>

Neat, isn't it? ;)


What's planned for the future?

The things I can think of at the moment:

  • Fixes to bugs and limitations (such as those related to loading graphics).
  • Better support for non-Doom 2 WADs.
  • Proper handling of different kinds of lumps.
  • Processing of the TEXTURE1/PNAMES lumps.
  • Advanced batch functions, such as compiling a whole WAD from a directory.
  • Functions to invoke external programs for unsupported actions. (For example, calling MUS2MIDI/MIDI2MUS to convert music files).
  • Possibly moving conversion functions to a C library for greater speed. This is unlikely, however, because it performs quite well already.

Now show me what an OMGIFOL-powered script looks like!

Here you go, a short script that exports all maps from the Doom 2 IWAD to separate WAD files (MAP01.wad, MAP02.wad, etc...):

    from wad import *
    w = WAD()
    w.Load("doom2.wad")
    for n in GetMaps(w, "MAP??"):
        n.Save(n.Lumps[0].Name + ".wad")

Don't think that's sufficiently self-explanatory? Well, read the box below.


So, yeah... where is the documentation? Tutorials?

You'll need to know the basics of Python before you can do anything useful with OMGIFOL. If you don't already know how to code Python, you probably want to start by checking out python.org's beginners' section, before you do anything else. Don't worry, Python is probably the easiest programming language around when it comes to learning, people with only a tiny bit of programming experience will pick it up in minutes.

At the moment, there are neither any tutorials nor any external documentation files for OMGIFOL. However, you can use Python's help() function to read the documentation inlined in the code, or simply peek into the OMGIFOL Python file (wad.py) to try to get a hint of how it works.

If that doesn't do the trick, feel free to ask.


Who's responsible for this? Whereat should I aim my help requests, suggestions and flames?

Yours truly is called Fredrik Johansson. There are various ways to contact me:

You may also check the OMGIFOL project forums, or head for the Doomworld forums, a good place if you need help with Doom/WAD editing in general.

--------
Go to the top of this page


Copyright © Fredrik Johansson 2003

Hosted by SourceForge.net


Valid HTML 4.01!