summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2011-02-12 15:38:08 +0000
committerSimon Howard2011-02-12 15:38:08 +0000
commita9996b41e954d85fde5ec5188bbf6a7f4df88011 (patch)
tree113669ff889c9184aaa28224317c8b04c2c5bfeb
parent7d7b5087d2288fc6e2493448968f7d786043b389 (diff)
parenta366f68b2959282b22ab6f08569a253f0540745c (diff)
downloadchocolate-doom-a9996b41e954d85fde5ec5188bbf6a7f4df88011.tar.gz
chocolate-doom-a9996b41e954d85fde5ec5188bbf6a7f4df88011.tar.bz2
chocolate-doom-a9996b41e954d85fde5ec5188bbf6a7f4df88011.zip
Merge from trunk.
Subversion-branch: /branches/raven-branch Subversion-revision: 2258
-rw-r--r--ChangeLog377
-rw-r--r--NEWS30
-rw-r--r--NOT-BUGS23
-rw-r--r--codeblocks/config.h6
-rw-r--r--codeblocks/game-res.rc10
-rw-r--r--codeblocks/setup-res.rc8
-rw-r--r--configure.in2
-rw-r--r--man/chocolate-server.66
-rwxr-xr-xman/docgen4
-rw-r--r--msvc/config.h6
-rw-r--r--msvc/win32.rc10
-rw-r--r--pkg/Makefile.am3
-rw-r--r--pkg/osx/LauncherManager.h1
-rw-r--r--pkg/osx/LauncherManager.m1
-rw-r--r--pkg/osx/Resources/launcher.nib/classes.nib47
-rw-r--r--pkg/osx/Resources/launcher.nib/designable.nib2679
-rw-r--r--pkg/osx/Resources/launcher.nib/info.nib23
-rw-r--r--pkg/osx/Resources/launcher.nib/keyedobjects.nibbin19616 -> 24936 bytes
-rw-r--r--rpm.spec.in1
-rw-r--r--src/d_iwad.c2
-rw-r--r--src/doom/d_main.c104
-rw-r--r--src/doom/d_net.c6
-rw-r--r--src/doom/dstrings.h9
-rw-r--r--src/doom/g_game.c12
-rw-r--r--src/doom/m_menu.c8
-rw-r--r--src/doom/p_map.c2
-rw-r--r--src/doom/p_spec.c4
-rw-r--r--src/i_system.c2
-rw-r--r--src/i_video.c24
-rw-r--r--src/m_argv.c13
-rw-r--r--src/m_argv.h4
-rw-r--r--src/m_config.c22
-rw-r--r--src/net_sdl.c4
-rw-r--r--src/net_server.c4
-rw-r--r--src/setup/display.c56
-rw-r--r--src/setup/execute.c55
-rw-r--r--src/setup/execute.h2
-rw-r--r--src/setup/mainmenu.c26
-rw-r--r--src/setup/multiplayer.c30
-rw-r--r--src/w_main.c12
-rw-r--r--textscreen/txt_checkbox.c8
-rw-r--r--textscreen/txt_radiobutton.c8
-rw-r--r--textscreen/txt_sdl.c4
43 files changed, 3392 insertions, 266 deletions
diff --git a/ChangeLog b/ChangeLog
index 0120d5db..9721eb2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,380 @@
+2011-01-02 17:45:24 fraggle
+
+ Remove redundant package version label from top of OS X launcher
+ window.
+
+2011-01-02 02:49:20 fraggle
+
+ Restore window title when changing video driver in setup tool (thanks
+ AlexXav).
+
+2011-01-02 02:31:20 fraggle
+
+ Turn off dynamic window resizing feature on OS X, as it adds an ugly
+ resize handle to the corner of the window that overlaps the view of
+ the game.
+
+2010-12-28 16:43:41 fraggle
+
+ Make demo loop handling of DEMO4 case depend on the executable version
+ being emulated: the Vanilla versions did not have any conditional
+ behavior based on gamemode/gamemission. This has the side effect of
+ causing the game to exit with an error when playing with Final Doom,
+ but this is Vanilla behavior.
+
+2010-12-25 22:42:40 fraggle
+
+ Include NOT-BUGS in rpm packages.
+
+2010-12-25 21:51:24 fraggle
+
+ Pass through all command line arguments specified to the setup tool to
+ the game, to match Vanilla behavior (thanks AlexXav).
+
+2010-12-25 21:04:10 fraggle
+
+ Remove the -wart parameter (thanks Sander van Dijk).
+
+2010-12-25 20:55:30 fraggle
+
+ Remove the 32 character limit on the lengths of filenames specified to
+ -record (thanks AlexXav).
+
+2010-12-19 20:15:09 fraggle
+
+ Change setup tool skill level names to match Doom's "new game" menu
+ exactly (thanks AlexXav).
+
+2010-12-18 23:55:07 fraggle
+
+ Add a M_CheckParmWithArgs function, that behaves like M_CheckParm but
+ also checks that extra options were provided on the command line
+ (thanks Sander van Dijk).
+
+2010-12-14 20:55:30 fraggle
+
+ Check that an address is provided to the -query command line option
+ (thanks Sander van Dijk).
+
+2010-12-12 13:11:11 fraggle
+
+ Add -privateserver and -servername options to chocolate-server
+ manpage. Add server registration option to setup tool (thanks
+ exp(x)).
+
+2010-12-10 23:56:32 fraggle
+
+ Fix memory leak when dynamically resizing window in true color video
+ modes.
+
+2010-12-10 22:37:29 fraggle
+
+ Fix build problem (thanks Proteh).
+
+2010-12-10 22:21:56 fraggle
+
+ Remove "Error:" from the message displayed by I_Error, to match
+ Vanilla.
+
+2010-12-10 20:53:23 fraggle
+
+ Update NEWS.
+
+2010-12-10 20:43:05 fraggle
+
+ Change alignment of actions in a window's action area so that there is
+ equal space either side of the center widget. This is more
+ aesthetically pleasing.
+
+2010-12-10 20:31:46 fraggle
+
+ Replace txt_widget_t#selectable with a callback function to query
+ whether the widget is selectable. This stops the table code from
+ selecting things that aren't really selectable - eg. empty tables,
+ scrollpanes containing unselectable widgets, etc. Fixes a bug with
+ the warp menu (thanks Proteh).
+
+2010-12-10 19:15:37 fraggle
+
+ Add "warp" menu to the main menu of the setup tool, like Vanilla
+ setup.exe (thanks Proteh).
+
+2010-12-10 18:15:12 fraggle
+
+ Fix typo (thanks Sander van Dijk).
+
+2010-12-10 17:53:50 fraggle
+
+ Specify master server port explicitly, so that server registration
+ works when using -port.
+
+2010-12-07 23:13:34 rtc_marine
+
+ - Update chocolate-server codeblocks project
+
+2010-12-07 22:35:17 fraggle
+
+ Assign the oldest client to be the controller, not the first found in
+ the clients[] array.
+
+2010-12-06 23:37:27 fraggle
+
+ Fix -solo-net to actually behave the same as other ports.
+
+2010-12-06 22:38:24 fraggle
+
+ Rename -netdemo command line parameter to -solo-net, for consistency
+ with other ports (-netdemo is still recognised).
+
+2010-12-06 00:04:08 fraggle
+
+ Update NEWS.
+
+2010-12-05 14:42:09 fraggle
+
+ Allow textscreen font to be overridden using the TEXTSCREEN_FONT
+ command line variable.
+
+2010-12-04 20:56:04 fraggle
+
+ Rename search command line options: -search to search the Internet,
+ -localsearch to search local LAN.
+
+2010-12-04 20:48:07 fraggle
+
+ Add ping time to query output.
+
+2010-12-04 20:40:10 fraggle
+
+ Fix formatting for -masterquery to match -search.
+
+2010-12-04 20:34:39 fraggle
+
+ Fix bug when running with -server option.
+
+2010-12-02 21:34:51 fraggle
+
+ Make multiple query attempts to servers before giving up. Display a
+ warning if the master server does not respond.
+
+2010-12-02 20:32:52 fraggle
+
+ Add -servername parameter to allow the owner to change the name
+ returned in response to queries (thanks AlexMax).
+
+2010-12-02 20:11:24 fraggle
+
+ More refactoring of querying code, to not be specific to the purpose
+ of printing out a list.
+
+2010-12-02 19:26:05 fraggle
+
+ Refactor query code and add a -masterquery command line parameter to
+ query the master server.
+
+2010-12-02 18:23:09 fraggle
+
+ Register servers with Internet master server.
+
+2010-11-30 21:52:38 fraggle
+
+ Oops.
+
+2010-11-30 20:44:20 fraggle
+
+ Remove "-debugfile" command line option and associated variable.
+
+2010-11-30 20:26:37 fraggle
+
+ Update NEWS.
+
+2010-11-30 20:09:22 rtc_marine
+
+ - Update codeblocks project
+
+2010-11-30 20:00:06 fraggle
+
+ Add support for HACX v1.2 IWAD file.
+
+2010-11-30 01:08:59 fraggle
+
+ Add NOT-BUGS file with some common Vanilla gotchas.
+
+2010-11-29 20:18:10 fraggle
+
+ Auto-adjust the screen color depth if the configured color depth is
+ not supported by the hardware.
+
+2010-11-27 23:23:12 fraggle
+
+ Add dropdown list to setup tool to select screen BPP.
+
+2010-11-27 19:39:14 fraggle
+
+ When generating the texture name lookup hash table, add new entries to
+ the end of chains. This way, entries earlier in the texture list
+ trump later entries with the same name. This fixes a bug with the
+ wrong sky being shown in Spooky01.wad (thanks Porsche Monty).
+
+2010-11-27 15:36:43 fraggle
+
+ Fix -timer / -avg options to work like Vanilla when playing demos.
+
+2010-11-26 18:56:45 fraggle
+
+ In non-palettized boxed screen modes, don't update the border areas of
+ the screen. This is more CPU and memory efficient, and also fixes the
+ "flashing border" bug when palette flashes occur.
+
+2010-11-26 18:36:48 fraggle
+
+ Turn double buffering on for non-palettized screen modes, as this may
+ be the cause of screen tearing reports.
+
+2010-11-24 23:34:18 fraggle
+
+ Detect when running on Windows Vista or later, and switch to 32 bpp
+ screen mode.
+
+2010-11-24 22:43:37 fraggle
+
+ Add configuration file parameter and command line option to specify
+ the screen pixel depth.
+
+2010-11-24 08:09:48 fraggle
+
+ Add workaround to stop freezeups with old versions of SDL_mixer.
+
+2010-11-21 15:44:43 fraggle
+
+ Add -8in32 command line parameter to make the game run in 32-bit color
+ mode, scaling up into an intermediate 8-bit buffer first. This should
+ help with the palette problems experienced by Windows Vista/7 users.
+
+2010-11-09 16:10:52 fraggle
+
+ Update Python scripts to work in Python 3.
+
+2010-09-19 21:09:36 fraggle
+
+ Read response file in binary mode, to fix incomplete response file
+ bug.
+
+2010-08-31 21:00:20 fraggle
+
+ Add weapon cycling buttons to joystick button list.
+
+2010-08-31 20:59:24 fraggle
+
+ Don't double OPL sample values, as it causes horrible things to happen
+ with the Heretic title screen music.
+
+2010-08-28 19:35:08 fraggle
+
+ Update NEWS.
+
+2010-08-28 19:28:05 fraggle
+
+ Include INSTALL file in distribution packages.
+
+2010-08-22 18:59:12 fraggle
+
+ Shut up compiler warning.
+
+2010-08-22 02:21:27 fraggle
+
+ Change span drawing functions to work the same as Vanilla, so that in
+ screenshots, floors and ceilings are pixel-perfect identical to
+ Vanilla Doom (thanks Porsche Monty).
+
+2010-08-21 19:49:20 fraggle
+
+ Change default mouse acceleration in setup tool to match the game's
+ default.
+
+2010-08-21 18:47:24 fraggle
+
+ "Bug fix".
+
+2010-08-20 14:01:29 fraggle
+
+ Remove debug printf().
+
+2010-08-20 13:20:58 fraggle
+
+ Align memory allocated by zone memory system to 8 byte boundaries on
+ 64-bit machines. Possibly fixes problems on sparc64?
+
+2010-08-20 12:30:30 fraggle
+
+ Extend mouse code to support up to 8 buttons (allows mouse wheel to be
+ used).
+
+2010-08-15 16:23:28 fraggle
+
+ Fix volume multiply; DBOPL now generating output.
+
+2010-08-15 15:57:37 fraggle
+
+ Hook DBOPL into OPL library and remove FMOPL. Does not generate any
+ sound yet.
+
+2010-08-13 19:42:52 fraggle
+
+ Add C-converted version of DOSbox OPL emulator.
+
+2010-08-09 18:53:10 fraggle
+
+ Add weapon cycling bindings for mouse and joystick buttons. Add
+ weapon cycling bindings to configuration file and setup tool.
+
+2010-08-07 18:23:09 fraggle
+
+ Change back filter frequency. Add debug code to dump resampled sound
+ effects to WAV files.
+
+2010-08-07 17:07:00 fraggle
+
+ Fix sound resampling low pass filter.
+
+2010-08-04 19:25:04 fraggle
+
+ Initial code for previous/next weapon switching keys.
+
+2010-08-03 21:12:36 fraggle
+
+ When in windowed mode, allow the screen size to be dynamically resized
+ by dragging the window borders.
+
+2010-07-31 20:25:17 fraggle
+
+ Add multiplayer spy key binding.
+
+2010-07-28 21:39:07 fraggle
+
+ Add config file parameter to set OPL I/O port.
+
+2010-07-17 01:33:57 fraggle
+
+ Check for libm, to fix Fedora compile issues.
+
+2010-07-14 21:36:53 fraggle
+
+ Set MACOSX_DEPLOYMENT_TARGET to target 10.4, so that the launcher will
+ work on older versions.
+
+2010-07-10 17:06:15 fraggle
+
+ Update NEWS and ChangeLog, bump version number.
+
+2010-07-10 16:56:18 fraggle
+
+ Add key bindings for multiplayer messaging.
+
+2010-07-10 16:27:52 fraggle
+
+ Add key binding to change demo recording quit key.
+
2010-05-30 04:03:44 fraggle
Add INSTALL to all distribution packages, add note in README.
diff --git a/NEWS b/NEWS
index 8ade803d..7e89584c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,18 @@
-1.5.0 (2010-??-??):
+1.6.0 (2011-??-??):
+
+ Bugs fixed:
+ * Menu navigation when using joystick/joypad (thanks Alexandre
+ Xavier).
+ * For configuration file value for shift keys, use scan code for
+ right shift, not left shift (thanks AlexXav).
+ * Default joystick buttons for the setup tool now match Vanilla
+ (thanks twipley).
+
+ libtextscreen:
+ * It is now possible to type a '+' in input boxes (thanks
+ Alexandre Xavier).
+
+1.5.0 (2011-01-02):
Big changes in this version:
* The DOSbox OPL emulator (DBOPL) has been imported to replace
@@ -50,6 +64,12 @@
removed from the title of the dialog box that appears on
Windows when this happens. This is desirable as not all such
messages are actually errors (thanks Proteh).
+ * The setup tool now passes through all command line arguments
+ when launching the game (thanks AlexXav).
+ * Demo loop behavior (ie. whether to play DEMO4) now depends on
+ the version being emulated. When playing Final Doom the game
+ will exit unexpectedly as it tries to play the fourth demo -
+ this is Vanilla behaviour (thanks AlexXav).
Bugs fixed:
* A workaround has been a bug in old versions of SDL_mixer
@@ -79,6 +99,14 @@
exp(x)).
* The controller player in a netgame is the first player to join,
instead of just being someone who gets lucky.
+ * Command line arguments that take an option now check that an
+ option is provided (thanks Sander van Dijk).
+ * Skill level names in the setup tool are now written the same as
+ they are on the in-game "new game" menu (thanks AlexXav).
+ * There is no longer a limit on the lengths of filenames provided
+ to the -record command line parameter (thanks AlexXav).
+ * Window title is not lost in setup tool when changing video
+ driver (thanks AlexXav).
libtextscreen:
* The font used for the textscreen library can be forced by
diff --git a/NOT-BUGS b/NOT-BUGS
index 38d97770..f7d22231 100644
--- a/NOT-BUGS
+++ b/NOT-BUGS
@@ -31,6 +31,29 @@ upgrade.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+== Game exits in demo loop when playing Final Doom ==
+
+When playing with the Final Doom IWAD files (tnt.wad, plutonia.wad),
+if you leave the game at the title screen to play through the demo
+loop, it will eventually exit with the following error message:
+
+ W_GetNumForName: demo4 not found!
+
+This is the same behavior as the Vanilla executables that were
+bundled with Final Doom. When Ultimate Doom was developed, a fourth
+demo was added to the demo loop, and this change was retained in the
+Final Doom version of the executable. However, the Final Doom IWADs
+do not include a fourth demo, so the game crashes.
+
+One way to work around this problem is to make the game emulate the
+original (pre-Ultimate Doom) v1.9 executable. To do this, add the
+command line argument "-gameversion 1.9" when running the game.
+However, be aware this version does have some subtle differences that
+will affect the playback of Final Doom demos (lost soul bouncing,
+teleport behavior).
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
== Game exits when accessing the options menu ==
The game may exit with the message "Bad V_DrawPatch" when accessing
diff --git a/codeblocks/config.h b/codeblocks/config.h
index d092bf73..9026d398 100644
--- a/codeblocks/config.h
+++ b/codeblocks/config.h
@@ -9,19 +9,19 @@
#define PACKAGE_NAME "Chocolate Doom"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "Chocolate Doom 1.4.0"
+#define PACKAGE_STRING "Chocolate Doom 1.5.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "chocolate-doom"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.4.0"
+#define PACKAGE_VERSION "1.5.0"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "1.4.0"
+#define VERSION "1.5.0"
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
diff --git a/codeblocks/game-res.rc b/codeblocks/game-res.rc
index eef24852..beef1242 100644
--- a/codeblocks/game-res.rc
+++ b/codeblocks/game-res.rc
@@ -1,21 +1,21 @@
1 ICON "../data/doom.ico"
1 VERSIONINFO
-PRODUCTVERSION 1,4,0,0
-FILEVERSION 1,4,0,0
+PRODUCTVERSION 1,5,0,0
+FILEVERSION 1,5,0,0
FILETYPE 1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
- VALUE "FileVersion", "1.4.0"
- VALUE "FileDescription", "1.4.0"
+ VALUE "FileVersion", "1.5.0"
+ VALUE "FileDescription", "1.5.0"
VALUE "InternalName", "Chocolate-Doom"
VALUE "CompanyName", "Chocolate-Doom"
VALUE "LegalCopyright", "GNU General Public License"
VALUE "ProductName", "Chocolate-Doom"
- VALUE "ProductVersion", "1.4.0"
+ VALUE "ProductVersion", "1.5.0"
}
}
}
diff --git a/codeblocks/setup-res.rc b/codeblocks/setup-res.rc
index f1602adb..b3812a74 100644
--- a/codeblocks/setup-res.rc
+++ b/codeblocks/setup-res.rc
@@ -3,21 +3,21 @@
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "setup-manifest.xml"
1 VERSIONINFO
-PRODUCTVERSION 1,4,0,0
-FILEVERSION 1,4,0,0
+PRODUCTVERSION 1,5,0,0
+FILEVERSION 1,5,0,0
FILETYPE 1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
- VALUE "FileVersion", "1.4.0"
+ VALUE "FileVersion", "1.5.0"
VALUE "FileDescription", "Chocolate-Doom Setup"
VALUE "InternalName", "chocolate-setup"
VALUE "CompanyName", "fraggle@gmail.com"
VALUE "LegalCopyright", "GNU General Public License"
VALUE "ProductName", "Chocolate-Doom Setup"
- VALUE "ProductVersion", "1.4.0"
+ VALUE "ProductVersion", "1.5.0"
}
}
}
diff --git a/configure.in b/configure.in
index c5801978..c100d7cf 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT(Chocolate Doom, 1.4.0, fraggle@gmail.com, chocolate-doom)
+AC_INIT(Chocolate Doom, 1.5.0, fraggle@gmail.com, chocolate-doom)
PACKAGE_SHORTDESC="Conservative Doom source port"
PACKAGE_COPYRIGHT="Copyright (C) 1993-2010"
diff --git a/man/chocolate-server.6 b/man/chocolate-server.6
index 65d0a3fe..f37173f2 100644
--- a/man/chocolate-server.6
+++ b/man/chocolate-server.6
@@ -29,6 +29,12 @@ mean the netgame will simply not function at all.
.TP
\fB-port <n>\fR
Use the specified UDP port for communications, instead of the default (2342).
+.TP
+\fB-privateserver\fR
+Don't register with the global master server.
+.TP
+\fB-servername <name>\fR
+Specify a name for the server.
.SH SEE ALSO
\fBchocolate-doom\fR(6),
\fBchocolate-setup\fR(6)
diff --git a/man/docgen b/man/docgen
index bfde7aef..3016dc5a 100755
--- a/man/docgen
+++ b/man/docgen
@@ -293,10 +293,10 @@ def add_parameter(param, line, config_file):
# Is this documenting a command line parameter?
- match = re.search('M_CheckParm\s*\(\s*"(.*?)"\s*\)', line)
+ match = re.search('M_CheckParm(WithArgs)?\s*\(\s*"(.*?)"', line)
if match:
- param.name = match.group(1)
+ param.name = match.group(2)
categories[param.category].add_param(param)
return
diff --git a/msvc/config.h b/msvc/config.h
index 006d7c74..d91bd23b 100644
--- a/msvc/config.h
+++ b/msvc/config.h
@@ -11,16 +11,16 @@
#define PACKAGE_NAME "Chocolate Doom"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "Chocolate Doom 1.4.0"
+#define PACKAGE_STRING "Chocolate Doom 1.5.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "chocolate-doom"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.4.0"
+#define PACKAGE_VERSION "1.5.0"
/* Version number of package */
-#define VERSION "1.4.0"
+#define VERSION "1.5.0"
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
diff --git a/msvc/win32.rc b/msvc/win32.rc
index 94a35372..3371d993 100644
--- a/msvc/win32.rc
+++ b/msvc/win32.rc
@@ -32,21 +32,21 @@
#endif
1 VERSIONINFO
-PRODUCTVERSION 1,4,0,0
-FILEVERSION 1,4,0,0
+PRODUCTVERSION 1,5,0,0
+FILEVERSION 1,5,0,0
FILETYPE 1
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
- VALUE "FileVersion", "1.4.0"
- VALUE "FileDescription", "Chocolate Doom 1.4.0"
+ VALUE "FileVersion", "1.5.0"
+ VALUE "FileDescription", "Chocolate Doom 1.5.0"
VALUE "InternalName", "chocolate-doom"
VALUE "CompanyName", "fraggle@gmail.com"
VALUE "LegalCopyright", "GNU General Public License"
VALUE "ProductName", "Chocolate Doom"
- VALUE "ProductVersion", "1.4.0"
+ VALUE "ProductVersion", "1.5.0"
END
END
END
diff --git a/pkg/Makefile.am b/pkg/Makefile.am
index 63da8f53..438a870a 100644
--- a/pkg/Makefile.am
+++ b/pkg/Makefile.am
@@ -5,8 +5,7 @@ osx/Resources/app.icns \
osx/Resources/app.png \
osx/Resources/wadfile.icns \
osx/Resources/wadfile.png \
-osx/Resources/launcher.nib/classes.nib \
-osx/Resources/launcher.nib/info.nib \
+osx/Resources/launcher.nib/designable.nib \
osx/Resources/launcher.nib/keyedobjects.nib \
osx/GNUmakefile \
osx/Info.plist.in osx/Info-gnustep.plist.in \
diff --git a/pkg/osx/LauncherManager.h b/pkg/osx/LauncherManager.h
index e454ab4f..7e8c35cd 100644
--- a/pkg/osx/LauncherManager.h
+++ b/pkg/osx/LauncherManager.h
@@ -35,7 +35,6 @@
id launchButton;
id commandLineArguments;
- id packageLabel;
}
- (void) launch: (id)sender;
diff --git a/pkg/osx/LauncherManager.m b/pkg/osx/LauncherManager.m
index ae91ef4d..8c523ab4 100644
--- a/pkg/osx/LauncherManager.m
+++ b/pkg/osx/LauncherManager.m
@@ -327,7 +327,6 @@ static NSString *AppendQuotedFilename(NSString *str, NSString *fileName)
- (void) awakeFromNib
{
- [self->packageLabel setStringValue: @PACKAGE_STRING];
[self->launcherWindow setTitle: @PACKAGE_NAME " Launcher"];
[self->launcherWindow center];
[self->launcherWindow setDefaultButtonCell: [self->launchButton cell]];
diff --git a/pkg/osx/Resources/launcher.nib/classes.nib b/pkg/osx/Resources/launcher.nib/classes.nib
deleted file mode 100644
index 7efc837a..00000000
--- a/pkg/osx/Resources/launcher.nib/classes.nib
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- IBClasses = (
- {
- CLASS = AppController;
- LANGUAGE = ObjC;
- OUTLETS = {launcherManager = id; };
- SUPERCLASS = NSObject;
- },
- {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
- {
- ACTIONS = {closeConfigWindow = id; openConfigWindow = id; };
- CLASS = IWADController;
- LANGUAGE = ObjC;
- OUTLETS = {
- chex = id;
- configWindow = id;
- doom1 = id;
- doom2 = id;
- iwadSelector = id;
- plutonia = id;
- tnt = id;
- };
- SUPERCLASS = NSObject;
- },
- {
- ACTIONS = {setButtonClicked = id; };
- CLASS = IWADLocation;
- LANGUAGE = ObjC;
- OUTLETS = {locationConfigBox = id; };
- SUPERCLASS = NSObject;
- },
- {
- ACTIONS = {launch = id; openTerminal = id; runSetup = id; };
- CLASS = LauncherManager;
- LANGUAGE = ObjC;
- OUTLETS = {
- commandLineArguments = id;
- iwadController = id;
- launchButton = id;
- launcherWindow = id;
- packageLabel = id;
- };
- SUPERCLASS = NSObject;
- }
- );
- IBVersion = 1;
-} \ No newline at end of file
diff --git a/pkg/osx/Resources/launcher.nib/designable.nib b/pkg/osx/Resources/launcher.nib/designable.nib
new file mode 100644
index 00000000..856ea06f
--- /dev/null
+++ b/pkg/osx/Resources/launcher.nib/designable.nib
@@ -0,0 +1,2679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1060</int>
+ <string key="IBDocument.SystemVersion">10F569</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="NS.object.0">823</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="29"/>
+ <integer value="2"/>
+ <integer value="227"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+ <integer value="1" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="500532821">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="675889750">
+ <object class="NSMutableString" key="NSClassName">
+ <characters key="NS.bytes">NSApplication</characters>
+ </object>
+ </object>
+ <object class="NSCustomObject" id="379361643">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="226652452">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="790120634">
+ <int key="NSWindowStyleMask">7</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{350, 488}, {530, 190}}</string>
+ <int key="NSWTFlags">1886912512</int>
+ <string key="NSWindowTitle">(Package Name) Launcher</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <object class="NSMutableString" key="NSViewClass">
+ <characters key="NS.bytes">View</characters>
+ </object>
+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <string key="NSWindowContentMinSize">{243.529, 107}</string>
+ <object class="NSView" key="NSWindowView" id="588857216">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="233433370">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 159}, {360, 11}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="840496048">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string type="base64-UTF8" key="NSContents">U2VsZWN0IGEgZ2FtZToKA</string>
+ <object class="NSFont" key="NSSupport" id="22">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">9</double>
+ <int key="NSfFlags">3614</int>
+ </object>
+ <reference key="NSControlView" ref="233433370"/>
+ <object class="NSColor" key="NSBackgroundColor" id="77619338">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="206071849">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <object class="NSColor" key="NSColor" id="773009915">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSPopUpButton" id="936658753">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 127}, {259, 26}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSPopUpButtonCell" key="NSCell" id="968990884">
+ <int key="NSCellFlags">-2076049856</int>
+ <int key="NSCellFlags2">2048</int>
+ <object class="NSFont" key="NSSupport" id="407649812">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">1044</int>
+ </object>
+ <reference key="NSControlView" ref="936658753"/>
+ <int key="NSButtonFlags">109199615</int>
+ <int key="NSButtonFlags2">1</int>
+ <object class="NSFont" key="NSAlternateImage" id="813720862">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ <object class="NSMenuItem" key="NSMenuItem" id="532676330">
+ <reference key="NSMenu" ref="562767686"/>
+ <string key="NSTitle">Game name</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <int key="NSState">1</int>
+ <object class="NSCustomResource" key="NSOnImage" id="819247708">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuCheckmark</string>
+ </object>
+ <object class="NSCustomResource" key="NSMixedImage" id="94574589">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuMixedState</string>
+ </object>
+ <string key="NSAction">_popUpItemAction:</string>
+ <reference key="NSTarget" ref="968990884"/>
+ </object>
+ <bool key="NSMenuItemRespectAlignment">YES</bool>
+ <object class="NSMenu" key="NSMenu" id="562767686">
+ <object class="NSMutableString" key="NSTitle">
+ <characters key="NS.bytes">OtherViews</characters>
+ </object>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="532676330"/>
+ </object>
+ </object>
+ <int key="NSPreferredEdge">3</int>
+ <bool key="NSUsesItemFromMenu">YES</bool>
+ <bool key="NSAltersState">YES</bool>
+ <int key="NSArrowPosition">1</int>
+ </object>
+ </object>
+ <object class="NSImageView" id="837745433">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{382, 51}, {128, 128}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="606342952">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <object class="NSCustomResource" key="NSContents">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">128x128</string>
+ </object>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">1</int>
+ <int key="NSStyle">0</int>
+ <bool key="NSAnimates">YES</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ <object class="NSButton" id="63012253">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{281, 129}, {93, 23}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="339458432">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Configure...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="63012253"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="270224583">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 100}, {360, 11}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="442641975">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string type="base64-UTF8" key="NSContents">Q29tbWFuZCBsaW5lIGFyZ3VtZW50czoKA</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="270224583"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="165411811">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 70}, {354, 22}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="263205275">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="165411811"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <object class="NSColor" key="NSBackgroundColor" id="612330193">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textBackgroundColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="943265597">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textColor</string>
+ <reference key="NSColor" ref="773009915"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSButton" id="521193242">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{387, 12}, {129, 32}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="660416141">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Launch Game</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="521193242"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <reference key="NSAlternateImage" ref="407649812"/>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="858516582">
+ <reference key="NSNextResponder" ref="588857216"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{14, 12}, {149, 32}}</string>
+ <reference key="NSSuperview" ref="588857216"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="139359493">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Run Setup Tool...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="858516582"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <reference key="NSAlternateImage" ref="407649812"/>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{530, 190}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
+ <string key="NSMinSize">{243.529, 129}</string>
+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ </object>
+ <object class="NSMenu" id="624798014">
+ <string key="NSTitle">MainMenu</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="231654028">
+ <reference key="NSMenu" ref="624798014"/>
+ <string key="NSTitle">Launcher</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="499410461">
+ <string key="NSTitle">Launcher</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="320960707">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">About...</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="329501564">
+ <reference key="NSMenu" ref="499410461"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="786583327">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">IWAD configuration...</string>
+ <string key="NSKeyEquiv">,</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="461135404">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Command Prompt...</string>
+ <string key="NSKeyEquiv">t</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="594796138">
+ <reference key="NSMenu" ref="499410461"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="1021771665">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Services</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="883685847">
+ <object class="NSMutableString" key="NSTitle">
+ <characters key="NS.bytes">Services</characters>
+ </object>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <string key="NSName">_NSServicesMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="741321419">
+ <reference key="NSMenu" ref="499410461"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="156272785">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Hide</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="770461341">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Hide Others</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="644979712">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Show All</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="276734846">
+ <reference key="NSMenu" ref="499410461"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="730606146">
+ <reference key="NSMenu" ref="499410461"/>
+ <string key="NSTitle">Quit</string>
+ <string key="NSKeyEquiv">q</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ </object>
+ <string key="NSName">_NSAppleMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="729612487">
+ <reference key="NSMenu" ref="624798014"/>
+ <string key="NSTitle">Edit</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="324022003">
+ <object class="NSMutableString" key="NSTitle">
+ <characters key="NS.bytes">Edit</characters>
+ </object>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="495532942">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Undo</string>
+ <string key="NSKeyEquiv">z</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="47062370">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Redo</string>
+ <string key="NSKeyEquiv">Z</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="922159417">
+ <reference key="NSMenu" ref="324022003"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="463629067">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Cut</string>
+ <string key="NSKeyEquiv">x</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="854781678">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Copy</string>
+ <string key="NSKeyEquiv">c</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="140484273">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Paste</string>
+ <string key="NSKeyEquiv">v</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="252305464">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Delete</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="915916931">
+ <reference key="NSMenu" ref="324022003"/>
+ <string key="NSTitle">Select All</string>
+ <string key="NSKeyEquiv">a</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="419477060">
+ <reference key="NSMenu" ref="624798014"/>
+ <string key="NSTitle">Window</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="893534477">
+ <object class="NSMutableString" key="NSTitle">
+ <characters key="NS.bytes">Window</characters>
+ </object>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="105811130">
+ <reference key="NSMenu" ref="893534477"/>
+ <string key="NSTitle">Minimize</string>
+ <string key="NSKeyEquiv">m</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="590253993">
+ <reference key="NSMenu" ref="893534477"/>
+ <string key="NSTitle">Zoom</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="1009742520">
+ <reference key="NSMenu" ref="893534477"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ <object class="NSMenuItem" id="575456822">
+ <reference key="NSMenu" ref="893534477"/>
+ <string key="NSTitle">Bring All to Front</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">2147483647</int>
+ <reference key="NSOnImage" ref="819247708"/>
+ <reference key="NSMixedImage" ref="94574589"/>
+ </object>
+ </object>
+ <string key="NSName">_NSWindowsMenu</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSName">_NSMainMenu</string>
+ </object>
+ <object class="NSCustomObject" id="590266459">
+ <string key="NSClassName">LauncherManager</string>
+ </object>
+ <object class="NSCustomObject" id="938927474">
+ <string key="NSClassName">IWADController</string>
+ </object>
+ <object class="NSWindowTemplate" id="193084417">
+ <int key="NSWindowStyleMask">7</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{377, 409}, {480, 316}}</string>
+ <int key="NSWTFlags">1886912512</int>
+ <string key="NSWindowTitle">IWAD configuration</string>
+ <object class="NSMutableString" key="NSWindowClass">
+ <characters key="NS.bytes">NSWindow</characters>
+ </object>
+ <object class="NSMutableString" key="NSViewClass">
+ <characters key="NS.bytes">View</characters>
+ </object>
+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <string key="NSWindowContentMinSize">{213, 107}</string>
+ <object class="NSView" key="NSWindowView" id="145141922">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="348674481">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 285}, {446, 11}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="522582983">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string key="NSContents">Doom IWAD location (doom.wad):</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="348674481"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="215057262">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 255}, {369, 22}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="596525351">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="215057262"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="612330193"/>
+ <reference key="NSTextColor" ref="943265597"/>
+ </object>
+ </object>
+ <object class="NSButton" id="410786529">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{397, 255}, {63, 23}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="673476660">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Set...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="410786529"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="316721564">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 236}, {446, 11}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="663066257">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string key="NSContents">Doom II IWAD location (doom2.wad):</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="316721564"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="458378991">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 206}, {369, 22}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="848829815">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="458378991"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="612330193"/>
+ <reference key="NSTextColor" ref="943265597"/>
+ </object>
+ </object>
+ <object class="NSButton" id="644218899">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{397, 206}, {63, 23}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="63361904">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Set...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="644218899"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="179636494">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 187}, {446, 11}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="84857374">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string type="base64-UTF8" key="NSContents">RmluYWwgRG9vbTogVE5UOiBFdmlsdXRpb24gbG9jYXRpb24gKHRudC53YWQpOgo</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="179636494"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="1021143679">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 157}, {369, 22}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="629867670">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="1021143679"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="612330193"/>
+ <reference key="NSTextColor" ref="943265597"/>
+ </object>
+ </object>
+ <object class="NSButton" id="539465960">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{397, 157}, {63, 23}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="979277836">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Set...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="539465960"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="712311825">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 138}, {446, 11}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="131918744">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string type="base64-UTF8" key="NSContents">RmluYWwgRG9vbTogUGx1dG9uaWEgRXhwZXJpbWVudCBsb2NhdGlvbiAocGx1dG9uaWEud2FkKToKA</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="712311825"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="355049668">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 108}, {369, 22}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="17259252">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="355049668"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="612330193"/>
+ <reference key="NSTextColor" ref="943265597"/>
+ </object>
+ </object>
+ <object class="NSButton" id="602477213">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{397, 108}, {63, 23}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="406066834">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Set...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="602477213"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="452288864">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{17, 89}, {446, 11}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="969661180">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272629760</int>
+ <string key="NSContents">Chex Quest IWAD location (chex.wad):</string>
+ <reference key="NSSupport" ref="22"/>
+ <reference key="NSControlView" ref="452288864"/>
+ <reference key="NSBackgroundColor" ref="77619338"/>
+ <reference key="NSTextColor" ref="206071849"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="625273251">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{20, 59}, {369, 22}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="857754300">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="625273251"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="612330193"/>
+ <reference key="NSTextColor" ref="943265597"/>
+ </object>
+ </object>
+ <object class="NSButton" id="680095551">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{397, 59}, {63, 23}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="1012408786">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Set...</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="680095551"/>
+ <int key="NSButtonFlags">-2038021889</int>
+ <int key="NSButtonFlags2">32</int>
+ <reference key="NSAlternateImage" ref="813720862"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </object>
+ <object class="NSButton" id="658359713">
+ <reference key="NSNextResponder" ref="145141922"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{384, 12}, {82, 32}}</string>
+ <reference key="NSSuperview" ref="145141922"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="235375789">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Close</string>
+ <reference key="NSSupport" ref="407649812"/>
+ <reference key="NSControlView" ref="658359713"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <reference key="NSAlternateImage" ref="407649812"/>
+ <string key="NSAlternateContents"/>
+ <object class="NSMutableString" key="NSKeyEquivalent">
+ <characters key="NS.bytes"/>
+ </object>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 316}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
+ <string key="NSMinSize">{213, 129}</string>
+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ </object>
+ <object class="NSCustomObject" id="805322722">
+ <string key="NSClassName">IWADLocation</string>
+ </object>
+ <object class="NSCustomObject" id="328707004">
+ <string key="NSClassName">IWADLocation</string>
+ </object>
+ <object class="NSCustomObject" id="808449249">
+ <string key="NSClassName">IWADLocation</string>
+ </object>
+ <object class="NSCustomObject" id="645425571">
+ <string key="NSClassName">IWADLocation</string>
+ </object>
+ <object class="NSCustomObject" id="142365428">
+ <string key="NSClassName">IWADLocation</string>
+ </object>
+ <object class="NSCustomObject" id="825061065">
+ <string key="NSClassName">AppController</string>
+ </object>
+ <object class="NSCustomObject" id="201870239">
+ <string key="NSClassName">LauncherManager</string>
+ </object>
+ <object class="NSCustomObject" id="895790931">
+ <string key="NSClassName">LauncherManager</string>
+ </object>
+ <object class="NSCustomObject" id="366010945">
+ <string key="NSClassName">LauncherManager</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">performMiniaturize:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="105811130"/>
+ </object>
+ <int key="connectionID">37</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">arrangeInFront:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="575456822"/>
+ </object>
+ <int key="connectionID">39</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">terminate:</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="730606146"/>
+ </object>
+ <int key="connectionID">139</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">orderFrontStandardAboutPanel:</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="320960707"/>
+ </object>
+ <int key="connectionID">142</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">hideOtherApplications:</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="770461341"/>
+ </object>
+ <int key="connectionID">146</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">hide:</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="156272785"/>
+ </object>
+ <int key="connectionID">152</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">unhideAllApplications:</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="644979712"/>
+ </object>
+ <int key="connectionID">153</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">performZoom:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="590253993"/>
+ </object>
+ <int key="connectionID">198</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">launcherWindow</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="790120634"/>
+ </object>
+ <int key="connectionID">207</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">commandLineArguments</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="165411811"/>
+ </object>
+ <int key="connectionID">222</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">runSetup:</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="858516582"/>
+ </object>
+ <int key="connectionID">223</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">launch:</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="521193242"/>
+ </object>
+ <int key="connectionID">224</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">openConfigWindow:</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="63012253"/>
+ </object>
+ <int key="connectionID">226</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">locationConfigBox</string>
+ <reference key="source" ref="805322722"/>
+ <reference key="destination" ref="215057262"/>
+ </object>
+ <int key="connectionID">251</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">locationConfigBox</string>
+ <reference key="source" ref="328707004"/>
+ <reference key="destination" ref="458378991"/>
+ </object>
+ <int key="connectionID">252</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">locationConfigBox</string>
+ <reference key="source" ref="808449249"/>
+ <reference key="destination" ref="1021143679"/>
+ </object>
+ <int key="connectionID">253</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">locationConfigBox</string>
+ <reference key="source" ref="142365428"/>
+ <reference key="destination" ref="625273251"/>
+ </object>
+ <int key="connectionID">254</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">setButtonClicked:</string>
+ <reference key="source" ref="805322722"/>
+ <reference key="destination" ref="410786529"/>
+ </object>
+ <int key="connectionID">255</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">setButtonClicked:</string>
+ <reference key="source" ref="328707004"/>
+ <reference key="destination" ref="644218899"/>
+ </object>
+ <int key="connectionID">256</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">setButtonClicked:</string>
+ <reference key="source" ref="808449249"/>
+ <reference key="destination" ref="539465960"/>
+ </object>
+ <int key="connectionID">257</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">setButtonClicked:</string>
+ <reference key="source" ref="142365428"/>
+ <reference key="destination" ref="680095551"/>
+ </object>
+ <int key="connectionID">258</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">closeConfigWindow:</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="658359713"/>
+ </object>
+ <int key="connectionID">259</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">doom1</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="805322722"/>
+ </object>
+ <int key="connectionID">260</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">doom2</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="328707004"/>
+ </object>
+ <int key="connectionID">261</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">tnt</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="808449249"/>
+ </object>
+ <int key="connectionID">262</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">plutonia</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="645425571"/>
+ </object>
+ <int key="connectionID">263</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">chex</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="142365428"/>
+ </object>
+ <int key="connectionID">264</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">configWindow</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="193084417"/>
+ </object>
+ <int key="connectionID">265</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">iwadSelector</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="936658753"/>
+ </object>
+ <int key="connectionID">266</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">locationConfigBox</string>
+ <reference key="source" ref="645425571"/>
+ <reference key="destination" ref="355049668"/>
+ </object>
+ <int key="connectionID">267</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">openConfigWindow:</string>
+ <reference key="source" ref="938927474"/>
+ <reference key="destination" ref="786583327"/>
+ </object>
+ <int key="connectionID">268</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">iwadController</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="938927474"/>
+ </object>
+ <int key="connectionID">269</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="675889750"/>
+ <reference key="destination" ref="825061065"/>
+ </object>
+ <int key="connectionID">271</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">launcherManager</string>
+ <reference key="source" ref="825061065"/>
+ <reference key="destination" ref="590266459"/>
+ </object>
+ <int key="connectionID">272</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">setButtonClicked:</string>
+ <reference key="source" ref="645425571"/>
+ <reference key="destination" ref="602477213"/>
+ </object>
+ <int key="connectionID">273</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">paste:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="140484273"/>
+ </object>
+ <int key="connectionID">306</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">delete:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="252305464"/>
+ </object>
+ <int key="connectionID">307</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">cut:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="463629067"/>
+ </object>
+ <int key="connectionID">310</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">undo:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="495532942"/>
+ </object>
+ <int key="connectionID">313</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">copy:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="854781678"/>
+ </object>
+ <int key="connectionID">315</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">selectAll:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="915916931"/>
+ </object>
+ <int key="connectionID">317</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">redo:</string>
+ <reference key="source" ref="379361643"/>
+ <reference key="destination" ref="47062370"/>
+ </object>
+ <int key="connectionID">318</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">openTerminal:</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="461135404"/>
+ </object>
+ <int key="connectionID">321</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">launchButton</string>
+ <reference key="source" ref="590266459"/>
+ <reference key="destination" ref="521193242"/>
+ </object>
+ <int key="connectionID">322</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="500532821"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="675889750"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="379361643"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="790120634"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="588857216"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Launcher Window</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="588857216"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="233433370"/>
+ <reference ref="936658753"/>
+ <reference ref="63012253"/>
+ <reference ref="270224583"/>
+ <reference ref="165411811"/>
+ <reference ref="837745433"/>
+ <reference ref="521193242"/>
+ <reference ref="858516582"/>
+ </object>
+ <reference key="parent" ref="790120634"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">209</int>
+ <reference key="object" ref="233433370"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="840496048"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">211</int>
+ <reference key="object" ref="936658753"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="968990884"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">216</int>
+ <reference key="object" ref="837745433"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="606342952"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">217</int>
+ <reference key="object" ref="63012253"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="339458432"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">218</int>
+ <reference key="object" ref="270224583"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="442641975"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">219</int>
+ <reference key="object" ref="165411811"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="263205275"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">220</int>
+ <reference key="object" ref="521193242"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="660416141"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">221</int>
+ <reference key="object" ref="858516582"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="139359493"/>
+ </object>
+ <reference key="parent" ref="588857216"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">29</int>
+ <reference key="object" ref="624798014"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="419477060"/>
+ <reference ref="231654028"/>
+ <reference ref="729612487"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">MainMenu</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="419477060"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="893534477"/>
+ </object>
+ <reference key="parent" ref="624798014"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">24</int>
+ <reference key="object" ref="893534477"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="575456822"/>
+ <reference ref="105811130"/>
+ <reference ref="1009742520"/>
+ <reference ref="590253993"/>
+ </object>
+ <reference key="parent" ref="419477060"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="575456822"/>
+ <reference key="parent" ref="893534477"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="105811130"/>
+ <reference key="parent" ref="893534477"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">92</int>
+ <reference key="object" ref="1009742520"/>
+ <reference key="parent" ref="893534477"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">197</int>
+ <reference key="object" ref="590253993"/>
+ <reference key="parent" ref="893534477"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">56</int>
+ <reference key="object" ref="231654028"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="499410461"/>
+ </object>
+ <reference key="parent" ref="624798014"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">57</int>
+ <reference key="object" ref="499410461"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="320960707"/>
+ <reference ref="786583327"/>
+ <reference ref="1021771665"/>
+ <reference ref="156272785"/>
+ <reference ref="730606146"/>
+ <reference ref="594796138"/>
+ <reference ref="741321419"/>
+ <reference ref="770461341"/>
+ <reference ref="276734846"/>
+ <reference ref="644979712"/>
+ <reference ref="329501564"/>
+ <reference ref="461135404"/>
+ </object>
+ <reference key="parent" ref="231654028"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">58</int>
+ <reference key="object" ref="320960707"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">129</int>
+ <reference key="object" ref="786583327"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">131</int>
+ <reference key="object" ref="1021771665"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="883685847"/>
+ </object>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">130</int>
+ <reference key="object" ref="883685847"/>
+ <reference key="parent" ref="1021771665"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">134</int>
+ <reference key="object" ref="156272785"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">136</int>
+ <reference key="object" ref="730606146"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">143</int>
+ <reference key="object" ref="594796138"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">144</int>
+ <reference key="object" ref="741321419"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">145</int>
+ <reference key="object" ref="770461341"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">149</int>
+ <reference key="object" ref="276734846"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">150</int>
+ <reference key="object" ref="644979712"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">196</int>
+ <reference key="object" ref="329501564"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">320</int>
+ <reference key="object" ref="461135404"/>
+ <reference key="parent" ref="499410461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">274</int>
+ <reference key="object" ref="729612487"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="324022003"/>
+ </object>
+ <reference key="parent" ref="624798014"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">275</int>
+ <reference key="object" ref="324022003"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="463629067"/>
+ <reference ref="854781678"/>
+ <reference ref="140484273"/>
+ <reference ref="252305464"/>
+ <reference ref="495532942"/>
+ <reference ref="915916931"/>
+ <reference ref="47062370"/>
+ <reference ref="922159417"/>
+ </object>
+ <reference key="parent" ref="729612487"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">281</int>
+ <reference key="object" ref="463629067"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">282</int>
+ <reference key="object" ref="854781678"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">287</int>
+ <reference key="object" ref="140484273"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">289</int>
+ <reference key="object" ref="252305464"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">290</int>
+ <reference key="object" ref="495532942"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">291</int>
+ <reference key="object" ref="915916931"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">293</int>
+ <reference key="object" ref="47062370"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">301</int>
+ <reference key="object" ref="922159417"/>
+ <reference key="parent" ref="324022003"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">206</int>
+ <reference key="object" ref="590266459"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">LauncherManager</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">225</int>
+ <reference key="object" ref="938927474"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">IWADController</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">227</int>
+ <reference key="object" ref="193084417"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="145141922"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Configuration Window</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">228</int>
+ <reference key="object" ref="145141922"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="348674481"/>
+ <reference ref="215057262"/>
+ <reference ref="410786529"/>
+ <reference ref="316721564"/>
+ <reference ref="458378991"/>
+ <reference ref="644218899"/>
+ <reference ref="179636494"/>
+ <reference ref="1021143679"/>
+ <reference ref="539465960"/>
+ <reference ref="712311825"/>
+ <reference ref="355049668"/>
+ <reference ref="602477213"/>
+ <reference ref="452288864"/>
+ <reference ref="625273251"/>
+ <reference ref="680095551"/>
+ <reference ref="658359713"/>
+ </object>
+ <reference key="parent" ref="193084417"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">234</int>
+ <reference key="object" ref="348674481"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="522582983"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">235</int>
+ <reference key="object" ref="215057262"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="596525351"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">236</int>
+ <reference key="object" ref="410786529"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="673476660"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">238</int>
+ <reference key="object" ref="316721564"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="663066257"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">239</int>
+ <reference key="object" ref="458378991"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="848829815"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">240</int>
+ <reference key="object" ref="644218899"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="63361904"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">241</int>
+ <reference key="object" ref="179636494"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="84857374"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">242</int>
+ <reference key="object" ref="1021143679"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="629867670"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">243</int>
+ <reference key="object" ref="539465960"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="979277836"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">244</int>
+ <reference key="object" ref="712311825"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="131918744"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">245</int>
+ <reference key="object" ref="355049668"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="17259252"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">246</int>
+ <reference key="object" ref="602477213"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="406066834"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">247</int>
+ <reference key="object" ref="452288864"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="969661180"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">248</int>
+ <reference key="object" ref="625273251"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="857754300"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">249</int>
+ <reference key="object" ref="680095551"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1012408786"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">250</int>
+ <reference key="object" ref="658359713"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="235375789"/>
+ </object>
+ <reference key="parent" ref="145141922"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">229</int>
+ <reference key="object" ref="805322722"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Doom1IWAD</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">230</int>
+ <reference key="object" ref="328707004"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Doom2IWAD</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">231</int>
+ <reference key="object" ref="808449249"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">TNTIWAD</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">232</int>
+ <reference key="object" ref="645425571"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">PlutoniaIWAD</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">233</int>
+ <reference key="object" ref="142365428"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">ChexIWAD</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">270</int>
+ <reference key="object" ref="825061065"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">AppController</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">325</int>
+ <reference key="object" ref="840496048"/>
+ <reference key="parent" ref="233433370"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">326</int>
+ <reference key="object" ref="968990884"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="562767686"/>
+ </object>
+ <reference key="parent" ref="936658753"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">327</int>
+ <reference key="object" ref="606342952"/>
+ <reference key="parent" ref="837745433"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">328</int>
+ <reference key="object" ref="339458432"/>
+ <reference key="parent" ref="63012253"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">329</int>
+ <reference key="object" ref="442641975"/>
+ <reference key="parent" ref="270224583"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">330</int>
+ <reference key="object" ref="263205275"/>
+ <reference key="parent" ref="165411811"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">331</int>
+ <reference key="object" ref="660416141"/>
+ <reference key="parent" ref="521193242"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">332</int>
+ <reference key="object" ref="139359493"/>
+ <reference key="parent" ref="858516582"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">333</int>
+ <reference key="object" ref="522582983"/>
+ <reference key="parent" ref="348674481"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">334</int>
+ <reference key="object" ref="596525351"/>
+ <reference key="parent" ref="215057262"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">335</int>
+ <reference key="object" ref="673476660"/>
+ <reference key="parent" ref="410786529"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">336</int>
+ <reference key="object" ref="663066257"/>
+ <reference key="parent" ref="316721564"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">337</int>
+ <reference key="object" ref="848829815"/>
+ <reference key="parent" ref="458378991"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">338</int>
+ <reference key="object" ref="63361904"/>
+ <reference key="parent" ref="644218899"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">339</int>
+ <reference key="object" ref="84857374"/>
+ <reference key="parent" ref="179636494"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">340</int>
+ <reference key="object" ref="629867670"/>
+ <reference key="parent" ref="1021143679"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">341</int>
+ <reference key="object" ref="979277836"/>
+ <reference key="parent" ref="539465960"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">342</int>
+ <reference key="object" ref="131918744"/>
+ <reference key="parent" ref="712311825"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">343</int>
+ <reference key="object" ref="17259252"/>
+ <reference key="parent" ref="355049668"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">344</int>
+ <reference key="object" ref="406066834"/>
+ <reference key="parent" ref="602477213"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">345</int>
+ <reference key="object" ref="969661180"/>
+ <reference key="parent" ref="452288864"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">346</int>
+ <reference key="object" ref="857754300"/>
+ <reference key="parent" ref="625273251"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">347</int>
+ <reference key="object" ref="1012408786"/>
+ <reference key="parent" ref="680095551"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">348</int>
+ <reference key="object" ref="235375789"/>
+ <reference key="parent" ref="658359713"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">212</int>
+ <reference key="object" ref="562767686"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="532676330"/>
+ </object>
+ <reference key="parent" ref="968990884"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">213</int>
+ <reference key="object" ref="532676330"/>
+ <reference key="parent" ref="562767686"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="226652452"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">349</int>
+ <reference key="object" ref="201870239"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">350</int>
+ <reference key="object" ref="895790931"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">351</int>
+ <reference key="object" ref="366010945"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>129.IBPluginDependency</string>
+ <string>129.ImportedFromIB2</string>
+ <string>130.IBPluginDependency</string>
+ <string>130.ImportedFromIB2</string>
+ <string>131.IBPluginDependency</string>
+ <string>131.ImportedFromIB2</string>
+ <string>134.IBPluginDependency</string>
+ <string>134.ImportedFromIB2</string>
+ <string>136.IBPluginDependency</string>
+ <string>136.ImportedFromIB2</string>
+ <string>143.IBPluginDependency</string>
+ <string>143.ImportedFromIB2</string>
+ <string>144.IBPluginDependency</string>
+ <string>144.ImportedFromIB2</string>
+ <string>145.IBPluginDependency</string>
+ <string>145.ImportedFromIB2</string>
+ <string>149.IBPluginDependency</string>
+ <string>149.ImportedFromIB2</string>
+ <string>150.IBPluginDependency</string>
+ <string>150.ImportedFromIB2</string>
+ <string>19.IBPluginDependency</string>
+ <string>19.ImportedFromIB2</string>
+ <string>196.IBPluginDependency</string>
+ <string>196.ImportedFromIB2</string>
+ <string>197.IBPluginDependency</string>
+ <string>197.ImportedFromIB2</string>
+ <string>2.IBPluginDependency</string>
+ <string>2.ImportedFromIB2</string>
+ <string>206.ImportedFromIB2</string>
+ <string>209.IBPluginDependency</string>
+ <string>209.IBViewBoundsToFrameTransform</string>
+ <string>209.ImportedFromIB2</string>
+ <string>21.IBEditorWindowLastContentRect</string>
+ <string>21.IBPluginDependency</string>
+ <string>21.IBWindowTemplateEditedContentRect</string>
+ <string>21.ImportedFromIB2</string>
+ <string>21.NSWindowTemplate.visibleAtLaunch</string>
+ <string>21.windowTemplate.hasMinSize</string>
+ <string>21.windowTemplate.minSize</string>
+ <string>211.IBPluginDependency</string>
+ <string>211.IBViewBoundsToFrameTransform</string>
+ <string>211.ImportedFromIB2</string>
+ <string>212.IBPluginDependency</string>
+ <string>212.ImportedFromIB2</string>
+ <string>213.IBPluginDependency</string>
+ <string>213.ImportedFromIB2</string>
+ <string>216.IBPluginDependency</string>
+ <string>216.IBViewBoundsToFrameTransform</string>
+ <string>216.ImportedFromIB2</string>
+ <string>217.IBPluginDependency</string>
+ <string>217.IBViewBoundsToFrameTransform</string>
+ <string>217.ImportedFromIB2</string>
+ <string>218.IBPluginDependency</string>
+ <string>218.IBViewBoundsToFrameTransform</string>
+ <string>218.ImportedFromIB2</string>
+ <string>219.IBPluginDependency</string>
+ <string>219.IBViewBoundsToFrameTransform</string>
+ <string>219.ImportedFromIB2</string>
+ <string>220.IBPluginDependency</string>
+ <string>220.IBViewBoundsToFrameTransform</string>
+ <string>220.ImportedFromIB2</string>
+ <string>221.IBPluginDependency</string>
+ <string>221.IBViewBoundsToFrameTransform</string>
+ <string>221.ImportedFromIB2</string>
+ <string>225.ImportedFromIB2</string>
+ <string>227.IBEditorWindowLastContentRect</string>
+ <string>227.IBPluginDependency</string>
+ <string>227.IBWindowTemplateEditedContentRect</string>
+ <string>227.ImportedFromIB2</string>
+ <string>227.windowTemplate.hasMinSize</string>
+ <string>227.windowTemplate.minSize</string>
+ <string>228.IBPluginDependency</string>
+ <string>228.ImportedFromIB2</string>
+ <string>229.ImportedFromIB2</string>
+ <string>23.IBPluginDependency</string>
+ <string>23.ImportedFromIB2</string>
+ <string>230.ImportedFromIB2</string>
+ <string>231.ImportedFromIB2</string>
+ <string>232.ImportedFromIB2</string>
+ <string>233.ImportedFromIB2</string>
+ <string>234.IBPluginDependency</string>
+ <string>234.ImportedFromIB2</string>
+ <string>235.IBPluginDependency</string>
+ <string>235.ImportedFromIB2</string>
+ <string>236.IBPluginDependency</string>
+ <string>236.ImportedFromIB2</string>
+ <string>238.IBPluginDependency</string>
+ <string>238.ImportedFromIB2</string>
+ <string>239.IBPluginDependency</string>
+ <string>239.ImportedFromIB2</string>
+ <string>24.IBPluginDependency</string>
+ <string>24.ImportedFromIB2</string>
+ <string>240.IBPluginDependency</string>
+ <string>240.ImportedFromIB2</string>
+ <string>241.IBPluginDependency</string>
+ <string>241.ImportedFromIB2</string>
+ <string>242.IBPluginDependency</string>
+ <string>242.ImportedFromIB2</string>
+ <string>243.IBPluginDependency</string>
+ <string>243.ImportedFromIB2</string>
+ <string>244.IBPluginDependency</string>
+ <string>244.ImportedFromIB2</string>
+ <string>245.IBPluginDependency</string>
+ <string>245.ImportedFromIB2</string>
+ <string>246.IBPluginDependency</string>
+ <string>246.ImportedFromIB2</string>
+ <string>247.IBPluginDependency</string>
+ <string>247.ImportedFromIB2</string>
+ <string>248.IBPluginDependency</string>
+ <string>248.ImportedFromIB2</string>
+ <string>249.IBPluginDependency</string>
+ <string>249.ImportedFromIB2</string>
+ <string>250.IBPluginDependency</string>
+ <string>250.ImportedFromIB2</string>
+ <string>270.ImportedFromIB2</string>
+ <string>274.IBPluginDependency</string>
+ <string>274.ImportedFromIB2</string>
+ <string>275.IBPluginDependency</string>
+ <string>275.ImportedFromIB2</string>
+ <string>281.IBPluginDependency</string>
+ <string>281.ImportedFromIB2</string>
+ <string>282.IBPluginDependency</string>
+ <string>282.ImportedFromIB2</string>
+ <string>287.IBPluginDependency</string>
+ <string>287.ImportedFromIB2</string>
+ <string>289.IBPluginDependency</string>
+ <string>289.ImportedFromIB2</string>
+ <string>29.IBEditorWindowLastContentRect</string>
+ <string>29.IBPluginDependency</string>
+ <string>29.ImportedFromIB2</string>
+ <string>290.IBPluginDependency</string>
+ <string>290.ImportedFromIB2</string>
+ <string>291.IBPluginDependency</string>
+ <string>291.ImportedFromIB2</string>
+ <string>293.IBPluginDependency</string>
+ <string>293.ImportedFromIB2</string>
+ <string>301.IBPluginDependency</string>
+ <string>301.ImportedFromIB2</string>
+ <string>320.IBPluginDependency</string>
+ <string>320.ImportedFromIB2</string>
+ <string>349.IBPluginDependency</string>
+ <string>350.IBPluginDependency</string>
+ <string>351.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>5.ImportedFromIB2</string>
+ <string>56.IBPluginDependency</string>
+ <string>56.ImportedFromIB2</string>
+ <string>57.IBPluginDependency</string>
+ <string>57.ImportedFromIB2</string>
+ <string>58.IBPluginDependency</string>
+ <string>58.ImportedFromIB2</string>
+ <string>92.IBPluginDependency</string>
+ <string>92.ImportedFromIB2</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwyEAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>{{337, 406}, {530, 190}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{337, 406}, {530, 190}}</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>{243.529, 107}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwxAAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">AUO/AABCTAAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDjIAAww8AAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwwoAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBoAAAwu4AAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABDwYAAwgQAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwgQAAA</bytes>
+ </object>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>{{329, 484}, {480, 316}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{329, 484}, {480, 316}}</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>{213, 107}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>{{329, 814}, {223, 20}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES"/>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">351</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AppController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">launcherManager</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">launcherManager</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">launcherManager</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">FirstResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">IWADController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>closeConfigWindow:</string>
+ <string>openConfigWindow:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>closeConfigWindow:</string>
+ <string>openConfigWindow:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">closeConfigWindow:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">openConfigWindow:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>chex</string>
+ <string>configWindow</string>
+ <string>doom1</string>
+ <string>doom2</string>
+ <string>iwadSelector</string>
+ <string>plutonia</string>
+ <string>tnt</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>chex</string>
+ <string>configWindow</string>
+ <string>doom1</string>
+ <string>doom2</string>
+ <string>iwadSelector</string>
+ <string>plutonia</string>
+ <string>tnt</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">chex</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">configWindow</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">doom1</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">doom2</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">iwadSelector</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">plutonia</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tnt</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">IWADLocation</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">setButtonClicked:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">setButtonClicked:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">setButtonClicked:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">locationConfigBox</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">locationConfigBox</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">locationConfigBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">LauncherManager</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>launch:</string>
+ <string>openTerminal:</string>
+ <string>runSetup:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>launch:</string>
+ <string>openTerminal:</string>
+ <string>runSetup:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">launch:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">openTerminal:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">runSetup:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>commandLineArguments</string>
+ <string>iwadController</string>
+ <string>launchButton</string>
+ <string>launcherWindow</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>commandLineArguments</string>
+ <string>iwadController</string>
+ <string>launchButton</string>
+ <string>launcherWindow</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">commandLineArguments</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">iwadController</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">launchButton</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">launcherWindow</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1060" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <nil key="IBDocument.LastKnownRelativeProjectPath"/>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>128x128</string>
+ <string>NSMenuCheckmark</string>
+ <string>NSMenuMixedState</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{128, 128}</string>
+ <string>{9, 8}</string>
+ <string>{7, 2}</string>
+ </object>
+ </object>
+ </data>
+</archive>
diff --git a/pkg/osx/Resources/launcher.nib/info.nib b/pkg/osx/Resources/launcher.nib/info.nib
deleted file mode 100644
index 512ee6dd..00000000
--- a/pkg/osx/Resources/launcher.nib/info.nib
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IBDocumentLocation</key>
- <string>325 73 612 260 0 0 1440 878 </string>
- <key>IBEditorPositions</key>
- <dict>
- <key>29</key>
- <string>221 322 205 44 0 0 1440 878 </string>
- </dict>
- <key>IBFramework Version</key>
- <string>446.1</string>
- <key>IBOpenObjects</key>
- <array>
- <integer>29</integer>
- <integer>21</integer>
- <integer>227</integer>
- </array>
- <key>IBSystem Version</key>
- <string>8S2167</string>
-</dict>
-</plist>
diff --git a/pkg/osx/Resources/launcher.nib/keyedobjects.nib b/pkg/osx/Resources/launcher.nib/keyedobjects.nib
index cc763056..93066265 100644
--- a/pkg/osx/Resources/launcher.nib/keyedobjects.nib
+++ b/pkg/osx/Resources/launcher.nib/keyedobjects.nib
Binary files differ
diff --git a/rpm.spec.in b/rpm.spec.in
index b37a2876..9717ebfb 100644
--- a/rpm.spec.in
+++ b/rpm.spec.in
@@ -57,5 +57,6 @@ rm -rf $RPM_BUILD_ROOT
%doc COPYING
%doc CMDLINE
%doc BUGS
+%doc NOT-BUGS
/usr/games/*
diff --git a/src/d_iwad.c b/src/d_iwad.c
index 9bf53b9a..72e3e3ad 100644
--- a/src/d_iwad.c
+++ b/src/d_iwad.c
@@ -656,7 +656,7 @@ char *D_FindIWAD(int mask, GameMission_t *mission)
// @arg <file>
//
- iwadparm = M_CheckParm("-iwad");
+ iwadparm = M_CheckParmWithArgs("-iwad", 1);
if (iwadparm)
{
diff --git a/src/doom/d_main.c b/src/doom/d_main.c
index 69dd6e9f..2f116f1e 100644
--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -526,7 +526,13 @@ void D_DoAdvanceDemo (void)
paused = false;
gameaction = ga_nothing;
- if (gamemode == retail && gameversion != exe_chex)
+ // The Ultimate Doom executable changed the demo sequence to add
+ // a DEMO4 demo. Final Doom was based on Ultimate, so also
+ // includes this change; however, the Final Doom IWADs do not
+ // include a DEMO4 lump, so the game bombs out with an error
+ // when it reaches this point in the demo sequence.
+
+ if (gameversion == exe_ultimate || gameversion == exe_final)
demosequence = (demosequence+1)%7;
else
demosequence = (demosequence+1)%6;
@@ -927,9 +933,9 @@ static void InitGameVersion(void)
// "ultimate" and "final".
//
- p = M_CheckParm("-gameversion");
+ p = M_CheckParmWithArgs("-gameversion", 1);
- if (p > 0)
+ if (p)
{
for (i=0; gameversions[i].description != NULL; ++i)
{
@@ -1142,9 +1148,9 @@ void D_DoomMain (void)
// address.
//
- p = M_CheckParm("-query");
+ p = M_CheckParmWithArgs("-query", 1);
- if (p > 0)
+ if (p)
{
NET_QueryAddress(myargv[p+1]);
exit(0);
@@ -1312,40 +1318,32 @@ void D_DoomMain (void)
D_AddFile(iwadfile);
modifiedgame = W_ParseCommandLine();
- // add any files specified on the command line with -file wadfile
- // to the wad list
+ //!
+ // @arg <files>
+ // @vanilla
//
- // convenience hack to allow -wart e m to add a wad file
- // prepend a tilde to the filename so wadfile will be reloadable
- p = M_CheckParm ("-wart");
+ // Load the specified PWAD files.
+ //
+
+ p = M_CheckParmWithArgs("-file", 1);
if (p)
{
- myargv[p][4] = 'p'; // big hack, change to -warp
+ // the parms after p are wadfile/lump names,
+ // until end of parms or another - preceded parm
+ modifiedgame = true; // homebrew levels
+ while (++p != myargc && myargv[p][0] != '-')
+ {
+ char *filename;
- // Map name handling.
- switch (gamemode )
- {
- case shareware:
- case retail:
- case registered:
- sprintf (file,"~"DEVMAPS"E%cM%c.wad",
- myargv[p+1][0], myargv[p+2][0]);
- printf("Warping to Episode %s, Map %s.\n",
- myargv[p+1],myargv[p+2]);
- break;
-
- case commercial:
- default:
- p = atoi (myargv[p+1]);
- if (p<10)
- sprintf (file,"~"DEVMAPS"cdata/map0%i.wad", p);
- else
- sprintf (file,"~"DEVMAPS"cdata/map%i.wad", p);
- break;
- }
- D_AddFile (file);
+ filename = D_TryFindWADByName(myargv[p]);
+
+ D_AddFile(filename);
+ }
}
+ // Debug:
+// W_PrintDirectory();
+
//!
// @arg <demo>
// @category demo
@@ -1354,7 +1352,7 @@ void D_DoomMain (void)
// Play back the demo named demo.lmp.
//
- p = M_CheckParm ("-playdemo");
+ p = M_CheckParmWithArgs ("-playdemo", 1);
if (!p)
{
@@ -1366,11 +1364,11 @@ void D_DoomMain (void)
// Play back the demo named demo.lmp, determining the framerate
// of the screen.
//
- p = M_CheckParm ("-timedemo");
+ p = M_CheckParmWithArgs("-timedemo", 1);
}
- if (p && p < myargc-1)
+ if (p)
{
if (!strcasecmp(myargv[p+1] + strlen(myargv[p+1]) - 4, ".lmp"))
{
@@ -1452,9 +1450,9 @@ void D_DoomMain (void)
// 0 disables all monsters.
//
- p = M_CheckParm ("-skill");
+ p = M_CheckParmWithArgs("-skill", 1);
- if (p && p < myargc-1)
+ if (p)
{
startskill = myargv[p+1][0]-'1';
autostart = true;
@@ -1467,9 +1465,9 @@ void D_DoomMain (void)
// Start playing on episode n (1-4)
//
- p = M_CheckParm ("-episode");
+ p = M_CheckParmWithArgs("-episode", 1);
- if (p && p < myargc-1)
+ if (p)
{
startepisode = myargv[p+1][0]-'0';
startmap = 1;
@@ -1486,9 +1484,9 @@ void D_DoomMain (void)
// For multiplayer games: exit each level after n minutes.
//
- p = M_CheckParm ("-timer");
+ p = M_CheckParmWithArgs("-timer", 1);
- if (p && p < myargc-1)
+ if (p)
{
timelimit = atoi(myargv[p+1]);
}
@@ -1502,7 +1500,7 @@ void D_DoomMain (void)
p = M_CheckParm ("-avg");
- if (p && p < myargc-1)
+ if (p)
{
timelimit = 20;
}
@@ -1515,9 +1513,9 @@ void D_DoomMain (void)
// (Doom 2)
//
- p = M_CheckParm ("-warp");
+ p = M_CheckParmWithArgs("-warp", 1);
- if (p && p < myargc-1)
+ if (p)
{
if (gamemode == commercial)
startmap = atoi (myargv[p+1]);
@@ -1561,9 +1559,9 @@ void D_DoomMain (void)
// Load the game in slot s.
//
- p = M_CheckParm ("-loadgame");
+ p = M_CheckParmWithArgs("-loadgame", 1);
- if (p && p < myargc-1)
+ if (p)
{
startloadgame = atoi(myargv[p+1]);
}
@@ -1633,24 +1631,24 @@ void D_DoomMain (void)
// Record a demo named x.lmp.
//
- p = M_CheckParm ("-record");
+ p = M_CheckParmWithArgs("-record", 1);
- if (p && p < myargc-1)
+ if (p)
{
G_RecordDemo (myargv[p+1]);
autostart = true;
}
- p = M_CheckParm ("-playdemo");
- if (p && p < myargc-1)
+ p = M_CheckParmWithArgs("-playdemo", 1);
+ if (p)
{
singledemo = true; // quit after one demo
G_DeferedPlayDemo (demolumpname);
D_DoomLoop (); // never returns
}
- p = M_CheckParm ("-timedemo");
- if (p && p < myargc-1)
+ p = M_CheckParmWithArgs("-timedemo", 1);
+ if (p)
{
G_TimeDemo (demolumpname);
D_DoomLoop (); // never returns
diff --git a/src/doom/d_net.c b/src/doom/d_net.c
index 73e7368f..dd1ec563 100644
--- a/src/doom/d_net.c
+++ b/src/doom/d_net.c
@@ -396,7 +396,7 @@ static void SaveGameSettings(net_gamesettings_t *settings,
// packets.
//
- i = M_CheckParm("-extratics");
+ i = M_CheckParmWithArgs("-extratics", 1);
if (i > 0)
settings->extratics = atoi(myargv[i+1]);
@@ -411,7 +411,7 @@ static void SaveGameSettings(net_gamesettings_t *settings,
// the amount of network bandwidth needed.
//
- i = M_CheckParm("-dup");
+ i = M_CheckParmWithArgs("-dup", 1);
if (i > 0)
settings->ticdup = atoi(myargv[i+1]);
@@ -513,7 +513,7 @@ boolean D_InitNetGame(net_connect_data_t *connect_data,
// address.
//
- i = M_CheckParm("-connect");
+ i = M_CheckParmWithArgs("-connect", 1);
if (i > 0)
{
diff --git a/src/doom/dstrings.h b/src/doom/dstrings.h
index bdc6b2ce..d47fc1af 100644
--- a/src/doom/dstrings.h
+++ b/src/doom/dstrings.h
@@ -38,15 +38,6 @@
#define SAVEGAMENAME "doomsav"
-//
-// File locations,
-// relative to current position.
-// Path names are OS-sensitive.
-//
-#define DEVMAPS "devmaps"
-#define DEVDATA "devdata"
-
-
// QuitDOOM messages
// 8 per each game type
#define NUM_QUITMESSAGES 8
diff --git a/src/doom/g_game.c b/src/doom/g_game.c
index 5d30899d..5662d3f2 100644
--- a/src/doom/g_game.c
+++ b/src/doom/g_game.c
@@ -138,7 +138,7 @@ int gametic;
int levelstarttic; // gametic at level start
int totalkills, totalitems, totalsecret; // for intermission
-char demoname[32];
+char *demoname;
boolean demorecording;
boolean longtics; // cph's doom 1.91 longtics hack
boolean lowres_turn; // low resolution turning for longtics
@@ -1978,14 +1978,14 @@ void G_WriteDemoTiccmd (ticcmd_t* cmd)
//
// G_RecordDemo
//
-void G_RecordDemo (char* name)
+void G_RecordDemo (char *name)
{
int i;
int maxsize;
usergame = false;
- strcpy (demoname, name);
- strcat (demoname, ".lmp");
+ demoname = Z_Malloc(strlen(name) + 5, PU_STATIC, NULL);
+ sprintf(demoname, "%s.lmp", name);
maxsize = 0x20000;
//!
@@ -1996,8 +1996,8 @@ void G_RecordDemo (char* name)
// Specify the demo buffer size (KiB)
//
- i = M_CheckParm ("-maxdemo");
- if (i && i<myargc-1)
+ i = M_CheckParmWithArgs("-maxdemo", 1);
+ if (i)
maxsize = atoi(myargv[i+1])*1024;
demobuffer = Z_Malloc (maxsize,PU_STATIC,NULL);
demoend = demobuffer + maxsize;
diff --git a/src/doom/m_menu.c b/src/doom/m_menu.c
index 3bb4baa3..478e7f66 100644
--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -1442,23 +1442,23 @@ boolean M_Responder (event_t* ev)
if (ev->type == ev_joystick && joywait < I_GetTime())
{
- if (ev->data3 == -1)
+ if (ev->data3 < 0)
{
key = key_menu_up;
joywait = I_GetTime() + 5;
}
- else if (ev->data3 == 1)
+ else if (ev->data3 > 0)
{
key = key_menu_down;
joywait = I_GetTime() + 5;
}
- if (ev->data2 == -1)
+ if (ev->data2 < 0)
{
key = key_menu_left;
joywait = I_GetTime() + 2;
}
- else if (ev->data2 == 1)
+ else if (ev->data2 > 0)
{
key = key_menu_right;
joywait = I_GetTime() + 2;
diff --git a/src/doom/p_map.c b/src/doom/p_map.c
index 925e4398..78102bdf 100644
--- a/src/doom/p_map.c
+++ b/src/doom/p_map.c
@@ -1426,7 +1426,7 @@ static void SpechitOverrun(line_t *ld)
// Use the specified magic value when emulating spechit overruns.
//
- p = M_CheckParm("-spechit");
+ p = M_CheckParmWithArgs("-spechit", 1);
if (p > 0)
{
diff --git a/src/doom/p_spec.c b/src/doom/p_spec.c
index fa3ec335..90d0bb7c 100644
--- a/src/doom/p_spec.c
+++ b/src/doom/p_spec.c
@@ -1213,9 +1213,9 @@ static void DonutOverrun(fixed_t *s3_floorheight, short *s3_floorpic,
// system. The default (if this option is not specified) is to
// emulate the behavior when running under Windows 98.
- p = M_CheckParm("-donut");
+ p = M_CheckParmWithArgs("-donut", 2);
- if (p > 0 && p < myargc - 2)
+ if (p > 0)
{
// Dump of needed memory: (fixed_t)0000:0000 and (short)0000:0008
//
diff --git a/src/i_system.c b/src/i_system.c
index 18dfb415..0a856ca9 100644
--- a/src/i_system.c
+++ b/src/i_system.c
@@ -189,7 +189,7 @@ byte *I_ZoneBase (int *size)
// Specify the heap size, in MiB (default 16).
//
- p = M_CheckParm("-mb");
+ p = M_CheckParmWithArgs("-mb", 1);
if (p > 0)
{
diff --git a/src/i_video.c b/src/i_video.c
index 243663d5..9d70e88e 100644
--- a/src/i_video.c
+++ b/src/i_video.c
@@ -148,7 +148,7 @@ static char *window_title = "";
// This is used when we are rendering in 32-bit screen mode.
// When in a real 8-bit screen mode, screenbuffer == screen.
-static SDL_Surface *screenbuffer;
+static SDL_Surface *screenbuffer = NULL;
// palette
@@ -1625,7 +1625,7 @@ static void CheckCommandLine(void)
// Specify the screen width, in pixels.
//
- i = M_CheckParm("-width");
+ i = M_CheckParmWithArgs("-width", 1);
if (i > 0)
{
@@ -1639,7 +1639,7 @@ static void CheckCommandLine(void)
// Specify the screen height, in pixels.
//
- i = M_CheckParm("-height");
+ i = M_CheckParmWithArgs("-height", 1);
if (i > 0)
{
@@ -1653,7 +1653,7 @@ static void CheckCommandLine(void)
// Specify the color depth of the screen, in bits per pixel.
//
- i = M_CheckParm("-bpp");
+ i = M_CheckParmWithArgs("-bpp", 1);
if (i > 0)
{
@@ -1680,7 +1680,7 @@ static void CheckCommandLine(void)
// Specify the screen mode (when running fullscreen) or the window
// dimensions (when running in windowed mode).
- i = M_CheckParm("-geometry");
+ i = M_CheckParmWithArgs("-geometry", 1);
if (i > 0)
{
@@ -1851,6 +1851,14 @@ static void SetVideoMode(screen_mode_t *mode, int w, int h)
doompal = W_CacheLumpName(DEH_String("PLAYPAL"), PU_CACHE);
+ // If we are already running and in a true color mode, we need
+ // to free the screenbuffer surface before setting the new mode.
+
+ if (screenbuffer != NULL && screen != screenbuffer)
+ {
+ SDL_FreeSurface(screenbuffer);
+ }
+
// Generate lookup tables before setting the video mode.
if (mode != NULL && mode->InitMode != NULL)
@@ -1873,7 +1881,13 @@ static void SetVideoMode(screen_mode_t *mode, int w, int h)
}
else
{
+ // In windowed mode, the window can be resized while the game is
+ // running. This feature is disabled on OS X, as it adds an ugly
+ // scroll handle to the corner of the screen.
+
+#ifndef __MACOSX__
flags |= SDL_RESIZABLE;
+#endif
}
screen = SDL_SetVideoMode(w, h, screen_bpp, flags);
diff --git a/src/m_argv.c b/src/m_argv.c
index 875829bd..59381b65 100644
--- a/src/m_argv.c
+++ b/src/m_argv.c
@@ -47,13 +47,13 @@ char** myargv;
// or 0 if not present
//
-int M_CheckParm (char *check)
+int M_CheckParmWithArgs(char *check, int num_args)
{
- int i;
+ int i;
- for (i = 1;i<myargc;i++)
+ for (i = 1; i < myargc - num_args; i++)
{
- if ( !strcasecmp(check, myargv[i]) )
+ if (!strcasecmp(check, myargv[i]))
return i;
}
@@ -72,6 +72,11 @@ boolean M_ParmExists(char *check)
return M_CheckParm(check) != 0;
}
+int M_CheckParm(char *check)
+{
+ return M_CheckParmWithArgs(check, 0);
+}
+
#define MAXARGVS 100
static void LoadResponseFile(int argv_index)
diff --git a/src/m_argv.h b/src/m_argv.h
index 859f93e4..2fb76a2a 100644
--- a/src/m_argv.h
+++ b/src/m_argv.h
@@ -40,6 +40,10 @@ extern char** myargv;
// in the arg list (0 if not found).
int M_CheckParm (char* check);
+// Same as M_CheckParm, but checks that num_args arguments are available
+// following the specified argument.
+int M_CheckParmWithArgs(char *check, int num_args);
+
void M_FindResponseFile(void);
// Parameter has been specified?
diff --git a/src/m_config.c b/src/m_config.c
index cb7d449c..a0f97dc2 100644
--- a/src/m_config.c
+++ b/src/m_config.c
@@ -1204,8 +1204,18 @@ static void SaveDefaultCollection(default_collection_t *collection)
v = * (int *) defaults[i].location;
- if (defaults[i].untranslated
- && v == defaults[i].original_translated)
+ if (v == KEY_RSHIFT)
+ {
+ // Special case: for shift, force scan code for
+ // right shift, as this is what Vanilla uses.
+ // This overrides the change check below, to fix
+ // configuration files made by old versions that
+ // mistakenly used the scan code for left shift.
+
+ v = 54;
+ }
+ else if (defaults[i].untranslated
+ && v == defaults[i].original_translated)
{
// Has not been changed since the last time we
// read the config file.
@@ -1423,9 +1433,9 @@ void M_LoadDefaults (void)
// configuration file (for Doom) is named default.cfg.
//
- i = M_CheckParm ("-config");
+ i = M_CheckParmWithArgs("-config", 1);
- if (i && i<myargc-1)
+ if (i)
{
doom_defaults.filename = myargv[i+1];
printf (" default file: %s\n",doom_defaults.filename);
@@ -1446,9 +1456,9 @@ void M_LoadDefaults (void)
// configuration file for Doom is named chocolate-doom.cfg.
//
- i = M_CheckParm("-extraconfig");
+ i = M_CheckParmWithArgs("-extraconfig", 1);
- if (i && i<myargc-1)
+ if (i)
{
extra_defaults.filename = myargv[i+1];
printf(" extra configuration file: %s\n",
diff --git a/src/net_sdl.c b/src/net_sdl.c
index aa7fbd6e..6a4f24dc 100644
--- a/src/net_sdl.c
+++ b/src/net_sdl.c
@@ -170,7 +170,7 @@ static boolean NET_SDL_InitClient(void)
// the default (2342).
//
- p = M_CheckParm("-port");
+ p = M_CheckParmWithArgs("-port", 1);
if (p > 0)
port = atoi(myargv[p+1]);
@@ -196,7 +196,7 @@ static boolean NET_SDL_InitServer(void)
{
int p;
- p = M_CheckParm("-port");
+ p = M_CheckParmWithArgs("-port", 1);
if (p > 0)
port = atoi(myargv[p+1]);
diff --git a/src/net_server.c b/src/net_server.c
index f3c16c1b..ae46be4a 100644
--- a/src/net_server.c
+++ b/src/net_server.c
@@ -1119,9 +1119,9 @@ void NET_SV_SendQueryResponse(net_addr_t *addr)
// When starting a network server, specify a name for the server.
//
- p = M_CheckParm("-servername");
+ p = M_CheckParmWithArgs("-servername", 1);
- if (p > 0 && p + 1 < myargc)
+ if (p > 0)
{
querydata.description = myargv[p + 1];
}
diff --git a/src/setup/display.c b/src/setup/display.c
index fd7c0a9a..f5f190f2 100644
--- a/src/setup/display.c
+++ b/src/setup/display.c
@@ -37,6 +37,8 @@
#include "display.h"
+extern void RestartTextscreen(void);
+
typedef struct
{
char *description;
@@ -95,6 +97,7 @@ static screen_mode_t screen_modes_scaled[] =
// List of fullscreen modes generated at runtime
static screen_mode_t *screen_modes_fullscreen = NULL;
+static int num_screen_modes_fullscreen;
static int vidmode = 0;
@@ -411,6 +414,8 @@ static void BuildFullscreenModesList(void)
memcpy(m1, m2, sizeof(screen_mode_t));
memcpy(m2, &m, sizeof(screen_mode_t));
}
+
+ num_screen_modes_fullscreen = num_modes;
}
static int FindBestMode(screen_mode_t *modes)
@@ -477,7 +482,7 @@ static void GenerateModesTable(TXT_UNCAST_ARG(widget),
// Build the table
TXT_ClearTable(modes_table);
- TXT_SetColumnWidths(modes_table, 15, 15, 15);
+ TXT_SetColumnWidths(modes_table, 14, 14, 14, 14, 14);
for (i=0; modes[i].w != 0; ++i)
{
@@ -530,18 +535,6 @@ static char *win32_video_drivers[] =
"Windows GDI",
};
-// Restart the textscreen library. Used when the video_driver variable
-// is changed.
-
-static void RestartTextscreen(void)
-{
- TXT_Shutdown();
-
- SetDisplayDriver();
-
- TXT_Init();
-}
-
static void SetWin32VideoDriver(void)
{
if (!strcmp(video_driver, "windib"))
@@ -593,6 +586,8 @@ void ConfigDisplay(void)
txt_checkbox_t *fs_checkbox;
txt_checkbox_t *ar_checkbox;
txt_dropdown_list_t *bpp_selector;
+ int num_columns;
+ int window_y;
// What color depths are supported? Generate supported_bpps array
// and set selected_bpp to match the current value of screen_bpp.
@@ -612,16 +607,43 @@ void ConfigDisplay(void)
window = TXT_NewWindow("Display Configuration");
- TXT_SetWindowPosition(window, TXT_HORIZ_CENTER, TXT_VERT_TOP,
- TXT_SCREEN_W / 2, 5);
-
TXT_AddWidgets(window,
fs_checkbox = TXT_NewCheckBox("Fullscreen", &fullscreen),
ar_checkbox = TXT_NewCheckBox("Correct aspect ratio",
&aspect_ratio_correct),
NULL);
- modes_table = TXT_NewTable(3);
+ // Some machines can have lots of video modes. This tries to
+ // keep a limit of six lines by increasing the number of
+ // columns. In extreme cases, the window is moved up slightly.
+
+ BuildFullscreenModesList();
+
+ window_y = 5;
+
+ if (num_screen_modes_fullscreen <= 18)
+ {
+ num_columns = 3;
+ }
+ else if (num_screen_modes_fullscreen <= 24)
+ {
+ num_columns = 4;
+ }
+ else
+ {
+ num_columns = 5;
+ window_y -= 3;
+ }
+
+ modes_table = TXT_NewTable(num_columns);
+
+ // The window is set at a fixed vertical position. This keeps
+ // the top of the window stationary when switching between
+ // fullscreen and windowed mode (which causes the window's
+ // height to change).
+
+ TXT_SetWindowPosition(window, TXT_HORIZ_CENTER, TXT_VERT_TOP,
+ TXT_SCREEN_W / 2, window_y);
// On Windows, there is an extra control to change between
// the Windows GDI and DirectX video drivers.
diff --git a/src/setup/execute.c b/src/setup/execute.c
index 4be44149..f85b8af4 100644
--- a/src/setup/execute.c
+++ b/src/setup/execute.c
@@ -88,6 +88,42 @@ static char *TempFile(char *s)
return result;
}
+static int ArgumentNeedsEscape(char *arg)
+{
+ char *p;
+
+ for (p = arg; *p != '\0'; ++p)
+ {
+ if (isspace(*p))
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+// Arguments passed to the setup tool should be passed through to the
+// game when launching a game. Calling this adds all arguments from
+// myargv to the output context.
+
+void PassThroughArguments(execute_context_t *context)
+{
+ int i;
+
+ for (i = 1; i < myargc; ++i)
+ {
+ if (ArgumentNeedsEscape(myargv[i]))
+ {
+ AddCmdLineParameter(context, "\"%s\"", myargv[i]);
+ }
+ else
+ {
+ AddCmdLineParameter(context, "%s", myargv[i]);
+ }
+ }
+}
+
execute_context_t *NewExecuteContext(void)
{
execute_context_t *result;
@@ -106,25 +142,6 @@ execute_context_t *NewExecuteContext(void)
return result;
}
-void AddConfigParameters(execute_context_t *context)
-{
- int p;
-
- p = M_CheckParm("-config");
-
- if (p > 0)
- {
- AddCmdLineParameter(context, "-config \"%s\"", myargv[p + 1]);
- }
-
- p = M_CheckParm("-extraconfig");
-
- if (p > 0)
- {
- AddCmdLineParameter(context, "-extraconfig \"%s\"", myargv[p + 1]);
- }
-}
-
void AddCmdLineParameter(execute_context_t *context, char *s, ...)
{
va_list args;
diff --git a/src/setup/execute.h b/src/setup/execute.h
index 24711a16..25f1f10a 100644
--- a/src/setup/execute.h
+++ b/src/setup/execute.h
@@ -35,7 +35,7 @@ typedef struct execute_context_s execute_context_t;
execute_context_t *NewExecuteContext(void);
void AddCmdLineParameter(execute_context_t *context, char *s, ...);
-void AddConfigParameters(execute_context_t *context);
+void PassThroughArguments(execute_context_t *context);
int ExecuteDoom(execute_context_t *context);
int FindInstalledIWADs(void);
diff --git a/src/setup/mainmenu.c b/src/setup/mainmenu.c
index ffa174de..55496010 100644
--- a/src/setup/mainmenu.c
+++ b/src/setup/mainmenu.c
@@ -156,7 +156,7 @@ static void LaunchDoom(void *unused1, void *unused2)
// Launch Doom
exec = NewExecuteContext();
- AddConfigParameters(exec);
+ PassThroughArguments(exec);
ExecuteDoom(exec);
exit(0);
@@ -297,11 +297,9 @@ static void SetIcon(void)
free(mask);
}
-//
-// Initialize and run the textscreen GUI.
-//
+// Initialize the textscreen library.
-static void RunGUI(void)
+static void InitTextscreen(void)
{
SetDisplayDriver();
@@ -313,6 +311,24 @@ static void RunGUI(void)
TXT_SetDesktopTitle(PACKAGE_NAME " Setup ver " PACKAGE_VERSION);
SetIcon();
+}
+
+// Restart the textscreen library. Used when the video_driver variable
+// is changed.
+
+void RestartTextscreen(void)
+{
+ TXT_Shutdown();
+ InitTextscreen();
+}
+
+//
+// Initialize and run the textscreen GUI.
+//
+
+static void RunGUI(void)
+{
+ InitTextscreen();
TXT_GUIMainLoop();
}
diff --git a/src/setup/multiplayer.c b/src/setup/multiplayer.c
index 0d88221f..aed89212 100644
--- a/src/setup/multiplayer.c
+++ b/src/setup/multiplayer.c
@@ -70,10 +70,10 @@ static char *iwadfile;
static char *doom_skills[] =
{
- "I'm too young to die!",
+ "I'm too young to die.",
"Hey, not too rough.",
"Hurt me plenty.",
- "Ultra-violence",
+ "Ultra-Violence.",
"NIGHTMARE!",
};
@@ -144,6 +144,7 @@ static int fast = 0;
static int respawn = 0;
static int udpport = 2342;
static int timer = 0;
+static int privateserver = 0;
static txt_dropdown_list_t *skillbutton;
static txt_button_t *warpbutton;
@@ -277,6 +278,11 @@ static void StartGame(int multiplayer)
{
AddCmdLineParameter(exec, "-timer %i", timer);
}
+
+ if (privateserver)
+ {
+ AddCmdLineParameter(exec, "-privateserver");
+ }
}
AddWADs(exec);
@@ -284,7 +290,7 @@ static void StartGame(int multiplayer)
TXT_Shutdown();
M_SaveDefaults();
- AddConfigParameters(exec);
+ PassThroughArguments(exec);
ExecuteDoom(exec);
@@ -647,14 +653,12 @@ static void StartGameMenu(char *window_title, int multiplayer)
TXT_NewCheckBox("Respawning monsters", &respawn),
TXT_NewSeparator("Advanced"),
advanced_table = TXT_NewTable(2),
- TXT_NewButton2("Add extra parameters...",
- OpenExtraParamsWindow, NULL),
NULL);
TXT_SetWindowAction(window, TXT_HORIZ_CENTER, WadWindowAction());
TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, StartGameAction(multiplayer));
- TXT_SetColumnWidths(gameopt_table, 12, 12);
+ TXT_SetColumnWidths(gameopt_table, 12, 6);
if (gamemission == doom)
{
@@ -694,13 +698,21 @@ static void StartGameMenu(char *window_title, int multiplayer)
NULL),
NULL);
- TXT_AddWidgets(advanced_table,
+ TXT_AddWidget(window,
+ TXT_NewInvertedCheckBox("Register with master server",
+ &privateserver));
+
+ TXT_AddWidgets(advanced_table,
TXT_NewLabel("UDP port"),
TXT_NewIntInputBox(&udpport, 5),
NULL);
}
- TXT_SetColumnWidths(advanced_table, 12, 12);
+ TXT_AddWidget(window,
+ TXT_NewButton2("Add extra parameters...",
+ OpenExtraParamsWindow, NULL));
+
+ TXT_SetColumnWidths(advanced_table, 12, 6);
TXT_SignalConnect(iwad_selector, "changed", UpdateWarpType, NULL);
@@ -749,7 +761,7 @@ static void DoJoinGame(void *unused1, void *unused2)
M_SaveDefaults();
- AddConfigParameters(exec);
+ PassThroughArguments(exec);
ExecuteDoom(exec);
diff --git a/src/w_main.c b/src/w_main.c
index 92a394dd..ed285498 100644
--- a/src/w_main.c
+++ b/src/w_main.c
@@ -53,7 +53,7 @@ boolean W_ParseCommandLine(void)
// into the main IWAD. Multiple files may be specified.
//
- p = M_CheckParm("-merge");
+ p = M_CheckParmWithArgs("-merge", 1);
if (p > 0)
{
@@ -81,7 +81,7 @@ boolean W_ParseCommandLine(void)
// Simulates the behavior of NWT's -merge option. Multiple files
// may be specified.
- p = M_CheckParm("-nwtmerge");
+ p = M_CheckParmWithArgs("-nwtmerge", 1);
if (p > 0)
{
@@ -108,7 +108,7 @@ boolean W_ParseCommandLine(void)
// the main IWAD directory. Multiple files may be specified.
//
- p = M_CheckParm("-af");
+ p = M_CheckParmWithArgs("-af", 1);
if (p > 0)
{
@@ -133,7 +133,7 @@ boolean W_ParseCommandLine(void)
// into the main IWAD directory. Multiple files may be specified.
//
- p = M_CheckParm("-as");
+ p = M_CheckParmWithArgs("-as", 1);
if (p > 0)
{
@@ -156,7 +156,7 @@ boolean W_ParseCommandLine(void)
// Equivalent to "-af <files> -as <files>".
//
- p = M_CheckParm("-aa");
+ p = M_CheckParmWithArgs("-aa", 1);
if (p > 0)
{
@@ -182,7 +182,7 @@ boolean W_ParseCommandLine(void)
// Load the specified PWAD files.
//
- p = M_CheckParm ("-file");
+ p = M_CheckParmWithArgs ("-file", 1);
if (p)
{
// the parms after p are wadfile/lump names,
diff --git a/textscreen/txt_checkbox.c b/textscreen/txt_checkbox.c
index 75afa986..35c5739d 100644
--- a/textscreen/txt_checkbox.c
+++ b/textscreen/txt_checkbox.c
@@ -34,9 +34,9 @@ static void TXT_CheckBoxSizeCalc(TXT_UNCAST_ARG(checkbox))
{
TXT_CAST_ARG(txt_checkbox_t, checkbox);
- // Minimum width is the string length + two spaces for padding
+ // Minimum width is the string length + right-side space for padding
- checkbox->widget.w = strlen(checkbox->label) + 6;
+ checkbox->widget.w = strlen(checkbox->label) + 5;
checkbox->widget.h = 1;
}
@@ -50,7 +50,7 @@ static void TXT_CheckBoxDrawer(TXT_UNCAST_ARG(checkbox), int selected)
TXT_BGColor(TXT_COLOR_BLUE, 0);
TXT_FGColor(TXT_COLOR_BRIGHT_CYAN);
- TXT_DrawString(" (");
+ TXT_DrawString("(");
TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);
@@ -76,7 +76,7 @@ static void TXT_CheckBoxDrawer(TXT_UNCAST_ARG(checkbox), int selected)
TXT_DrawString(checkbox->label);
- for (i=strlen(checkbox->label); i < w-6; ++i)
+ for (i=strlen(checkbox->label); i < w-5; ++i)
{
TXT_DrawString(" ");
}
diff --git a/textscreen/txt_radiobutton.c b/textscreen/txt_radiobutton.c
index efebbf9e..00c2c4fc 100644
--- a/textscreen/txt_radiobutton.c
+++ b/textscreen/txt_radiobutton.c
@@ -34,9 +34,9 @@ static void TXT_RadioButtonSizeCalc(TXT_UNCAST_ARG(radiobutton))
{
TXT_CAST_ARG(txt_radiobutton_t, radiobutton);
- // Minimum width is the string length + two spaces for padding
+ // Minimum width is the string length + right-side spaces for padding
- radiobutton->widget.w = strlen(radiobutton->label) + 6;
+ radiobutton->widget.w = strlen(radiobutton->label) + 5;
radiobutton->widget.h = 1;
}
@@ -50,7 +50,7 @@ static void TXT_RadioButtonDrawer(TXT_UNCAST_ARG(radiobutton), int selected)
TXT_BGColor(TXT_COLOR_BLUE, 0);
TXT_FGColor(TXT_COLOR_BRIGHT_CYAN);
- TXT_DrawString(" (");
+ TXT_DrawString("(");
TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);
@@ -76,7 +76,7 @@ static void TXT_RadioButtonDrawer(TXT_UNCAST_ARG(radiobutton), int selected)
TXT_DrawString(radiobutton->label);
- for (i=strlen(radiobutton->label); i < w-6; ++i)
+ for (i=strlen(radiobutton->label); i < w-5; ++i)
{
TXT_DrawString(" ");
}
diff --git a/textscreen/txt_sdl.c b/textscreen/txt_sdl.c
index 33659fcc..2fbaa316 100644
--- a/textscreen/txt_sdl.c
+++ b/textscreen/txt_sdl.c
@@ -388,10 +388,6 @@ static int TranslateKey(SDL_keysym *sym)
case SDLK_PAUSE: return KEY_PAUSE;
-#if !SDL_VERSION_ATLEAST(1, 3, 0)
- case SDLK_EQUALS: return KEY_EQUALS;
-#endif
-
case SDLK_LSHIFT:
case SDLK_RSHIFT:
return KEY_RSHIFT;