Tunnel 0.10
 * Martin Wikstrm
 * 2006
 * http://www.waxjism.org/nail

A 3d (OpenGL) tunnel - first person shooter - without the shooting.

This is just something I made again. Serves no other purpose but to have
been an interesting thing to make. You walk around in a world made of
tunnels in space. That's it. Just you and your tunnels.

Keys
 * esc			Exit program
 * WASD			Move around
 * right mouse button	Jump
 * TAB			Picasso mode
 * F			Fly mode
 * Return		Normal mode
 * R			Regenerate world

It is possible to sometimes fall off the world. Especially in picasso
mode. Should this happen you can try to get back in through the same
gap you fell out from, or trying to sqeeze into some corner while
switching modes all the time. If you fall of the bottom of the world
you reappear in the top of the world.

In picasso mode objects are not reloaded. That means stuff that weren't
loaded cause of being too far away, will still be gone when you get
there in picasso mode. This leaves a gap in the system where you can
fall through.

Have fun!

Here's the complete changelog...

//Tunnel 0.1
//This is going to be a small program where you can dig tunnels by walking into
//the walls. This version:
// * Simple room and tunnel design done
// * All vectors allocated in an array before being displayed
// * Everything displayed is touchable (hinders movement)

//Changelog 0.2
// * Added mouse view
// * Movement keys: WASD
// * Added pillars
// * Moved tunnel design related stuff to design.h

//Changelog 0.3
// * The tunnels are now loaded dynamically in sectors so parts far away, out
//   of sight, are not loaded
// * Sector based movement - walking out in one end of the sector moves you back
//   to the beginning while the world reloads with new positions

//Changelog 0.4
// * You can now make your own tunnels by walking into the "cap" walls
// * Windowed caps are created where a tunnle would intersect another
// * Ditched the sector thingy - world is reloaded every few steps not loading
//   parts that are far away

//Changelog 0.5
// * Tunnels are now digged out automatically by a phantom digger - however own
//   digging is not hindered
// * All diggable caps are turned into windowed caps when the parts array is
//   full - this prevents open holes where you can fall out of the tunnel sys

//Changelog 0.6
// * The cursor now unsticks when the window looses focus
// * The cursor is hidden while the window has focus and returns when focus is
//   lost
// * Cursor position does not effect view when window is unfocused
// * The view moves automatically to horizontal position to prevent getting
//   stuck looking straight up or down
// * Maximum time between frames is tweaked so you don't drop through the floor
//   when the program is lagging
// * Just for fun I added Picasso mode by pressing back space - normal mode on
//   return
// * Right mouse button jumps

//Changelog 0.7
// * Added semi transparent glass to the windowed cap
// * split hitwall() into hitwall() and retcpnt3() and moved recpnt3() into the
//   vec3 function header (vec3.h)
// * The automatic world modification is now restricted to the init
// * You add to the world by klicking left mouse button near a cap
// * To make all objects visible through the windows all glass' are drawn after
//   the other objects - to make this faster references to the glass polygons
//   are saved in an array when the rest of the objects are drawn

//Changelog 0.8
// * The entire world is now built during init
// * Added doors
// * Added a windowed room
// * Only normal tunnels may lean now - added a steeper version too
// * Added a map to the floor of the first room
// * Removed the possibilitty to expand the world by hand

//Changelog 0.9
// * Modified some of the parts so corners don't make wide rooms intersect each
//   other
// * Added acorner with three doors - as opposed to four
// * Modified the expandworld() function - now it's more logical

//Changelog 0.10
// * Tweaked the expandworld() function again to prevent ugly intersections
// * Added key F for flying mode
// * Added key R for new random world
// * Switched Picasso mode to key TAB
