A maze program

Not what you would probably expect from me. This one is a 3D program with assorted frills, and the maze is not just a simple "thread your way through it" maze; there are dynamic features as well.

If anyone is interested in playtesting it, I'd love feedback. It's a GLX program, so you'd have to be able to build GLX code (with gcc, since I've used nested functions, though stock gcc will do fine since I haven't used labeled control structure).

If you're up for it, git clone git://git.rodents-montreal.org/Mouse/glx and build holomaze. You probably won't be able to use the Makefile directly, but it should be clear; in case it's not, you want to compile 2darith.c, 3darith.c, findvis.c, holomaze.c, and mathutils.c with -I. and whatever options are needed to find your X and GLX stuff, and link it all together with whatever options are needed to find the relevant libraries (for me, as the Makefile's LIBS setting implies, this means -lGL -lX11 -lm, with some library-finding options as well).

To move, use W and S to move forward and back, A and D to strafe left and right, and U and I to rotate the camera. Shift makes you move faster than usual; Control, slower. (There are a bunch more things you can do, but they are all undocumented developer-only options, many of which I would count as cheats, so I'm leaving it to people up to digging through the code to find them.)

At one place in the maze there is a big yellow circle on the floor. When you find that, step on it and you've succeeded!

There is one `secret' room; I added it as a developer support measure and never bothered taking it out. Finding it is perhaps very mildly helpful and in no way harmful.

There is no death; there should be no way to get yourself into a state you can't recover from. If you manage it, I'd like to know how, because it means I have a bug to fix.

And, of course, I'd be interested in any other reactions you may have.