diff options
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/Makefile.am | 7 | ||||
-rw-r--r-- | pkg/osx/GNUmakefile | 8 | ||||
-rw-r--r-- | pkg/osx/IWADController.h | 5 | ||||
-rw-r--r-- | pkg/osx/IWADController.m | 38 | ||||
-rw-r--r-- | pkg/osx/LauncherManager.m | 26 | ||||
-rw-r--r-- | pkg/osx/Resources/launcher.nib/designable.nib | 1641 | ||||
-rw-r--r-- | pkg/osx/Resources/launcher.nib/keyedobjects.nib | bin | 27157 -> 32366 bytes | |||
-rw-r--r-- | pkg/win32/GNUmakefile | 8 | ||||
-rw-r--r-- | pkg/wince/.gitignore | 3 | ||||
-rw-r--r-- | pkg/wince/GNUmakefile | 15 | ||||
-rw-r--r-- | pkg/wince/wince-cab.cfg | 25 | ||||
-rwxr-xr-x | pkg/wince/wince-cabgen | 668 |
12 files changed, 1217 insertions, 1227 deletions
diff --git a/pkg/Makefile.am b/pkg/Makefile.am index a2850195..873b5bdf 100644 --- a/pkg/Makefile.am +++ b/pkg/Makefile.am @@ -21,14 +21,9 @@ osx/IWADController.m osx/IWADController.h \ osx/IWADLocation.m osx/IWADLocation.h \ osx/LauncherManager.m osx/LauncherManager.h -WINCE_FILES= \ -wince/GNUmakefile \ -wince/wince-cab.cfg \ -wince/wince-cabgen - WIN32_FILES= \ win32/GNUmakefile \ win32/README -EXTRA_DIST=$(OSX_FILES) $(WINCE_FILES) $(WIN32_FILES) +EXTRA_DIST=$(OSX_FILES) $(WIN32_FILES) diff --git a/pkg/osx/GNUmakefile b/pkg/osx/GNUmakefile index d53a9981..dc2f4f1a 100644 --- a/pkg/osx/GNUmakefile +++ b/pkg/osx/GNUmakefile @@ -80,7 +80,13 @@ $(STAGING_DIR): launcher $(TOPLEVEL_DOCS) ./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)doom "$(APP_BIN_DIR)" $(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)doom" - ./cp-with-libs $(TOPLEVEL)/setup/$(PROGRAM_PREFIX)setup "$(APP_BIN_DIR)" + ./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)heretic "$(APP_BIN_DIR)" + $(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)heretic" + ./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)hexen "$(APP_BIN_DIR)" + $(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)hexen" + ./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)strife "$(APP_BIN_DIR)" + $(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)strife" + ./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)setup "$(APP_BIN_DIR)" $(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)setup" $(TOPLEVEL)/man/simplecpp -DPRECOMPILED -D__MACOSX__ \ diff --git a/pkg/osx/IWADController.h b/pkg/osx/IWADController.h index 7464af9f..0e3c3ae5 100644 --- a/pkg/osx/IWADController.h +++ b/pkg/osx/IWADController.h @@ -36,6 +36,10 @@ id doom2; id plutonia; id tnt; + + id heretic; + id hexen; + id strife; } - (void) closeConfigWindow: (id)sender; @@ -47,6 +51,7 @@ - (void) saveConfig; - (char *) doomWadPath; - (void) setEnvironment; +- (const char *) getGameName; - (BOOL) addIWADPath: (NSString *) path; @end diff --git a/pkg/osx/IWADController.m b/pkg/osx/IWADController.m index 0c55b3f5..02f83238 100644 --- a/pkg/osx/IWADController.m +++ b/pkg/osx/IWADController.m @@ -33,6 +33,9 @@ typedef enum IWAD_TNT, IWAD_PLUTONIA, IWAD_CHEX, + IWAD_HERETIC, + IWAD_HEXEN, + IWAD_STRIFE, NUM_IWAD_TYPES } IWAD; @@ -42,7 +45,10 @@ static NSString *IWADLabels[NUM_IWAD_TYPES] = @"Doom II: Hell on Earth", @"Final Doom: TNT: Evilution", @"Final Doom: Plutonia Experiment", - @"Chex Quest" + @"Chex Quest", + @"Heretic", + @"Hexen", + @"Strife" }; static NSString *IWADFilenames[NUM_IWAD_TYPES + 1] = @@ -52,6 +58,9 @@ static NSString *IWADFilenames[NUM_IWAD_TYPES + 1] = @"tnt.wad", @"plutonia.wad", @"chex.wad", + @"heretic.wad", + @"hexen.wad", + @"strife.wad", @"undefined" }; @@ -64,6 +73,9 @@ static NSString *IWADFilenames[NUM_IWAD_TYPES + 1] = iwadList[IWAD_TNT] = self->tnt; iwadList[IWAD_PLUTONIA] = self->plutonia; iwadList[IWAD_CHEX] = self->chex; + iwadList[IWAD_HERETIC] = self->heretic; + iwadList[IWAD_HEXEN] = self->hexen; + iwadList[IWAD_STRIFE] = self->strife; } - (IWAD) getSelectedIWAD @@ -102,6 +114,30 @@ static NSString *IWADFilenames[NUM_IWAD_TYPES + 1] = } } +// Get the name used for the executable for the selected IWAD. + +- (const char *) getGameName +{ + IWAD selectedIWAD; + + selectedIWAD = [self getSelectedIWAD]; + + switch (selectedIWAD) + { + case IWAD_HERETIC: + return "heretic"; + + case IWAD_HEXEN: + return "hexen"; + + case IWAD_STRIFE: + return "strife"; + + default: + return "doom"; + } +} + - (void) setIWADConfig { IWADLocation *iwadList[NUM_IWAD_TYPES]; diff --git a/pkg/osx/LauncherManager.m b/pkg/osx/LauncherManager.m index 69c59577..a40ac7c9 100644 --- a/pkg/osx/LauncherManager.m +++ b/pkg/osx/LauncherManager.m @@ -278,6 +278,8 @@ static NSString *AppendQuotedFilename(NSString *str, NSString *fileName) { NSString *iwad; NSString *args; + char *executable_name; + const char *game_name; [self saveConfig]; @@ -294,8 +296,12 @@ static NSString *AppendQuotedFilename(NSString *str, NSString *fileName) return; } - ExecuteProgram(PROGRAM_PREFIX "doom", [iwad UTF8String], - [args UTF8String]); + game_name = [self->iwadController getGameName]; + executable_name = malloc(strlen(PROGRAM_PREFIX) + strlen(game_name) + 1); + sprintf(executable_name, "%s%s", PROGRAM_PREFIX, game_name); + + ExecuteProgram(executable_name, [iwad UTF8String], + [args UTF8String]); [NSApp terminate:sender]; } @@ -303,10 +309,22 @@ static NSString *AppendQuotedFilename(NSString *str, NSString *fileName) - (void) runSetup: (id)sender { - [self saveConfig]; + const char *game_name; + char *arg; + [self saveConfig]; [self->iwadController setEnvironment]; - ExecuteProgram(PROGRAM_PREFIX "setup", NULL, NULL); + + // Provide the -game command line parameter to select the game + // to configure, based on the game selected in the dropdown. + + game_name = [self->iwadController getGameName]; + arg = malloc(strlen(game_name) + 8); + sprintf(arg, "-game %s", game_name); + + ExecuteProgram(PROGRAM_PREFIX "setup", NULL, arg); + + free(arg); } // Invoked when the "Terminal" option is selected from the menu, to open diff --git a/pkg/osx/Resources/launcher.nib/designable.nib b/pkg/osx/Resources/launcher.nib/designable.nib index b3e76d22..73a01abd 100644 --- a/pkg/osx/Resources/launcher.nib/designable.nib +++ b/pkg/osx/Resources/launcher.nib/designable.nib @@ -2,9 +2,9 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1060</int> - <string key="IBDocument.SystemVersion">10J869</string> + <string key="IBDocument.SystemVersion">10K549</string> <string key="IBDocument.InterfaceBuilderVersion">851</string> - <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.AppKitVersion">1038.36</string> <string key="IBDocument.HIToolboxVersion">461.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -12,9 +12,9 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="370"/> + <integer value="227"/> <integer value="2"/> - <integer value="228"/> + <integer value="29"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -679,7 +679,7 @@ <object class="NSWindowTemplate" id="193084417"> <int key="NSWindowStyleMask">7</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{377, 409}, {480, 316}}</string> + <string key="NSWindowRect">{{377, 417}, {518, 308}}</string> <int key="NSWTFlags">1886912512</int> <string key="NSWindowTitle">IWAD configuration</string> <object class="NSMutableString" key="NSWindowClass"> @@ -695,280 +695,10 @@ <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> + <string key="NSFrame">{{422, 12}, {82, 32}}</string> <reference key="NSSuperview" ref="145141922"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="235375789"> @@ -1008,8 +738,487 @@ <int key="NSPeriodicInterval">25</int> </object> </object> + <object class="NSTabView" id="793342693"> + <reference key="NSNextResponder" ref="145141922"/> + <int key="NSvFlags">12</int> + <string key="NSFrame">{{13, 42}, {492, 260}}</string> + <reference key="NSSuperview" ref="145141922"/> + <object class="NSMutableArray" key="NSTabViewItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTabViewItem" id="939760325"> + <string key="NSIdentifier">1</string> + <object class="NSView" key="NSView" id="948790550"> + <reference key="NSNextResponder" ref="793342693"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="348674481"> + <reference key="NSNextResponder" ref="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 200}, {446, 11}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 171}, {369, 22}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 169}, {63, 23}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 152}, {446, 11}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 122}, {369, 22}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 122}, {63, 23}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 103}, {446, 11}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 73}, {369, 22}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 73}, {63, 23}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 55}, {446, 11}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 25}, {369, 22}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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="948790550"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 25}, {63, 23}}</string> + <reference key="NSSuperview" ref="948790550"/> + <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> + <string key="NSFrame">{{10, 33}, {472, 214}}</string> + <reference key="NSSuperview" ref="793342693"/> + </object> + <string key="NSLabel">Doom</string> + <reference key="NSColor" ref="77619338"/> + <reference key="NSTabView" ref="793342693"/> + </object> + <object class="NSTabViewItem" id="989716837"> + <string key="NSIdentifier">2</string> + <object class="NSView" key="NSView" id="1000383860"> + <nil key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="452288864"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 55}, {446, 11}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <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="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 25}, {369, 22}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <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="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 25}, {63, 23}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <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="691203613"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 73}, {63, 23}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="598411346"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">Set...</string> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="691203613"/> + <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="318836161"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 122}, {63, 23}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="118467388"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">Set...</string> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="318836161"/> + <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="634339523"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{17, 122}, {369, 22}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="247064311"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="634339523"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="612330193"/> + <reference key="NSTextColor" ref="943265597"/> + </object> + </object> + <object class="NSTextField" id="568653906"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{17, 171}, {369, 22}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="332680482"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="568653906"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="612330193"/> + <reference key="NSTextColor" ref="943265597"/> + </object> + </object> + <object class="NSTextField" id="840089166"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 145}, {446, 17}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="1045009541"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">272629760</int> + <string key="NSContents">Hexen IWAD location (hexen.wad):</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="840089166"/> + <reference key="NSBackgroundColor" ref="77619338"/> + <reference key="NSTextColor" ref="206071849"/> + </object> + </object> + <object class="NSTextField" id="10172086"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 194}, {446, 17}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="738481735"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">272629760</int> + <string key="NSContents">Heretic IWAD location (heretic.wad):</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="10172086"/> + <reference key="NSBackgroundColor" ref="77619338"/> + <reference key="NSTextColor" ref="206071849"/> + </object> + </object> + <object class="NSButton" id="198489100"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{393, 169}, {63, 23}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="670956484"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">Set...</string> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="198489100"/> + <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="1037067478"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 103}, {446, 11}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="320235490"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">272629760</int> + <string key="NSContents">Strife IWAD location (strife1.wad):</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="1037067478"/> + <reference key="NSBackgroundColor" ref="77619338"/> + <reference key="NSTextColor" ref="206071849"/> + </object> + </object> + <object class="NSTextField" id="610179448"> + <reference key="NSNextResponder" ref="1000383860"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 73}, {369, 22}}</string> + <reference key="NSSuperview" ref="1000383860"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="469800007"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="407649812"/> + <reference key="NSControlView" ref="610179448"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="612330193"/> + <reference key="NSTextColor" ref="943265597"/> + </object> + </object> + </object> + <string key="NSFrame">{{10, 33}, {472, 214}}</string> + </object> + <string key="NSLabel">Other games</string> + <reference key="NSColor" ref="77619338"/> + <reference key="NSTabView" ref="793342693"/> + </object> + </object> + <reference key="NSSelectedTabViewItem" ref="939760325"/> + <reference key="NSFont" ref="407649812"/> + <int key="NSTvFlags">0</int> + <bool key="NSAllowTruncatedLabels">YES</bool> + <bool key="NSDrawsBackground">YES</bool> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="948790550"/> + </object> + </object> </object> - <string key="NSFrameSize">{480, 316}</string> + <string key="NSFrameSize">{518, 308}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> @@ -1034,14 +1243,14 @@ <object class="NSCustomObject" id="825061065"> <string key="NSClassName">AppController</string> </object> - <object class="NSCustomObject" id="201870239"> - <string key="NSClassName">LauncherManager</string> + <object class="NSCustomObject" id="5964108"> + <string key="NSClassName">IWADLocation</string> </object> - <object class="NSCustomObject" id="895790931"> - <string key="NSClassName">LauncherManager</string> + <object class="NSCustomObject" id="354490064"> + <string key="NSClassName">IWADLocation</string> </object> - <object class="NSCustomObject" id="366010945"> - <string key="NSClassName">LauncherManager</string> + <object class="NSCustomObject" id="606841782"> + <string key="NSClassName">IWADLocation</string> </object> </object> <object class="IBObjectContainer" key="IBDocument.Objects"> @@ -1447,6 +1656,78 @@ </object> <int key="connectionID">385</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">locationConfigBox</string> + <reference key="source" ref="5964108"/> + <reference key="destination" ref="568653906"/> + </object> + <int key="connectionID">403</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">locationConfigBox</string> + <reference key="source" ref="354490064"/> + <reference key="destination" ref="634339523"/> + </object> + <int key="connectionID">404</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">setButtonClicked:</string> + <reference key="source" ref="5964108"/> + <reference key="destination" ref="198489100"/> + </object> + <int key="connectionID">411</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">setButtonClicked:</string> + <reference key="source" ref="354490064"/> + <reference key="destination" ref="318836161"/> + </object> + <int key="connectionID">412</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">heretic</string> + <reference key="source" ref="938927474"/> + <reference key="destination" ref="5964108"/> + </object> + <int key="connectionID">413</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">hexen</string> + <reference key="source" ref="938927474"/> + <reference key="destination" ref="354490064"/> + </object> + <int key="connectionID">414</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">locationConfigBox</string> + <reference key="source" ref="606841782"/> + <reference key="destination" ref="610179448"/> + </object> + <int key="connectionID">423</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">setButtonClicked:</string> + <reference key="source" ref="606841782"/> + <reference key="destination" ref="691203613"/> + </object> + <int key="connectionID">424</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">strife</string> + <reference key="source" ref="938927474"/> + <reference key="destination" ref="606841782"/> + </object> + <int key="connectionID">425</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -1813,162 +2094,13 @@ <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="793342693"/> <reference ref="658359713"/> <reference ref="811205099"/> </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"> @@ -2058,186 +2190,518 @@ <reference key="parent" ref="858516582"/> </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">369</int> + <reference key="object" ref="391919375"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="733442466"/> + </object> + <reference key="parent" ref="624798014"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">370</int> + <reference key="object" ref="733442466"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="860531190"/> + <reference ref="378926680"/> + <reference ref="784926086"/> + <reference ref="913959081"/> + <reference ref="258703436"/> + <reference ref="590365178"/> + </object> + <reference key="parent" ref="391919375"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">371</int> + <reference key="object" ref="860531190"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">373</int> + <reference key="object" ref="378926680"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">375</int> + <reference key="object" ref="784926086"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">377</int> + <reference key="object" ref="913959081"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">379</int> + <reference key="object" ref="258703436"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">380</int> + <reference key="object" ref="590365178"/> + <reference key="parent" ref="733442466"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">383</int> + <reference key="object" ref="811205099"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="33467307"/> + </object> + <reference key="parent" ref="145141922"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">384</int> + <reference key="object" ref="33467307"/> + <reference key="parent" ref="811205099"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">386</int> + <reference key="object" ref="793342693"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="939760325"/> + <reference ref="989716837"/> + </object> + <reference key="parent" ref="145141922"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">387</int> + <reference key="object" ref="939760325"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="948790550"/> + </object> + <reference key="parent" ref="793342693"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">388</int> + <reference key="object" ref="989716837"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1000383860"/> + </object> + <reference key="parent" ref="793342693"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">389</int> + <reference key="object" ref="1000383860"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="568653906"/> + <reference ref="10172086"/> + <reference ref="198489100"/> + <reference ref="318836161"/> + <reference ref="840089166"/> + <reference ref="634339523"/> + <reference ref="1037067478"/> + <reference ref="610179448"/> + <reference ref="691203613"/> + <reference ref="452288864"/> + <reference ref="625273251"/> + <reference ref="680095551"/> + </object> + <reference key="parent" ref="989716837"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">390</int> + <reference key="object" ref="948790550"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="348674481"/> + <reference ref="410786529"/> + <reference ref="215057262"/> + <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"/> + </object> + <reference key="parent" ref="939760325"/> + </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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="948790550"/> + </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">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="1000383860"/> + </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">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="1000383860"/> + </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">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="1000383860"/> + </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"/> + <int key="objectID">391</int> + <reference key="object" ref="634339523"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="247064311"/> + </object> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">212</int> - <reference key="object" ref="562767686"/> + <int key="objectID">392</int> + <reference key="object" ref="247064311"/> + <reference key="parent" ref="634339523"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">393</int> + <reference key="object" ref="568653906"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="532676330"/> + <reference ref="332680482"/> </object> - <reference key="parent" ref="968990884"/> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">213</int> - <reference key="object" ref="532676330"/> - <reference key="parent" ref="562767686"/> + <int key="objectID">394</int> + <reference key="object" ref="332680482"/> + <reference key="parent" ref="568653906"/> </object> <object class="IBObjectRecord"> - <int key="objectID">-3</int> - <reference key="object" ref="226652452"/> - <reference key="parent" ref="0"/> - <string key="objectName">Application</string> + <int key="objectID">397</int> + <reference key="object" ref="840089166"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1045009541"/> + </object> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">349</int> - <reference key="object" ref="201870239"/> - <reference key="parent" ref="0"/> + <int key="objectID">398</int> + <reference key="object" ref="1045009541"/> + <reference key="parent" ref="840089166"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">399</int> + <reference key="object" ref="10172086"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="738481735"/> + </object> + <reference key="parent" ref="1000383860"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">400</int> + <reference key="object" ref="738481735"/> + <reference key="parent" ref="10172086"/> </object> <object class="IBObjectRecord"> - <int key="objectID">350</int> - <reference key="object" ref="895790931"/> + <int key="objectID">401</int> + <reference key="object" ref="5964108"/> <reference key="parent" ref="0"/> + <string key="objectName">HereticIWAD</string> </object> <object class="IBObjectRecord"> - <int key="objectID">351</int> - <reference key="object" ref="366010945"/> + <int key="objectID">402</int> + <reference key="object" ref="354490064"/> <reference key="parent" ref="0"/> + <string key="objectName">HexenIWAD</string> </object> <object class="IBObjectRecord"> - <int key="objectID">369</int> - <reference key="object" ref="391919375"/> + <int key="objectID">405</int> + <reference key="object" ref="318836161"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="733442466"/> + <reference ref="118467388"/> </object> - <reference key="parent" ref="624798014"/> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">370</int> - <reference key="object" ref="733442466"/> + <int key="objectID">406</int> + <reference key="object" ref="118467388"/> + <reference key="parent" ref="318836161"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">408</int> + <reference key="object" ref="198489100"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="860531190"/> - <reference ref="378926680"/> - <reference ref="784926086"/> - <reference ref="913959081"/> - <reference ref="258703436"/> - <reference ref="590365178"/> + <reference ref="670956484"/> </object> - <reference key="parent" ref="391919375"/> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">371</int> - <reference key="object" ref="860531190"/> - <reference key="parent" ref="733442466"/> + <int key="objectID">409</int> + <reference key="object" ref="670956484"/> + <reference key="parent" ref="198489100"/> </object> <object class="IBObjectRecord"> - <int key="objectID">373</int> - <reference key="object" ref="378926680"/> - <reference key="parent" ref="733442466"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">375</int> - <reference key="object" ref="784926086"/> - <reference key="parent" ref="733442466"/> + <int key="objectID">415</int> + <reference key="object" ref="1037067478"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="320235490"/> + </object> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">377</int> - <reference key="object" ref="913959081"/> - <reference key="parent" ref="733442466"/> + <int key="objectID">416</int> + <reference key="object" ref="320235490"/> + <reference key="parent" ref="1037067478"/> </object> <object class="IBObjectRecord"> - <int key="objectID">379</int> - <reference key="object" ref="258703436"/> - <reference key="parent" ref="733442466"/> + <int key="objectID">417</int> + <reference key="object" ref="610179448"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="469800007"/> + </object> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">380</int> - <reference key="object" ref="590365178"/> - <reference key="parent" ref="733442466"/> + <int key="objectID">418</int> + <reference key="object" ref="469800007"/> + <reference key="parent" ref="610179448"/> </object> <object class="IBObjectRecord"> - <int key="objectID">383</int> - <reference key="object" ref="811205099"/> + <int key="objectID">419</int> + <reference key="object" ref="691203613"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="33467307"/> + <reference ref="598411346"/> </object> - <reference key="parent" ref="145141922"/> + <reference key="parent" ref="1000383860"/> </object> <object class="IBObjectRecord"> - <int key="objectID">384</int> - <reference key="object" ref="33467307"/> - <reference key="parent" ref="811205099"/> + <int key="objectID">420</int> + <reference key="object" ref="598411346"/> + <reference key="parent" ref="691203613"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">422</int> + <reference key="object" ref="606841782"/> + <reference key="parent" ref="0"/> + <string key="objectName">StrifeIWAD</string> </object> </object> </object> @@ -2327,39 +2791,55 @@ <string>232.ImportedFromIB2</string> <string>233.ImportedFromIB2</string> <string>234.IBPluginDependency</string> + <string>234.IBViewBoundsToFrameTransform</string> <string>234.ImportedFromIB2</string> <string>235.IBPluginDependency</string> + <string>235.IBViewBoundsToFrameTransform</string> <string>235.ImportedFromIB2</string> <string>236.IBPluginDependency</string> + <string>236.IBViewBoundsToFrameTransform</string> <string>236.ImportedFromIB2</string> <string>238.IBPluginDependency</string> + <string>238.IBViewBoundsToFrameTransform</string> <string>238.ImportedFromIB2</string> <string>239.IBPluginDependency</string> + <string>239.IBViewBoundsToFrameTransform</string> <string>239.ImportedFromIB2</string> <string>24.IBEditorWindowLastContentRect</string> <string>24.IBPluginDependency</string> <string>24.ImportedFromIB2</string> <string>240.IBPluginDependency</string> + <string>240.IBViewBoundsToFrameTransform</string> <string>240.ImportedFromIB2</string> <string>241.IBPluginDependency</string> + <string>241.IBViewBoundsToFrameTransform</string> <string>241.ImportedFromIB2</string> <string>242.IBPluginDependency</string> + <string>242.IBViewBoundsToFrameTransform</string> <string>242.ImportedFromIB2</string> <string>243.IBPluginDependency</string> + <string>243.IBViewBoundsToFrameTransform</string> <string>243.ImportedFromIB2</string> <string>244.IBPluginDependency</string> + <string>244.IBViewBoundsToFrameTransform</string> <string>244.ImportedFromIB2</string> <string>245.IBPluginDependency</string> + <string>245.IBViewBoundsToFrameTransform</string> <string>245.ImportedFromIB2</string> <string>246.IBPluginDependency</string> + <string>246.IBViewBoundsToFrameTransform</string> <string>246.ImportedFromIB2</string> <string>247.IBPluginDependency</string> + <string>247.IBViewBoundsToFrameTransform</string> <string>247.ImportedFromIB2</string> <string>248.IBPluginDependency</string> + <string>248.IBViewBoundsToFrameTransform</string> <string>248.ImportedFromIB2</string> <string>249.IBPluginDependency</string> + <string>249.IBViewBoundsToFrameTransform</string> <string>249.ImportedFromIB2</string> <string>250.IBPluginDependency</string> + <string>250.IBViewBoundsToFrameTransform</string> <string>250.ImportedFromIB2</string> <string>270.ImportedFromIB2</string> <string>274.IBPluginDependency</string> @@ -2388,9 +2868,6 @@ <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>369.IBPluginDependency</string> <string>370.IBEditorWindowLastContentRect</string> <string>370.IBPluginDependency</string> @@ -2401,7 +2878,44 @@ <string>379.IBPluginDependency</string> <string>380.IBPluginDependency</string> <string>383.IBPluginDependency</string> + <string>383.IBViewBoundsToFrameTransform</string> <string>384.IBPluginDependency</string> + <string>386.IBPluginDependency</string> + <string>386.IBViewBoundsToFrameTransform</string> + <string>387.IBPluginDependency</string> + <string>388.IBPluginDependency</string> + <string>389.IBPluginDependency</string> + <string>390.IBPluginDependency</string> + <string>391.IBPluginDependency</string> + <string>391.IBViewBoundsToFrameTransform</string> + <string>392.IBPluginDependency</string> + <string>393.IBPluginDependency</string> + <string>393.IBViewBoundsToFrameTransform</string> + <string>394.IBPluginDependency</string> + <string>397.IBPluginDependency</string> + <string>397.IBViewBoundsToFrameTransform</string> + <string>397.ImportedFromIB2</string> + <string>399.IBPluginDependency</string> + <string>399.IBViewBoundsToFrameTransform</string> + <string>399.ImportedFromIB2</string> + <string>401.IBPluginDependency</string> + <string>402.IBPluginDependency</string> + <string>405.IBPluginDependency</string> + <string>405.IBViewBoundsToFrameTransform</string> + <string>405.ImportedFromIB2</string> + <string>408.IBPluginDependency</string> + <string>408.IBViewBoundsToFrameTransform</string> + <string>408.ImportedFromIB2</string> + <string>415.IBPluginDependency</string> + <string>415.IBViewBoundsToFrameTransform</string> + <string>415.ImportedFromIB2</string> + <string>417.IBPluginDependency</string> + <string>417.IBViewBoundsToFrameTransform</string> + <string>417.ImportedFromIB2</string> + <string>419.IBPluginDependency</string> + <string>419.IBViewBoundsToFrameTransform</string> + <string>419.ImportedFromIB2</string> + <string>422.IBPluginDependency</string> <string>5.IBPluginDependency</string> <string>5.ImportedFromIB2</string> <string>56.IBPluginDependency</string> @@ -2498,9 +3012,9 @@ </object> <boolean value="YES"/> <boolean value="YES"/> - <string>{{421, 438}, {480, 316}}</string> + <string>{{358, 421}, {518, 308}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{421, 438}, {480, 316}}</string> + <string>{{358, 421}, {518, 308}}</string> <boolean value="YES"/> <boolean value="YES"/> <string>{213, 107}</string> @@ -2514,39 +3028,87 @@ <boolean value="YES"/> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABD24AAw5+AAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwz8AAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDxoAAxBJAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwyAAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAww8AAA</bytes> + </object> <boolean value="YES"/> <string>{{469, 741}, {194, 73}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDyoAAwwcAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwuAAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwroAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDzoAAwqwAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwmAAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwjQAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDzoAAwdAAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwnwAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwjAAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDy4AAwfgAAA</bytes> + </object> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABD2gAAwqIAAA</bytes> + </object> <boolean value="YES"/> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -2576,18 +3138,74 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{540, 701}, {238, 113}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{540, 701}, {238, 113}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwhwAAA</bytes> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAw5YAAA</bytes> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwxAAAA</bytes> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBgAAAw0EAAA</bytes> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwyEAAA</bytes> + </object> + <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAw1EAAA</bytes> + </object> + <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDxIAAww0AAA</bytes> + </object> + <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDxIAAw0AAAA</bytes> + </object> + <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwtYAAA</bytes> + </object> + <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwq4AAA</bytes> + </object> + <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABD0YAAwpYAAA</bytes> + </object> + <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> @@ -2618,7 +3236,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">385</int> + <int key="maxID">425</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -2693,8 +3311,11 @@ <string>configWindow</string> <string>doom1</string> <string>doom2</string> + <string>heretic</string> + <string>hexen</string> <string>iwadSelector</string> <string>plutonia</string> + <string>strife</string> <string>tnt</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -2706,6 +3327,9 @@ <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"> @@ -2716,8 +3340,11 @@ <string>configWindow</string> <string>doom1</string> <string>doom2</string> + <string>heretic</string> + <string>hexen</string> <string>iwadSelector</string> <string>plutonia</string> + <string>strife</string> <string>tnt</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -2739,6 +3366,14 @@ <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">heretic</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">hexen</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">iwadSelector</string> <string key="candidateClassName">id</string> </object> @@ -2747,6 +3382,10 @@ <string key="candidateClassName">id</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">strife</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">tnt</string> <string key="candidateClassName">id</string> </object> diff --git a/pkg/osx/Resources/launcher.nib/keyedobjects.nib b/pkg/osx/Resources/launcher.nib/keyedobjects.nib Binary files differindex 7df7670c..e23926a7 100644 --- a/pkg/osx/Resources/launcher.nib/keyedobjects.nib +++ b/pkg/osx/Resources/launcher.nib/keyedobjects.nib diff --git a/pkg/win32/GNUmakefile b/pkg/win32/GNUmakefile index 34f2c9bd..6b45152e 100644 --- a/pkg/win32/GNUmakefile +++ b/pkg/win32/GNUmakefile @@ -3,9 +3,11 @@ include ../config.make TOPLEVEL=../.. -EXE_FILES=$(TOPLEVEL)/src/$(PROGRAM_PREFIX)doom.exe \ - $(TOPLEVEL)/src/$(PROGRAM_PREFIX)server.exe \ - $(TOPLEVEL)/setup/$(PROGRAM_PREFIX)setup.exe +EXE_FILES=$(TOPLEVEL)/src/$(PROGRAM_PREFIX)doom.exe \ + $(TOPLEVEL)/src/$(PROGRAM_PREFIX)heretic.exe \ + $(TOPLEVEL)/src/$(PROGRAM_PREFIX)hexen.exe \ + $(TOPLEVEL)/src/$(PROGRAM_PREFIX)server.exe \ + $(TOPLEVEL)/src/$(PROGRAM_PREFIX)setup.exe DLL_FILES=$(TOPLEVEL)/src/SDL.dll \ $(TOPLEVEL)/src/SDL_mixer.dll \ diff --git a/pkg/wince/.gitignore b/pkg/wince/.gitignore deleted file mode 100644 index 285c4716..00000000 --- a/pkg/wince/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile -Makefile.in -*.cab diff --git a/pkg/wince/GNUmakefile b/pkg/wince/GNUmakefile deleted file mode 100644 index b6acc3b8..00000000 --- a/pkg/wince/GNUmakefile +++ /dev/null @@ -1,15 +0,0 @@ - -include ../config.make - -DEPS=$(shell ./wince-cabgen -d $(CONFIG_FILE)) -EXECUTABLES=$(filter %.exe, $(DEPS)) -CONFIG_FILE=wince-cab.cfg -OUTPUT_FILE=$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).cab - -$(OUTPUT_FILE) : $(CONFIG_FILE) $(DEPS) - $(STRIP) $(EXECUTABLES) - ./wince-cabgen $< $@ - -clean: - rm -f $(OUTPUT_FILE) - diff --git a/pkg/wince/wince-cab.cfg b/pkg/wince/wince-cab.cfg deleted file mode 100644 index 5f37c5ab..00000000 --- a/pkg/wince/wince-cab.cfg +++ /dev/null @@ -1,25 +0,0 @@ - -app_name = "Chocolate Doom" -provider = "Simon Howard" -arch = "strongarm" - -# Install files: - -d = "$(PROGRAMS_GAMES)/Chocolate Doom/" -s = "$(START_GAMES)/" - -files = { - d+"chocolate-doom.exe": "../../src/chocolate-doom.exe", - d+"chocolate-setup.exe": "../../setup/chocolate-setup.exe", - d+"SDL.dll": "SDL.dll", - d+"SDL_mixer.dll": "SDL_mixer.dll", - d+"libSDL_net-1-2-0.dll": "libSDL_net-1-2-0.dll", -} - -# Start menu links: - -links = { - s+"Chocolate Doom.lnk": d+"chocolate-doom.exe", - s+"Chocolate Doom Setup.lnk": d+"chocolate-setup.exe" -} - diff --git a/pkg/wince/wince-cabgen b/pkg/wince/wince-cabgen deleted file mode 100755 index 76845cf9..00000000 --- a/pkg/wince/wince-cabgen +++ /dev/null @@ -1,668 +0,0 @@ -#!/usr/bin/env python - -import os -import re -import shutil -import struct -import sys -import tempfile - -CAB_HEADER = "MSCE".encode("ascii") - -ARCHITECTURES = { - "shx-sh3": 103, - "shx-sh4": 104, - "i386": 386, - "i486": 486, - "i586": 586, - "powerpc-601": 601, - "powerpc-603": 603, - "powerpc-604": 604, - "powerpc-620": 620, - "powerpc-mpc821": 821, - "arm720": 1824, - "arm820": 2080, - "arm920": 2336, - "strongarm": 2577, - "mips-r4000": 4000, - "sh3": 10003, - "sh3e": 10004, - "sh4": 10005, - "alpha-21064": 21064, - "arm7tdmi": 70001, -} - -DIR_VARIABLES = { - "PROGRAMS": "%CE1%", # \Program Files - "WINDOWS": "%CE2%", # \Windows - "DESKTOP": "%CE3%", # \Windows\Desktop - "STARTUP": "%CE4%", # \Windows\StartUp - "DOCUMENTS": "%CE5%", # \My Documents - "PROGRAMS_ACCESSORIES": "%CE6%", # \Program Files\Accessories - "PROGRAMS_COMMUNICATIONS": "%CE7%", # \Program Files\Communications - "PROGRAMS_GAMES": "%CE8%", # \Program Files\Games - "PROGRAMS_OUTLOOK": "%CE9%", # \Program Files\Pocket Outlook - "PROGRAMS_OFFICE": "%CE10%", # \Program Files\Office - "WINDOWS_PROGRAMS": "%CE11%", # \Windows\Programs - "WINDOWS_ACCESSORIES": "%CE12%", # \Windows\Programs\Accessories - "WINDOWS_COMMUNICATIONS": "%CE13%", # \Windows\Programs\Communications - "WINDOWS_GAMES": "%CE14%", # \Windows\Programs\Games - "FONTS": "%CE15%", # \Windows\Fonts - "RECENT": "%CE16%", # \Windows\Recent - "FAVORITES": "%CE17%", # \Windows\Favorites - - "START_PROGRAMS": "%CE11%", # \Windows\Start Menu\Programs - "START_ACCESSORIES": "%CE12%", # \Windows\Start Menu\Accessories - "START_COMMUNICATIONS": "%CE13%", # \Windows\Start Menu\Communications - "START_GAMES": "%CE14%", # \Windows\Start Menu\Games - "START": "%CE17%", # \Windows\Start Menu -} - -def write_int16(f, value): - f.write(struct.pack("<H", value)) - -def write_int32(f, value): - f.write(struct.pack("<I", value)) - -# Pad a string with NUL characters so that it has a length that is -# a multiple of 4. At least one NUL is always added. - -def pad_string(s): - pad_len = 4 - (len(s) % 4) - return s + (pad_len * "\x00") - -class HeaderSection: - - def __init__(self, cab_header): - self.cab_header = cab_header - self.arch = None - self.app_name = None - self.provider = None - self.unsupported = None - - def __len__(self): - return 100 # header has fixed size - - def set_meta(self, arch, app_name, provider, unsupported): - - if arch not in ARCHITECTURES: - raise Exception("Unknown architecture '%s'" % arch) - - self.arch = ARCHITECTURES[arch] - - dictionary = self.cab_header.dictionary - - self.app_name = app_name - dictionary.get(self.app_name) - - self.provider = provider - dictionary.get(self.provider) - - self.unsupported = unsupported - dictionary.get(self.unsupported) - - def write(self, stream): - - # Basic header - - stream.write(CAB_HEADER) - write_int32(stream, 0) - write_int32(stream, len(self.cab_header)) - write_int32(stream, 0) - write_int32(stream, 1) - write_int32(stream, self.arch) - - # minimum Windows CE version: - write_int32(stream, 0) - write_int32(stream, 0) - write_int32(stream, 0) - write_int32(stream, 0) - write_int32(stream, 0) - write_int32(stream, 0) - - dictionary = self.cab_header.dictionary - - # Write number of entries in other sections: - - for section in self.cab_header.sections: - if section is not self: - write_int16(stream, section.num_entries()) - - # Write offsets of other sections: - - for section in self.cab_header.sections: - if section is not self: - offset = self.cab_header.get_section_offset(section) - write_int32(stream, offset) - - # Special strings: - - special_strings = ( - self.app_name, - self.provider, - self.unsupported - ) - - dictionary_offset = self.cab_header.get_section_offset(dictionary) - - for s in special_strings: - s_offset = dictionary.get_offset(s) - write_int16(stream, dictionary_offset + s_offset) - write_int16(stream, len(s) + 1) - - # Two left-over fields of unknown use: - - write_int16(stream, 0) - write_int16(stream, 0) - -class StringDictionary: - def __init__(self, cab_header): - self.cab_header = cab_header - self.string_list = [] - self.strings = {} - self.length = 0 - self.index = 1 - - # Get the length of the dictionary, in bytes. - - def __len__(self): - return self.length - - # Get the number of entries in the dictionary. - - def num_entries(self): - return len(self.strings) - - # Get the ID for the given string, adding it if necessary. - - def get(self, s): - # Is this a new string? Add it to the dictionary. - - if s not in self.strings: - offset = self.length - padded = pad_string(s) - - self.strings[s] = (self.index, offset) - self.string_list.append((self.index, padded)) - self.length += len(padded) + 4 - self.index += 1 - - return self.strings[s][0] - - # Get the offset of a particular string within the dictionary. - - def get_offset(self, s): - return self.strings[s][1] + 4 - - # Write the dictionary to the output stream. - - def write(self, stream): - - # Write out all strings: - - for i, s in self.string_list: - write_int16(stream, i) - write_int16(stream, len(s)) - stream.write(s.encode("ascii")) - -class DirectoryList: - def __init__(self, cab_header): - self.cab_header = cab_header - self.directories_list = [] - self.directories = {} - self.length = 0 - self.index = 1 - - def __len__(self): - return self.length - - def num_entries(self): - return len(self.directories_list) - - # Find whether the specified directory exists in the list - - def find(self, dir): - key = dir.lower() - - if key in self.directories: - return self.directories[key] - else: - return None - - # Get the ID for the given directory, adding it if necessary. - - def get(self, dir): - - key = dir.lower() - dictionary = self.cab_header.dictionary - - # Add new directory? - - if key not in self.directories: - - # Separate into individual directories, and map to strings: - - #dir_path = dir.split("\\") - #if dir_path[0] == "": - # dir_path = dir_path[1:] - dir_path = [ dir ] - - dir_path = list(map(lambda x: dictionary.get(x), dir_path)) - - self.directories[key] = self.index - self.directories_list.append((self.index, dir_path)) - self.length += 6 + 2 * len(dir_path) - self.index += 1 - - return self.directories[key] - - # Write the directory list to the specified stream. - - def write(self, stream): - for i, dir in self.directories_list: - write_int16(stream, i) - write_int16(stream, 2 * len(dir) + 2) - - for subdir in dir: - write_int16(stream, subdir) - - write_int16(stream, 0) - -class FileList: - def __init__(self, cab_header): - self.cab_header = cab_header - self.files = [] - self.length = 0 - self.index = 1 - - # Get the length of this section, in bytes. - - def __len__(self): - return self.length - - # Query whether the file list contains a particular file. - - def find(self, filename): - dirname, sep, target_basename = filename.rpartition("\\") - - target_basename = pad_string(target_basename) - - target_dir_id = self.cab_header.directory_list.find(dirname) - - if target_dir_id is None: - return None - else: - # Search the list of files: - - for i, dir_id, basename, file_no, flags in self.files: - if dir_id == target_dir_id and basename == target_basename: - return file_no - else: - return None - - # Get the number of entries in the file list - - def num_entries(self): - return len(self.files) - - # Add a file to the list. - - def add(self, filename, file_no, flags=0): - - dirname, sep, basename = filename.rpartition("\\") - - dir_id = self.cab_header.directory_list.get(dirname) - - padded = pad_string(basename) - - self.files.append((self.index, dir_id, padded, file_no, flags)) - self.length += 12 + len(padded) - self.index += 1 - - # Write this section to the output stream. - - def write(self, stream): - - for i, dir_id, filename, file_no, flags in self.files: - write_int16(stream, i) - write_int16(stream, dir_id) - write_int16(stream, file_no) - write_int32(stream, flags) - write_int16(stream, len(filename)) - stream.write(filename.encode("ascii")) - -# TODO? - -class RegHiveList: - def __len__(self): - return 0 - - def num_entries(self): - return 0 - - def write(self, stream): - pass - -class RegKeyList(): - def __len__(self): - return 0 - - def num_entries(self): - return 0 - - def write(self, stream): - pass - -class LinkList: - def __init__(self, cab_header): - self.cab_header = cab_header - self.links = [] - self.length = 0 - self.index = 1 - - def __len__(self): - return self.length - - def num_entries(self): - return len(self.links) - - # Determine the target type (dir/file) and ID: - - def __find_target(self, target): - file_id = self.cab_header.file_list.find(target) - - if file_id is not None: - return 1, file_id - - dir_list = self.cab_header.get_section(DirectoryList) - dir_id = dir_list.find(target) - - if dir_id is not None: - return 0, dir_id - - raise Exception("Link target '%s' not found" % target) - - def add(self, target, destination): - - target_type, target_id = self.__find_target(target) - - dest_path = destination.split("\\") - - # Leading \: - - if dest_path[0] == "": - dest_path = dest_path[1:] - - # %CEn% to specify the install root is handled differently for - # links than it is for files/dirs. - - match = re.match(r"\%CE(\d+)\%", dest_path[0]) - - if match: - base_dir = int(match.group(1)) - dest_path = dest_path[1:] - else: - base_dir = 0 - - # Map dirs that make up the path to strings. - - dictionary = self.cab_header.dictionary - dest_path = list(map(lambda x: dictionary.get(x), dest_path)) - - self.links.append((self.index, target_type, target_id, - base_dir, dest_path)) - self.index += 1 - self.length += 14 + 2 * len(dest_path) - - def write(self, stream): - - for i, target_type, target_id, base_dir, dest_path in self.links: - - write_int16(stream, i) - write_int16(stream, 0) - write_int16(stream, base_dir) - write_int16(stream, target_id) - write_int16(stream, target_type) - write_int16(stream, 2 * len(dest_path) + 2) - - for subdir in dest_path: - write_int16(stream, subdir) - - write_int16(stream, 0) - -class CabHeaderFile: - def __init__(self): - self.dictionary = StringDictionary(self) - self.directory_list = DirectoryList(self) - self.file_list = FileList(self) - - self.sections = [ - HeaderSection(self), - self.dictionary, - self.directory_list, - self.file_list, - RegHiveList(), - RegKeyList(), - LinkList(self) - ] - - def set_meta(self, *args): - header_section = self.get_section(HeaderSection) - header_section.set_meta(*args) - - def add_file(self, filename, file_no, flags=0): - files_section = self.get_section(FileList) - files_section.add(filename, file_no, flags) - - def add_link(self, target, destination): - links_section = self.get_section(LinkList) - links_section.add(target, destination) - - def get_section(self, section_class): - for section in self.sections: - if isinstance(section, section_class): - return section - else: - raise Exception("Can't find section of class %s" % section_class) - - def get_section_offset(self, section): - offset = 0 - - for s in self.sections: - if section is s: - return offset - offset += len(s) - else: - raise Exception("Section %s not found in list") - - def __len__(self): - result = 0 - for s in self.sections: - result += len(s) - return result - - def write(self, stream): - old_pos = 0 - for section in self.sections: - section.write(stream) - pos = stream.tell() - if pos != old_pos + len(section): - print(section) - raise Exception("Section is %i bytes long, but %i written" % \ - (len(section), pos - old_pos)) - old_pos = pos - -class CabFile: - def __init__(self, config): - self.cab_header = CabHeaderFile() - - self.__process_meta(config) - self.__process_files(config["files"]) - - if "links" in config: - self.__process_links(config["links"]) - - # Metadata: - - def __process_meta(self, config): - arch = config.get("arch") or "strongarm" - app_name = config.get("app_name") - provider = config.get("provider") - unsupported = config.get("unsupported") or "" - - if app_name is None or provider is None: - raise Exception("Application name and provider must be specified") - - self.cab_header.set_meta(arch, app_name, provider, unsupported) - self.app_name = app_name - - # Get the shortened 8.3 filename used for the specified file - # within the CAB. - - def __shorten_name(self, filename, file_no): - - # Strip down to base filename without extension: - - basename = os.path.basename(filename) - - if "." in basename: - basename = basename.rpartition(".")[0] - - # Remove non-alphanumeric characters: - - def only_alnum(x): - if x.isalnum(): - return x - else: - return "" - - cleaned_name = "".join(map(only_alnum, basename)) - short_name = cleaned_name[0:8] - - if len(short_name) < 8: - short_name = "0" * (8 - len(short_name)) + short_name - - return "%s.%03i" % (short_name, file_no) - - # Process the list of files to install: - - def __process_files(self, files): - self.files = [ self.app_name ] - - for filename, source_file in files.items(): - file_no = len(self.files) - filename = expand_path(filename) - self.cab_header.add_file(filename, file_no) - self.files.append(source_file) - - # Process the list of links: - - def __process_links(self, links): - for destination, target in links.items(): - target = expand_path(target) - destination = expand_path(destination) - self.cab_header.add_link(target, destination) - - # Write the header file: - - def __write_header(self, dir): - - basename = self.__shorten_name(self.files[0], 0) - filename = os.path.join(dir, basename) - - stream = open(filename, "wb") - self.cab_header.write(stream) - stream.close() - - return [ filename ] - - # Write the files: - - def __write_files(self, dir): - - result = [] - - for file_no in range(1, len(self.files)): - source_file = self.files[file_no] - basename = self.__shorten_name(source_file, file_no) - filename = os.path.join(dir, basename) - - shutil.copy(source_file, filename) - result.append(filename) - - return result - - # Output to a file: - - def write(self, filename): - - temp_dir = tempfile.mkdtemp() - - header = self.__write_header(temp_dir) - files = self.__write_files(temp_dir) - files.reverse() - - args = [ "lcab", "-n" ] + header + files + [ filename ] - - os.spawnlp(os.P_WAIT, "lcab", *args) - - # Clean up: - - for tmpfile in header + files: - os.remove(tmpfile) - os.rmdir(temp_dir) - -def expand_path(filename): - - # Replace Unix-style / path separators with DOS-style \ - - filename = filename.replace("/", "\\") - - # Expand $(xyz) path variables to their Windows equivalents: - - def replace_var(match): - var_name = match.group(1) - - if not var_name in DIR_VARIABLES: - raise Exception("Unknown variable '%s'" % var_name) - else: - return DIR_VARIABLES[var_name] - - return re.sub(r"\$\((.*?)\)", replace_var, filename) - -def read_config_file(filename): - f = open(filename) - - data = f.readlines() - data = "".join(data) - - f.close() - - prog = compile(data, filename, "exec") - result = {} - eval(prog, result) - - return result - -# List the files that the output CAB depends on. - -def print_dependencies(filename): - config = read_config_file(filename) - - files_list = config["files"] - - for dest, source_file in files_list.items(): - print(source_file) - -if len(sys.argv) < 3: - print("Usage: %s <config file> <output file>" % sys.argv[0]) - sys.exit(0) - -if sys.argv[1] == "-d": - print_dependencies(sys.argv[2]) -else: - config = read_config_file(sys.argv[1]) - - cab_file = CabFile(config) - cab_file.write(sys.argv[2]) - |