                                                                   
                                                                
  ###########        ########       #                           
  ###########       ##########      ###                         
  ##########       ###########      ###                         
  ##########       ###########      ###                         
                   ###              ###                         
  ##########       #########        ###                         
  ##########       ##########       ###                         
  ##########        ##########      ###                         
  ##########         #########      ###      ###                
                           ###      ###      ###                
  ###########      ###########      ############                
  ###########      ###########      ############                
  ###########      ##########       ############                
  ###########      #########        ############                
                                                                
                                                          
                                                                       
DESCRIPTION:
------------
Edge Shell/Launcher(ESL) is a simple to use graphical front end (launcher) for use with the DOOM Source Code port EDGE(although it will also work with most(all?) other ports too. The purpose of this launcher is set the command-line options for EDGE by simply clicking what you want and then launching the game, instead of repeatedly typing commands or making multiple shortcuts. It will work with most other source ports, but I haven't tested this too much.

It was created by me, Luke Brennan (AKA Lobo in Doom circles) and came about due to frustration with the command-line arguments when I was creating my TC, and the fact that I noticed there are a lot of MS-Dos virgins out there! 
 



===========================================================
IMPORTANT VERSION NOTES
-----------------------
* When you create a package with the "Package it!" feature, only the currently active options which do NOT involve filenames or Directory names will be saved in the package: i.e. NOMUSIC will be saved, but DEBUGFILE will not.

* When you create a package only the files for your TC which appear in the "add-ons" list will be included. This means that if you are using EDGE and you are using the DDF option on the "advanced" tab, please note that the .ddf files will not be included: you should insert your .ddf files into an appropriate .wad file, which can then be included in the "add-ons" list However, if using EDGE 1.29 RC2 or higher, you can add the DDF files directly to the add-ons list without needing to insert them into a wad first, though it's still cleaner and good practice to put them in a wad.

* By default, when using the source Port Edge, quotation marks will be used around ALL file names: this could cause problems with Edge 1.28a and below. If you get error messages then try deactivating the option "Use quotes around filenames"
===========================================================



WHAT'S NEW IN ESL V2.24
------------------------
++ The icon for the .elc files was not being displayed due to the .exe being compressed.
Now we use an external .ico file instead.




WHAT'S NEW IN ESL V2.23
------------------------
++ .elc files can now be associated with ESL (from the menu "Options"->"Open .elc files with ESL"). Once activated, you can then directly open .elc files in ESL by double-clicking them. You can also un-associate them at any time.

++ Dragging and dropping .elc files onto the ESL.exe will launch ESL with that .elc file.

++ ZDOOM.XML was not correctly formed XML because of a stupid apostrophe. Fixed.




WHAT'S NEW IN ESL V2.22
------------------------
++ Fixed Bug where the PATHWITHQUOTES value in the ports .xml config files were being ignored

++ Fixed Bug where "use Quotes around filenames" checkbox was showing up on the other tabs when you resized the form

++ Fixed a bug whereby sometimes a port wouldn't run USING THE EXACT SAME ESL SETTINGS because the "active" or "current" directory gets set to the pwads, instead of the IWADs. The problem mainly crops up on PCs with two partitions or hard disks, when the port is on one and the wads are on the other. Legacy is particularly susceptible to this. Fixed by always making the port location directory AND DRIVE the active ones.

++ Fixed JetFlocks Legacy bug. Seems that this port likes "@C:\temp\space city\response.txt" instead of @"C:\temp\space city\response.txt". Have tried it out on Legacy, EDGE, ZDoom, PRBoom(and GLBoom), Doomsday/Jdoom, Eternity and Vavoom to get the maximum compatibility with as many ports as possible, while also testing how they handle filenames with spaces in them. JDoom and Vavoom falied it.

++ Expanded ESL recognition of ports (in the Main->Get Port box) to include all the ports which work properly with spaces(see previous bug fix). The ones that don't (or are unrecognized) will appear as "OTHER(portename.exe)". Also created the corresponding portname.xml for each of the recognized ports, so that the PATHWITHQUOTES value will be correctly activated for these compatible ports.

++ Only warn about Spaces in file name if the "Use Quotes with FileNames" option is NOT ticked. If it is ticked then we will assume that the port can handle it and won't cause problems.

++ Updated MiniLauncher to use the more compatible way of passing a response file (see JetFlocks Legacy Bug)

++ Now many of the Source Port specific options (such as "OPENGL" in Legacy or "DLIGHTS" in EDGE) currently defined in ESL when you use the "Package it!" feature will be stored in your package and passed on to the MiniLauncher program. 
Handy when your TC must be played using Dynamic Lights and you want to make sure the end user has this activated.
See IMPORTANT VERSION NOTES above for more info

++ Added the *.lmp, *.ddf and *.ldf file types to the list of valid types.

++ "Package it!" options used (TC name, Author, Description) are now saved in the current .elc file



WHAT'S NEW IN ESL V2.21
------------------------
++ Translated all the strings we added for the "package it!" feature to spanish and added them to the language resource file.

++ Add .ded (doomsday) file type as a valid add-on.

++ Strip out old Drag-n-drop code (and the .dll dependancy) and do a self-contained (ESL internal code) version. No choice since I have lost the source code, so had to start from scratch.

++ Update to latest version of InfoZip (zip.exe) and add it's license to the ESL distribution zip

++ Some little esthetic changes



WHAT'S NEW IN ESL V2.20
------------------------
++ "Package it!" option. 
* This will create a compressed zip file which will contain all of the add-ons (wads, bex etc.) currently loaded into ESL, as well as a readme.txt file and a MiniLauncher program.
* The MiniLauncher program can be used by the end user to run your TC in the chosen source port, with all of the add-ons automatically loaded (so the end user doesn't have to know nor use commandline parameters)
* There are 2 customizable image files which you can edit to change the aspect of the MiniLauncher: one is for the background and one is for the actual "Run/play" button.
* There is also a Readme.txt file which you can replace with your own.


++ Fixed bug where last ELC history was being lost and not saved. 

++ Stripped out the commondialog control and use the API instead.

++ Fixed bug where if you were changing something in the flexgrid and switched tabs, your modifications got lost.

++ Fixed bug where Additional Command line Arguments text box was not getting wiped when new ELC file was opened

++ Liberations bug: Error 53! Missing file! Caused by me trying to remove a tempry file which doesn't exist in the very first run of "Package it!", thereby provoking an error.

++ Rodrigos bug: If source port is in a directory with spaces then the SHELL() command does not work. Replaced it with WSH one, since we're already using it for zipping. Also made the same change to MiniLaunchers code too.




WHAT'S NEW IN ESL v2.12
-----------------------
++ Had to increase the filename buffer for the commondialog. Now that we have multiselect enabled, it's quite easy to overflow the buffer and get an error.(Just adding the Sprites wads for FirstGen caused an overflow (25 wad names)
I've hiked it up almost four times(to 1024 from the default size of 260) just in case.

++ Any options of type LIST were being ignored because they were being treated as PRESENT since that is the default case.
This was why the BPP command was doing absolutely nothing.

++ Fixed bug where the three checkboxes on the main tab(NOMONSTERS,NOMUISC and NOSOUND) were not being written to the response file.




WHAT'S NEW IN ESL v2.11
-----------------------
++ When closing ESL, if options have changed, ask user if he wants to save or not.

++ When the argument type in the grid is LIST, show a combo which limits the users choice to the list.

++ Before running the source port always check that all the files and directories still exist (IWADS, PWADS, DDF dirs etc.) 
If they don't then report it (msgbox). 




WHAT'S NEW IN ESL v2.1
-----------------------
++ Finished off the GLEdge32 config file

++ Add "Skill" label to main tab to clarify what the Skills listbox is all about.

++ Add a horizontal scrollbar to the WadList, just in case there are really long names.

++ Add some new messages and translations to the RES file. Translate any stuff(Labels, form captions, menus) that might still be only in English and apply changes. Rename "Options" menu to "Language"

++ Give the possibility to reset(wipe) the custom buttons. Why? no good reason but hey :)

++ Cosmetic changes on the custom buttons tab(bigger font, bold, centered Frame)

++ Allow multiselect when we're adding Add-ons.

++ Fixed bug where bex, deh and hwa files which were dragged-and-dropped into WadList were ignored.

++ Cleaned up usage of a global variable which was being used all over the place by loads of different functions and which could possibly have been the cause of a strange obscure bug I saw once or twice but could not track down again: sometimes the IWAD name would be replaced by the source port name.

++ Add a new <ARGUMENT TYPE="LIST"> for the port XML config. This will show a combobox in the flexgrid with a list of possible options. useful for commands like BPP (1,2,3)
For Example:

<ARGUMENT NAME="BPP" DESCRIPTION="Screen color Depth" TYPE="LIST">
  <LISTITEM>1</LISTITEM>
  <LISTITEM>2</LISTITEM>
  <LISTITEM>3</LISTITEM>
</ARGUMENT>

++ Add a checkbox to manually override the use of quotes around filenames (This is usually specified In the PORT.XML by default). This is basically to get around a bug with Edge 1.28A, which had problems parsing names enclosed in ""





WHAT'S NEW IN ESL v2.0
-----------------------
++ Made ESL more non-Edge port friendly, allowing lots more options for other ports. This is due to the new architecture which involves a separate config file for each port, which ESL will process so it can then present to the user all the options available for the port. At the moment only the config file for Edge and a generic config for the other ports are done. More will be released later.

++ New port-specific config files allow new commands to be added to a separate file without having to "update" ESL itself.

++ Significantly changed the "Advanced(Edge Only)" options tab:
    - Got rid of all the checkboxes and dropdown list. Now it's a Grid.
    - Made it Port neutral: now it's for all ports, not just Edge. Depending on what port is being used, the options available will vary.


++ All the files ESL uses for configuration are now in XML format. This greatly simplifies the code, and made possibly the new multi-config architecture. However, doing this has completly broken compatibility with previous ELC files. User config file(.ELC) created with previous versions of ESL WILL NOT LOAD. Sorry, but I didn't have time to code backwards compatibility. 

++ New allowed file types for Add-ons are .HWA and .BEX

++ Some internal code changes to pave the way for an easy port to Dot.NET one of these days ;)



WHAT'S NEW IN ESL v1.22
-----------------------
++ Fixed a bug where a program associated with the first custom button was loaded as if it were an .elc file in certain circumstances


WHAT'S NEW IN ESL v1.21
-----------------------
++ Fixed a stupid bug where if you generated an .elc file which didn't have any PWADS then ESL crashed on start up.



WHAT'S NEW IN ESL v1.2
-----------------------
++ The ability to add more than 1 IWAD. The current ESL won't allow me to put the doom iwad in the 'add-ons' section and it's possible someone needs both doom and doom2

++ Option to select the ddf directory (-ddf)

++ Option to select a .scr file (-script)

++ Name the debug file the same as current .elc (if option is selected)

++ Option to allow automatic deletion of gwa files 

++ Add descriptive label to the extra commands textbox!!

++ "Accidently" you hit one of the edit buttons, you didn't mean to, so you hit cancel. When that happens, the program corresponding to the button originally is no longer there. 

++ Drag and Drop code was broken in v1.15. Now works again.


INSTALLATION:
-------------
Simply install to the desired directory. If possible, please use a directory which does NOT have spaces in the name (e.g. "program files" is not a good idea). This is due to a limitation in versions of EDGE prior to 1.29 rc1 , not ESL!(see Known Bugs list below)

If you have a previous version of ESL installed just install into the same directory, only ESL.exe will be overwritten (your .elc files)




VERSION:
--------
This is the Edge Shell/Launcher Version 2.24 and is classified as a stable release. 



LEGAL:
------
ESL is provided AS IS without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. In no event shall Luke Brennan be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Luke Brennan has been advised of the possibility of such damages.

The integrity of the original ESL distribution file as distributed by Luke Brennan is essential. ESL and all of its related files must be distributed together in the original format. The ESL distribution file may not have files added to it or removed from it, and none of its contents may be modified, decompiled, or reverse engineered.

ESL is freeware. You can distribute ESL freely as long as you check with me first and don't charge anybody any money for it. 

If you would like to distribute ESL as part of a shareware distribution, magazine, internet book, CD ROM, etc. please contact me for permission.


CONTACT:
--------
Home Page/Support Forum/Bug reports:     http://firstgen.no-ip.com
Email:     firstgen@gmail.com


Known Bugs/Limitations:
-----------------------
* Due to a limitation in some source ports, ESL will not work properly if it is installed in a directory (or sub-directory) with spaces in the name. ESL will pass the appropriate commands to the port, but the port will have a problem with the spaces in the file path.

* If you try to load .Wad files into a source port from directories with spaces, in some cases they will fail to load, and may even crash the port. This is also related to the above problem with spaces in the name/path. ESL will advise you of potentially problematic wads at the moment you add them to the list of wads.

* If you get the message "Starting Error" when you try to run ESL (usually with windows 98) it means you need the vbrun60sp5.exe runtimes. You can get this file at http://www.microsoft.com



CREDITS:
--------
- Thanks to Rodrigo Acevedo and Phil "Liberation (apocsoft)" for finding a couple of real showstopping bugs with ESL v2.20
- Gracias a Sami ("el doomero") por probar la v2.20
- Gracias a Paco Garcia AKA CyberKiller por probar ESL antes que nadie en su dia.


