diff options
43 files changed, 3392 insertions, 266 deletions
@@ -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. @@ -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 @@ -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) @@ -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 Binary files differindex cc763056..93066265 100644 --- a/pkg/osx/Resources/launcher.nib/keyedobjects.nib +++ b/pkg/osx/Resources/launcher.nib/keyedobjects.nib 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; |