-- DDDDD AAAAA EEEEEEE DDDDD AAAAA L U U SSSSS D D A A E D D A A L U U S S D D A A E D D A A L U U S D D AAAAAAA EEEEEE D D AAAAAAA L U U SSSSS D D A A E D D A A L U U S D D A A E D D A A L U U S S DDDDD A A EEEEEEE DDDDD A A LLLLLLL UUUUU SSSSS ** VERSION 2.2 ** Daedalus: The world's most sophisticated Maze program! :) Daedalus is a program that allows one to create, solve, analyze, view, walk through, and most of all have fun with Mazes. Daedalus is 100% freeware with no registration fee! It will run on Windows 95 and beyond, and all newer versions of Windows and NT. -- ********************* DAEDALUS FEATURE LIST ********************* Maze creation methods: Perfect Mazes (standard simply connected Mazes). Braid Mazes (Mazes without dead ends). Unicursal Mazes (Mazes consisting of a single path without junctions). Labyrinths (special unicursal Mazes used for spiritual purposes). 3D Mazes. 4D Mazes. N-dimensional Mazes up to 16 dimensions. Weave Mazes (2D Mazes with over and under passages). Crack Mazes (Mazes with passages at random angles). Arrow Mazes where you can't go against the arrows. Theta Mazes (Mazes with passages in concentric circles). Delta Mazes (Mazes composed of interlocking triangles). Sigma Mazes (Mazes composed of interlocking hexagons). Upsilon Mazes (Mazes composed of interlocking octagons and squares). Zeta Mazes (orthogonal Mazes with diagonal passages). Mazes on non-standard topology, e.g. on surface of a Moebius strip or cube. Mazes composed of interlocking spirals. Nested cell fractal Mazes (Mazes composed of smaller Mazes) Infinite recursive fractal Mazes (Mazes containing copies of itself) Hypermazes (3D Mazes where you move a line, with the solution a surface). Standard Mazes generated with a recursive backtracking algorithm. Standard Mazes generated with Prim's algorithm. Standard Mazes generated with Kruskal's algorithm. Standard Mazes generated with the Aldous-Broder algorithm. Standard Mazes generated with Wilson's algorithm. Standard Mazes generated with Eller's algorithm. Standard Mazes generated by making a binary tree Standard Mazes generated by adding walls instead of carving passages. Infinitely long Mazes limited only by your patience or disk space! Maze solving methods: Dead end filler. Blind alley fillers. Wall follower. Recursive backtracker. Shortest path finder. All shortest paths finder. Collision solver. Cul-de-sac filler. Maze creating utilities: Create Mazes where you specify the shape and computer does the rest. Create Mazes where you specify the solution and the computer does the rest. Create biased Mazes with passages tending to go along one axis. Create Mazes with "run" tending to have longer straightaways. Create Mazes with symmetric passages Create "segmented" Mazes with different sections having different textures. Maze solving utilities: Walk through a Maze in a 3D first person perspective view from inside. Semitransparent walls you can see through in 3D first person view. Fog effects where walls fade into the distance in 3D first person view. Texture mapped walls and ground decorated with pictures in 1st person view. "Breadcrumbs" feature to mark your path while in 3D first person view. Partial dead end fillers (see how the main false paths are arranged). "Radar" feature to prevent you from entering short blind alleys. Flood passages and walls. Distance graph features to show how far all points are from each other. Other Maze utilities: Find and reconnect all detached walls in a Maze. Find and break into all inaccessible sections in a Maze. Remove all dead ends from a Maze (converting to a Braid Maze). Find all bottlenecks in a Maze (areas that all solutions go through). Add more walls to a Maze (that won't create inaccessible sections). Add and remove entrances. Analyze passages (count dead ends, junctions, longest passages, etc). Analyze walls (count corners, straight sections, longest walls, etc). Timer to measure how long it takes you to get through a Maze. Move counter to measure the distance you travel through a Maze. Extra graphics features: Display passages and walls in any color. Display using color fades and rainbow fades. Overlay two or even three images together. Zoom, flip, rotate, smooth, thicken, and make thinner bitmaps. Create antialiased color images. Draw 3D orthographic overviews of bitmaps and 3D bitmaps. Draw perspective views of bitmaps with an infinite vanishing point. Draw truly perspective 3D scenes of bitmaps or other objects. Macro and scripting features: Automate actions or write whole programs in macros and script files. Sample games: Survivor Maze challenges - Find checkpoints in the Maze. Sample game: Glacier Maze simulation - Fun with bridges in a fence Maze. Sample game: Stocker Farms simulation - Explore a Halloween corn Maze. Sample game: 4D Maze - Walk through a 4D Maze from a first person view. Sample game: 5D Mazes - Animate and solve Mazes in up to 16 dimensions! Sample game: Gigamaze - Walk through a Maze larger than the planet! Sample game: Word Mazes - Create Mazes in the shapes of words. Sample game: Dragonslayer - Fight creatures in a random 3D dungeon. Sample game: 3D Pac-Man - The classic arcade video game reproduced. Sample game: 3D Sokoban - The Japanese box pushing puzzle game. Sample game: Survivor squares challenge - Run the computer out of room. For a quick demo of some of the cool things Daedalus can do, start the program, press the "Shift+V" key to create a Weave Maze, select "Clarify Weave" on the Maze menu to start exploring a first person perspective view of the Maze, then use the arrow keys and try to reach the exit. Notice the bridges you can climb over and go under. -- ************************ INTRODUCTION TO DAEDALUS ************************ Daedalus can be considered a glorified bitmap editor. The content you work with in Daedalus are basically bitmaps, usually monochrome bitmaps of Mazes. What you see in the Daedalus window is always a view of a bitmap. This may be either the entire bitmap, a magnified subsection of it, or a special view of some part of it, such as a 3D first person perspective view from inside a Maze. The simplest Mazes in Daedalus are orthogonal where each passage and wall is one pixel wide. For these standard Mazes it's assumed the even numbered rows and columns are walls, where the odd number rows and columns are passages. The default settings for the Daedalus window have walls be white "on" pixels while passages are black "off" pixels. Note when printing you probably want the colors reversed, as the background of paper is white while things printed on it are black. You may also want the walls to be thinner than the passages. It's easy to change these things in the program so they look the way you want: Use the Zoom Bias command on the Maze menu to set passage and wall size, use Invert All on the All submenu of the Bitmap menu to reverse the screen, or change the Passage and Wall color in the Set Colors dialog on the Edit menu to reverse the colors permanently. An easier way to change these settings is simply to select the Polished Mazes command on the Create menu, i.e. press the "/" key to put the current and all future Mazes in a form ready to print. There are two bitmaps in Daedalus: (1) The main bitmap, which most commands operate upon. In most cases what you see in the window is this main monochrome bitmap. (2) The color bitmap, which can have pixels in any 24 bit RGB color value. If you're not viewing the main bitmap, you're viewing the color bitmap, where you can switch back and forth between them. The contents of the color bitmap are often a variant on the main bitmap, e.g. the main bitmap indicates where walls are in a Maze while the color bitmap indicates the color of the walls and floor, where certain commands set the contents of the color bitmap based on the main bitmap. Both types of bitmaps above can exist in three locations, for six bitmaps total: (a) The main bitmap and main color bitmap, which is what's being viewed or operated upon. (b) The temporary bitmap, which the main monochrome or color bitmaps can be copied to or from. Some commands may change or use this bitmap, and you can also copy to or from it yourself as an undo buffer. (c) The extra bitmap, which is like another temporary bitmap. 3D Mazes and similar Maze types are expressed as a list of 2D bitmaps arranged next to each other within a larger bitmap, one subbitmap per level in the "3D bitmap". When you start Daedalus, you'll see a 64x64 pixel bitmap with a 31x31 passage Maze drawn within it. The default display settings zoom the bitmap so it fills as much of the window as possible, even though the internal bitmap is still only 64x64. The easiest thing to do with the program is select the commands on the Create menu to draw various types of Mazes. You probably want to use the size changing menu commands to make the bitmap and hence the Mazes you create on it larger or smaller. Daedalus however is mainly designed to be a advanced Maze editing environment. All the various commands may seem confusing at first, where the program has 430 separate menu commands and 20 dialogs. In general you can do anything in Daedalus, although it may take several steps and some thought about what steps to take to do what you want. For those familiar with an astrology program I wrote called Astrolog, which is powerful although not necessarily the easiest to use, know that Daedalus is just like Astrolog, only more so. :) To learn about different types of Mazes and ways to create and solve them, see http://www.astrolog.org/labyrnth/algrithm.htm for a Maze algorithms page, and http://www.astrolog.org/labyrnth/glossary.htm for a dictionary of Maze terms. -- ************** DAEDALUS MENUS ************** File Menu: This contains all commands dealing with loading to or saving from the main bitmap. It also deals with settings for files, and has system commands concerning the program in general such as the About dialog. Edit Menu: This deals with all low level operations of the program. This includes clipboard commands, random number settings, and the program's timer. It also deals with fundamental display settings, such as the color palette being used, and how to draw the current bitmap being viewed. Dot Menu: This contains everything dealing with "the dot". The dot is like a cursor positioned over a particular pixel on the bitmap. The dot can be moved around, the bitmap can be edited based on the dot, and special displays can be centered on the dot like the 3D first person inside view where the dot indicates where you are. Bitmap Menu: This contains general graphics commands that operate on the bitmap as a whole, such as clearing, resizing, zooming, and copying. Some of these commands only operate on the main monochrome bitmap, but most will do a similar action on the color bitmap if the color bitmap is being shown. Color Menu: This contains all commands affecting the color bitmap, such as the ability to load or copy to it, and save or copy from it. Most commands set the color bitmap in an interesting way based on other bitmaps, although some operate on the color bitmap itself. Maze Menu: This is similar to the Bitmap menu but contains commands that operate on the main bitmap that are associated with Mazes. This includes Maze generation commands that use what's already on the screen as a basis of what they do. Create Menu: This contains all the ways of creating different types of Mazes and Labyrinths. Most of these commands will draw a 100% computer generated Maze within the bounds of the main bitmap. Solve Menu: This contains all the ways of partially or completely solving different types of Mazes. Draw Menu: This contains advanced graphic commands which operate on the main bitmap or other data in memory and have as their result another bitmap. This includes simple orthographic views of 2D and 3D bitmaps, along with general wireframe and polygon based true perspective graphics scenes. These aren't related to Mazes, but can be used to create nice displays of Mazes or other things. -- ********************************** DAEDALUS MENU COMMANDS - FILE MENU ********************************** File Menu: This menu contains all commands dealing with loading to or saving from the main bitmap. It also deals with settings for files, and has system commands dealing with the program in general such as the About dialog. Open...: This allows one to open any file into the program so long as Daedalus supports its format. Daedalus will determine what type of file is being opened and do the right thing with it. This is basically a union of the Open Bitmap, Open Text, Open X11 Bitmap, Open 3D Bitmap, Open Script, Open Color Targa File, Open Wireframe, and Open Patches commands. Run Script: This submenu allows automatically running any of the 15 scripts that come with the program. To run a script, you can also manually select the script file in the Open or Open Script dialogs, or double click the file for the script outside the program altogether. Most but not all scripts also have an icon in the Daedalus program group created by setup, that will run it. Note in every script that comes with Daedalus, you can press F1 to display a help message, listing what all the keys defined in that script do, and without affecting anything else in the script. Demos: This script displays a menu of 18 demonstrations of Daedalus features. Once the script is loaded, press the following: F2: Animates yourself randomly moving though a Maze with different colored walls. Notice the gradual changes between day and night. Shift+F2: Animates yourself moving through a 3D Maze. F3: Displays a series of random Mazes created with different algorithms, one after another. Shift+F3: Creates a series of Mazes in different algorithms, where you can see the Mazes get generated. F4: Draws an orthographic view looking across a Maze with 3D walls. Shift+F4: Draws a perspective view of looking down on a Maze from above. F5: Draws a Planair style Maze on the surface of six cubes, seen face on. Shift+F5: Draws a Planair style Maze on the surface of eight cubes, seen edge on. F6: Draws a rainbow colored Chartres Cathedral pattern Labyrinth. Press "i" to enter first person view where you can walk through it. Shift+F6: Draws a rainbow colored classical seven circuit Labyrinth. F7: Animates you flying over a Maze with 3D walls, seen in perspective and color. Shift+F7: Animates you flying over a 2D Maze drawn on the ground, seen in perspective and monochrome. F8: Draws an orthographic view of the Escher room in the ESCHER.D3 sample file. Shift+F8: Draws an orthographic view of the castle from the CASTLE.D3 sample file. F9: Does animations of a random cellular automaton, where colors of the rainbow flow into each other. Shift+F9: Does a colored animation of random sequences of the game of "Life". F11: Draws a perspective scene of geometrical shapes, from the SOLIDS.DP sample file. Shift+F11: Animates you flying around the scene of geometrical shapes. Word Mazes: This script creates Mazes in the shapes of words. You specify a line of letters or characters you want to use to form the Maze. The Maze can be drawn inside letters, be a rectangular Maze with letter shaped open spaces within, or the letters can spell out the solution to the Maze in an obvious or hidden fashion. World's Largest Maze: This script allows you to explore a Maze, however the Mazes created here are enormous, and measure at least a billion passages on each side! A life size version of one of these Gigamazes, with six feet between passages, would cover the surface of the Earth over 19000 times. Visiting one cell per second, it would take over 31 years to walk from one side of the Maze to the opposite side, and that's assuming no walls are in your way! A bitmap of one of these Mazes would require 500 million gigabytes of RAM to store in memory all at once, therefore only the parts of the Maze near your location are actually loaded into memory at any one time, like a view under a magnifying glass. Each Maze is perfect with exactly one solution, where although the Maze is "virtual", each section of a given Maze will be generated the same way every time you visit it. This uses the program's nested cell fractal Maze algorithm to generate the parts of the Maze being viewed. The Mazes here can be considered the largest finite Mazes ever created, and perhaps the hardest puzzles ever too. 4D Mazes: This script allows you to explore a four dimensional Maze from a first person perspective! The fourth dimension is represented by magic portals which go forward and back through time or space, so the 4D Maze is seen as a sequence of 3D Mazes. This is one of the only games ever made that allow you to experience a 4D Maze in first person. 5D Mazes: This script creates Mazes in multiple dimensions. You can create a Maze with anywhere from 2 to 16 dimensions, where you see a 5 dimensional Maze to begin with upon starting the script. Multidimensional Mazes are expressed in wireframe form here, with a line for each passage. Each dimension has its own horizontal and vertical offsets, like the 3 axes of a cube have when a cube is drawn on a plane. The whole Maze animates by default too, which helps distinguish different dimensions which may overlap at times. Note watching Mazes or cubes with a high number of dimensions animate may cause dizziness or headaches. Don't say you weren't warned! ;) Dragonslayer Game: This script is a dungeons and dragons type game taking place within a multiple level Maze. It's a simplified first person perspective version of computer games like Rogue or Nethack. Your goal is to find your way down to an evil dragon, and slay him. You can fight 26 different monsters and use 50 different items. Pac-Man Game: This script is a reproduction of the old arcade video game of the same name, with the exact same Maze and all, but you play from a 3D first person view. Your goal is to eat all the dots in the Maze, avoiding the monsters which want to eat you. Sokoban Game: This script is a 3D first person view version of the box pushing game Sokoban (Japanese for "warehouse keeper"). There are 85 levels total, which are the standard 85 levels seen in some other Sokoban implementations. I've given a unique title to each level. Survivor Squares Game: This script plays a non-Maze game where you move on a game board and try to run the other seven computer players out of room before running out of room yourself. Squared Off reproduces the episode 9 immunity challenge from the original CBS "Survivor" series. Survivor Maze #1: This script is a Maze solving game, where you have to find and visit five checkpoints located within a Maze in order and then exit, all as fast as you can. This is a copy of the Maze from the episode 5 immunity challenge in the CBS TV show "Survivor II: The Australian Outback". Survivor Maze #2: This script is similar to the first Survivor Maze game. You start in the center of a circular Maze, where you must visit five checkpoints in order, and after each checkpoint you must return to the center. Returning to the center after the final checkpoint finishes the game and will display your time, and you're rewarded by getting to climb the central stand and look out over the Maze. This is a copy of the Maze from the episode 6 immunity challenge in the CBS TV show "Survivor IV: Marquesas". Survivor Maze #3: This script is another similar Maze game. You start in the center of a diamond shaped Maze, where you must visit four checkpoints in the four corners in any order, then return to the center when done. You have the option of trying to solve the Maze blindfolded, where you get messages when you move into or feel a wall next to you. This is a copy of the Maze from the final four immunity challenge in the CBS TV show "Survivor VI: Amazon". Survivor Maze #4: This script is similar to the other three Survivor Maze games. You start in the center of a star shaped Maze, where you must visit eight checkpoints in the eight points in any order, returning to the center after each. Note some passages are clogged with pole obstacles you have to weave through. This is a copy of the Maze from the final four immunity challenge in the CBS TV show "Survivor VIII: All Stars". Survivor Maze #5: This script is again similar to the other Survivor Maze games. You start outside at the base of an eight level vertical Maze, where you must visit ten checkpoints within the Maze in any order, returning to the outside after each. This is a copy of the Maze from the final four immunity challenge in the CBS TV show "Survivor IX: Vanuatu". Survivor Maze #6: This is one more script similar to the other Survivor Maze games. The Maze is in the shape of the Seven Macaw, an ancient Maya bird deity. You start at its tail, where you must visit six checkpoints within the Maze in any order, visiting the pyramid in the middle after each. This is a copy of the Maze from the final four immunity challenge in the CBS TV show "Survivor XI: Guatemala". Survivor Maze #7: This is one final script similar to the other Survivor Maze games. You need to navigate your way through five Mazes in sequence, finding a key within each before exiting. You have the option of trying to solve the Mazes blindfolded, where everything is dark and you can only see (i.e. feel) the walls directly in front of you. This is a copy of the Maze from the final five immunity challenge in the CBS TV show "Survivor XIV: Fiji". Glacier Maze: This script simulates Glacier Maze, a wooden fence Maze located outside Glacier National Park, Montana. Your goal is to enter the Maze, find four different colored checkpoints located in towers in each of the four corners in any order, then find the exit. This is a good demonstration of the variable height walls feature of Daedalus, where you can climb over and go under bridges, enter towers and buildings, bump into fences and picnic tables, and so on. Stocker Farms Maze: This script simulates a corn Maze plan grown at Stocker Farms in Snohomish, Washington. The cornfield actually contains two separate Mazes, both of which have their entrances and exits marked in a starting courtyard. There are two bridges within the Mazes, one of which you can pass under as well as climb over. There's also a Halloween themed "Field of Screams" passage, which causes the day scene to turn into dark night when you enter it. :) Safari Maze: This script simulates an imaginary Maze where you need to visit the four checkpoints in any order and then find the exit. The Maze has several 3D aspects to it, specifically bridges to climb over and go under, and a high central tower you start on along with tunnels that go through that tower. Mandelbrot Set Fractal: This non-Maze related script demonstrates the famous Mandelbrot set fractal. You can zoom in on parts of the fractal, display 3D overviews of it, and even walk among a 3D version of the fractal in the perspective inside view. Open Bitmap...: This loads a Windows bitmap file into either the main bitmap or color bitmap. If the file is a monochrome bitmap it gets loaded into the main bitmap, and if color it gets loaded into the color bitmap. Save Bitmap...: This saves the main bitmap to a monochrome Windows bitmap file. Colors used in the file will be the current colors for on and off pixels from the Set Colors dialog. If Show Color Bitmap is on, this instead saves the color bitmap to a 24 bit color Windows bitmap file. Open Text...: This loads a plain text file into the main bitmap. Each space character in the file becomes an off pixel, while each character with an ASCII value of "#" or higher becomes an on pixel. The length of the longest line in the file becomes the horizontal size of the bitmap, while the number of lines in the file becomes the vertical size. Lines shorter than the maximum line length are filled in with off pixels. Save Text...: This saves the main bitmap to a plain text file. On pixels become "#" characters while off pixels become spaces. If the Bitmap Is 3D setting is on, this instead saves the 3D Maze in the main bitmap to a plain text file, formatted such that the different levels and passages between them are easily seen. The dimensions of the 3D Maze are taken from the appropriate fields in the Size or Maze Size dialogs. In the text file, each level is written in sequence. Within a level, "#" characters are walls, spaces are passages, "\" indicates a passage down to the next lower level, "/" indicates a passage up to the next higher level, and "X" indicates passages both up and down at that point. These files may only be exported, and can't be loaded back into Daedalus as 3D bitmaps. The "3D Bitmap X Cutoff" value in the File Settings dialog is used to control how many levels are placed side by side in the text file before going to subsequent rows. DOS Text: This submenu has commands to save the main bitmap to a plain text file composed of DOS graphics characters. Hence they can really only be displayed in a DOS command prompt. These files may only be exported, and can't be loaded back into Daedalus. Save Blocks...: This uses DOS block characters to compose the bitmap. Each character covers two pixels. Since DOS characters are typically twice as tall as they are wide, this makes each pixel nearly square, making for a nice looking display. If the Line Chars In Text Bitmaps flag in File Settings is set, it will cause the file to be saved using normal ASCII instead of DOS graphics characters. Each character will still cover two pixels. This format lends itself to saving Mazes, and is a more compact form of the text generated by the Save Text command. Save Lines...: This uses DOS line characters to compose the bitmap. Since the center of each character is a wall intersection, each DOS character basically covers four pixels. Note there are no DOS line characters for wall endpoints, hence any walls that end will look longer than they should. Bitmaps that have been run through the Accent Boundaries command (and hence have no wall endpoints) look better in this display. Save Double Lines...: This is just like Save Lines but uses the DOS double line characters consisting of two parallel lines close together. X11 Bitmap: This submenu has commands to load and save files like as created with the "bitmap" command on Unix X11 systems. These files are plain text and looks like fragments of C source code. If you're not transferring files to or from Unix systems, this format isn't useful to you. Open...: This opens an X11 bitmap file into the main bitmap. Save Normal...: This saves the main bitmap to an X11 bitmap file. The file will look exactly as created with the "bitmap" command. Save Compressed...: This is just like Save Normal but removes extra whitespace characters from the generated file. The result may still be loaded into the "bitmap" command. Save Supercompressed...: This is like Save Compressed but writes the content in a different manner which results in a still smaller file. This file is not compatible with being loaded back into the "bitmap" command, but may still be displayed with the "xsetroot" command. 3D Bitmap: This submenu has commands to load and save the 3D bitmap as represented in the main bitmap. This uses a private file format that's basically a list of plain text representations of each level in the 3D bitmap. Open...: This loads a 3D bitmap file into the main bitmap. The dimensions of the 3D bitmap loaded may be seen in the Size or Maze Size dialogs. Save Normal...: This saves the 3D bitmap such that each pixel is represented by one character in the file, similar to what the Save Text command does for standard bitmaps. The 3D bitmap is written one level at a time through the Z axis. This format, though larger, is the easiest to understand and to make other programs understand. Save Supercompressed...: This saves the 3D bitmap such that each character in the file covers six or more pixels. Save As Wallpaper: This submenu has commands which allow one to automatically set the background picture of their Windows desktop to be the current monochrome or color bitmap. One can make a Daedalus bitmap be their desktop background manually, by doing Save Bitmap to create a bitmap file, then going into the Display Properties Windows control panel, and pointing the background bitmap to the file created. This command however does all that automatically, where a bitmap file called DAEDALUS.BMP will be written to your Windows directory. Center Bitmap: This centers the active bitmap in the middle of the Windows desktop. Tile Bitmap: This tiles or tessellates the active bitmap across and down the Windows desktop area. Stretch Bitmap: This stretches or shrinks the active bitmap to cover the entire screen. Print...: This prints the main or color bitmap, whichever is being shown, from within the program, and brings up the standard Windows Print dialog. The image printed will be a one page graphic of the bitmap, scaled to be as large as possible within the bounds of the page. The window's horizontal and vertical scrollbars determine where on the page the image will be positioned, e.g. the vertical scrollbar centered means the image will be vertically centered. Note that the colors in the window will be the colors on the paper, where you might want to invert the bitmap or change the color palette so that walls are black and passages white, instead of the default of the reverse, so the Maze will print as black on a white background. Note even with this command available, one may still prefer to use the clipboard or file features of Daedalus to copy the bitmap, and print it from another program, such as a word processor or desktop publishing program, to have full control over positioning and all. Print Setup...: This brings up the standard Windows Print Setup dialog, allowing one to select settings such as the printer to print to and whether the page will be oriented in portrait or landscape mode. This is also accessible from the Print dialog itself via the Setup button, but is made available separately here. File Settings...: This dialog allows changing of various settings dealing with files. Current Generation: Every time a new infinite Maze section is created, this value is incremented by one. Starting a new infinite Maze resets this value to one. There's no reason to change this, unless you exit the program part way through creating an infinite Maze, and want to restore things to the way they were later. Generation Cutoff: If this value is more than zero, then whenever the Current Generation reaches or passes this value, the current infinite Maze will be finished. An end section instead of a middle section will be created when the Infinite Continue command is run. This allows one to make an infinite Maze of a certain size without having to carefully watch the Current Generation value and then manually end the infinite Maze at the right time. New File Cutoff: This value only plays a role when Save Infinite To File below is set. Normally when saving an infinite Maze to file, the entire Maze will be written to a single file. When the number here is more than zero, the Maze sections will be written to multiple files. The number indicates how many generations or sections should be saved to each file before going on to the next file. The first file will be called "inf00000.txt", the second "inf00001.txt", and so on. This is useful when creating extremely large infinite Mazes, where for example on most Windows file systems an individual file can't exceed two gigabytes in size. Use Eller's Algorithm: When this is set, each infinite Maze section will be created using Eller's Algorithm, instead of the slower Hunt and Kill Algorithm. Because Eller's Algorithm creates a Maze one row at a time, having this on while creating an Infinite Maze will always fill up both halves of the bitmap with passages, instead of leaving the bottom half partly carved. Save Infinite To File: When this is set, each infinite Maze section will be written to the file "infinite.txt" in the current directory. Starting a new infinite Maze will create this file, while continuing or ending an infinite Maze will append to this file. Save Infinite As DOS Text: When this is set, infinite Maze sections will be written to the file as DOS graphics characters, instead of as plain text characters as is default. The DOS characters used will be the same as in the Save Blocks command. Don't Autostart Infinite: Normally the Infinite Continue command, if there's no current infinite Maze being created, will start a new infinite Maze, like as if the Infinite Start command were selected. When this is set, the Infinite Continue command will do nothing if the program's not in the middle of creating an infinite Maze. You'll need to actually select Infinite Start to start a new Maze. This allows one to create an infinite Maze of a certain size by setting the Generation Cutoff, and then doing Autorepeat on Infinite Continue, without a new Maze immediately being created once the end is reached. 2D Bitmap X Cutoff & 2D Bitmap Y Cutoff: Daedalus has the ability to export a bitmap as an array of smaller bitmaps. This can be used to print out a very large Maze on multiple sheets of paper. These two values are used to set the size of these smaller bitmaps. They will affect the Save Bitmap and Save Text commands. By default these values are the largest sized bitmap allowed in Daedalus, meaning each bitmap is always written out as a single file. When two or more files are generated, four digits will be added to each filename, e.g. saving as "maze.bmp" will result in files like "maze0000.bmp", "maze0001.bmp", and so on. Each subbitmap will always be the size of the cutoff values. If the size of the main bitmap isn't a multiple of the cutoff values, the bottom/right rows/columns of the bottom/right subbitmaps will be filled in with the dot drag color. 3D Bitmap X Cutoff: This is used by the Save Text command when saving 3D bitmaps, to control how many 3D levels are written side by side in a row, before going to the next rows in the file to write subsequent levels. Save Text Bitmaps Clipped: When this is set, text files written will never end in spaces, i.e. any space characters that would otherwise be at the ends of lines will be dropped. This makes the files smaller but will still display and load back into Daedalus the same. This will also not export the final newline at the end of the last line for DOS text files, making it so in a DOS window there's no extra blank line after the display of such a file before the prompt. Line Chars In Text Bitmaps: This affects the Save Text command. When set, on pixels won't always just be written as "#" characters, but rather horizontal walls will be "-", vertical walls will be "|", and everything else will be "+". Open Documentation: This launches Windows Write and has it automatically open this Daedalus documentation file. More Help: This submenu has commands which show additional more advanced or more specialized documentation. Open Scripting: Launches Windows Write and has it automatically open this scripting documentation file. Open Changes: Launches Windows Write and has it automatically open the Daedalus latest changes file. Open License: Launches Windows Write and has it open the Daedalus license file, displaying legal information on how you can use the program. Daedalus uses the GNU General Public License (GPL). Open Website: This launches the default Web browser and has it automatically open the Daedalus Web site. About Daedalus...: This dialog brings up the About box for Daedalus which contains static text showing the credits and copyrights for the program. Exit: This immediately terminates and closes the program. ********************************** DAEDALUS MENU COMMANDS - EDIT MENU ********************************** Edit Menu: This deals with all low level operations of the program. This includes clipboard commands, random number settings, and the program's timer. It also deals with fundamental display settings, such as the color palette being used, and how to draw the current bitmap being viewed. Repeat Command: This runs again the most recent command selected, regardless of whether it was invoked from a menu or a keyboard shortcut. This can be used to do multiple times a menu command that doesn't already have a keyboard shortcut. Autorepeat: This makes the program enter a mode where it will continually repeat over and over the most recent command selected that's autorepeatable. Run this command again to turn off autorepeat. Basically any command that has a visible effect when done multiple times can be autorepeated. For example inverting the screen or moving the dot can be autorepeated, however just clearing the screen or teleporting the dot to the corner of the bitmap can't be. Autorepeat can for example be used to do a Maze "spree" and generate new random Mazes one after another. The individual commands on the Infinite submenu are Maze types, where you can enter Autorepeat mode after running the Infinite Continue command once, to keep on making an infinite Maze larger. See the Autorepeat Randomizes Wall Color checkbox in the Set Colors dialog for a way to make each Maze a different color. Other good autorepeatable commands are Left, Right, and Random; these make for a good demo, especially in the 3D first person inside view. For example, turn on View Inside, do Move Random once, then turn on Autorepeat, and watch yourself continually wander through the Maze taking random choices at junctions. Macros: Daedalus features its own macro language, which can be used to automate actions, and even design whole games or other programs using Daedalus as a platform. This submenu allows access to these features. Note the following definitions: A command line is a string of text containing a sequence of actions. An action is an individual instruction that tells Daedalus to run a menu command, set a dialog variable, or even access an extra feature which isn't available through the standard user interface. A macro is a command line stored in a special place which can be executed at any time. A script is a file containing a sequence of command lines. An event is an occurrence in the program which can be made to automatically trigger a macro execution. Enter Command Line...: This dialog allows one to enter a command line, to either be executed right away or assigned to a macro. Enter Command Line Below: Enter the command line string you want to have executed or assigned to a macro in this field. If the dialog is closed with the OK button, the contents of this command line will immediately be executed. The format of the actions composing a command line is complex, where details of the Daedalus scripting language are covered in the separate documentation file script.txt. Get Macro: This button will get the contents of the Macro specified by the Number field, and populate the Enter Command Line field with it, and also the Menu Text field with the current menu text for it from the appropriate Run Macro submenu. This allows examining or modifying existing macros. Define Macro: This button will change the contents of the Macro specified by the Number field to be the contents of the Enter Command Line field, and also set the menu text for that macro's menu command to be the text in the Menu Text field. Note macros defined through this button persist even if the dialog is closed with Cancel. Number: When assigning or getting the contents of a macro through the Define Macro or Get Macro buttons, enter the number of the macro to set or query here. Menu Text: When assigning or getting the contents of a macro through the Get Macro or Define Macro buttons, the menu text for the macro's command on the appropriate Run Macro submenu goes in this field. Note the "&" character here means a keyboard accelerator, which on the menu gets displayed as an underscore beneath the character following it. There are 48 menu commands, however Daedalus supports any number of macros. If you assign or get a macro not between 1 and 48, the Menu Text field is ignored. Note a command line is automatically run every time Daedalus starts. Any text after the program name in a Windows shortcut, or anything after the program name if Daedalus is started from a DOS command prompt, will be treated as a command line and executed once the program begins. The icons which run the Daedalus demos and games are just shortcuts to the Daedalus executable, with a command line appended to open the appropriate script on startup. Open Script...: This opens a Daedalus script file and runs it. Daedalus comes with a number of sample scripts which demo features of the program or play games. Run Macro: There are four Run Macro submenus, each of which contain twelve commands to run a particular macro. Daedalus has 48 macro slots attached to menu commands, which start out empty, but can have command lines assigned to them automatically by script files or manually through the Enter Command Line dialog. Usually a macro will be invoked through its keyboard shortcut, e.g. press F1 through F12 to run macros 1 through 12, Shift+F1 through Shift+F12 for macros 13 through 24, and so on. Note some macro commands have the same keyboard shortcuts as system behavior. If a macro exists in such a slot, the Daedalus behavior will replace the system behavior. Pressing Alt+F4 will run macro #40 if present, else it exits the program. Pressing F10 will run macro #10 if present, else it activates the menu bar like pressing Alt does. Pressing F1 will do the same as the Open Documentation command, if there isn't already something defined in macro slot #1. One can press F1 in any script as well as the program itself to get help for the current environment. Macro Events...: This dialog allows macros to be assigned to various events in the program, which get automatically executed whenever the trigger condition occurs. If a field is set to zero, that means no macro will run for that event, otherwise the specified macro will run. On Move Off Bitmap: This event occurs whenever the dot is on the bitmap, and is moved off one of the edges. Note if Edge Behavior is set to Stop At Edge, the dot will automatically stop before this gets a chance to run. On Move Into Wall: This event occurs whenever the dot runs into a wall, i.e. it's directed to move to an on pixel and that movement is prevented. Note if Walls Impassable is off, this event will never run since the dot will be able to move through walls. On Move To New Cell: This event occurs whenever the dot is about to move to a new cell or pixel. Minor movement within a cell in the Free Movement modes in perspective inside view won't trigger this. After Move To New Cell: This event occurs after the dot moves to a new cell or pixel. This event always happens soon after the On Move To New Cell event. On Follow To New Cell: This event is similar to On Move To New Cell, and occurs whenever the dot is about to automatically move to a new cell due to following a passage when the Follow Passages setting is on, or when Follow Passages is simulated by pressing Shift+up or down in first person view to run to the next junction. After Redraw Inside: This event happens whenever a screen redraw happens in the perspective inside view. This can for example be used to add custom text on the screen, e.g. your score in a game script. On Left Mouse Click: This event happens whenever the left mouse button is clicked inside the drawable or client area of the window. On Right Mouse Click: This event happens whenever the right mouse button is clicked inside the drawable or client area of the window. On Run Command: This event occurs whenever any command is run, selected from either a menu or a keyboard shortcut. On Program Exit: This event occurs whenever the program is about to terminate. Copy Bitmap: This copies the main bitmap to the Windows clipboard as a monochrome Windows bitmap. If Show Color Bitmap is on, this instead copies the color bitmap to the Windows clipboard as a 24 bit color Windows bitmap. The contents put on the clipboard are the same as generated by the Save Bitmap command. Note an alternate way to print out a bitmap if you don't like the behavior of the Print command, is to copy it to the clipboard, paste it into another program such as Paint or Word, and print from there. Or save the bitmap and then load it into the other program. Copy Text: This copies the main bitmap to the Windows clipboard as plain text. The contents put on the clipboard are the same as generated by the Save Text command. Paste: This pastes from the Windows clipboard into the program. A bitmap on the clipboard will be pasted into the main or color bitmap appropriately, where this behaves like the Open Bitmap command. If there is no bitmap in the clipboard, then if there's text on the clipboard, it will be pasted into the main bitmap, and will behave like the Open Text command. Display Settings...: This dialog sets how to display the current bitmap being viewed, and also deals with other low level redraw and screen update settings. Entire Bitmap: This is a radio button in the "what to draw" group. When selected, the entire bitmap will always be drawn in the window. Certain Number Of Pixels: This is a radio button in the "what to draw" group. When selected, a particular number of bitmap pixels will always fill the window. Resizing the window won't show any more of the bitmap, but will instead change the size of those pixels seen. The number of horizontal and vertical pixels is specified in the Horizontal & Vertical Pixel Value settings. The display of the bitmap will also be centered on the dot. Certain Size Of Pixels: This is a radio button in the "what to draw" group. When selected, all bitmap pixels will be a certain number of screen pixels in size. Resizing the window won't change the size of the pixels, but will instead show more or fewer pixels of the bitmap. The number of horizontal and vertical pixels is specified in the Horizontal & Vertical Pixel Value settings. The display of the bitmap will also be centered on the dot. Fixed Size Of Pixels: This is a radio button in the "how to draw it" group. This sets the screen size of each pixel in the bitmap, where the horizontal and vertical size is specified in the Horizontal and Vertical Pixel Value settings. Selecting this only plays a role when "what to draw" is set to Entire Bitmap. Largest Square Size: This is a radio button in the "how to draw it" group. When selected, whatever part of the bitmap is being drawn will have each bitmap pixel be the largest square size it can be and still fit inside the window. In other words each bitmap pixel will be the same size, and each will be a square. Largest Rectangular Size: This is a radio button in the "how to draw it" group. When selected, whatever part of the bitmap is being drawn will have each bitmap pixel be the largest rectangular size it can be and still fit inside the window. In other words each bitmap pixel will be the same size, however they may be rectangles instead of squares depending on the size of the window. Stretch To Window: This is a radio button in the "how to draw it" group. When selected, whatever part of the bitmap is being drawn will be stretched to exactly fill the window. This may make each bitmap pixel cover a slightly different amount of area of the screen. Note for this setting only, the dot will never be shown, even when the Show Dot flag is on. Horizontal Pixel Value & Vertical Pixel Value: These numbers indicate the screen size of each bitmap pixel, or the number of bitmap pixels to show. They are only used when Certain Number Of Pixels, Certain Size of Pixels, or Fixed Size of Pixels are set. Show Color Bitmap: This does the same thing as the menu command of the same name on the Color menu. Having it here too allows you to see and set all these display related settings at once. Horizontal Size & Vertical Size: These values indicate the horizontal and vertical pixel size of the Daedalus window itself. You can change these to resize the window. Horizontal & Vertical Offset: These two values indicate the horizontal and vertical screen pixel location of the upper left corner of the Daedalus window itself. You can change these to move the window. The Size Is Drawable Area flag controls whether this means the corner of the drawable or client area in the window, or the entire Daedalus window including the title bar and border. Horizontal & Vertical Scroll: These two fields indicate the position of the window's horizontal and vertical scrollbars. You can change these to move the scrollbars. The scrollbars can be in 17 possible positions, where a value of zero means all the way to the left or top, and 16 means all the way to the right or bottom. Size Is Drawable Area: When this is set, the Horizontal & Vertical Size values above indicate the size of the drawable or client area in the Daedalus window. When this is unset, the Horizontal & Vertical Size values indicate the size of the entire Daedalus window including the title and menu bars, window border, and so on. Window Always On Top: When this is set, the Daedalus window will always be on top of every other window on the screen, including the Windows taskbar and even when the Daedalus window is not active. The full screen mode feature automatically sets this. Hide Menu: This controls whether the menu bar is displayed at the top of the window. When off, the main menu can no longer be pulled down, although commands can still be run through keyboard shortcuts. Game scripts often turn off the menu, to create a less cluttered environment. Hide Scrollbars: This controls whether the scroll bars are displayed at the bottom and right of the window. When off, the scrollbars can no longer be seen or manipulated, although their existing positions still take effect. Game scripts often turn off the scrollbars, since the scrollbar positions don't affect the first person view any. Redraw When Bitmap Edited: Normally whenever you do an operation which changes the contents of a bitmap, the screen will immediately update to reflect the current state of the bitmap. When this is unset, the screen won't update until you tell it to with the Redraw Now menu command. This allows you to do things such as create a Maze to solve without giving yourself any hint as to what it looks like ahead of time. Allow Partial Screen Updates: Normally whenever you run a command, the screen won't update until the command is completely finished. Certain commands, such as most of the Maze creation methods, reach intermediate states during their running. When this is set, the screen will update to the current state of the bitmap at each of these points. This can allow you to see more things happening while running a command that takes a while to finish. Show Individual Pixel Edits: This is a more extreme version of Allow Partial Screen Updates. When this is set, each and every time a bitmap pixel changes during any command you'll see it happen on the screen. This allows you to see every thing a command does, e.g. you can see how certain Maze creation or solving algorithms work. However, computationally intensive operations on the bitmap like Maze creation will run about five times slower. This setting also affects the perspective inside view. For the Simple Perspective inside view mode, one can watch the scene get drawn. For the other inside view modes, this has no effect except one may notice the compass, location, or script produced text flicker during redraws. Pixel Display Delay: This is an animation delay for when Show Individual Pixel Edits is active. This delay also applies when Follow Passages in the Dot Settings dialog is on, and the dot is being shown. The higher the value, the longer the delay between visible pixel changes, and the longer the delay between automatic movement of the dot down a passage. Note a big number here can make whatever action take a long time to finish. See the Redraw Window command for a way to gain control again if the action is taking too long. Error Check Pixel Operations: When this is set, the program will check each time a pixel on the bitmap is changed or looked at to make sure it's legal. If there are any bugs in the program and it tries to access a location outside the bitmap, an error message will come up indicating that this happened. This acts as an internal safety net and is a way to help debug the program. When this is turned off, computationally intensive operations on the bitmap like Maze creation will run about 25% faster. However if there are any bugs in the program causing illegal accesses, the program may crash. This setting will also check to ensure no memory gets leaked by the program, where if there are any bugs where a piece of memory doesn't get freed, an error message will be displayed when the program exits. Hourglass Cursor On Redraw: When this is set, then commands that may take a long time to complete such as Maze creation will bring up the hourglass cursor during their execution. Having this off might be preferred when Autorepeat is on, where you may not want the cursor flashing all the time as Mazes or whatever are created over and over. Autorepeat Last Command: This does the same thing as the Autorepeat menu command on the Edit menu. Repeat Delay In Msec: This value indicates the time interval in milliseconds that the program will try to automatically do certain operations. This includes commands repeated by the Autorepeat command, dot movement done when the Chase Mouse Point checkbox is set, and screen updates during the Very Free Movement perspective inside mode. If this is set to 1000 for example, then the Autorepeat command will generate no more than one Maze or whatever per second. Lowering this value can speed these things up. This field may be set to zero, which will make the program not pause at all between successive iterations of the operation being autorepeated, and continually do them in a tight loop until you specify otherwise. On Windows 9x systems Daedalus won't even ever yield to other programs and give them a chance to do anything, and even on Windows NT systems Daedalus will use maximum CPU time. When not doing anything else with your computer a zero timer delay can be useful, and make the program run around twice as fast as when it's set to anything higher. Skip Message Display: This does the same thing as the Ignore Messages menu command on the Edit menu. Pause Timer: This does the same thing as the menu command of the same name on the Edit menu. Cell Viewport Span: This submenu has commands with which one can easily zoom in or out on the dot in the display. Each command will automatically set the Display Settings dialog "what to draw" section to Certain Size Of Pixels, and will increase or decrease the Horizontal and Vertical Pixel Values. In other words the display will become centered on the dot if not already, and the number of screen pixels each bitmap pixel covers on the screen, will go up or down a certain amount. Decrease By 1 & Increase By 1 & Decrease By 10 & Increase By 10: These four commands take the screen pixel size of each bitmap pixel and increase or decrease them by one or ten. Window: This submenu has commands that affect the Daedalus window. Size Window Full Screen: This toggles the program in and out of full screen mode. In full screen mode the entire screen is covered by the drawable or client area of the Daedalus window, where no other window or even the program's menu bar will be visible. The menu still exists off the top of the screen, and can be pulled down and viewed with the Alt and arrow keys. Size Window To Bitmap: This resizes the window to be the same size as the active bitmap at its current pixel zoom. It's the same as if the window were resized so that all of the bitmap is visible and no border area is showing around the bitmap in the window. Size Bitmap To Window: This resizes the bitmap to be the same size as the window's drawable or client area. It's the same as using the Size dialog to set the dimensions of the active bitmap to the horizontal and vertical size of the window as seen in Display Settings. Update Window: This forces the screen to redraw. If the Redraw When Bitmap Edited flag is off, the screen won't normally update when a command is run, in which case this command will update the screen to the state of the bitmap. Redraw Window: This command on the Window submenu simply redraws the current screen. Most often this will have no visible effect, although it will trigger the After Redraw Inside macro event if set. Pressing the space bar, i.e. running this Redraw Window command, will interrupt moving down a passage in Follow Passages mode. When moving down a passage to the next junction, that can sometimes take a while, say in a large Unicursal Maze. If you want to stop the animation and get control again, press space to stop the dot in its tracks. Pressing the space bar also affects the Show Individual Pixel Edits setting when the Pixel Display Delay is non-zero. A large Pixel Display Delay can make whatever command take a long time to finish. If you want to stop waiting, press space to drop the Pixel Display Delay value to zero. Set Colors...: This dialog allows changing the colors used in the various displays in the program. Border: The border color is the color used for all parts of the window not covered by the bitmap, i.e. what covers the remainder when the section of bitmap displayed doesn't fill the entire window. Passage: The passage color is the color of passages in Mazes, i.e. the general "off" pixel color for monochrome bitmaps. This is also the color of informational text displayed in perspective inside view. Wall: The wall color is the color of walls in Mazes, i.e. the general "on" pixel color for monochrome bitmaps. This is also the background color surrounding text displayed in perspective inside view. If Passage and Wall color are the same, then the text will be drawn with a transparent background. Dot: When the dot is visible over one of the pixels as when Show Dot is on, this is the color of the dot. Overlay: For the 3D first person view, this is the color of walls in the map overlay. Inside Wall: For the 3D first person view, this is the color of the walls for 2D Mazes. It's also the color of floor markings as set with Mark 'X' At Dot for 3D Mazes. Inside Sky: For the 3D first person view, this is the color of the sky or ceiling for 2D Mazes. It's also the color of the sky or ceiling on the top level of 3D Mazes. Inside Ground: For the 3D first person view, this is the color of the ground or floor. Inside Line: For the 3D first person view, this is the color of edges or corners between walls when in Simple Perspective mode. It's also the color of entrances and exits when Sealed Entrances is set. Inside 3D Wall: For the 3D first person view, this is the color of the walls for 3D Mazes. It's also the color of floor markings as set with Mark 'X' At Dot for 2D Mazes. Inside 3D Ceiling: For the 3D first person view, this is the color of the ceiling for all levels excluding the top level of 3D Mazes. Inside Mountain: For the 3D first person view, this is the color of mountains, as seen when Mountains in Inside Settings is on. Inside Fog: For the 3D first person view, this controls what color walls fade into in the distance, as seen when Fog Distance in Inside Settings is active. The color black works well with a black night sky, where the walls seem to disappear into darkness. The color gray works well with a gray sky, where walls appear to emerge from mist. Autorepeat Randomizes Wall Color: If this is set, then when the Autorepeat command is active, the wall color will be set to a random color of the rainbow before whatever command is run. In other words when autorepeating a Maze generation command this makes each Maze a different color. Ignore Messages: Daedalus commands sometimes bring up message boxes giving information about what it just did. For example, the Mark Dead Ends command will tell how many sections were marked. This command toggles whether such messages are displayed. When Ignore Messages is checked, no such messages will pop up. If for example you want to do the Mark Dead Ends command over and over, having to dismiss the message box again and again would be inconvenient, in which case turning on Ignore Messages would be useful. Note this doesn't prevent the display of error messages, or commands such as Count Pixels whose sole purpose is to print a message. Query Timer: Daedalus keeps track of how much time has elapsed since the program was started. This displays the value of that timer to the nearest second. Reset Timer: This resets the timer back to zero. An example use is to time how long it takes you to get through a Maze. Create or load a Maze, do Reset Timer, solve it, then Query Timer and see how long it took you. Pause Timer: This toggles whether the timer is paused. Do the command once to pause the timer. Do the command again to unpause it. While paused the amount of seconds elapsed will not increase. An example use is if you need to answer the phone while in the middle of timing yourself through a Maze. Random Settings...: This dialog allows changing of settings related to the random number generator in Daedalus. Random Seed: This specifies what sequence of numbers will be produced by the random number generator. If you set this to a particular number then create a random Maze, that Maze will always be the same whenever the value is set to that number. Note you must actually change this field to something different than its current value for it to take effect; that allows changing other fields in the dialog without the Random Seed getting reset too. Random Bias: This allows most styles of random Mazes created to be biased. A biased Maze has straightaways that tend to go along one axis more often than at other angles. When this value is positive, Mazes will be horizontally biased, and when this is negative, Mazes will be vertically biased. The farther the value from zero, the more extreme the bias. A value of zero means no bias. For 3D and 4D Mazes, a large bias will cause there to be fewer jumps between levels. Random Run: This allows some styles of random Mazes created to have a "run" factor. The run of a Maze means how long straightaways tend to go before forced turnings present themselves. A Maze with a low run won't have straight passages for more than three or four cells, and will look very random. A Maze with a high run will have long passages going across a good percentage of the Maze, and will look similar to a microchip. The more this value is greater than zero, the higher the run. Randomize Seed: This truly randomizes the Random Seed setting, by setting it to a random number based on the system clock. If you do Randomize Seed then create a Maze, the Maze that's created will be different each time. Without doing Randomize Seed, Daedalus will always create the same sequence of Mazes. This command also causes the stars, mountains, and clouds in perspective inside view to be randomly regenerated, in the same way their positions are randomly set when starting the program. ********************************* DAEDALUS MENU COMMANDS - DOT MENU ********************************* Dot Menu: This contains everything dealing with "the dot". The dot is like a cursor positioned over a particular pixel on the bitmap. The dot can be moved around, the bitmap can be edited based on the dot, and special displays can be centered on the dot like the 3D first person inside view where the dot indicates where you are. Dot Settings...: This dialog controls many settings related to the dot. This means its location, how the dot moves, and how to draw on the screen using the dot as a paintbrush. The dialog contains a line of text telling what color pixel the dot is over. This will either be on/off or the appropriate color or RGB value, depending on whether the color bitmap is active. Horizontal & Vertical: These values contain the X and Y pixel locations of the dot. The upper left corner is coordinate (0, 0). Height: This value contains the Z location of the dot. This only plays a role in 3D bitmaps. Direction: This value contains the direction the dot is facing. The number 0 means Up or North, 1 means Left or West, 2 means Down or South, and 3 means Right or East. When you move the dot, this is updated to the direction the dot last moved. This is used in the 3D first person inside view to indicate which way you're facing. 2nd Horizontal & 2nd Vertical & 2nd Height: These values contain the location of the second dot. See the 2nd Dot submenu for more information about this second dot. Bitmap Is 3D: This does the same thing as the menu command of the same name on the Bitmap menu. Having it here too allows you to see and set all these dot related settings at once. Show Dot: This does the same thing as the menu command of the same name on the Dot menu. Dot Is Circle: If this is set, then when the dot is visible, it will be drawn as a circle over the pixel instead of a square. This makes the dot look more like a dot and also allows seeing some of the pixel behind it. Dot Shows Arrow: If this is set, an arrow will be drawn on the dot in the direction the dot is facing, assuming the dot is visible and large enough. The arrow will be drawn in the inside Line color from the Set Colors dialog. If the Line color is the same as the Dot color, then only the arrow will be drawn and the dot itself will be transparent. Dot Size: The size of the dot can be controlled with this field. Normally when Show Dot is on, the dot covers just a single pixel. The value here indicates the number of extra pixels to cover surrounding the center pixel. For example, a value of 1 means to cover a 3x3 block of pixels, 2 covers a 5x5 block, etc. Walls Impassable: This does the same thing as the menu command of the same name on the Dot menu. No Corner Hopping: This setting only plays a role when Walls Impassable is set. If this is set, you won't be able to move diagonally when the two adjacent pixels are on. In other words, picture a 2x2 grid of pixels, where two opposite corners are off and the other two opposite corners are on. You will only be allowed to move diagonally from one off pixel to the other one when this setting is unchecked. For Maze types which make use of non-orthogonal walls like Crack Mazes you probably want this on. For Maze types which make use of diagonal passages like Zeta Mazes you probably want this off. Note No Corner Hopping also plays a role in a number of other commands, where on usually means the command considers orthogonal connections only, and off means diagonal connections are allowed too. Glancing Blows: If this is set, then when moving diagonally, if the dot can't move to the desired pixel (because it's on when Walls Impassable is set, or is off the screen when Stop At Edge is set) the dot will move horizontally or vertically if possible. For example, if moving the dot diagonally down and to the right, and it runs into a horizontal wall, the diagonal movement commands will make the dot move to the right along the wall. In addition to the standard overhead view, this setting also affects the perspective inside view, where if you move into a wall, you'll slide along the wall as if it were made of ice, as opposed to stick to the wall as if it were made of glue. Chase Mouse Point: When this is set, the dot will continually try to move to where the mouse is pointing. This will only happen when the dot is actually visible, and the dot will move one pixel at a time at the rate indicated in the Repeat Delay value in the Display Settings dialog. This allows you to move through a Maze, or draw on the screen, just by moving the mouse around. Clicking the right mouse button will toggle this setting. In 3D first person inside view, this setting will act as if you're continually clicking the left mouse button in the window. See the Mouse Clicks section for information on how clicking the mouse moves you in 3D inside view. No Mouse Diagonal: When Chase Mouse Point is on, having this set means the dot won't move diagonally as it moves toward the mouse pointer, but rather will only move horizontally or vertically. This helps when drawing the solution to a Maze with the mouse, as it will ensure the passages are orthogonal. Follow Passages: If this is set, then a dot movement command will keep moving down the current passage through any turnings until the next junction, instead of just moving one pixel at a time. This only works for standard orthogonal 2D Mazes with passages one pixel wide. If when automatically following a passage a dead end is reached, the dot will turn around and go back the way it came. This allows you to move through Mazes much faster, where all you have to do is make choices at the junctions. Note the automatic moving down a passage will stop if the dot is ever over the location of the second dot. Radar Length: This value only plays a role when Follow Passages is set. With this, not only will the dot follow passages for you, but it will also automatically pick which way to go at junctions in certain cases. Basically the dot will use what amounts to "radar" and send invisible feelers down each passage at a junction. If that passage is a short blind alley, the dot will know not to consider going down it. For example, at a junction where one way is a short dead end, and the other leads to the rest of the Maze, the dot will go past that junction without stopping. The value here indicates how far down each passage to look. A value of one means to skip all dead ends one unit long. The higher the value, the more down each passage the dot will scan to see if it's a blind alley. Move Count: This value gets incremented every time you move the dot with one of the Move Dot or Move Relative commands. This is useful when solving a Maze, where you can set this field to zero, go through the Maze, and see how many moves it took. Move By Two & Drag Move Dot & Drag Is Erase & Drag Big Dot & Drag By Two: These do the same things as the menu commands of the same name on the Dot menu. Having them here too allows you to see and set all these settings at once. Do Drag On Temp: This affects the Drag Move Dot setting as well as the Set At Dot command, and will cause it to edit the temporary instead of the main or color bitmaps as you move the dot around. This works well with the perspective inside view, where as you move around the passages you visit will automatically be marked. Edge Behavior: This section of radio buttons controls what the dot does when it runs off the edge of the bitmap. Move Into Void: The dot can move off the bitmap and can keep going in any direction forever. Stop At Edge: The dot can't move off the bitmap, and will stop when it reaches the bitmap edge as if it were a wall. Torus Wrapping: Moving the dot off the left edge of the bitmap will make it reappear at the right edge and vice versa. The top and bottom edges will wrap around to each other as well. Note Torus Wrapping behaves the same as Move Into Void in the perspective inside view. Move Dot: This submenu contains the main movement commands which move the dot by a single pixel. Down Left & Down & Down Right & Left & Right & Up Left & Up & Up Right: When a bitmap is being shown, these eight commands move the dot by one pixel in each of the eight compass directions. You'll probably find it more convenient to use the keyboard accelerators to move instead of selecting the commands from the menu. When using the keyboard, you can use either the number keys, or the numeric keypad (both with Num Lock on and Num Lock off). For the four main compass directions, the four arrow keys will work too. The "5" key will do the same as the "2" key, and can be used to move down as well. The orthogonal move commands will update the Direction field in Dot Setting to be the direction moved in. The diagonal move commands can update the direction too, and if need be will rotate it 90 degrees to ensure it's one of the two compass directions adjacent to the diagonal. For example if the current direction is west, and the dot moves southeast, the direction will be set to south. In the 3D first person inside view, these commands will move the dot relative to the direction you're currently facing. Specifically Up will move forward, Down will back up, Left will rotate left, and Right will rotate Right. The diagonal movement commands will do a rotate plus a move: The Up Left and Up Right commands will rotate left or right then move forward, and the Down Left and Down Right commands will rotate right or left then back up. In the Free & Very Free inside display modes, and also in the Move With Arrow Keys mode of the wireframe and patch renderings, the behavior is the same except moving happens before rotating. Raise & Lower: These two commands move the dot up one level (to the next lower numbered level) and down one level (to the next higher numbered level). When looking at the 3D first person inside view of a 3D Maze, these commands are how you climb up through the ceiling or drop through the floor to adjoining levels. Note this command only does something when Bitmap Is 3D is set. Move Relative: The standard movement commands on the Move Dot submenu do different things depending on what display mode you're in. The commands on this submenu move either relatively or absolutely regardless of mode. Forward: This moves the dot forward by one pixel in the direction the dot is facing. This is the same as Up on the Move Dot submenu when in 3D inside view. Back: This moves the dot backwards by one pixel, opposite the direction the dot is facing, while still facing forward. This is the same as Down on the Move Dot submenu when in 3D inside view. Turn Around: This turns the direction the dot is facing around 180 degrees. This affects overhead view, perspective inside view, and the Move With Arrow Keys mode when moving around in a wireframe or patch rendering. In the Smooth Movement perspective inside mode, the view will rotate to the right or left at random when turning around. Left: This will follow the left wall for one pixel. This means the dot will move one pixel to the left with respect to the direction the dot is facing. If the space to the left is blocked by a wall, the dot will move forward. If the space forward is blocked too, the dot will move to the right. If the space to the right is yet again blocked, the dot will turn around and move backward. This command works in 3D Mazes. Wall following can be done in a deterministic way in a 3D Maze by projecting the 3D passages onto the 2D plane, i.e. by pretending up passages actually lead northwest and down lead southeast, and then applying normal wall following rules. Right: This the same as Left, however the dot will follow the right wall for one pixel. Random: This moves the dot one pixel in a random direction. The dot won't turn around and reverse its current direction, or go through a wall i.e. through set pixels unless it has to. Also when entering a room, the dot will stay next to and follow along an edge, so it doesn't wiggle randomly in the middle of the room. North & South & West & East: These four commands move the dot up, down, to the left, and to the right by one pixel. These are the same as the Up, Down, Left, and Right commands on the Move Dot submenu when in standard bitmap viewing mode. Jump Dot: This submenu has commands to move the dot by a larger number of pixels at once. Down Left & Down & Down Right & Left & Right & Up Left & Up & Up Right: These eight commands are like the corresponding commands on the Move Dot submenu, however these will move the dot by 16 pixels at a time instead of just one. The same accelerator keys for that submenu can be used here, except here the shift key needs to be down. In 3D first person inside view, the Left and Right commands will sidestep or strafe to the left and right. The Jump Up and Jump Down commands will move forward and back up like how the standard Move Up and Move Down commands do, however you'll move as if the Follow Passages setting in the Dot Settings dialog were toggled. In other words this is a quick way to follow a passage to the next junction, without having to manually turn Follow Passages on. The diagonal jump commands do nothing in 3D inside view. Teleport Dot: This submenu has commands to teleport the dot to a particular location on the bitmap. They will also center the dot within its current cell and snap its direction to the nearest compass point, visible in the Free Movement perspective inside modes where your direction and position within a cell can be arbitrary. UL Corner & UR Corner & LL Corner & LR Corner: These four commands move the dot to the four corners of the bitmap, i.e. the upper left, upper right, lower left, and lower right. Entrance: This moves the dot to the entrance of the Maze, assuming the bitmap contains a standard orthogonal Maze. This means moving the dot to the first passage i.e. off pixel in the top row. Exit: This moves the dot to the exit of the Maze, assuming the bitmap contains a standard orthogonal Maze. This means moving the dot to the first passage i.e. off pixel in the bottom or second from bottom row. Left Entrance: This is like the Entrance command except it moves the dot to the first off passage in the leftmost column. Right Exit: This is like the Exit command except it moves the dot to the first off passage in the second from the right column. Middle: This moves the dot to the center of the bitmap, or the center of the middle level for a 3D bitmap. Random: This moves the dot to a random location on the bitmap. 2nd Dot: This moves the dot to the location of the second dot. See the 2nd Dot submenu for more information about the second dot. Show Dot: When this is checked, the location of the dot will be visible. The bitmap pixel corresponding to the dot will be covered with the Dot color as indicated in the Set Colors dialog. Walls Impassable: When this is checked, the dot movement commands will do nothing if they would cause the dot to move onto an on pixel i.e. a wall. This allows you to solve a Maze by moving the dot through it, while preventing you from accidentally moving through walls. Move By Two: When this is checked, the dot movement commands will move the dot by two pixels instead of just one. Having this on is useful when manually drawing a standard orthogonal Maze, because it can keep the dot on even or odd numbered coordinates corresponding to walls or passages. For example, combine this with Drag Big Dot, and have the dot on odd numbered coordinates, to easily draw the outline of a Maze. Drag Move Dot: When this is checked, the dot movement commands will cause the bitmap pixel under the dot to be set. This allows you to draw on the bitmap by moving the dot around like a paintbrush. When the color bitmap is being displayed, this will draw on the color bitmap, and set pixels to either the Wall Color or the Passage Color as defined in the Set Colors dialog, based on the Drag Is Erase setting. Drag Is Erase: When this is checked, having Drag Move Dot on will turn the pixels under the dot off. When unchecked, having Drag Move Dot on will turn the pixels under the dot on. Drag Big Dot: When this is checked, having Drag Move Dot on will cause a 3x3 pixel rectangle around the dot to get set. In the normal case when unchecked, just the pixel under the dot will get set. Having this on is useful when manually drawing the outline for a standard orthogonal Maze, because the three pixel wide brush is the width of a single passage with a wall on either side. Drag By Two: This is similar to Move By Two in that when checked the dot movement commands will move by two pixels instead of one. Here however when Drag Move Dot is on this will set both dots moved over instead of just the last one. Having this on is useful when manually drawing the solution to a standard orthogonal Maze. Combine this with Drag Move Dot and Drag Is Erase, and have the dot on the odd numbered coordinates corresponding to passages, to easily draw passages while staying on odd numbered coordinates. Set At Dot: This simple command sets the pixel at the location of the dot to the Drag Is Erase color. This is a simpler way of setting a single pixel than turning Drag Move Dot on and moving once. Zap Dot: This submenu contains commands which affect pixels in front of the direction the dot is facing. It's as if the dot shoots a weapon which does something to the first wall in front of it. Destroy Wall: This will turn off the first set pixel in front of the direction the dot is facing. If you're frustrated with the difficulty of a Maze, this can allow you to smash through the wall you're looking at. ;) The above assumes the dot is over an off pixel. If the dot is over a set pixel, this will do the opposite, and scan for the first off pixel in front of the dot and turn it on. Make Wall Semitransparent: This will make the first wall in front of the direction the dot is facing semitransparent. A semitransparent wall can make a Maze easier to solve because you can see what's behind it. See the Semitransparent Walls section of the Inside Settings dialog for more information on semitransparent walls. Make Unsemitransparent: This will make the first semitransparent cell in front of the direction the dot is facing opaque. This will make a semitransparent wall opaque and "clear away the fog" in the case of a semitransparent passage. 2nd Dot: This submenu has commands involving the "second dot". The second dot is like the dot, in that it's an invisible cursor positioned over a particular pixel on the bitmap. Some of the commands here make use of two pixel locations, such as the line drawing command which requires two points to draw the line between. All of these commands (except Draw Disk and Circle) will instead operate on the color bitmap if the color bitmap is being shown. Set To Dot: This sets the location of the second dot to the location of the main dot. Draw Line: This draws a line between the main dot and the second dot, in the color indicated by the Drag Is Erase setting. Draw Block: This draws a filled in rectangle whose opposite corners are indicated by the main dot and second dot, in the color of the Drag Is Erase setting. Draw Box: This draws a one pixel wide rectangle whose opposite corners are indicated by the dot and second dot, in the color of the Drag Is Erase setting. Draw Disk: This draws a filled in circle or ellipse inside the bounding box whose opposite corners are indicated by the dot and second dot, in the color of the Drag Is Erase setting. Draw Circle: This draws a one pixel wide circle or ellipse inside the bounding box whose opposite corners are indicated by the dot and second dot, in the color of the Drag Is Erase setting. Get Section: This takes the contents of the main bitmap within the rectangle whose opposite corners are indicated by the dot and second dot, and puts a copy of it in the temporary bitmap. This can then be pasted back onto the main bitmap using the commands below to make copies of sections of the bitmap. Put At Dot: This takes the contents of the temporary bitmap, and copies it on top of the main bitmap. The contents will be pasted at the location of the dot, where the dot will be the upper left corner of the pasted section. Put With Or: This is like Put At Dot except the contents of the temporary bitmap will be copied onto the main bitmap with a "logical or" operation, where the pixels (or bits within pixels in the case of the color bitmap) will be set if they're set in either the main or the temporary bitmap. Put With And: This is like Put At Dot except the contents of the temporary bitmap will be copied onto the main bitmap with a "logical and" operation, where the pixels (or bits within pixels in the case of the color bitmap) will only be set if they're set in both the main and the temporary bitmap. Put With Xor: This is like Put At Dot except the contents of the temporary bitmap will be copied onto the main bitmap with a "logical exclusive or" operation, where the pixels (or bits within pixels in the case of the color bitmap) will be set if they're set in the main bitmap or the temporary bitmap, but not both. View Inside: When this is checked the window will contain a 3D first person perspective view from inside the bitmap. When unchecked, the window will contain the standard overhead view of the bitmap. The perspective inside view will be drawn as if you're standing within the bitmap at the location of the dot, where on pixels are walls and off pixels are passages or open spaces. This view is designed to allow you to solve a Maze as if you were walking inside its passages. See the Inside section of the Dot Settings dialog for additional information about and settings related to this view. Many of the colors in this view can be changed in the Inside section of the Set Colors dialog. If the dot is on a set pixel, i.e. you're inside of a wall, the screen will be filled with the color of the wall, which is like if the wall is a hedge and you're forcing your way through it. Map Inside: This shows a map of the current Maze overlaying the first person inside view. This is not unlike the standard overhead view of the bitmap, however the walls are always one pixel thick, the Maze is rotated so the direction the dot is facing is up, and the Maze is offset so the dot is in the middle of the screen. Most settings that affect the standard overhead view affect the map overlay too. The dot will be shown with the same color and shape, and the size of the passages are defined by the Horizontal & Vertical Pixel Value fields in Display Settings, i.e. are affected by the commands on the Cell Viewport Span submenu. Mark 'X' At Dot: This allows you to mark your path or "leave a trail of breadcrumbs" in the first person perspective inside view. This will cause the floor section you're over to be drawn in a different color, or in the Simple Perspective inside display mode this will cause there to be a large 'X' on the floor at your current location. Note you may not be able to see an 'X' that's at your feet because you're looking forward, however if you move and look back at the cell you were in you can see it. This is implemented by turning on the pixel in the temporary bitmap at the location of the dot. Basically every set pixel in the temporary bitmap that's not set in the main bitmap, will cause there to be a marking at that location in the perspective inside view. Erase 'X' At Dot: This is like Mark 'X' At Dot except it will erase any marking at your current location. In other words this turns off the pixel in the temporary bitmap at the location of the dot. Inside Settings...: This dialog accesses all settings dealing with the first person perspective inside view. Inside Display Mode: This section of radio buttons controls whether and in what form the first person perspective inside view is shown. None: When selected, this turns off the perspective inside view. Instead the standard overhead view of the bitmap will be shown. Jumpy Movement: When selected, this turns on the perspective inside view. This is a genuine perspective rendering, and can display open spaces, passages wider than a single pixel, or any other arrangement of pixels accurately. This view is available for 2D and 3D bitmaps, where in 3D bitmaps pits will be visible in the floor and ceiling indicating passages to adjoining levels. In this mode, the walls will be shaded based on what direction they're facing. South facing walls will be lighter in color and North facing walls will be darker. There are no separate lines drawn to indicate edges, but the different sky and ground colors, along with the shading, make the corners apparent. If the color bitmap exists, the color to use for each wall piece, will be taken from the color at that location on the color bitmap, instead of everything being based on the Inside Wall color in the Set Colors Dialog. For example, run the Get From Bitmap command to copy the main to the color bitmap, then bring up the Replace Color dialog and replace the wall color i.e. white with one of the special blend sequences, and you'll have the wall colors gradually change as you go through the Maze. Passages marked with the Mark 'X' At Dot command will have that whole floor section drawn in a different color. The floor color here will be taken from the color bitmap in the same way wall colors are. Smooth Movement: This is like Jumpy Movement but will instead smoothly animate when you move and rotate. You will always be in the center of a cell facing in one of the four compass directions, however when you move or rotate you'll see a number of intermediate frames. This can be considered a combination of Jumpy Movement above where your vantage point is always from the center of a cell facing in one of the compass directions, and Free Movement below where you can be anywhere facing in any direction. This can be considered the best of both worlds, where it takes a minimum of key presses to move through the Maze, but the animation isn't jumpy. Free Movement: This is a more advanced version of Jumpy Movement, as it allows you to face in any direction instead of just the four main compass directions, and allows you to stand at any location, instead of only in the very middle of pixels. Because of this, the location and direction of the dot is no longer enough to determine exactly where you are, where the Offset fields in the Free Movement section of the dialog indicate where within the current pixel you are and how far away from the nearest compass direction you're facing. Very Free Movement: This is just like Free Movement, however moving around the Maze will feel more fluid, like playing a video game. You don't have to wait for key repeat to kick in, where holding down a key immediately continuously moves, and you can also hold down two keys at once (e.g. move forward plus rotate) and have them both take effect. The speed at which continuous movement happens is controlled by the Repeat Delay In Msec field in Display Settings. Simple Perspective: This behaves like Jumpy Movement, but the display will be created with a different algorithm. The inside view here won't be a true perspective rendering, and won't display views of open spaces within a Maze very well. It's really only good for views down one pixel wide passages in standard orthogonal Mazes. In this mode, the walls are always the same coloring, where there are lines drawn to indicate edges. That can make this mode more suitable for black and white printing. If the color bitmap exists, the color to use for all walls, will be taken from the color at your location on the color bitmap, instead of from the Inside Wall value in the Set Colors Dialog. Passages marked with the Mark 'X' At Dot command will show a large 'X' on that floor section. When the Stars setting is set, stars will show up on all pixels in the top half of the screen that are equal to the sky color. Hence you probably want to ensure the inside sky color is different from the inside wall color and inside line color, so stars are only drawn where they're expected. Some Inside Settings have no effect in this mode, such as Sealed Entrances, Sun And Moon, and Semitransparent Walls. Compass: If this is set, the direction you're facing will be printed at the bottom of the screen in perspective inside view. This will always be one of the four main compass directions, or one of the eight directions for the Free Movement modes where you can look in any angle. Compass Is Exact: If this is set, then when the compass direction is being displayed, its precise angle in degrees from 0 to 360 will be included too, where due North is 0, West is 90, and so on. Cell Location: If this is set, the horizontal and vertical pixel location of where you're at in perspective inside view (and your height or Z location when Bitmap Is 3D is checked) will be printed at the bottom of the screen. When Narrow Walls Inside is set, the coordinates will be of the dot's cell location instead of pixel location, i.e. the pixel coordinates will be divided by two, so the movement commands which move by two pixels when Narrow Walls is set, will still cause the location to change by one unit at a time. Map Overlay: This does the same thing as the Map Inside menu command on the Dot menu, however the menu command also turns on View Inside if not on already. Sealed Entrances: When this is set, looking out the entrance or exit of a Maze in inside view will show a solid color (which can be considered a special wall, a door, or open void) instead of a distant horizon. The sealed entrance or exit will be in the Line color as defined in the Set Colors dialog. Mountains: When this is set, mountains will be drawn in the background of the inside view. Their color is defined by the Mountain field in the Set Colors dialog. You'll always see the same mountains when looking in a particular direction, although a new set will be generated each time the program is started, or when the Randomize Seed command is run. Peak Height: This value controls how tall the mountains are drawn, as a percentage from the horizon to the top of the screen. Cloud Count: This field allows clouds to appear in the perspective inside view. When set to a non-zero value, that many clouds will be drawn in the background. Their color is taken from the Cloud field in the Set Colors dialog. You'll always see the same clouds when looking in a particular direction, although a new set will be generated each time the program is started, or when the Randomize Seed command is run. Note the first 16 clouds will never be placed due south or north, so they will never block the Sun or Moon. Sun And Moon: When this is set, the inside view will show the Sun or Moon in the sky or ceiling area when facing south. If the Stars checkbox is off the Sun will be shown, and if Stars is on a crescent Moon will be shown. Stars: If this is set, stars will be randomly drawn in the sky or ceiling area of the perspective inside view. The stars will be of different brightnesses, ranging from dim gray to bright white. Some will have a red, yellow, or blue tint. It's recommended to have the Inside Sky color in the Set Colors dialog be a dark color like black in combination with this. You'll always see the same stars when looking in a particular direction, although a new set will be generated each time the program is started. or when the Randomize Seed command is run. Star Count: This value controls how many stars to draw when Stars Inside is set. Daedalus can draw up to 8000 stars. Meteor Rate: This field allows shooting stars to sometimes be drawn in perspective inside view. This will happen when the Stars setting is on, and if this field is more than zero, where the percentage chance of one or more meteors happening in any screen redraw is controlled by this field. Meteors like the stars can be bright or dim, occasionally colored, can be long or short, and hidden behind mountains or foreground objects, so watching for them can be like looking for real meteors. :) Motion Frames: This only plays a role when Inside Display Mode is set to Smooth Movement. It sets the number of frames to animate when moving from cell to cell each time a motion command is run. Rotation Frames: This only plays a role when Inside Display Mode is set to Smooth Movement. It sets the number of frames to animate when rotating each time a turning command is run. Up Down Frames: This only plays a role when Inside Display Mode is set to Smooth Movement. It sets the number of frames to animate when moving vertically between 3D levels each time the Raise or Lower command is run. Motion Velocity: This only plays a role when Inside Display Mode is set to Free or Very Free Movement. It sets the number of inside units to move each time a motion command is run. Note if the Move By Two dot editing flag is on, movement will happen at twice the rate as is normal, allowing that setting to act as a "run" or "turbo" mode for the first person view. This is implemented by moving twice internally per screen update, where if the first move doesn't actually move the dot, e.g. it bumped into a wall, the second move will be skipped. Rotation Velocity: This only plays a role when Inside Display Mode is set to Free Movement. It sets the number of degrees to rotate each time a turning command is run. Note if the Drag By Two dot editing flag is on, rotation in place will happen at twice the rate as normal. Up Down Velocity: This only plays a role when Inside Display Mode is set to Free Movement. It sets the number of inside units to move up or down each time the Raise or Lower command is run. Horizontal & Vertical Offset: These only play a role when Inside Display Mode is set to Free Movement. They indicate the number of inside units the viewing location is from the center of the pixel. You probably don't want to manually change these, where it's easier to just use the arrow keys to move around, which will automatically update them. Up Down Offset: This only plays a role when Inside Display Mode is set to Free Movement. It indicates the number of inside units the vertical or Z-coordinate of the viewing location is above or below the center of the level. You probably don't want to manually change this, where it's easier to just use the Raise and Lower commands to move up and down, which will automatically update this. Direction Offset: This only plays a role when Inside Display Mode is set to Free Movement. It indicates the number of degrees the viewing angle is different from the dot's current compass direction. You probably don't want to manually change this, where it's easier to just use the Left and Right commands to rotate your view, which will automatically update this. Up Down Smooth Not Free: This flag only has an effect when the inside display mode is set to Free Movement or Very Free Movement, and the Maze is 3D. It causes vertical movement between levels to be smoothly animated as in the Smooth Movement mode, while 2D movement is unchanged. In other words it allows fast switches between levels that ensure you never get stuck part way between them, while still allowing fine control of your location and direction within a level. Narrow Walls: If this is set, walls will be narrower than passages in the perspective inside view, specifically they'll be 1/4 the width. If this is unset, walls will be the same thickness as passages. In other words pixels in even numbered rows and columns will be drawn thinner than odd numbered rows and columns. When set, the dot movement commands will also move by two pixels instead of one, i.e. you'll always move between odd numbered rows and columns, and hence move down passages faster. Cell Size: This sets the number of inside units within each pixel. For example if Cell Size is set to 20, and Motion Velocity is set to 4, it will take five moves to travel from one cell to its neighbor. This also sets the number of inside units within each level. For example, if Cell Size is set to 18, and Up Down Velocity is set to 3, it will take six moves to travel from one level to the next. Narrow Cell Size: This only plays a role when Narrow Walls Inside is set. This sets the number of inside units within walls or pixels in even numbered rows and columns. For example, if Cell Size is 16 and Narrow Cell Size is 2, walls will be 1/8 the thickness of passages. Wall Height: This sets the height of walls. The number is relative to Cell Size, e.g. doubling Cell Size will have the same visual effect as halving Wall Height. Viewing Height: Daedalus supports seeing the Maze from any height in the perspective inside view. Normally eye level is always half way between the bottom and tops of walls, but eye level can be set to anywhere, even high enough to look over the tops of walls and see other passages. This field controls the viewing elevation. Positive values will increasingly make you seem to float higher in the air, while negative will make you seem underground or with the Maze floating in midair. A Viewing Height of half the Wall Height will make eye level even with the tops of walls. A non-zero wall height may seem to draw slower, since the visible set of passages can increase to include the entire Maze, so it works best on a faster computer. Note ceiling markings become invisible if the View Height is positive, while floor markings become invisible if View Height is negative. Technically, eye level is always at the center of walls, where an alternate viewing height is implemented using the variable height walls ability, by treating all walls taller internally, combined with chopping the tops off, allowing one to look over them. The Raise and Lower commands, i.e. pressing the "u" and "d" keys, will change the Viewing Height (for 2D Mazes that is, where in 3D Mazes these commands change levels.) The Viewing Height will be adjusted by the number of units in the Up Down Velocity free movement setting, allowing one to fly up or down. Being able to see over the tops of walls won't affect any other behavior, i.e. walls will still block movement if the Walls Impassable dot setting is on. Step Height: This field in the Inside Settings dialog controls a simple physics model, allowing one to climb on walls and be affected by gravity, and will automatically adjust the Viewing Height as one moves around. If non-negative, the field indicates how many inside units one can climb up at a time. A Step Height of at least half the Wall Height will allow one to climb on any block they can see over the top of, while a Step Height of at least the Wall Height will allow one to climb over default height walls. Note if one steps off an edge, they're allowed to fall any distance. Variable height walls may be defined so that a block is suspended in air, in which case you will go underneath it if the bottom of the block is above eye level. This allows one to go over and well as under bridges. When active, actions that teleport the dot such as clicking the mouse will also set the Viewing Height so one is standing on the block at that location, whatever its height. If Step Height is -1, then this feature will be disabled, resulting in the old behavior of the Viewing Height always being the same, where movement is only affected by whether a wall is present. Note if the Walls Impassable dot setting is off, this field will also have no effect, where one will always be able to move through walls or space like a ghost without the Viewing Height changing. Allow Texture Mapping: Daedalus supports texture mapping in the first person view, which means having walls, floor cells, or the background decorated with pictures instead of just solid colors. Texture mapping draws slower than solids, so if it makes screen updates happen too slowly it can be turned off altogether. If this setting is off, no texture mapping will happen, where even things that have textures defined for them will show as just a solid color. For a good demo of texture mapping, run the "Dragonslayer Game" script, where you can see brick and stone walls among other things. Texture mapped walls can also be seen on the sides of pits in the floor and ceiling. For example, in the "Dragonslayer Game" script, make your way to the pit down the next level, and notice its sides show a stone pattern too. Light Factor: This indicates how much lighter or darker south and north facing walls should be from the general wall color. The lower the value, the more similar the colors. If this value is negative, north facing walls will be lighter and south darker instead of vice-versa, and also the Sun or Moon will be displayed to the north instead of south, which can simulate a southern hemisphere location. Fog Distance: Daedalus supports fog effects in the first person view. If this field is non-zero, the color of walls will increasingly fade the farther away they are. This gives better depth perception, where even walls of all the same base color will be shaded differently based on their distance from you. The larger the number, the greater the distance before the wall color will completely fade. Specifically it's equal to one tenth the number of inside units before the fade limit is reached, e.g. a Fog Distance of 320 with a Cell Size of 160 means walls will completely fade after a distance of 20 cells. See the Fog field in the Set Colors dialog for the color things fade to. Clipping Plane: This contains the clipping plane distance or how many pixels to look in each direction for a wall. If objects seem to suddenly pop into view in the distance, you might want to increase this. If the screen is taking a long time to update while in open spaces, you might want to decrease this. Viewing Span: This sets how many degrees the inside view covers on either side of the direction being faced. For example, if this value is 50, your total viewing span will be 100 degrees. Low numbers give a "tunnel vision" effect, while high numbers do the opposite. Note changing this setting won't affect the apparent height of walls, allowing one to change this setting without having to then adjust the Wall Height to avoid distortion. As the angle being viewed decreases or increases, walls will seem to approach or recede. Semitransparent Walls: Walls in the perspective inside view can be semitransparent or translucent. They will look like large sections of colored class or forcefields where you can see what lies behind them, but tinted with the color of the wall. If you look through a blue semitransparent wall behind which is a red semitransparent wall, objects behind both walls will have a purplish tint. Passage cells can be displayed semitransparent too, and will look just like semitransparent walls, with the only difference being you can walk through them. Semitransparent walls or passages are indicated by having set pixels at that location in the extra bitmap. None: This radio button disables display of semitransparent walls. All walls will appear opaque regardless of the contents of the extra bitmap. Fast Drawing: This radio button enables display of semitransparent walls. Every pixel's color will be a blend between the wall's color at that point and what's behind it. Thorough Drawing: This also enables display of semitransparent walls. This shows slightly more detail than Fast Drawing, and will include transitions between adjacent semitransparent blocks. Fast Drawing won't do this, even if they're different colors or have a texture. Very Thorough: This is the same as Thorough Drawing except the thickness of semitransparent walls will also be apparent. Objects seen through the top and bottom of the wall section will be drawn slightly darker than those seen though the back of the wall section. With Fast and Thorough Drawing only the front faces of walls are colored, which can make the wall look more like a sheet of paper than a solid block. ************************************ DAEDALUS MENU COMMANDS - BITMAP MENU ************************************ Bitmap Menu: This contains general graphics commands that operate on the bitmap as a whole, such as clearing, resizing, zooming, and copying. They affect the main monochrome bitmap, and will do a similar action on the color bitmap if the color bitmap is being shown. Size...: This dialog allows changing the size or dimensions of the active bitmap. Set Lower Right Bound: When this radio button is selected, you resize the bitmap by specifying the new horizontal and vertical pixel size of it. This will either add to or remove from the bottom right corner depending on whether you're making the bitmap larger or smaller. When making the bitmap larger, rows and columns of off or black pixels are added to the bottom right corner. Shift Down And Right By: When this radio button is selected, you resize the bitmap by specifying how much larger or smaller you want it to be, i.e. how many columns and rows to add. This will either add to or remove from the top left corner of the bitmap depending on whether you enter positive or negative numbers. When making the bitmap larger, rows and columns of off or black pixels are added to the top left corner. Horizontal & Vertical Size: These two values indicate the current size of the bitmap. Change these values to the new size of the bitmap, or the amount that you want to enlarge the bitmap by, to resize it. When Set Lower Right Bound is set, these numbers can be negative, and will resize the bitmap down by that amount, e.g. -10 will subtract ten pixels from the bitmap's size. Clear Bitmap After Sizing: When this is set, after the bitmap is resized, all pixels in it will be set to off or black. Internally Daedalus resizes a bitmap by creating a new bitmap of the destination size, then copying the contents of the old bitmap to the new one. When dealing with very large bitmaps, this copying can take a few seconds. Having this set can make the resize faster. 3D Bitmap: This section contains the size or dimensions of the 3D bitmap within the main bitmap. These fields are used when creating 3D Mazes, 4D Mazes, and Planair Mazes, and should be set to the desired values before creating such Mazes. X: This contains the number of horizontal pixels within each level or section in a 3D or 4D or Planair Maze. The number of horizontal passages will be one less than half this number. Loading a 3D bitmap with the 3D Bitmap Open command will set this value. Y: This contains the number of vertical pixels within each level or section in a 3D or 4D or Planair Maze. The number of vertical passages will be one less than half this number. Loading a 3D bitmap with the 3D Bitmap Open command will set this value. Z: This contains the number of 3D levels in a 3D or 4D Maze. This is the number of actual bitmap sections, which includes sections between passage levels indicating the passage connections between the levels. The number of actual passage levels will be half this number. Loading a 3D bitmap with the 3D Bitmap Open command will set this value. For Planair Mazes this field is ignored. W: For 3D and Planair Mazes this contains the number of sections per row. This allows the sections to be arranged in a grid instead of having to be in a single line. This affects the arrangement of sections when loading a 3D bitmap as well as when creating a 3D or Planair Maze. For 4D Mazes this contains the number of levels along the 4th axis or through the 4th dimension. This is the number of actual bitmap sections, where the number of 4D passage levels will be half this number. 4D Mazes are arranged as a 2D grid of 2D sections or levels. Common Sizes: This submenu allows automatically resizing the bitmap to any one of 18 predefined sizes. All: This submenu allows doing things to all the pixels in the main or color bitmaps. Clear All: This clears or turns off all pixels in the bitmap. Set All: This sets or turns on all pixels in the bitmap. Invert All: This inverts or reverses all pixels in the bitmap, where all off pixels become on and vice versa. Random All: This randomly sets all pixels in the main bitmap, with a 50% chance of any pixel being on or off. This percentage is modified by the Random Bias setting, which is added to the percentage of pixels being on. For example, a Random Bias field of -10 means a 40% chance each pixel will be on. When the color bitmap is being shown, this will instead set each pixel in the color bitmap to a random 24 bit color. Zoom...: This dialog is similar to the Size dialog in that it resizes the active bitmap, however here you're zooming or stretching the contents of the bitmap instead of just adding rows and columns to it. Zoom By Factor: When this radio button is selected, you zoom the bitmap by specifying the factor or ratio by which you want its horizontal and vertical size enlarged. For example, entering 2 and 2 will double the dimensions of the bitmap, where each pixel in the old bitmap zooms to a 2x2 section of pixels in the new bitmap. You may enter floating point numbers here to zoom by an non-integer percentage. Zoom To Size: When this radio button is selected, you zoom the bitmap by specifying its new horizontal and vertical pixel size. The bitmap will be resized, and its contents will be stretched or shrunk to fit in the new size, with rows and columns being duplicated or dropped as needed. Horizontal & Vertical: Set these values to either the horizontal and vertical factor to zoom the bitmap by, or the new pixel size to zoom the bitmap to. Note these fields can also be negative. When Zoom By Factor is set, negative numbers will shrink the bitmap to that fraction, e.g. -3 will shrink the bitmap down to one third of its original size. When Zoom To Size is set, negative numbers will shrink the size of the bitmap by that amount, e.g. -10 will shrink the bitmap down by ten pixels. Drop Lines When Shrinking: When set, then when shrinking or zooming the bitmap down, certain rows and columns will just be dropped. Preserve On When Shrinking: When set, in monochrome bitmaps priority will be given to any on pixels when zooming the bitmap down. This means in each section of pixels that will become a single pixel in the new smaller bitmap, if any pixel in that section is on, the new pixel will be on. Only if all pixels in a section are off, will the new pixel be off. Normally when shrinking, Zoom will just pick the first pixel from each section. For example, assume you have a solution to a very large Maze, consisting of a thin line of on pixels; with this checkbox set, you can shrink it to a smaller bitmap, and still see a continuous path without any part of it having been dropped or lost in the shrinking. When set in color bitmaps, pixels will be set to the blended mixture of all pixels mapping to it. Tessellate Instead Of Zoom: When set, zooming won't stretch the bitmap at all to whatever size, but will rather tile or tessellate the bitmap's old contents through the new size. Flip And Rotate: This submenu has commands to flip and rotate the contents of the main or color bitmaps. Flip Horizontal: This flips the bitmap from left to right. Flip Vertical: This flips the bitmap from top to bottom. Transpose: This flips the bitmap across the main diagonal that runs from the upper left corner to the lower right. Rotate Right: This rotates the bitmap to the right 90 degrees. Rotate Left: This rotates the bitmap to the left 90 degrees. Rotate Across: This rotates the bitmap 180 degrees, turning it upside down. 3D Bitmap...: This dialog allows flipping and rotating the 3D bitmap stored in the active bitmap. This can be used to view other sides of the 3D bitmap in the Render Bitmap Overview command. X & Y & Z: These radio buttons in the Axis group indicate which axis of the 3D bitmap to operate on. Flip: This radio button in the Operation group means to flip the 3D bitmap through the axis specified above. Rotate Right & Rotate Left & Rotate Across: These radio buttons in the Operation group mean to do the same as the Rotate Right, Rotate Left, and Rotate Across commands, however they do that to all layers of the 3D bitmap along the axis specified above. Temp Bitmap: This submenu has commands involving the temporary bitmap. When the color bitmap is being displayed, these commands deal with the the temporary color bitmap, otherwise they affect the temporary main bitmap. Get: This copies the main bitmap to the temporary bitmap. This can be used as an undo feature. If you make a mistake when editing the main bitmap, you can go back to this copy you made by using the Put command below. Put: This copies the temporary bitmap to the main bitmap. Swap: This swaps the main bitmap and the temporary bitmap with each other. Or: This is like Put except the contents of the temporary bitmap will be copied on top of the main bitmap with a "logical or" operation, where the pixels (or bits within pixels in the case of the color bitmap) will be set if they're set in either the main or the temporary bitmap. And: This is like Put except the contents of the temporary bitmap will be copied on top of the main bitmap with a "logical and" operation, where the pixels (or bits within pixels in the case of the color bitmap) will only be set if they're set in both the main and the temporary bitmap. Xor: This is like Put except the contents of the temporary bitmap will be copied on top of the main bitmap with a "logical exclusive or" operation, where the pixels (or bits within pixels in the case of the color bitmap) will be set if they're set in the main or the temporary bitmap, but not both. Blend: This edits the main bitmap by combining the temporary bitmap with it. When Show Color Bitmap is off, the combined bitmap takes every other pixel from the original main bitmap and every other from the temporary. When the color bitmap is active, the combined bitmap's colors are half way between the original color bitmap and the temporary color bitmap. Tessellate: This is like the Put command in that it copies the contents of the temporary bitmap to the main bitmap, except this doesn't change the size of the main bitmap, but rather tiles or tessellates copies of the temporary bitmap across and down it. This is a quick way to make a mosaic of a small bitmap pattern within a larger bounds. Delete: This deletes the temporary bitmap, returning it to the way it is when the program starts. This is a quick way to make the contents of this bitmap no longer affect other commands or displays, i.e. this will remove all floor markings in the perspective inside view. Extra Bitmap: This submenu has commands involving the extra bitmap. The extra bitmap is like another temporary bitmap, and like it may be used for general bitmap editing purposes. When the color bitmap is being displayed, these commands deal with the the extra color bitmap, otherwise they affect the extra main bitmap. Get: This copies the main bitmap to the extra bitmap. Put: This copies the extra bitmap to the main bitmap. Swap: This swaps the main bitmap and the extra bitmap with each other. Delete: This deletes the extra bitmap, returning it to the way it is when the program starts. This is a quick way to make the contents of this bitmap no longer affect other commands or displays, i.e. this will remove all semitransparent sections in the perspective inside view. Collapse To Set: This makes the active bitmap smaller, such that all blank rows and columns (i.e. entirely composed of off or black pixels) on the edges of the bitmap are removed. In other words this trims off any blank rows and columns from the top, left, bottom, and right edges. Smooth Zoomed: This attempts to make diagonal lines in a zoomed bitmap look smoother. This command first automatically zooms the bitmap by a factor of two. After zooming by 200%, diagonal lines will be composed of 2x2 blocks and hence look like stairs. This command will set the pixels inside the "stairs" between two blocks, turning it into a thick diagonal line. This is best used with a Maze type that involves non-orthogonal walls such as a Crack Maze. Create a Crack Maze, then select Smooth Zoomed and notice how less rough the walls look. When No Corner Hopping is off, Smooth Zoomed will set additional pixels. Sometimes where there are three of four pixels set in a 2x2 block, this will set the pixel in the corner. The logic is to still do smoothing if there are branches along a diagonal line, but to leave sharp right angle corners alone. Smooth Corners: This smoothes the corners in the bitmap by turning off pixels that are at corners. This is best used after zooming a Maze or other bitmap by a certain factor, to make the corners of walls look rounder. This command may be run multiple times to further round off the corners. Note this only smoothes walls or sections of the bitmap composed of on pixels. You can smooth passages or off sections of the bitmap by reversing the bitmap with Invert All, running Smooth Corners, then inverting the bitmap back. Thicken: This makes everything in the main bitmap appear thicker. Basically every set pixel will expand into a 2x2 block, absorbing the off pixels next to it. This doesn't resize the bitmap any. This command may be run multiple times to further fatten everything. This works well with Maze types such as Omega Mazes and Labyrinths when drawn in a high resolution bitmap, to make those Maze's one pixel wide lines not appear so thin. If the color bitmap is being shown, this will instead operate on the color bitmap and do a blur effect, and blend the color of each pixel with the pixels surrounding it. Make Thinner: This is roughly an inverse of the Thicken command. This makes all content in the bitmap thinner, where usually nothing left is more than one pixel wide, with few or no 2x2 blocks anywhere. This won't fundamentally change the structure of content, i.e. it won't divide objects, add holes, or make anything shorter. For example, running this on a solid 10x20 rectangle will result in a length 10 horizontal line intersecting a length 20 vertical line. This can be a good command to run before Graph Walls, as that works on one pixel wide walls, and this converts everything to one pixel wide walls. If the No Corner Hopping setting is off, this will remove even more pixels, by allowing removals that only leave pixels connected diagonally, where this will remove most 2x2 blocks of on pixels that weren't carved into before. When the color bitmap is being shown, the Make Thinner command will map each pixel to the nearest color of the rainbow. If the Special To Pattern setting in the Replace Color dialog is set to Straight Color Blend, this will instead convert the image to a maximum contrast version of itself. All colors will be converted to the nearest of eight colors, i.e. all combinations of RGB values whose components are either 0 or 255. Accent Boundaries: This basically zooms the active bitmap by 200%, making it about twice the size of the old bitmap, but does it in a special way. Boundaries or edges between sections of on pixels and sections of off pixels in the old bitmap, become lines of on pixels in the new bitmap, while boundaries between pixels that are the same in the old bitmap, become off in the new bitmap. There is one off pixel in the new bitmap corresponding to the middle of each pixel in the old bitmap. For example, an on pixel completely surrounded by off pixels (as well as an off pixel surrounded by on pixels) will become a small one pixel wide rectangle of set pixels. When applied to color bitmaps, black pixels are considered off, and non-black are on. Fill At Dot: This fills in the area or object that the dot is within, regardless of its shape. If the dot is over an off pixel, this will fill the area with on pixels until walls of on pixels are hit, like dumping a bucket of paint into it. If the dot is over an on pixel, this will do the opposite and fill in the area with off pixels until boundaries of off pixels are hit. If the Bitmap Is 3D setting is on, this will do a 3D fill, and will look in the four main directions as well as up and down for additional pixels to fill. If Show Color Bitmap is on, this instead fills in the area that the dot is within on the color bitmap, with the color of the dot. The area to be filled is indicated by the color that the dot is over. All other colors will mark the boundary to stop filling at. Flood At Dot: This is like Fill At Dot except here the filling can proceed diagonally. The Fill At Dot command only looks in the four main directions for additional pixels to fill. This command looks in all eight directions. A one pixel wide diagonal line will stop the Fill At Dot command, but Flood At Dot will bleed through and keep going. Like Fill At Dot, this also works on the color bitmap. Slide To Dot: This edits the active bitmap by "sliding" it so that the pixel under the dot becomes centered in the bitmap. This doesn't change the bitmap's size or lose any data, where pixels that move off one edge of the bitmap reappear on the other. Row Column Edits: This submenu has commands to insert or delete rows or columns in the bitmap. Insert Column At Dot: This takes the column at the horizontal location of the dot, and duplicates or makes a copy of it, making the bitmap that much larger. Delete Column At Dot: This takes the column at the horizontal location of the dot, and removes it, making the bitmap that much smaller. Insert Row At Dot: This takes the row at the vertical location of the dot, and duplicates it. Delete Row At Dot: This takes the row at the vertical location of the dot, and removes it. Insert Columns At Dots: This takes the columns between the horizontal locations of the dot and second dot, and duplicates them. Delete Columns At Dots: This takes the columns between the horizontal locations of the dot and second dot, and removes them. Insert Rows At Dots: This takes the rows between the vertical locations of the dot and second dot, and duplicates them. Delete Rows At Dots: This takes the rows between the vertical locations of the dot and second dot, and removes them. Bitmap Is 3D: This is a general setting indicating whether the bitmap should be treated as a 3D bitmap. When checked, the first person perspective inside view will be of the 3D bitmap within the main bitmap instead of just of the 2D main bitmap itself. This will cause there to seem to be pits or holes in the floor and ceiling, i.e. passages going up and down, in addition to passages in the four compass directions. Creating a 3D Maze and other commands that operate on or have as their result a 3D Maze will automatically turn this setting on. Similarly creating a 2D Maze and other commands that treat the bitmap as a 2D plane will automatically turn this off. Note this should only be turned on for 3D Mazes. Trying to view a 2D Maze or any other bitmap as a 3D Maze will result in what looks like random garbage. This setting affects other features of the program too, such as mouse clicks. Count Pixels: This counts the number of set and reset pixels in the main bitmap. The total number of pixels will be printed, along the number that are on and the number that are off, and their percentages. If the color bitmap is being shown, this command will instead operate on the color bitmap, and display the number of pure black, pure white, other grayscale, and actual colored pixels, along with the percentage red, green, and blue intensities of the average pixel. *********************************** DAEDALUS MENU COMMANDS - COLOR MENU *********************************** Color Menu: This contains all commands affecting the color bitmap, such as the ability to load or copy to it, and save or copy from it. Most commands set the color bitmap in an interesting way based on other bitmaps, although some operate on the color bitmap itself. Show Color Bitmap: When this menu item is checked, the window will show the color bitmap. When this is unchecked, the window will show the main monochrome bitmap. Note most commands on this menu will automatically switch to showing the color bitmap. Also most commands here, if the color bitmap doesn't already exist, will automatically copy the main bitmap to the color bitmap before continuing. Similarly most commands that only operate on the main bitmap, such as Maze creation, will automatically turn this setting off and switch to showing the main monochrome bitmap. Color Targa File: This submenu has commands to load and save targa format graphics files. This is not a Windows specific format so may be used to transfer files to or from non-Windows syste