Intro
The following instructions have become longer than I anticipated them to be. I made some shorter
instructions at Patchin' Batch: Getting Started.
This can be downloaded from Patchin' Batch: Download section.
GoGetExe is the next utility, after GoInst.BTM and GoGet.Bat, designed to make patching easier.
This is particularly designed so that those who do not know how to save files to a
desired location won't need to: People need to simply download and execute this executable.
This also will allow the web page to simplify the installations instructions on the web page
to:
-
Option #1: Use GoGetExe.Exe
-
-
Download and run the GoGetExe.Exe program.
-
Make sure you're using the latest version of the patches.
-
Delete any old versions of the Patchin' Batch file: Especially GoInst.BTM and
GoGet.Bat. (This may become more optional
as GoGetExe becomes more developed. For now, though, it's probably wise to do.)
Also, delete any older versions of the "Helper Batch Files".
-
The easy way to do this is to click the "Erase Pat'n Bat's Files"
button. Note that this button will delete GoInst.BTM, so if you
have a good working GoInst.BTM that you like to backup, it is
suggested, because of GoGetExe's existance, to have the file backed
up somewhere else.
GoGetExe.Exe may delete any of the above files, including the "Helper Batch"
files, and also may delete WGet.Exe. GoGetExe.Exe can create files of
these names using the embedded versions (except for GoInst.BTM), although those might not be the
same versions as those already on the hard drive if there have been
multiple versions of the Patchin' Batch and/or GoGetExe.Exe used.
-
If you're not using the latest version of the GoGetExe.Exe file
(or perhaps even if you are), there might be a newer version
of GoGet.Bat. You can check that by clicking on the
"Use Mirror Site" radio button.
-
Find out the name of any Patc*.MPQ files you may already have.
-
The easy way to do this, if you can understand the output of a DIR
listing, is to click on the ":Show Dir of Patc*.MPQ" button.
-
Figure out filename of output file. The easy way to do this is to press
the "Suggest MPQ Name" button.
-
Appropriately place (downloading as needed) the other Patchin' Batch files...
-
If you are using GoGetExe.Exe, this will be done by clicking the
"Run Patch" button. (The files might need to not
exist first, and that can be done with the "Erase
Pat'n Bat's Files" button.)
-
Otherwise, one can manually download as needed and appropriately place the
GoGet.Bat, WGet.Exe, and Helper batch files. Instructions
currently at intro.htm.
-
There may be other methods, like just downloading GoInst.BTM if
you're an experienced command prompt user and can get into
and use a JP Software product without GoGet.Bat's assistance.
-
Run the patch file.
-
Delete extra, unnecessary files as desired, including any files that were
extracted but which were embedded. (Ideally GoGetExe.Exe would do
a better job of this automatically without a user needing to do this
manually.)
-
Option #2: Follow older instructions
-
One can check current web page to get an idea of how many steps this option is.
Maintainance: GoInst.BTM might need some code to be able to accept value of the output MPQ filename.
Content listed in blue is considered lower priority to program (possibly due to being higher difficulty, or uselessness).
Problems
-
GoGetExe.Exe does not check if any of the Patch-?.MPQ files are needed. It is assumed that they aren't
needed. It is recommended that, before doing anything else, you verify what files exist in
WoW's DATA\ directory. There is expected to be a Patch.MPQ, and it is guessed there aren't any
other files. If there are other files, be sure to never click the
"Erase some Patch-?.mpq" button, and also if GoInst.BTM asks for a name, be sure
to not give it the name of whatever Patch-?.MPQ files already existed.
-
The "Use Custom Location" button is no longer greyed out. However, it also hasn't had extensive testing prior to the current version's release.
-
THe "Use Found Entry" button is greyed out. The idea there was for the program to
search the hard drive for WoW, and add a list of found entries so the user can select
one if the "Use Found Entry" button is selected. However, this functionality
hasn't been implemented yet.
-
RESOLVED: If WGet already exists, then a 4DOS window is made to address this. It also gets overwritten by another 4DOS window,
so the 4DOS window speaking about WGet is buried and not easily readable. (See also next
issue about the window closing before it could be read.)
Maybe this should be done even much nicer? Say, prompting the user about WGet existing (and letting the user select
to overwrite, or to not do so.)
-
Some documented features not complete yet
-
RESOLVED: Priority: Downloading from mirror sites (by calling WGet) (Might not have been tested prior to release.)
-
RESOLVED: Some error messages are done through echo commands, and these may not be seen if the window for the
command shell closes as soon as the echo command is done. For now, the solution is to open
up another command window and change the properties so that the next command window opened,
which can be from GoGetExe, will have the same properties and stay open. (A better-yet idea
is probably to just make a dialog box like the JavaScript's Alert() command. Ideally that dialog
box would cover a large/entire portion of this program's window, so that it cannot be lost.)
-
RESOLVED: Some error messages may be sparse or non-existant. The program could be made more verbose (although
I didn't necessarily see a way that was super-easy to program and also not confusing for the
end user). The ways I have seen/done to output include:
-
Put a string in the title bar when calling fl_dir_chooser()
-
Output a string to an fl_box, and hope no other message overwrites it by outputing to the
same box before anyone had a chance to read the message. (Use of a large message
variable and strcat could work around this.)
-
Shell out with Echo commands.
-
RESOLVED: Related to the above about showing error messages, if a file exists, the user isn't prompted with
a choice to overwrite it or not.
-
Several issues about the directory chooser:
-
Directory chooser uses /'s. Perhaps a different directory chooser, with +'s and -'s in a tree format, would be more standard and understood.
-
Directory chooser lists files in ASCII order, so 'Z' is before 'a'. Perhaps a different directory chooser, one that is case insensitive, would be more standard and understood.
-
Yet another issue with the dir chooser: The preview doesn't work (it looks like it
works according to an FLTK documentation page
but it doesn't: The pictures show up as a ?. Therefore, the
"View Scrn-\nshot dir" button doesn't have the usefulness that the button
was made for. Worse yet, the "preview" checkbox defaults to ON, so the
directory listing window is shrunk to make room for the preview area (unless the
preview button is unchecked).
-
Serious Cosmetic issues: The text location is not something I've been able to control well.
They are centered, and the fact things look as good as they do might have been quite a bit of
luck. This is noticable to the end user when the name of a directory might extend over the
"Show Dir\nChooser" button with a long directory, and perhaps people with different default
font sizes for their systems might experience even more things not looking well.
-
The code is sloppy. There are lots of global variables. And the executable is nothing short of huge.
Support for file compression might help quite a bit (by having the embedded wget.exe be compressed.)
I have some experience using file compression. There are several calls to C++'s "new"
operator without a corresponding "delete" operator. This violates programming ethics of
allocating memory without freeing it up later. The solution would be to free the memory before
exiting the program, but I lazily decided to just exit the program, believing that the 32-bit
Windows operating system will take care of this okay. (Actually myself and a beta tester both
ran out of free environment space once, which is the sort of weird memory error that this sort of
bad programming is known to be prone to creating.) I couldn't get the tabbing to work in the
IDE I was using, so there might be a lot of white spaces and/or tabs that align things poorly when
viewing other software. (I aimed, rather lazily, for 5 white spaces when I wanted things tabbed.)
-
One thing that is not as nice as it
could be about extracting the source is that only the *.cpp file is output. The custom *.h files
need to be made manually through a modified version of
Bin2Char.
About the source code
Source code is available. Some version, perhaps the latest version, is available at
gogetesc.zip although you shouldn't need to get that
if you're planning to run the program,
since the program outputs its own source. One thing that is not as nice as it
could be, though, is that only the *.cpp file is output. The custom *.h files
need to be made manually through a modified version of
Bin2Char.
Design
-
A Date field
-
Specifies the date of GoGetExe.Exe and the other files, including GoGet.Bat
-
The primary section
-
The primary section consists of:
- Three radio buttons to choose from
-
-
Windows Registry Entry:
-
Treats the World of WarCraft directory as being the one that is listed in the registry.
(This option is greyed out if the registry value doesn't exist.)
-
Manual Entry
-
Has an icon to click on to choose a directory, possibly (preferably) also having a field to type in a directory
-
Find WoW
-
All hard drives are searched for one or more files, perhaps Texture.mpq.
All resulting directories are shown in a list (with scroll bars in
case multiple entries exist) so one can be chosen.
-
A "Nudity level" slider bar
-
-
Option 0
-
GoGet.Bat is run.
-
Option 1
-
MPQMake.Bat is run.
-
Option 2
-
Skins modified: EvenLess.Bat
-
Option 3
-
Clothes modified: TabTopOK.Bat
-
Option 4
-
Tabards modified: MakeTopl.Bat
-
Option 5
-
Models modified: Fullnude.bat
-
Option 6
-
Unknown/reserved/custom, perhaps asks for address/location (URL for remote file
or path and filename of local file) of a different batch file to use.
-
A radio button for a location
-
Controls where files are downloaded from, and which home page is checked for a newer
version.
Locations include files created by the executable (built into the executable), or
mirror sites, or a user-inputted site.
-
Having the files like GoGet.Bat be internal to the executable could be
considered a low priority add-on.
-
Alternatively, having the files be downloaded from a remote source
could be considered a low priority add-on. In fact, that
approach would probably be simpler.
-
Text entry field
-
Spot to input (MPQ file) output file's filename. (Not much point to this, though, since
there's little to no advantage to having this program get the filename instead of
just having GoInst.BTM get the filename.)
- Buttons
-
- Go button
-
-
Determines which files exist in the DATA\ directory beforehand
-
Outputs DLTools\WGet.Exe
-
Downloads/extracts GoGet.Bat
-
Optionally downloads/extracts "Helper" batch file (depending on value of "Nudity level" slider bar)
-
Runs the appropriate batch file. (If slider bar's value is non-zero, runs the "Helper"
batch file, otherwise runs GoGet.Bat
-
Unnecessary feature: Detects if in Win9x (in which case downloads, extracts, and
uses 4DOS) or not (in which case downloads, extracts, and uses 4NT).
-
After batch file terminates, offers to clean up by deleting any extra files in the DATA\ directory that
didn't exist before (and is not a *.MPQ file and is not in a subdirectory
to be saved.
-
Currently, all directories are considerd subdirectories to be saved. This
way MPQMake.Bat can be quickly run.
-
Home Page/Version Check
-
Button to go to URL, when clicked it launches web page. Which web page is launched
depends on the value of the radio button for the location (described in
this document just above the "Go" button).
- Runs WoW
- Runs WoW
-
Does this run WoW.Exe or Launcher.Exe?
I believe Blizzard prefers Launcher.Exe due to it having some sort of
simplistic virus scanning built into it. Perhaps instead of
one button saying "Run WoW", have two buttons?
-
Cancel/Quit/Exit button
-
Does the obvious thing: performs an attack on Blizzard's servers in attempt to bring down as many realms as possible.
What else would such a button do?
-
Inserts Registry Entry
-
Having really nothing to do with the Patchin' Batch, I just think this could be useful
(for myself if nobody else). If the "Windows Registry Entry"
option isn't selected, this button would logically be greyed out.
-
Extract source code
-
I've found it cool when people don't need to choose between downloading a program or downloading the
source code, or both, based on their needs. It is cooler when
the source code can make the program and the program can output the source
code, so downloading either one effectively is as good as downloading both
(if the user has an operating system to run the program and a compiler to
build the program).
And to wrap up, talk of another useless feature: Automatically downloading more files.
FTLK Documentation
This was mainly written for myself while I was making the program.
-
Tutorial for FLTK1 Devpak.
I started with this, although I needed more detail.
The FLTK2 Devpak seems to have better documentation.
-
fltk 1.1.7 Programming manual,
including the page of FLTK1
Examples that documents examples. The examples weren't installed as part of the
FLTK1 DevPak, though.
The PDF, being one file and
not several like the HTML manual, may be easier to search through.
-
FLTK reference documentation for FLTK2 DevPak
including documentation of the following specific widgets
(converting ** to FL_*_* as appropriate, since the names of the widgets
were changed)
I know I used more, too, like fl_choice.
-
Dev-C++ (SourceForge download page)
contains MinGW. The executables require MSVCRT.DLL which comes with Win95 OSR2 or higher,
but that's been determined to be a non-issue since WoW System Requirements says WoW needs
DirectX 9.0c and Win95 only can use up to DX8.1b
(if not DX8.1 or DX8.0). Then again, WoW System Requirements say WoW needs WinMe/2K/XP but
WoW has always worked fine on my Win98SE.
-
404
-
FLTK1 DevPak (GUI element/widget toolkit, worked with Dev-C++)
-
FLTK2 DevPak (GUI element/widget toolkit, worked with Dev-C++)
-
download links including FLU 2.14 Utility Widgets like file browser
-
Fluid tutorial with buttons?
-
Bin2Char (source modified to allow over 32K)
-
Registry information:
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry.asp
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/enumerating_registry_subkeys.asp