Daedalus Changelog

What's new in Daedalus 3.4

Aug 31, 2023
  • NEW FEATURES:
  • A list of new features in Daedalus 3.4, which means new commands and settings that weren’t present in the previous version:
  • 1. Sphere Mazes: The new “Create / Omega (Shapes) / Omicron (Sphere)” menu command will create a Maze on the surface of a sphere. They are most similar to the existing “Theta (Circle)” Mazes that are disk shaped, except here the Maze is by default drawn flattened. That means passages at the top and bottom which map to the top and bottom of the sphere are wider, because they map to the smaller radius polar areas. To actually see the Maze in sphere form, turn on “Create / Create Settings / Omega (Shapes) / Make Wireframe Also”, which will also create a 3D spherical wireframe in memory of the Maze.
  • 2. CubeFlip transpose: The “Bitmap / Flip and Rotate / 3D Bitmap” dialog has been extended with a “Transpose” option. That will apply a transpose operation along the axis specified.
  • 3. Grippy Socks script: Daedalus comes with a new script called “Grippy Socks”, which is a mental health psych ward simulation. You experience a hospital environment, in which your objective is to find the right medication and other treatments, and then use them so that you can get released. This is the second most extensive script that comes with Daedalus, in which only the Hunger Games script is larger. The new “File / Run Script / Grippy Socks” menu command will run it. For more details about this script see http://www.astrolog.org/labyrnth/daedalus/gripsox.htm.
  • 4. Makefiles: Compiling Daedalus’ source code is easier, since the downloads now come with Visual Studio project/solution files for Windows, and a Makefile file for Unix systems.
  • EXTENDED & IMPROVED FEATURES:
  • A list of improvements to existing features, which means new things you can now do with old features that you couldn’t do before, or ways existing features work better than before. Note that some change existing behavior in ways users of previous versions should be aware of:
  • 1. Stereoscopic perspective renderings: The wireframe and patch perspective renderings now support stereoscopic 3D graphics. The “Stereo Width” field in the Dot / Inside Settings dialog will when non-zero cause the bitmap to be split into two displays, showing the scene from slightly different viewpoints. When the two images are looked at together, with one image for each eye, the result is a true 3D effect. Classic 3D glasses, modern 3D movies, Google Cardboard, and random dot stereograms work the same way. The value indicates the distance in coordinate units that the two views are from each other. If the value is negative, the leftmost image will be on the right half instead of on the left.
  • 2. Dragon curve Mazes: Daedalus can generate deterministic fractal pattern Mazes, whose solution path is similar to a Dragon curve fractal. The “Create / Pattern / Hilbert Curve” menu command will (instead of a standard unicursal Hilbert curve) produce a fractal Maze pattern if “Allow Isolations in Fractal” is set. This Maze will be perfect with no loops or isolations. The “World’s Largest Maze” script supports these Mazes, such that this setting will affect the virtual Hilbert curve Labyrinth (F10 option #5) and make it a Dragon curve Maze instead.
  • 3. Zeta wireframe: The “Create / Omega Shapes / Zeta (8 Way)” Maze creation command will now also create a wireframe of the Maze’s passages in memory, if “Create / Create Settings / Omega (Shapes) / Make Wireframe Also” is set.
  • 4. Cube wireframe: The “Create / 3D / Planair” Maze creation command will now create a wireframe of the Maze’s walls in memory, if “Create / Create Settings / Omega (Shapes) / Make Wireframe Also” is set, and also if the Planair creation string is set to generate a Maze on the surface of a cube (specifically set to “e2d3f0b1 e7a3f3c1 e4b3f6d1 e1c3f5a1 c4d0a0b4 a2d6c6b2”). This wireframe will depict a cube, in which each face is a different color, and with arrows pointing to the middle of opposite faces to indicate entrance and exit points.
  • 5. Wilson/Aldous start: The Wilson’s and Aldous-Broder Maze creation commands will pick a specific point to start creating the Maze from, when “Create Settings / Value Is Random Chance” is off. Normally these Maze creation commands start creating from a randomly chosen location.
  • 6. Larger font: Daedalus has a new fixed width internal bitmap font, containing 9x15 pixel characters. (This is 1.5x the size of the existing 6x10 pixel font.) The Turtle scripting operation can draw in this new font by specifying "T3".
  • 7. Hunger Games improved: The Hunger Games simulation script has been updated in several ways. Arena selection character "9" will produce a stadium similar to as seen in the 10th Hunger Games. Hill option “H9” will produce just a rectangular stadium effect within the arena. Naming setting “s5” will give tributes the names from the 10th Hunger Games (e.g. “Lucy Gray”).
  • BUG FIXES:
  • A list of bugs and other problems in Daedalus 3.3, all of which have been fixed in Daedalus 3.4:
  • 1. Inside ceiling display: In the perspective inside view, tall variable height walls in the distance would be drawn on top of nearer ceiling markings. The ceiling will now act as an opaque barrier no different from other blocks.
  • 2. Stereo display: The stereoscopic view would sometimes display garbage pixels in the rightmost column.
  • 3. X11 bitmap error: Saving to X11 bitmap format would leave off the filename within the file produced, which could produce an invalid file that the Unix xsetroot command wouldn’t understand.
  • 4. Unix editing bugs: When compiling Daedalus on some Unix systems (e.g. with the g++ compiler) some bitmap operations would only operate on the first part of the bitmap, such as inverting the bitmap. Also on some Unix systems, bitmaps with an odd vertical dimension would sometimes cause illegal memory accesses off the bottom of the bitmap.
  • 5. Scrollbar omission: Scrollbars wouldn’t scroll when selecting the dial and dragging it to another location. Also, right clicking on a scrollbar and selecting “Scroll Here”, “Left Edge”, “Right Edge”, “Top”, or “Bottom” wouldn’t do anything.
  • 6. Script text display: Some Daedalus scripts would display bad line breaks in text, i.e. would show multiple line breaks close to each other, which looked bad. In old versions of Windows, displaying message boxes would require programmers to insert line breaks at appropriate points, to avoid message boxes as wide as the screen. In newer versions of Windows, message boxes are kept to a certain width, and line breaks are automatically inserted. The manually inserted line breaks would sometimes be placed right after an automatic line break, resulting in a line with just a few words in it.
  • SCRIPTING ADDITIONS:
  • A list of new operations, variables, and functions added to the Daedalus scripting language. This only affects those who write their own macros or scripts, and should be ignored by everybody else:
  • Operations:
  • DlgOpenDB: Brings up a dialog allowing one to select a file, and then loads that file as a Daedalus bitmap.
  • SaveVector <file>: Saves the wireframe data in memory to a Scalable Vector Graphics (SVG) format file in the string <file>. This accesses the functionality of the “Draw / Wireframe File / Save Vector...” command without bringing up a dialog.
  • SetY <x> <y> <dir> <num>: Set texture. Sets the texture on the block at the given coordinates facing the given direction, in a manner that assumes fTextureDual is set. This means setting the appropriate bits of a pixel on the custom color bitmap indicated by nTextureWall to <num>. If <dir> is -1, both texture pairs (i.e. all four sides) are set to the texture number. If <dir> is -2, all four sides are set to the texture number, in a manner that assumes fTextureDual is off.
  • Set3Y <x> <y> <z> <dir> <num>: Set 3D texture. Like SetY but for 3D bitmaps. Sets the texture on the block at the given coordinates facing the given direction. This means setting the appropriate bits of a pixel on the 3D custom color bitmap indicated by nTextureWall to <num>.
  • BlendN: Sets the color bitmap to an equal blending together of N other color bitmaps. The other bitmaps are assumed to be stacked vertically within the temporary color bitmap, in which N is determined by the bitmap’s overall height. Black pixels in any bitmap are skipped, and make that subbitmap not contribute to the result.
  • ZoomBiasPic: Zooms the monochrome bitmap, such that each 2x2 pixel area becomes a 3x3 pixel area. The middle column areas of each cell will be set based on the brightness of the color bitmap’s corresponding pixels. This is used to zoom a Maze such that its passage and wall thicknesses look similar to a background picture.
  • GetStar <num1> <num2> <num3>: Fetches the horizontal and vertical coordinates, along with the RGB color, of star number <num2> displayed in the perspective view. If <num1> is 0, gets the star from the perspective inside view, otherwise gets the star from the wireframe or patch view. The three values are stored in custom variables starting with index <num3>.
  • SetStar <num1> <num2> <numx> <numy> <string>: Sets the horizontal and vertical coordinates, along with the color, of star number <num2> displayed in the perspective view. If <num1> is 0, sets the star in the perspective inside view, otherwise sets the star in the wireframe or patch view.
  • Variables:
  • nStarSize: Determines the maximum brightness of stars in the background of the perspective views, before they’re displayed larger than one pixel. Standard values can range between 0 and 765 (the latter of which is 255x3, or the maximum RGB brightness). If less than 0, then every other star is large (regardless of its brightness).
  • fTextureDual2: This only plays a role when fTextureDual is set. This causes the two textures to be duplicated on the north/west and south/east faces of blocks. Normally the two textures are duplicated on the north/south and west/east faces.
  • fStereo3D: This only plays a role when nStereo is non-zero, and stereoscopic graphics are being displayed. When this is set, the stereoscopic image will be made for classic 3D glasses, with red and cyan monochrome images for each eye overlapping. (This is in contrast to the completely separate left eye and right eye images drawn side by side as is normal.)
  • Functions:
  • && <num1> <num2>: Logical and. Returns whether both <num1> and <num2> are non-zero. This function does not do short circuit evaluation, in that both arguments are always evaluated even if the first is false. Like the “&&” operator in C.
  • || <num1> <num2>: Logical or. Returns whether either <num1> or <num2> are non-zero. This function does not do short circuit evaluation, in that both arguments are always evaluated even if the first is true. Like the “||” operator in C.
  • Tween <num> <num1> <num2>: Between. Returns whether Num lies within the range of Num1 to Num2. This is basically a shorthand version of “And Gte <Num> <Num1> Lte <Num> <Num2>”.
  • Ln <num1> <num2>: Logarithm. Returns <num1> times the natural or base “e” logarithm of <num2>.

New in Daedalus 3.2 (Oct 5, 2016)

  • NEW FEATURES:
  • A list of new features in Daedalus 3.2, which means new commands and settings that weren’t present in the previous version:
  • Growing Forest algorithm Mazes:
  • Daedalus can create Mazes using the Growing Forest algorithm, with the new Create / Perfect / Growing Forest command. The Growing Forest algorithm is basically multiple instances of the Growing Tree algorithm running at the same time. In the Create Settings dialog, the new “Forest Initial” field indicates the number of instances to begin with: If positive the field indicates the exact number of instances, and if negative the field indicates that one in X cells should start out as instances. The new “Forest Addition” field indicates the number of instances to add each time a cell is added to the Maze: If positive the field indicates the exact number of instances to add, and if negative indicates that one instance should be added every X cells. If “Forest Initial” is one and “Forest Addition” is zero, then this behaves like the Growing Tree algorithm.
  • Metafile output:
  • Daedalus may output images in Windows metafile format, a vector format that uses lines instead of pixels. The Daedalus wireframe in memory may be saved to a Windows metafile with the new Draw / Picture File / Save Wireframe Picture command. The file may also be copied to the clipboard with the new Draw / Picture File / Copy Wireframe Picture command. The Windows metafile format may be opened or pasted into programs such as Microsoft Word, in order to produce printouts that aren’t pixelated.
  • Wireframe Omega Mazes:
  • The Omega Mazes can automatically generate Daedalus wireframe and patch scenes. There’s a new radio button group in the “Omega (Shapes)” section of the Create Settings dialog. When set to “Screen Only”, Omega Mazes will only be drawn in the main bitmap. If set to “Make Wireframe Also”, creating the Maze (in addition to drawing in the bitmap) will also generate a Daedalus wireframe scene, which can be rendered, saved as a Windows metafile, and so on using commands on the Draw menu. If set to “Make Patches Also”, creating the Maze will also generate a Daedalus patch scene, that can be rendered and such using commands on the Draw menu.
  • Stereoscopic 3D view:
  • The perspective inside view supports stereoscopic 3D graphics. There’s a new “Stereo Width” field in the Dot / Inside Settings dialog. When non-zero, the window will be split into two displays, showing the scene from slightly different viewpoints. When the two images are looked at together, with one image for each eye, the result in a true 3D effect. Classic 3D glasses, modern 3D movies, Google Cardboard, and random dot stereograms work the same way. The value indicates the distance in cell size units that the two views are from each other. If the value is negative, the leftmost image will be on the right half instead of on the left.
  • Tilt Maze cell size:
  • There’s a new “Tilt Cell Size” field in the Create / Create Settings dialog. This setting affects the size in pixels of each cell of tilt Mazes created with the “Create / Tilt” command. If this value is positive, then every cell will have its own separate grid of pixels. If this value is negative, then there will be boundary rows and columns of pixels that contain shared vertexes between cells. This should be at least 3 for the passages to be apparent and wide enough to be followed.
  • Sound disable:
  • There’s a new “Allow Sound Playing” checkbox in the Edit / Display Settings dialog. When off, all sound playing will be disabled. This setting is used by the “Hunger Games” script which plays sounds, allowing all sound playback to be turned off at once.
  • Rainbow UI:
  • There’s a new “Rainbow” checkbox in the Dot / Inside Settings dialog. When on, it displays a rainbow to the north in the perspective inside view. This feature already existed in previous versions, but wasn’t in the user interface and could only be turned on with the macro language.
  • EXTENDED & IMPROVED FEATURES:
  • A list of improvements to existing features, which means new things you can now do with old features that you couldn’t do before, or ways existing features work better than before. Note that some change existing behavior in ways users of previous versions should be aware of:
  • 3D nested fractal Mazes:
  • The “Nested Fractal” command on the Create / Pattern submenu will generate a 3D nested fractal Maze when the “Bitmap Is 3D” setting is on. A 3D nested fractal Maze is a 3D cube Maze, with smaller cube Mazes within each cell. The “Fractal X” field in the Create Settings dialog determines the X and Y cell dimensions of the cubes at each nesting level, and the “Fractal Y” field determines the Z cell dimension.
  • 3D passage analyze:
  • The “Analyze Passages” command will analyze the current 3D Maze when the “Bitmap Is 3D” setting is on. It will display the number of types of each cell (in which each cell has 0-6 passages leading from it) along with the number of dead ends of each cell length.
  • Unicursal binary tree Mazes:
  • Unicursal Mazes generated with the “Create / Unicursal” command are normally made by bisecting the passages of a smaller Maze created with the Hunt and Kill algorithm. If Use Eller’s Algorithm in File Settings is on, and the Maze has odd horizontal and vertical cell dimensions, then the unicursal Maze will instead be based on the smaller Maze created with the Binary Tree algorithm. This runs much faster due to the quick speed of the Binary Tree algorithm.
  • Classical Labyrinth variation:
  • A special unicursal Labyrinth will be drawn in the main bitmap if the Create Labyrinth command is run, when the Labyrinth Settings dialog fields are set to “Classical”, “Square”, and “Merged”. The Labyrinth will be a variation of the classical Labyrinth with the number of circuits defined by the “Classical” fields. This Labyrinth always has walls and passages one pixel wide, and the bitmap won’t be resized. That means depending on the size of the Labyrinth and bitmap, the Labyrinth will be in the upper left corner of the bitmap, or clipped on the bottom right. This is basically a way to access the virtual Labyrinth drawn in the “World’s Largest Maze” script.
  • 3D gigamaze:
  • The “World’s Largest Maze” script has been updated. You can now explore virtual 3D Mazes of a billion x billion x billion passages wide (for one octillion or 1,000,000,000,000,000,000,000,000,000 or 10^27 cells total) in addition to 2D Mazes of a billion x billion passages (for one quintillion or 1,000,000,000,000,000,000 or 10^18 cells total).
  • Windows shell edit:
  • Daedalus setup will assign it so Daedalus scripts, wireframe, and patch files (.ds, .d3, and .dp extensions) can be opened in Notepad from the Windows shell if you right click the icon and select “Edit” on the dropdown. This is similar to how right clicking on the icon and selecting the “Open” verb will have Daedalus launch and open the file.
  • Command line version:
  • The Daedalus source code will compile a command line only version, if the #define WIN line in util.h is commented out. Without a menu interface, the program can only be run in the console and interacted with using the command line and scripting language. However this does allow Daedalus Mazes to be generated on non-Windows systems.
  • Hunger Games additions:
  • The “Hunger Games” script has a number of additions, including:
  • Sound effects are played for events such as cannon firings. Press “-“ to toggle sound off or on. Sounds are Windows .wav files in the “hunger” subdirectory and easily changed.
  • Textures are photorealistic bitmaps for objects on the ground, and things in the environment such as trees. Press “_“ to toggle improved textures off or on. Textures are Windows .bmp files in the “hunger” subdirectory and easily changed.
  • Display the most recent 12 event messages that were on the top of the screen (with the double quote “ key).
  • Define leadership (or who tends to follow who). Do this by using the come here command (“C” key) on an ally next to you.
  • Define alliance behavior with “alt+c”. Choose how to respond to alliance requests (accept all, reject all, or interactively prompt). Choose how to change leadership (always be leader, always be follower, or toggle with whoever you use “C” command on). Can turn on stereoscopic 3D graphics with this command too.
  • Tributes have different and customizable heights, that can be changed in the customize tribute command (single quote ‘ key).
  • Option to end an alliance without attacking, by using the propose alliance command (“ctrl+c” key) on an existing ally.
  • AI tributes may occasionally backstab allies, especially if the ally is weak and effectively dead weight. Beware, as before AI tributes would only turn on allies once all enemies were dead.
  • Fourteen new game settings available in the all settings command (“;” key).
  • The 12 districts arena with the arena divided into 12 wedges of different terrains is now embedded in the script, instead of in an external bitmap file. This arena may be manually selected by entering “X” in the arena landscape command (“Ctrl+Del” key), and may be automatically selected when showing random arenas.
  • BUG FIXES:
  • A list of bugs and other problems in Daedalus 3.1, all of which have been fixed in Daedalus 3.2:
  • Eller’s algorithm crash:
  • Creating an Eller’s algorithm Maze when the horizontal passage size was more than 32768 cells across would corrupt memory and often crash.
  • Nested fractal bug:
  • Creating a nested fractal Maze with the Maze Settings Nesting Level set to 1, wouldn’t set the lower left and upper right wall corners of the Maze.
  • Tweak passage bug:
  • The Tweak Passages command would fail to adjust all the cells it could, if the Maze had a horizontal passage cell size of exactly 4142982 (or a multiple of it). Yes, this is extremely minor and shows how subtle software bugs can be! :-)
  • Full screen error:
  • Some versions of Windows don’t support entering full screen mode, at least not unless the program is running as Administrator or with elevated privileges. That’s not a bug, however what was a bug was that when the Size Window Full Screen command failed, the program wouldn’t display an error message. Now an error is displayed, with the suggestion of running Daedalus with higher permissions.
  • Inside fog display:
  • In the perspective inside view, fog would occasionally fail to be applied to the top of a block that’s being viewed edge on so it’s one pixel high, causing it to show up as a bright line as if the fog weren’t present.
  • Inside colored fog display:
  • If the inside Fog Color was set to something other than black and white, then monochrome mask bitmaps would display incorrectly, since they would only apply black or white etching, and would therefore show up even in the distance when they should have been fully obscured by the fog color.
  • Inside elevated texture display:
  • In the perspective inside view, solid color textures wouldn’t be applied to the sides of elevated ground cells. Only monochrome etchings would display on them.
  • Hunger Games fixes:
  • The “Hunger Games” script has a number of fixes, including:
  • Computer tributes would sometimes get in a loop continually switching between a Club (needed for swimming) and a better damage launcher (such as a Slingshot) in deep water.
  • Moving while wearing a parachute would descend a bit as expected, but would also display an incorrect message about falling all the way to the ground.
  • Replacing parachute in midair with a different worn item (instead of just removing the parachute) wouldn’t cause your tribute fall to the ground.
  • When a computer tribute is entangled in a Net, frees another from a Net, or attempts to free themselves from a Net, those events would be displayed in black text. Instead they should be gray text since they’re minor tribute activities that don’t involve the player.
  • Replacing a worn item with a different worn item will now display that the original item was removed. The old text could make players incorrectly think that they can wear more than one item at a time.
  • Messages about other tributes taking starvation damage would sometimes be broadcast across the entire arena, instead of just within your listen radius.
  • You can now receive sponsor gifts if you have any inventory slot free. Before you would only receive sponsor gifts if your bottom inventory slot was free, requiring inventory shuffling if you wanted to receive something.
  • When entangled in a Net, wielding a Net would do 5 damage the ropes. Nets now only do 1 damage to ropes, the same as if you were barehanded.
  • SCRIPTING ADDITIONS:
  • A list of new operations, variables, and functions added to the Daedalus scripting language. This only affects those who write their own macros or scripts, and should be ignored by everybody else:
  • Operations:
  • SavePicture :
  • Saves the wireframe image in memory to a Windows metafile in the string . This accesses the functionality of the “Draw / Picture File / Save Wireframe Picture...” command without bringing up a dialog.
  • SaveSolids :
  • Generates the “solids.dp” file that’s part of the Daedalus distribution, and saves it to a file. In earlier versions of the program, the source file to generate this file needed to be compiled separately.
  • Embed:
  • Similar to EmbedMacro, this allows a command line to be spread over multiple lines. The actual command line will be embedded in the current Daedalus script file in the following lines, up until the next blank line. That allows a long command line be spread across multiple lines, which is more readable. Within each line, leading spaces will be removed, so indenting can be applied without making the macro itself any longer. This should only be run inside a script, and will do nothing outside that context.
  • Sound :
  • Plays a Windows wave format sound file (which usually has a .wav extension). The nSoundDelay variable controls how the sound is played.
  • TextDraw :
  • Draws a string of text on the main monochrome bitmap. The coordinates specify the upper left corner of the text’s bounding box. The font used is specified by the TextFont operation.
  • TextFont :
  • Specifies the font to use in the TextDraw operation, along with its size and weight. The size indicates the height in pixels, and the weight is the boldness, in which 0 is default, 400 is normal, and higher numbers like 700 are bold. Unlike the text abilities in the Turtle operation, this allows access to installed system fonts.
  • FractalPart3 :
  • Like the Fractal Maze creation command for 3D Mazes, however this creates just a subsection of the 3D fractal Maze instead of the whole thing, allowing viewing of Mazes too large to fit in a bitmap. This creates the section at coordinates , , at depth , with the fractal Maze itself defined by random number seed . This actually creates a 2x2x2 grid of sections surrounding the coordinates. Afterward @x will be set to the horizontal cell location of the entrance, and @y the horizontal location of the exit. This is used by the “World’s Largest Maze” script to create the section of the giant 3D virtual Maze nearest your location.
  • Variables:
  • fTextureBlend:
  • When set, solid color textures in the perspective inside view (whether opaque or semitransparent) will be blended with the color of the block behind the texture. This is used in the “Hunger Games” script to for example have trees of many different colorings, without having to have a separate tree texture for each color.
  • nSoundDelay:
  • Controls the behavior of sounds played with the Sound operation. If negative, sounds are played synchronously, and the program will pause until the sound finishes. Otherwise, sounds are played asynchronously, and the program will continue running while the sound plays. If a sound is already playing when the Sound operation is called again, then the old sound will be interrupted and stopped when the new sound begins. If positive, this variable indicates how long in milliseconds the old sound should be allowed to play before the new sound interrupts it. For example, if set to 3000, and a sound was started one second ago, then the program will pause for two seconds before interrupting the old sound. This ensures a sound can play for a minimum length of time before the next sound starts.
  • fNoExit:
  • When set, the program won’t exit. Attempting to exit will display a warning message. In the command line only version of the program, after running the initial command line, the program will continually prompt in the console for additional command lines to run.

New in Daedalus 3.1 (Jun 11, 2015)

  • NEW FEATURES:
  • True Prim’s Algorithm Mazes: The new True Prim’s Algorithm command on the Create / More Perfect menu will generate Mazes with a full implementation of Prim’s algorithm involving random edge weights. It will produce a minimum spanning tree like Kruskal’s algorithm, and therefore the same random number seed will produce identical Mazes when running the commands Kruskal’s Algorithm and True Prim’s Algorithm. If Create With Wall Adding in Create Settings is on, then the Maze will be created by adding walls instead of carving passages. If Value Is Random Chance in Create Settings is on, then all edge weights will be the same instead of uniquely different, resulting in a Maze that’s generated faster, however with a lower “river” factor similar to the Prim’s Algorithm command.
  • Survivor Maze game: The new Survivor Maze Game #10 command on the File / Run Script menu will run a new script to simulate the Maze from the final five immunity challenge in the CBS TV show "Survivor XXX: World’s Apart". This Maze is similar to the existing Survivor Maze games. You need to navigate your way through the Maze, finding four checkpoints within it in any order, before reaching the finish. You have the option of trying to solve the Maze blindfolded, where everything is dark and you can only see (i.e. feel) the walls directly in front of you. A video of the Survivor contestants in the real life version of this Maze can be seen at https://www.youtube.com/watch?v=DAow6IWqkcI.
  • Pentris game: The new Pentris command on the File / Run Script menu will play a game script implementing the game of Pentris. Pentris is like Tetris but more challenging because it includes five (and even six) square polyominoes in addition to the standard four square tetrominoes, and you can select which sizes of polyominoes you want to include in a game.
  • Highlight blind alley cells: The new Crack Blind Alley Cells command on the Maze / Remove menu will edit the Maze such that all wall segments within the same blind alley have been removed. In other words, each blind alley hanging off the solution path will become a small or large open space surrounded by a wall, which makes the solution and false paths of the Maze more apparent. The temporary bitmap may optionally indicate the solution path: If the temporary bitmap exists, and is the same size as the main bitmap, and all off pixels in the temporary bitmap are also off in the main bitmap, and there’s at least one pixel on in the main bitmap that’s off in the temporary (in other words the set of off pixels in the temporary bitmap is a proper subset of the off pixels in the main bitmap) then all off pixels in the temporary bitmap will be considered the solution.
  • Wallpaper fit: The new Fit Bitmap command on the File / Save Wallpaper menu will save the active bitmap over the Windows desktop background. This stretches or shrinks the bitmap to just fit within the desktop while preserving proportion, and will leave space on the horizontal or vertical edges if the proportions are different from the background. Note this command will only work on Windows 7 or later, which supports this style of background.
  • Wallpaper fill: The new Fill Bitmap command on the File / Save Wallpaper menu will save the active bitmap over the Windows desktop background. This stretches or shrinks the bitmap to completely fill the desktop area while preserving proportion, and will clip content on the horizontal or vertical edges of the bitmap if its proportions are different from the background. Note this command will only work on Windows 7 or later, which supports this style of background.
  • Scroll commands: The new Scroll Page Up, Scroll Page Down, Scroll To Beginning, and Scroll To End commands on the Edit / Window menu will move the position of the scrollbars. Scroll Page Up and Scroll Page Down will move the vertical scrollbar half way up and down. Scroll To Beginning and Scroll To End will move both scrollbars to the upper left or lower right corner.
  • Uninstall: The new Uninstall Extensions command on the File / Setup menu can be used to help uninstall Daedalus. This command will remove all Daedalus specific information from the Windows registry. The registry is protected on Vista and newer versions of Windows, meaning the command may fail and display an error message, unless Daedalus is run in Administrator mode.
  • EXTENDED & IMPROVED FEATURES:
  • A list of improvements to existing features, i.e. new things you can now do with old features that you couldn’t do before, or ways existing features work better than before. Note some change existing behavior in ways users of previous versions should be aware of:
  • Tilt braid Mazes: If Use Eller’s Algorithm in File Settings is set, and Create With River in Create Settings is off, then braid Mazes as produced with the Braid command will be created using a template similar to the pattern produced by the Tilt command. In other words, every other wall pole will be the center of a two segment vertical or horizontal wall, which produces a bunch of unicursal passages which either start and end on the edges or are isolated passage loops within the Maze. The result will then be enclosed by the boundary wall and have the Crack Isolation command internally run, to create a valid braid Maze. If Tilt Lines Make No Diamonds in Create Settings is on, then (like the Tilt command) the Maze will have no wall poles. This alternative braid Maze algorithm, when compared to the standard algorithm, will tend to result in more difficult braid Mazes with fewer solutions, yet with a more convoluted solution path.
  • 3D recursive division Mazes: The Create / More Perfect / Recursive Division command will create a 3D recursive division Maze when the Bitmap / Bitmap Is 3D command is set. A 3D recursive division Maze is created with plane walls (across the X, Y, or Z axis) dividing the Maze into two halves, with one passage opening in it, and then recursively repeating the process on each half. As with normal 3D Mazes, increasing the Random Bias field in Random Settings will decrease the probability of level changes in the Maze.
  • 3D graph distance: The Color / Graph Distance command will work on 3D bitmaps when the Bitmap / Bitmap Is 3D command is set, and will graph the distance along sections of off pixels in a 3D bitmap.
  • Ground Elevation blocks: The Color / Apply Texture / Ground Elevation command when composing the scene will take into account where blocks or on pixels are in the main bitmap. The end result will be rolling hills, with blocks placed above them and made tall enough so movement won’t accidentally step one on top of a wall. You can even change which pixels are set, such as by making a new Maze, and newly appearing blocks will have appropriate elevations.
  • Map Overlay wall vertexes: The View / Map Overlay command will include wall vertexes in the bitmap upon the overlay as single pixels.
  • General autoscript: If the file daedalus.ds exists in the Daedalus install directory, then that file will be loaded as a script immediately after program startup. Before, this file would only be run when the /s screen saver command line switch was present.
  • Hunger Games improved: The Hunger Games simulation script has been updated in several ways. There are new commands to propose an alliance, and also move without attacking with can free tributes from nets. There are settings to control the number of mutts in the arena, and also the intermediate video frames displayed when smoothly moving or rotating. A movie of fallen tributes is displayed in the sky each night, and nets can be set as traps when wielding one and using the “dig” command.
  • BUG FIXES:
  • Perfect Maze blemish: The Create / Perfect Maze generation command would produce Mazes with a slight horizontal passage bias.
  • Variable Height Walls bug: The Color / Apply Texture / Variable Height Walls command would produce perspective inside view scenes in which the elevation difference of the walls was almost too small to see.
  • Inside display blemish: In the perspective inside view, semitransparent blocks with solid textures on their tops would not be influenced by fog coloring. That would make them display brightly through fog, such as seen in the Hunger Games script in which wasp nests in arenas with semitransparent trees would glow at night.
  • Inside block bug: In the perspective inside view, having Edge Behavior set to Torus Wrapping, and Narrow Walls off, and an odd numbered bitmap size, would leave a one block gap between the edge of the bitmap and the boundary at which the bitmap repeats.
  • Inside movement bug: In the perspective inside view, when Walls Impassable is set, and Edge Behavior is set to Torus Wrapping, trying to move over the bitmap edge could result in being stopped by an invisible wall. Improper stopping would happen if an on pixel was present in the middle of the bitmap along the axis being crossed.
  • Inside mountains blemish: In the perspective inside view, mountains displayed with a gradient color that intersect the top of the screen would have the gradient start and end at the wrong position, as if the top were at the edge of the screen instead of above it.
  • Overlay limitation: The Dot / Map Inside setting wouldn’t take into consideration 3D Mazes, and would cause all levels for the 3D Maze to be displayed at once.
  • Recursive division limitation: The Create / More Perfect / Recursive Division Maze creation command would fail to create a Maze if a bitmap dimension were greater than 32K pixels.
  • Wallpaper bug: The File / Save Wallpaper / Center Bitmap command wouldn’t center the bitmap within the background, but instead would do the same as the Stretch Bitmap command and stretch the bitmap across the background.
  • Slide leak: Running the Bitmap / Slide To Dot command would result in a memory leak error upon program exit.
  • Setup omission: Installing version 3.0 over version 2.5 would leave a “Daedalus 2.5” icon around in the Windows Daedalus program group. Setup will now automatically remove icons from all previous versions.
  • Hunger Games fixes: The Hunger Games script has a number of fixes
  • SCRIPTING ADDITIONS:
  • A list of new operations, variables, and functions added to the Daedalus scripting language. This only affects those who write their own macros or scripts, and should be ignored by everybody else:
  • OPERATIONS:
  • EmbedMacro : Similar to DefineMacro, this sets macro number . If is between 1 and 48, the appropriate command on the Run Macro submenu will have its menu text set to . The actual macro text will be embedded in the current Daedalus script file in the following lines, up until the next blank line. That allows a long macro to be spread across multiple lines, which is more readable. Within each line, leading spaces will be removed, so indenting can be applied without making the macro itself any longer. This should only be run inside a script, and will do nothing outside that context.
  • DeleteMask : Deletes custom monochrome bitmap . Note the main bitmap always exists, so it’s not allowed to be deleted.
  • DeleteTexture : Deletes custom color bitmap .
  • GetString3 : Like GetString except prompts the user to enter three strings. The formatted strings , , and get displayed as captions in the dialog. If the user clicks OK instead of canceling the dialog, then the strings entered will be stored in custom string slots , , and .
  • VARIABLES:
  • nFogLit: Turns on lit textures for cells in the perspective inside view, i.e. points to which custom bitmap slot defines them. On pixels in the monochrome bitmap at that slot determine cells that ignore fog settings. The color bitmap in that slot is ignored. By default this is -1, meaning all cells have the same dimness when fog is set.
  • nFractalType: The type of fractal Maze created by the FractalPart operation. If 0, the Maze will be nested cells created using the hunt and kill algorithm. If 1, the Maze will be created with the binary tree algorithm. If 2, the Maze will be created with the recursive division algorithm. This setting can be seen in action in the “World’s Largest Maze” script, by pressing F10 to set the algorithm.
  • nTiltSize: The pixel length of lines in the Create / Tilt Maze pattern command. This should be at least 3 for the passages to be apparent and wide enough to be followed.
  • fRndOld: Controls whether the random number generator generates numbers using the system “rand()” function. The default random number generator in Daedalus is faster and has much better randomness properties, so this should only be set to reproduce behavior from previous versions of the program.