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 3.2 **
This file describes the new features, changes, and bug fixes in Daedalus 3.2, that weren’t in the previous version. It is only useful if you’re already familiar with Daedalus 3.1 or before and want to know what the newest version offers. The file is divided into four sections:
· 1) New Features: A list of new features.
· 2) Extended & Improved Features: A list of improvements or changes to existing features.
· 3) Bug Fixes: Bugs and other problems that have been fixed.
· 4) Scripting Additions: New keywords added to the Daedalus scripting language.
For a quick demonstration of some things Daedalus 3.2 can do, start the program, press Alt+1 to start the “Daedalus demos” script, then press F2 to animate yourself running through a Maze.
A list of new features in Daedalus 3.2, which means new commands and settings that weren’t present in the previous version:
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
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. 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.
2. 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.
3. 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.
4. 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.
5. 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).
6. 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.
7. 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.
8. Hunger Games additions: The “Hunger Games” script has a number of additions, including:
· 1: 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.
· 2: 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.
· 3: Display the most recent 12 event messages that were on the top of the screen (with the double quote “ key).
· 4: Define leadership (or who tends to follow who). Do this by using the come here command (“C” key) on an ally next to you.
· 5: 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.
· 6: Tributes have different and customizable heights, that can be changed in the customize tribute command (single quote ‘ key).
· 7: Option to end an alliance without attacking, by using the propose alliance command (“ctrl+c” key) on an existing ally.
· 8: 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.
· 9: Fourteen new game settings available in the all settings command (“;” key).
· 10: 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.
A list of bugs and other problems in Daedalus 3.1, all of which have been fixed in Daedalus 3.2:
1. 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.
2. 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.
3. 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! :-)
4. 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.
5. 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.
6. 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.
7. 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.
8. Hunger Games fixes: The “Hunger Games” script has a number of fixes, including:
· 1: 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.
· 2: 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.
· 3: Replacing parachute in midair with a different worn item (instead of just removing the parachute) wouldn’t cause your tribute fall to the ground.
· 4: 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.
· 5: 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.
· 6: Messages about other tributes taking starvation damage would sometimes be broadcast across the entire arena, instead of just within your listen radius.
· 7: 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.
· 8: 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.
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 <file>: Saves the wireframe image in memory to a Windows metafile in the string <file>. This accesses the functionality of the “Draw / Picture File / Save Wireframe Picture...” command without bringing up a dialog.
SaveSolids <file>: 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 <file>: Plays a Windows wave format sound file (which usually has a .wav extension). The nSoundDelay variable controls how the sound is played.
TextDraw <string> <x> <y>: 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 <font> <size> <weight>: 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 <x> <y> <z> <w> <num>: 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 <x>, <y>, <z> at depth <w>, with the fractal Maze itself defined by random number seed <num>. 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.
IMPORTANT NOTICE: Daedalus and all Maze generation and general graphics routines used in this program are Copyright (C) 1998-2016 by Walter D. Pullen. Permission is granted to freely use, modify, and distribute these routines provided these credits and notices remain unmodified with any altered or distributed versions of the program. The user does have all rights to Mazes and other graphic output they make in Daedalus, like a novel created in a word processor.
More formally: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful and inspiring, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, a copy of which is in the LICENSE.HTM included with Daedalus, and at http://www.gnu.org
* Walter D. "Cruiser1" Pullen :) ! Astara@msn.com *
O Find your way through life's Maze: http://www.astrolog.org/labyrnth.htm O
* "Who am I, What am I? As I am, I am not. But as we are, I AM. And to *
O you my creation, My Perfect Love is your Perfect Freedom. And I will be O
* with you forever and ever, until the End, and then forever more." - GOD *