From 27b279a1ceeb3c88067ac9c78f8478ea5b38a441 Mon Sep 17 00:00:00 2001 From: hendricks266 Date: Sun, 4 Mar 2012 09:30:27 +0000 Subject: [PATCH] JFDuke3D port: OS X Startup Window, copied almost verbatim It needs to have the sound quality box removed and the Game directory box added, possibly among other things. git-svn-id: https://svn.eduke32.com/eduke32@2396 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/Apple/GameListSource.game.h | 23 + polymer/eduke32/Apple/GameListSource.game.m | 74 ++ polymer/eduke32/Apple/GrpFile.game.h | 25 + polymer/eduke32/Apple/GrpFile.game.m | 40 + .../eduke32/Apple/StartupWinController.game.m | 437 +++++++++ .../bundles/EDuke32.app/Contents/Info.plist | 2 + .../Resources/game.osxmain.nib/classes.nib | 7 + .../Resources/game.osxmain.nib/info.nib | 21 + .../game.osxmain.nib/keyedobjects.nib | Bin 0 -> 3315 bytes .../startwin.editor.nib/designable.nib | 922 ------------------ .../startwin.editor.nib/keyedobjects.ni | Bin 13147 -> 0 bytes .../Resources/startwin.game.nib/classes.nib | 59 ++ .../Resources/startwin.game.nib/info.nib | 20 + .../startwin.game.nib/keyedobjects.nib | Bin 0 -> 15977 bytes .../bundles/Mapster32.app/Contents/Info.plist | 4 +- .../Resources/build.osxmain.nib/classes.nib | 7 + .../Resources/build.osxmain.nib/info.nib | 21 + .../build.osxmain.nib/keyedobjects.nib | Bin 0 -> 3346 bytes .../Resources/startwin.editor.nib/classes.nib | 22 + .../startwin.editor.nib/designable.nib | 922 ------------------ .../Resources/startwin.editor.nib/info.nib | 16 + .../startwin.editor.nib/keyedobjects.ni | Bin 13147 -> 0 bytes .../startwin.editor.nib/keyedobjects.nib | Bin 0 -> 11487 bytes polymer/eduke32/Makefile | 8 +- polymer/eduke32/build/Makefile | 5 +- polymer/eduke32/build/src/build.c | 2 +- polymer/eduke32/source/astub.c | 2 +- polymer/eduke32/source/game.c | 4 +- polymer/eduke32/source/gamedef.c | 2 +- 29 files changed, 788 insertions(+), 1857 deletions(-) create mode 100644 polymer/eduke32/Apple/GameListSource.game.h create mode 100644 polymer/eduke32/Apple/GameListSource.game.m create mode 100644 polymer/eduke32/Apple/GrpFile.game.h create mode 100644 polymer/eduke32/Apple/GrpFile.game.m create mode 100644 polymer/eduke32/Apple/StartupWinController.game.m create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/classes.nib create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/info.nib create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/keyedobjects.nib delete mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/designable.nib delete mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/classes.nib create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/info.nib create mode 100644 polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/keyedobjects.nib create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/classes.nib create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/info.nib create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/keyedobjects.nib create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/classes.nib delete mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/designable.nib create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/info.nib delete mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni create mode 100644 polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.nib diff --git a/polymer/eduke32/Apple/GameListSource.game.h b/polymer/eduke32/Apple/GameListSource.game.h new file mode 100644 index 000000000..0818cd8a6 --- /dev/null +++ b/polymer/eduke32/Apple/GameListSource.game.h @@ -0,0 +1,23 @@ +/* + * GameListSource.game.h + * duke3d + * + * Created by Jonathon Fowler on 24/07/09. + * Copyright 2009 __MyCompanyName__. All rights reserved. + * + */ + +@interface GameListSource : NSObject +{ + NSMutableArray *list; +} +- (id)init; +- (void)dealloc; +- (GrpFile*)grpAtIndex:(int)index; +- (int)findIndexForGrpname:(NSString*)grpname; +- (id)tableView:(NSTableView *)aTableView +objectValueForTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex; +- (int)numberOfRowsInTableView:(NSTableView *)aTableView; +@end + diff --git a/polymer/eduke32/Apple/GameListSource.game.m b/polymer/eduke32/Apple/GameListSource.game.m new file mode 100644 index 000000000..4743c9655 --- /dev/null +++ b/polymer/eduke32/Apple/GameListSource.game.m @@ -0,0 +1,74 @@ +/* + * GameListSource.game.m + * duke3d + * + * Created by Jonathon Fowler on 24/07/09. + * Copyright 2009 __MyCompanyName__. All rights reserved. + * + */ + +#import + +#import "GrpFile.game.h" +#import "GameListSource.game.h" + +@implementation GameListSource +- (id)init +{ + self = [super init]; + if (self) { + struct grpfile *p; + int i; + + list = [[NSMutableArray alloc] init]; + + for (p = foundgrps; p; p=p->next) { + for (i=0; icrcval == grpfiles[i].crcval) break; + if (i == numgrpfiles) continue; + [list addObject:[[GrpFile alloc] initWithGrpfile:p andName:[NSString stringWithCString:grpfiles[i].name]]]; + } + } + + return self; +} + +- (void)dealloc +{ + [list release]; + [super dealloc]; +} + +- (GrpFile*)grpAtIndex:(int)index +{ + return [list objectAtIndex:index]; +} + +- (int)findIndexForGrpname:(NSString*)grpname +{ + int i; + for (i=0; i<[list count]; i++) { + if ([[[list objectAtIndex:i] grpname] isEqual:grpname]) return i; + } + return -1; +} + +- (id)tableView:(NSTableView *)aTableView + objectValueForTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex +{ + NSParameterAssert(rowIndex >= 0 && rowIndex < [list count]); + switch ([[aTableColumn identifier] intValue]) { + case 0: // name column + return [[list objectAtIndex:rowIndex] name]; + case 1: // grp column + return [[list objectAtIndex:rowIndex] grpname]; + default: return nil; + } +} + +- (int)numberOfRowsInTableView:(NSTableView *)aTableView +{ + return [list count]; +} +@end + diff --git a/polymer/eduke32/Apple/GrpFile.game.h b/polymer/eduke32/Apple/GrpFile.game.h new file mode 100644 index 000000000..321fa468c --- /dev/null +++ b/polymer/eduke32/Apple/GrpFile.game.h @@ -0,0 +1,25 @@ +/* + * GrpFile.game.h + * duke3d + * + * Created by Jonathon Fowler on 24/07/09. + * Copyright 2009 __MyCompanyName__. All rights reserved. + * + */ + +#import + +#include "grpscan.h" + +@interface GrpFile : NSObject +{ + NSString *name; + struct grpfile *fg; +} +- (id)initWithGrpfile:(struct grpfile *)grpfile andName:(NSString*)aName; +- (void)dealloc; +- (NSString *)name; +- (NSString *)grpname; +- (struct grpfile *)entryptr; +@end + diff --git a/polymer/eduke32/Apple/GrpFile.game.m b/polymer/eduke32/Apple/GrpFile.game.m new file mode 100644 index 000000000..d72b2fa12 --- /dev/null +++ b/polymer/eduke32/Apple/GrpFile.game.m @@ -0,0 +1,40 @@ +/* + * GrpFile.game.m + * duke3d + * + * Created by Jonathon Fowler on 24/07/09. + * Copyright 2009 __MyCompanyName__. All rights reserved. + * + */ + +#include "GrpFile.game.h" + +@implementation GrpFile +- (id)initWithGrpfile:(struct grpfile *)grpfile andName:(NSString*)aName +{ + self = [super init]; + if (self) { + fg = grpfile; + name = aName; + [aName retain]; + } + return self; +} +- (void)dealloc +{ + [name release]; + [super dealloc]; +} +- (NSString *)name +{ + return name; +} +- (NSString *)grpname +{ + return [NSString stringWithCString:(fg->name)]; +} +- (struct grpfile *)entryptr +{ + return fg; +} +@end diff --git a/polymer/eduke32/Apple/StartupWinController.game.m b/polymer/eduke32/Apple/StartupWinController.game.m new file mode 100644 index 000000000..01db59e53 --- /dev/null +++ b/polymer/eduke32/Apple/StartupWinController.game.m @@ -0,0 +1,437 @@ +// Objective-C programmers shall recoil in fear at this mess + +#import + +#define GetTime xGetTime +#include "duke3d.h" +#undef GetTime +#include "build.h" +#include "compat.h" +#include "baselayer.h" +#include "grpscan.h" + +#import "GrpFile.game.h" +#import "GameListSource.game.h" + +static struct { + int fullscreen; + int xdim3d, ydim3d, bpp3d; + int forcesetup; + char selectedgrp[BMAX_PATH+1]; + int game; + int samplerate, bitspersample, channels; +} settings; + +static struct soundQuality_t { + int frequency; + int samplesize; + int channels; +} * soundQualities = 0; + + +@interface StartupWinController : NSWindowController +{ + NSMutableArray *modeslist3d; + GameListSource *gamelistsrc; + + IBOutlet NSButton *alwaysShowButton; + IBOutlet NSButton *fullscreenButton; + IBOutlet NSTextView *messagesView; + IBOutlet NSTabView *tabView; + IBOutlet NSPopUpButton *videoMode3DPUButton; + IBOutlet NSPopUpButton *soundQualityPUButton; + IBOutlet NSScrollView *gameList; + + IBOutlet NSButton *cancelButton; + IBOutlet NSButton *startButton; +} + +- (void)dealloc; +- (void)populateVideoModes:(BOOL)firstTime; +- (void)populateSoundQuality:(BOOL)firstTime; + +- (IBAction)alwaysShowClicked:(id)sender; +- (IBAction)fullscreenClicked:(id)sender; + +- (IBAction)cancel:(id)sender; +- (IBAction)start:(id)sender; + +- (void)setupRunMode; +- (void)setupMessagesMode; +- (void)putsMessage:(NSString *)str; +- (void)setTitle:(NSString *)str; + +@end + +@implementation StartupWinController + +- (void)dealloc +{ + [gamelistsrc release]; + [modeslist3d release]; + [super dealloc]; +} + +- (void)populateVideoModes:(BOOL)firstTime +{ + int i, mode3d, fullscreen = ([fullscreenButton state] == NSOnState); + int idx3d = -1; + int xdim, ydim, bpp; + + if (firstTime) { + xdim = settings.xdim3d; + ydim = settings.ydim3d; + bpp = settings.bpp3d; + } else { + mode3d = [[modeslist3d objectAtIndex:[videoMode3DPUButton indexOfSelectedItem]] intValue]; + if (mode3d >= 0) { + xdim = validmode[mode3d].xdim; + ydim = validmode[mode3d].ydim; + bpp = validmode[mode3d].bpp; + } + + } + mode3d = checkvideomode(&xdim, &ydim, bpp, fullscreen, 1); + if (mode3d < 0) { + int i, cd[] = { 32, 24, 16, 15, 8, 0 }; + for (i=0; cd[i]; ) { if (cd[i] >= bpp) i++; else break; } + for ( ; cd[i]; i++) { + mode3d = checkvideomode(&xdim, &ydim, cd[i], fullscreen, 1); + if (mode3d < 0) continue; + break; + } + } + + [modeslist3d release]; + [videoMode3DPUButton removeAllItems]; + + modeslist3d = [[NSMutableArray alloc] init]; + + for (i = 0; i < validmodecnt; i++) { + if (fullscreen == validmode[i].fs) { + if (i == mode3d) idx3d = [modeslist3d count]; + [modeslist3d addObject:[NSNumber numberWithInt:i]]; + [videoMode3DPUButton addItemWithTitle:[NSString stringWithFormat:@"%d %C %d %d-bpp", + validmode[i].xdim, 0xd7, validmode[i].ydim, validmode[i].bpp]]; + } + } + + if (idx3d >= 0) [videoMode3DPUButton selectItemAtIndex:idx3d]; +} + +- (void)populateSoundQuality:(BOOL)firstTime +{ + int i, curidx = -1; + + [soundQualityPUButton removeAllItems]; + + for (i = 0; soundQualities[i].frequency > 0; i++) { + const char *ch; + switch (soundQualities[i].channels) { + case 1: ch = "Mono"; break; + case 2: ch = "Stereo"; break; + default: ch = "?"; break; + } + + NSString *s = [NSString stringWithFormat:@"%dkHz, %d-bit, %s", + soundQualities[i].frequency / 1000, + soundQualities[i].samplesize, + ch + ]; + [soundQualityPUButton addItemWithTitle:s]; + + if (firstTime && + soundQualities[i].frequency == settings.samplerate && + soundQualities[i].samplesize == settings.bitspersample && + soundQualities[i].channels == settings.channels) { + curidx = i; + } + } + + if (firstTime && curidx < 0) { + soundQualities[i].frequency = settings.samplerate; + soundQualities[i].samplesize = settings.bitspersample; + soundQualities[i].channels = settings.channels; + + const char *ch; + switch (soundQualities[i].channels) { + case 1: ch = "Mono"; break; + case 2: ch = "Stereo"; break; + default: ch = "?"; break; + } + NSString *s = [NSString stringWithFormat:@"%dkHz, %d-bit, %s", + soundQualities[i].frequency / 1000, + soundQualities[i].samplesize, + ch + ]; + [soundQualityPUButton addItemWithTitle:s]; + + curidx = i++; + soundQualities[i].frequency = -1; + } + + if (curidx >= 0) { + [soundQualityPUButton selectItemAtIndex:curidx]; + } +} + +- (IBAction)alwaysShowClicked:(id)sender +{ +} + +- (IBAction)fullscreenClicked:(id)sender +{ + [self populateVideoModes:NO]; +} + +- (IBAction)cancel:(id)sender +{ + [NSApp abortModal]; +} + +- (IBAction)start:(id)sender +{ + int mode = [[modeslist3d objectAtIndex:[videoMode3DPUButton indexOfSelectedItem]] intValue]; + if (mode >= 0) { + settings.xdim3d = validmode[mode].xdim; + settings.ydim3d = validmode[mode].ydim; + settings.bpp3d = validmode[mode].bpp; + settings.fullscreen = validmode[mode].fs; + } + + int quality = [soundQualityPUButton indexOfSelectedItem]; + if (quality >= 0) { + settings.samplerate = soundQualities[quality].frequency; + settings.bitspersample = soundQualities[quality].samplesize; + settings.channels = soundQualities[quality].channels; + } + + int row = [[gameList documentView] selectedRow]; + if (row >= 0) { + struct grpfile *p = [[gamelistsrc grpAtIndex:row] entryptr]; + if (p) { + strcpy(settings.selectedgrp, p->name); + settings.game = p->game; + } + } + + settings.forcesetup = [alwaysShowButton state] == NSOnState; + + [NSApp stopModal]; +} + +- (void)setupRunMode +{ + getvalidmodes(); + + [fullscreenButton setState: (settings.fullscreen ? NSOnState : NSOffState)]; + [alwaysShowButton setState: (settings.forcesetup ? NSOnState : NSOffState)]; + [self populateVideoModes:YES]; + [self populateSoundQuality:YES]; + + // enable all the controls on the Configuration page + NSEnumerator *enumerator = [[[[tabView tabViewItemAtIndex:0] view] subviews] objectEnumerator]; + NSControl *control; + while (control = [enumerator nextObject]) [control setEnabled:true]; + + gamelistsrc = [[GameListSource alloc] init]; + [[gameList documentView] setDataSource:gamelistsrc]; + [[gameList documentView] deselectAll:nil]; + + int row = [gamelistsrc findIndexForGrpname:[NSString stringWithCString:settings.selectedgrp]]; + if (row >= 0) { + [[gameList documentView] scrollRowToVisible:row]; +#if defined(MAC_OS_X_VERSION_10_3) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3) + [[gameList documentView] selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; +#else + [[gameList documentView] selectRow:row byExtendingSelection:NO]; +#endif + } + + [cancelButton setEnabled:true]; + [startButton setEnabled:true]; + + [tabView selectTabViewItemAtIndex:0]; + [NSCursor unhide]; // Why should I need to do this? +} + +- (void)setupMessagesMode +{ + [tabView selectTabViewItemAtIndex:2]; + + // disable all the controls on the Configuration page except "always show", so the + // user can enable it if they want to while waiting for something else to happen + NSEnumerator *enumerator = [[[[tabView tabViewItemAtIndex:0] view] subviews] objectEnumerator]; + NSControl *control; + while (control = [enumerator nextObject]) { + if (control == alwaysShowButton) continue; + [control setEnabled:false]; + } + + [cancelButton setEnabled:false]; + [startButton setEnabled:false]; +} + +- (void)putsMessage:(NSString *)str +{ + NSRange end; + NSTextStorage *text = [messagesView textStorage]; + BOOL shouldAutoScroll; + + shouldAutoScroll = ((int)NSMaxY([messagesView bounds]) == (int)NSMaxY([messagesView visibleRect])); + + end.location = [text length]; + end.length = 0; + + [text beginEditing]; + [messagesView replaceCharactersInRange:end withString:str]; + [text endEditing]; + + if (shouldAutoScroll) { + end.location = [text length]; + end.length = 0; + [messagesView scrollRangeToVisible:end]; + } +} + +- (void)setTitle:(NSString *)str +{ + [[self window] setTitle:str]; +} + +@end + +static StartupWinController *startwin = nil; + +int startwin_open(void) +{ + if (startwin != nil) return 1; + + startwin = [[StartupWinController alloc] initWithWindowNibName:@"startwin.game"]; + if (startwin == nil) return -1; + + { + static int soundQualityFrequencies[] = { 48000, 44100, 32000, 24000, 22050 }; + static int soundQualitySampleSizes[] = { 16, 8 }; + static int soundQualityChannels[] = { 2, 1 }; + int f, b, c, i; + + i = sizeof(soundQualityFrequencies) * + sizeof(soundQualitySampleSizes) * + sizeof(soundQualityChannels) / + sizeof(int) + 2; // one for the terminator, one for a custom setting + soundQualities = (struct soundQuality_t *) malloc(i * sizeof(struct soundQuality_t)); + + i = 0; + for (c = 0; c < sizeof(soundQualityChannels) / sizeof(int); c++) { + for (b = 0; b < sizeof(soundQualitySampleSizes) / sizeof(int); b++) { + for (f = 0; f < sizeof(soundQualityFrequencies) / sizeof(int); f++) { + soundQualities[i].frequency = soundQualityFrequencies[f]; + soundQualities[i].samplesize = soundQualitySampleSizes[b]; + soundQualities[i].channels = soundQualityChannels[c]; + + i++; + } + } + } + + soundQualities[i].frequency = -1; + } + + [startwin setupMessagesMode]; + [startwin showWindow:nil]; + + return 0; +} + +int startwin_close(void) +{ + if (startwin == nil) return 1; + + [startwin close]; + [startwin release]; + startwin = nil; + + free(soundQualities); + + return 0; +} + +int startwin_puts(const char *s) +{ + NSString *ns; + + if (!s) return -1; + if (startwin == nil) return 1; + + ns = [[NSString alloc] initWithCString:s]; + [startwin putsMessage:ns]; + [ns release]; + + return 0; +} + +int startwin_settitle(const char *s) +{ + NSString *ns; + + if (!s) return -1; + if (startwin == nil) return 1; + + ns = [[NSString alloc] initWithCString:s]; + [startwin setTitle:ns]; + [ns release]; + + return 0; +} + +int startwin_idle(void *v) +{ + if (startwin) [[startwin window] displayIfNeeded]; + return 0; +} + +extern char *duke3dgrp; + +int startwin_run(void) +{ + int retval; + + if (startwin == nil) return 0; + + settings.fullscreen = ScreenMode; + settings.xdim3d = ScreenWidth; + settings.ydim3d = ScreenHeight; + settings.bpp3d = ScreenBPP; + settings.samplerate = MixRate; + settings.bitspersample = NumBits; + settings.channels = NumChannels; + settings.forcesetup = ForceSetup; + settings.game = gametype; + strncpy(settings.selectedgrp, duke3dgrp, BMAX_PATH); + + [startwin setupRunMode]; + + switch ([NSApp runModalForWindow:[startwin window]]) { + case NSRunStoppedResponse: retval = 1; break; + case NSRunAbortedResponse: retval = 0; break; + default: retval = -1; + } + + [startwin setupMessagesMode]; + + if (retval) { + ScreenMode = settings.fullscreen; + ScreenWidth = settings.xdim3d; + ScreenHeight = settings.ydim3d; + ScreenBPP = settings.bpp3d; + MixRate = settings.samplerate; + NumBits = settings.bitspersample; + NumChannels = settings.channels; + ForceSetup = settings.forcesetup; + duke3dgrp = settings.selectedgrp; + gametype = settings.game; + } + + return retval; +} diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Info.plist b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Info.plist index b85d00b2b..29fd3cb61 100644 --- a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Info.plist +++ b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Info.plist @@ -28,6 +28,8 @@ 2.0 CSResourcesFileMapped + NSMainNibFile + game.osxmain NSHumanReadableCopyright Copyright EDuke32 Team NSPrincipalClass diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/classes.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/classes.nib new file mode 100644 index 000000000..02cb79e15 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/classes.nib @@ -0,0 +1,7 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = SDLMain; LANGUAGE = ObjC; SUPERCLASS = NSObject; } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/info.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/info.nib new file mode 100644 index 000000000..2b2f2d5e1 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/info.nib @@ -0,0 +1,21 @@ + + + + + IBDocumentLocation + 563 86 356 240 0 0 1280 938 + IBEditorPositions + + 29 + 581 456 159 44 0 0 1280 938 + + IBFramework Version + 364.0 + IBOpenObjects + + 29 + + IBSystem Version + 7W98 + + diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/keyedobjects.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/game.osxmain.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..e4a7b0251aee295fbac4c21b5844bd2fddef4185 GIT binary patch literal 3315 zcmZ`*33wFc8Giq{XHb}gLlFW=NDRn*L`V=d2Y~>)0hT072nmzjfehK~#@$&CYxS?T zqO~3UAVPu+1uBf?B~~)h>8!Jp;S#!}oJ4$CiJRyNmn1sY+7UO^ZVn2D z7TO!_XjOJ$KG>BzUWNvJWqtJ|e_7OWEza&U*I)on!+1=_6r77noR4bMp#e=;jc&w| zfQvNN;bL5ZZ-V1n_zteZcX18AhwHH!H{vGTf^GOdZo?0;6T7endvO=;#r=2y58_ee z<8k~1PvaRJ!gKgJp2Dy268h=-3Vw~>knJ1zEq;f$@h<*=5Aav|{|%Sn?`X!y_y<10 zKiO&QbT*I;VkXOD`D`#7!iKV8>=_r0wYm?Q5cOv6rmVnP=ZpNjWUeIIGnR07z$e5c8W+$(YP*2 z59<@jt_-scKFdv3EN!P&W>+46s!7D-R0JxDH&>U4y8$b1t+A6$!O+q~!d*@V_6E1X ziME?&Fx2FvoQ{~??8Kvq^`1r6yBC?BYGPI@<>%2tb51mqQma4oV>XpUyhWMRvdjGm zK9|e9me+BePv$}%E9EMm%7c6{U&2@OhJK=90w!V-0nFHWh`Gc?3R~4f;)_@wihfMR zG)%{guph@xwfKWLE$_t)l(&(6I^`z1{nW!b4E>l%A!eb1AWurUNhiLBAlFydBq9mx zIHg?iBh1EmeK-$uP@X{&NV^vC63Up7OMlRh3&`b#s3J15GEVK_n(v_owSB0?T$B?( zIeXh}BxBq4E$1P)8}m_*1z3nh2yla+$w%@+UdqqmlMZ7smXQCYB#01}p^=!VwNtJW z&oI#(3@x%c?3kBLBAtxbd>B824|tta8pd+8Uj#aSGfe50osqg_io+f93 zxZRzIJCQ|+2svBkxG|f!X^7W%lRyX(6@BhSX=k06zq7%PX5P1(c_(H9iDDA28p@y(4%VUzF^cRJl?v=7Q19B^DL$KDz{~lZ74w~_ zUD)7uQUh813VO(F0xm)lDJthuJCy;LQA8fk=O(3_O@>;F=d7mFj&yZf$u6J!_1Msd z4cO>ak5ujJA?Jn=l%D!77xEikNIoQE<@wFv4!M?V`;ITgWxdo2%88vEhIVsUCncZB z{Uo8LDt(K~aYY}lz_-0rh7tiz2W?3=nTTa~W+F)l{kPsmO(ah)`;}DoO?(6&{@N*3 z^=f)`uBQB~l^OaL)YYcD?CG_QUOts4`?;3n-3_d*^aNu5h0ktojPm3$^YpV#;ZpF%~G-?e?~g9z@#j<)t-DBH_D zx%!HH7R|jRr}8&4n)>P2dd1HuMmt4)J_i>zUZAEBN_TXV1L`$ZnZtz7;uR;T{{>zo z>VL^ES1>=Dcf4}!Bl3%ho;IRsKaJYx|Acq<*Zdv__E5QssbKpu#VSItKl4X# z=2rX(@8JmkjHCDq-ski9d|uBN@P&L45BO#L5EZR;PRuS#6*jDo+sTu97Xg1qox-DO7KZKcsxK0DcvWC;zb0d5nFuY zfB825#%K5(U*JFZ692_92F94cL?$trDNJP=)0x2r@TEM&m+?m4#G84TFXt_M1#jgm zc^hx%tGLBGc!Wo}ZQg7an75i=n%nYNK^`l~Vv7?OX6GNd*Vmp7m_B8ltxKoq*AF&8YhjHCQ8$! z8fk&lB!#6Gsa0x|)=FK{25FOYwRDYit+Z9TL%LsjOnO0jOL|}WP=>6_1LfiJGsKeC?wOXxL!|E#4QM*)Ey;gy{WyUeV~1+eXfi8D7{RdrB~@o^<{dK9@bm*R=rJMr91jM{c`;peT%+Rzf*rm z->)ChKQcxb1;%Kj$QWak8fC^fW4tlZm~2cnrW@tPOrye>ZOkz)Fsh6iW3DmJs5cfG v0b{WdGMbFA(PFe3?S^GU4BJ>^tTkdr+~_ej8kZvT69oUx#`yQ#)wuR6HFc?A literal 0 HcmV?d00001 diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/designable.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/designable.nib deleted file mode 100644 index 9b82df9c2..000000000 --- a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/designable.nib +++ /dev/null @@ -1,922 +0,0 @@ - - - - 1060 - 10B504 - 732 - 1038.2 - 437.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 732 - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - StartupWinController - - - FirstResponder - - - NSApplication - - - 5 - 2 - {{402, 296}, {483, 280}} - 813170688 - Startup - NSWindow - - View - - {1.79769e+308, 1.79769e+308} - {213, 107} - - - 256 - - - - 256 - {{8, 26}, {462, 248}} - - - - - - 256 - - - - 256 - {{155, -2}, {210, 18}} - - YES - - 67239424 - 131072 - Always show configuration on start - - LucidaGrande - 11 - 3100 - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{279, 173}, {76, 16}} - - YES - - 67239424 - 131072 - Fullscreen - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{2, 149}, {92, 14}} - - YES - - 67239424 - 4194304 - 3D Video mode: - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 256 - {{96, 144}, {181, 22}} - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - LucidaGrande - 11 - 16 - - - - - - 400 - 75 - - - XXX x YYY Z-bpp - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - - 256 - {{2, 174}, {92, 14}} - - YES - - 67239424 - 4194304 - 2D Video mode: - - - - - - - - - 256 - {{96, 169}, {181, 22}} - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - - - - - 400 - 75 - - - XXX x YYY - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - {{10, 25}, {442, 210}} - - - Configuration - - - - - - - 256 - - - - 256 - - - - 2304 - - - - 2322 - {439, 208} - - - - - - - - - - - - - 6 - - - - 439 - 1 - - - 2912 - 0 - - - 3 - MQA - - - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - 1 - MCAwIDEAA - - - - - - 6 - {439, 1e+07} - {357, 208} - - - - {{1, 1}, {439, 208}} - - - - - - {4, 4} - 0 - - 4 - - - - 256 - {{440, 1}, {11, 208}} - - 256 - - _doScroller: - 1 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 257 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-7, 0}, {452, 210}} - - - 18 - - - - - - {{10, 25}, {442, 210}} - - Messages - - - - - - - 134217728 - YES - YES - - - - - - - 256 - {{396, 1}, {85, 32}} - - YES - - 67239424 - 134217728 - Start - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - LucidaGrande - 13 - 16 - - - DQ - 200 - 25 - - - - - 256 - {{311, 1}, {85, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - {483, 280} - - - {{0, 0}, {1280, 938}} - {213, 129} - {1.79769e+308, 1.79769e+308} - - - - - - - window - - - - 43 - - - - cancel: - - - - 50 - - - - start: - - - - 51 - - - - initialFirstResponder - - - - 55 - - - - tabView - - - - 57 - - - - alwaysShowButton - - - - 59 - - - - alwaysShowClicked: - - - - 61 - - - - messagesView - - - - 64 - - - - cancelButton - - - - 65 - - - - startButton - - - - 66 - - - - videoMode2DPUButton - - - - 76 - - - - videoMode3DPUButton - - - - 77 - - - - fullscreenButton - - - - 78 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - 23 - - - - - - StartupWin - - - 10 - - - - - - - - - - 8 - - - - - - - - - 13 - - - - - - - - 35 - - - - - - - - - - - - - 37 - - - - - - - - 67 - - - - - - - - 68 - - - - - - - - 69 - - - - - - - - 72 - - - - - - - - 73 - - - - - - - - 15 - - - - - - - - 22 - - - - - - - - 80 - - - - - 81 - - - - - 82 - - - - - 83 - - - - - - - - 84 - - - - - 85 - - - - - - - - 87 - - - - - 88 - - - - - 70 - - - - - - - - 71 - - - - - 74 - - - - - - - - 75 - - - - - -3 - - - Application - - - 32 - - - - - - - - 6 - - - - - - - - 62 - - - - - - - - - - 90 - - - - - 89 - - - - - 63 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{242, 347}, {483, 280}} - com.apple.InterfaceBuilder.CocoaPlugin - {{242, 347}, {483, 280}} - - - {213, 107} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - 90 - - - - - FirstResponder - - IBUserSource - - - - - StartupWinController - NSWindowController - - id - id - id - id - - - NSButton - NSButton - NSButton - NSTextView - NSButton - NSTabView - NSPopUpButton - NSPopUpButton - - - IBUserSource - - - - - - 0 - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - - 3 - - diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni deleted file mode 100644 index 6050d79be619468952f6ce96e299041a9b5e8d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13147 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 SpLG)=|5a$^zmf0s#Qy<>JC`5; diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/classes.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/classes.nib new file mode 100644 index 000000000..022577ba8 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/classes.nib @@ -0,0 +1,59 @@ + + + + + IBClasses + + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + ACTIONS + + alwaysShowClicked + id + cancel + id + fullscreenClicked + id + start + id + + CLASS + StartupWinController + LANGUAGE + ObjC + OUTLETS + + alwaysShowButton + NSButton + cancelButton + NSButton + fullscreenButton + NSButton + gameList + NSScrollView + messagesView + NSTextView + soundQualityPUButton + NSPopUpButton + startButton + NSButton + tabView + NSTabView + videoMode3DPUButton + NSPopUpButton + + SUPERCLASS + NSWindowController + + + IBVersion + 1 + + diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/info.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/info.nib new file mode 100644 index 000000000..ff7834c05 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/info.nib @@ -0,0 +1,20 @@ + + + + + IBFramework Version + 677 + IBLastKnownRelativeProjectPath + duke3d.xcodeproj + IBOldestOS + 3 + IBOpenObjects + + 35 + + IBSystem Version + 9J61 + targetFramework + IBCocoaFramework + + diff --git a/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/keyedobjects.nib b/polymer/eduke32/Apple/bundles/EDuke32.app/Contents/Resources/startwin.game.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..e8250fdeaed328a3027de9c943cf9516cc03d7da GIT binary patch literal 15977 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≧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 literal 0 HcmV?d00001 diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Info.plist b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Info.plist index d602c19e1..f607a45e0 100644 --- a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Info.plist +++ b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Info.plist @@ -13,7 +13,7 @@ CFBundleIconFile mapster32.icns CFBundleIdentifier - com.mapster32 + com.eduke32.mapster32 CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -28,6 +28,8 @@ 2.0 CSResourcesFileMapped + NSMainNibFile + build.osxmain NSHumanReadableCopyright Copyright EDuke32 Team NSPrincipalClass diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/classes.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/classes.nib new file mode 100644 index 000000000..02cb79e15 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/classes.nib @@ -0,0 +1,7 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = SDLMain; LANGUAGE = ObjC; SUPERCLASS = NSObject; } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/info.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/info.nib new file mode 100644 index 000000000..24bb936e9 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/info.nib @@ -0,0 +1,21 @@ + + + + + IBDocumentLocation + 567 77 356 240 0 0 1280 938 + IBEditorPositions + + 29 + 562 525 257 44 0 0 1280 938 + + IBFramework Version + 364.0 + IBOpenObjects + + 29 + + IBSystem Version + 7W98 + + diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/keyedobjects.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/build.osxmain.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..0be7b27e5c3b4e8efbcdb93d3ee28369f0277d53 GIT binary patch literal 3346 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 PlJ_gdc)tVR#$De6J=D8| literal 0 HcmV?d00001 diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/classes.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/classes.nib new file mode 100644 index 000000000..69de3d147 --- /dev/null +++ b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/classes.nib @@ -0,0 +1,22 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {alwaysShowClicked = id; cancel = id; fullscreenClicked = id; start = id; }; + CLASS = StartupWinController; + LANGUAGE = ObjC; + OUTLETS = { + alwaysShowButton = NSButton; + cancelButton = NSButton; + fullscreenButton = NSButton; + messagesView = NSTextView; + startButton = NSButton; + tabView = NSTabView; + videoMode2DPUButton = NSPopUpButton; + videoMode3DPUButton = NSPopUpButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/designable.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/designable.nib deleted file mode 100644 index 9b82df9c2..000000000 --- a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/designable.nib +++ /dev/null @@ -1,922 +0,0 @@ - - - - 1060 - 10B504 - 732 - 1038.2 - 437.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 732 - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - StartupWinController - - - FirstResponder - - - NSApplication - - - 5 - 2 - {{402, 296}, {483, 280}} - 813170688 - Startup - NSWindow - - View - - {1.79769e+308, 1.79769e+308} - {213, 107} - - - 256 - - - - 256 - {{8, 26}, {462, 248}} - - - - - - 256 - - - - 256 - {{155, -2}, {210, 18}} - - YES - - 67239424 - 131072 - Always show configuration on start - - LucidaGrande - 11 - 3100 - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{279, 173}, {76, 16}} - - YES - - 67239424 - 131072 - Fullscreen - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 256 - {{2, 149}, {92, 14}} - - YES - - 67239424 - 4194304 - 3D Video mode: - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 256 - {{96, 144}, {181, 22}} - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - LucidaGrande - 11 - 16 - - - - - - 400 - 75 - - - XXX x YYY Z-bpp - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - - 256 - {{2, 174}, {92, 14}} - - YES - - 67239424 - 4194304 - 2D Video mode: - - - - - - - - - 256 - {{96, 169}, {181, 22}} - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - - - - - 400 - 75 - - - XXX x YYY - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - 3 - YES - YES - 1 - - - - {{10, 25}, {442, 210}} - - - Configuration - - - - - - - 256 - - - - 256 - - - - 2304 - - - - 2322 - {439, 208} - - - - - - - - - - - - - 6 - - - - 439 - 1 - - - 2912 - 0 - - - 3 - MQA - - - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - 1 - MCAwIDEAA - - - - - - 6 - {439, 1e+07} - {357, 208} - - - - {{1, 1}, {439, 208}} - - - - - - {4, 4} - 0 - - 4 - - - - 256 - {{440, 1}, {11, 208}} - - 256 - - _doScroller: - 1 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - 257 - - _doScroller: - 1 - 0.94565218687057495 - - - {{-7, 0}, {452, 210}} - - - 18 - - - - - - {{10, 25}, {442, 210}} - - Messages - - - - - - - 134217728 - YES - YES - - - - - - - 256 - {{396, 1}, {85, 32}} - - YES - - 67239424 - 134217728 - Start - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - LucidaGrande - 13 - 16 - - - DQ - 200 - 25 - - - - - 256 - {{311, 1}, {85, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 1 - - - Gw - 200 - 25 - - - - {483, 280} - - - {{0, 0}, {1280, 938}} - {213, 129} - {1.79769e+308, 1.79769e+308} - - - - - - - window - - - - 43 - - - - cancel: - - - - 50 - - - - start: - - - - 51 - - - - initialFirstResponder - - - - 55 - - - - tabView - - - - 57 - - - - alwaysShowButton - - - - 59 - - - - alwaysShowClicked: - - - - 61 - - - - messagesView - - - - 64 - - - - cancelButton - - - - 65 - - - - startButton - - - - 66 - - - - videoMode2DPUButton - - - - 76 - - - - videoMode3DPUButton - - - - 77 - - - - fullscreenButton - - - - 78 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - 23 - - - - - - StartupWin - - - 10 - - - - - - - - - - 8 - - - - - - - - - 13 - - - - - - - - 35 - - - - - - - - - - - - - 37 - - - - - - - - 67 - - - - - - - - 68 - - - - - - - - 69 - - - - - - - - 72 - - - - - - - - 73 - - - - - - - - 15 - - - - - - - - 22 - - - - - - - - 80 - - - - - 81 - - - - - 82 - - - - - 83 - - - - - - - - 84 - - - - - 85 - - - - - - - - 87 - - - - - 88 - - - - - 70 - - - - - - - - 71 - - - - - 74 - - - - - - - - 75 - - - - - -3 - - - Application - - - 32 - - - - - - - - 6 - - - - - - - - 62 - - - - - - - - - - 90 - - - - - 89 - - - - - 63 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{242, 347}, {483, 280}} - com.apple.InterfaceBuilder.CocoaPlugin - {{242, 347}, {483, 280}} - - - {213, 107} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - 90 - - - - - FirstResponder - - IBUserSource - - - - - StartupWinController - NSWindowController - - id - id - id - id - - - NSButton - NSButton - NSButton - NSTextView - NSButton - NSTabView - NSPopUpButton - NSPopUpButton - - - IBUserSource - - - - - - 0 - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - - 3 - - diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/info.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/info.nib new file mode 100644 index 000000000..c2f5e6bda --- /dev/null +++ b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 111 188 356 240 0 0 1280 938 + IBFramework Version + 446.1 + IBOpenObjects + + 23 + + IBSystem Version + 8R218 + + diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.ni deleted file mode 100644 index 6050d79be619468952f6ce96e299041a9b5e8d72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13147 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 SpLG)=|5a$^zmf0s#Qy<>JC`5; diff --git a/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.nib b/polymer/eduke32/Apple/bundles/Mapster32.app/Contents/Resources/startwin.editor.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..5b3cfe34adc64f33d093341ae6852652b65feed6 GIT binary patch literal 11487 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