# HG changeset patch # User koda # Date 1306618842 -7200 # Node ID 76a2246f18f0514b924cfd436024c29fe5e67ee8 # Parent 9e2a17ab178bb666c6583c52a46f64ec2d7299dd when the match is not completed (eg out of memory or crash) the game asks for restoring it as soon as it is opened again diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m --- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Sat May 28 16:40:23 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Sat May 28 23:40:42 2011 +0200 @@ -153,9 +153,18 @@ // prepare options for overlay and add it to the future sdl uiwindow [self performSelector:@selector(displayOverlayLater:) withObject:nil afterDelay:3]; + // keep track of uncompleted games + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:self.savePath forKey:@"savedGamePath"]; + [defaults synchronize]; + // SYSTEMS ARE GO!! [self startGameEngine]; + // remove completed games notification + [defaults setObject:@"" forKey:@"savedGamePath"]; + [defaults synchronize]; + // now we can remove the cover with a transition [UIView beginAnimations:@"fade in" context:NULL]; [UIView setAnimationDuration:1]; diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Classes/MainMenuViewController.h --- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Sat May 28 16:40:23 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Sat May 28 23:40:42 2011 +0200 @@ -25,18 +25,21 @@ @class SplitViewRootController; @class AboutViewController; @class SavedGamesViewController; +@class RestoreViewController; @interface MainMenuViewController : UIViewController { GameConfigViewController *gameConfigViewController; SplitViewRootController *settingsViewController; AboutViewController *aboutViewController; SavedGamesViewController *savedGamesViewController; + RestoreViewController *restoreViewCOntroller; } @property (nonatomic,retain) GameConfigViewController *gameConfigViewController; @property (nonatomic,retain) SplitViewRootController *settingsViewController; @property (nonatomic,retain) AboutViewController *aboutViewController; @property (nonatomic,retain) SavedGamesViewController *savedGamesViewController; +@property (nonatomic,retain) RestoreViewController *restoreViewController; -(IBAction) switchViews:(id)sender; diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Classes/MainMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat May 28 16:40:23 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat May 28 23:40:42 2011 +0200 @@ -26,10 +26,11 @@ #import "SplitViewRootController.h" #import "AboutViewController.h" #import "SavedGamesViewController.h" +#import "RestoreViewController.h" #import "ServerSetup.h" @implementation MainMenuViewController -@synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController; +@synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController, restoreViewController; -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { return rotationManager(interfaceOrientation); @@ -106,6 +107,19 @@ [self createNecessaryFiles]; } + NSString *saveString = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedGamePath"]; + if (saveString != nil && [saveString isEqualToString:@""] == NO) { + if (self.restoreViewController == nil) { + NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")]; + RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil]; + if ([restored respondsToSelector:@selector(setModalPresentationStyle:)]) + restored.modalPresentationStyle = UIModalPresentationFormSheet; + self.restoreViewController = restored; + [restored release]; + } + [self performSelector:@selector(presentModalViewController:animated:) withObject:self.restoreViewController afterDelay:0.35]; + } + /* ServerSetup *setup = [[ServerSetup alloc] init]; if ([setup isNetworkReachable]) { @@ -209,6 +223,7 @@ self.settingsViewController = nil; self.aboutViewController = nil; self.savedGamesViewController = nil; + self.restoreViewController = nil; MSG_DIDUNLOAD(); [super viewDidUnload]; } @@ -222,6 +237,8 @@ self.aboutViewController = nil; if (self.savedGamesViewController.view.superview == nil) self.savedGamesViewController = nil; + if (self.restoreViewController.view.superview == nil) + self.restoreViewController = nil; MSG_MEMCLEAN(); [super didReceiveMemoryWarning]; } @@ -231,6 +248,7 @@ releaseAndNil(gameConfigViewController); releaseAndNil(aboutViewController); releaseAndNil(savedGamesViewController); + releaseAndNil(restoreViewController); [super dealloc]; } diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Classes/RestoreViewController.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.h Sat May 28 23:40:42 2011 +0200 @@ -0,0 +1,31 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2009-2011 Vittorio Giovara + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * File created on 28/05/2011. + */ + + +#import + + +@interface RestoreViewController : UIViewController { + +} + +-(IBAction) buttonReleased:(id) sender; + +@end diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Classes/RestoreViewController.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.m Sat May 28 23:40:42 2011 +0200 @@ -0,0 +1,75 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2009-2011 Vittorio Giovara + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * File created on 28/05/2011. + */ + + +#import "RestoreViewController.h" +#import "GameInterfaceBridge.h" + +@implementation RestoreViewController + + +// Override to allow orientations other than the default portrait orientation. +-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + return rotationManager(interfaceOrientation); +} + + +-(IBAction) buttonReleased:(id) sender { + UIButton *theButton = (UIButton *)sender; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + if (theButton.tag != 0) { + GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self.parentViewController]; + [self.parentViewController dismissModalViewControllerAnimated:NO]; + [bridge startSaveGame:[defaults objectForKey:@"savedGamePath"]]; + [bridge release]; + } else { + [defaults setObject:@"" forKey:@"savedGamePath"]; + [defaults synchronize]; + [self.parentViewController dismissModalViewControllerAnimated:YES]; + } +} + +-(void) didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + +-(void) viewDidLoad { + NSString *imgName; + if (IS_IPAD()) + imgName = @"smallerBackground~ipad.png"; + else + imgName = @"smallerBackground~iphone.png"; + UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName]; + self.view.backgroundColor = [UIColor colorWithPatternImage:img]; + [img release]; + [super viewDidLoad]; +} + +-(void) viewDidUnload { + [super viewDidUnload]; +} + +-(void) dealloc { + [super dealloc]; +} + + +@end diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj --- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sat May 28 16:40:23 2011 +0200 +++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sat May 28 23:40:42 2011 +0200 @@ -110,6 +110,9 @@ 6165925511CA9CB400D6E256 /* MapConfigViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924D11CA9CB400D6E256 /* MapConfigViewController-iPad.xib */; }; 6165925811CA9CB400D6E256 /* OverlayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165925011CA9CB400D6E256 /* OverlayViewController.xib */; }; 6165929E11CA9E2F00D6E256 /* HedgewarsAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6165929D11CA9E2F00D6E256 /* HedgewarsAppDelegate.m */; }; + 6167A6761391514600AA6D07 /* RestoreViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6167A6741391514600AA6D07 /* RestoreViewController.m */; }; + 6167A6771391514600AA6D07 /* RestoreViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */; }; + 6167A72D13919E6800AA6D07 /* RestoreViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6167A72C13919E6800AA6D07 /* RestoreViewController-iPad.xib */; }; 6172FED91298CF9800D73365 /* background~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FED71298CF9800D73365 /* background~iphone.png */; }; 6172FEEF1298D25D00D73365 /* mediumBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FEEB1298D25D00D73365 /* mediumBackground~ipad.png */; }; 6172FEF11298D25D00D73365 /* smallerBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FEED1298D25D00D73365 /* smallerBackground~ipad.png */; }; @@ -426,6 +429,10 @@ 6165925011CA9CB400D6E256 /* OverlayViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = OverlayViewController.xib; path = Resources/OverlayViewController.xib; sourceTree = SOURCE_ROOT; }; 6165929C11CA9E2F00D6E256 /* HedgewarsAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HedgewarsAppDelegate.h; path = Classes/HedgewarsAppDelegate.h; sourceTree = ""; }; 6165929D11CA9E2F00D6E256 /* HedgewarsAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HedgewarsAppDelegate.m; path = Classes/HedgewarsAppDelegate.m; sourceTree = ""; }; + 6167A6731391514600AA6D07 /* RestoreViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RestoreViewController.h; sourceTree = ""; }; + 6167A6741391514600AA6D07 /* RestoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RestoreViewController.m; sourceTree = ""; }; + 6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "RestoreViewController-iPhone.xib"; path = "../Resources/RestoreViewController-iPhone.xib"; sourceTree = ""; }; + 6167A72C13919E6800AA6D07 /* RestoreViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "RestoreViewController-iPad.xib"; path = "../Resources/RestoreViewController-iPad.xib"; sourceTree = ""; }; 6172FEA21298C7F900D73365 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "Resources/Icons/Default@2x.png"; sourceTree = ""; }; 6172FEC81298CE4800D73365 /* savesButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "savesButton@2x.png"; path = "Resources/Frontend/savesButton@2x.png"; sourceTree = ""; }; 6172FECA1298CE4E00D73365 /* settingsButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "settingsButton@2x.png"; path = "Resources/Frontend/settingsButton@2x.png"; sourceTree = ""; }; @@ -720,6 +727,10 @@ 61F2E7CB1205EDE0005734F7 /* AboutViewController.h */, 61F2E7CC1205EDE0005734F7 /* AboutViewController.m */, 61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */, + 6167A6731391514600AA6D07 /* RestoreViewController.h */, + 6167A6741391514600AA6D07 /* RestoreViewController.m */, + 6167A6751391514600AA6D07 /* RestoreViewController-iPhone.xib */, + 6167A72C13919E6800AA6D07 /* RestoreViewController-iPad.xib */, 611D9BF812497E9800008271 /* SavedGamesViewController.h */, 611D9BF912497E9800008271 /* SavedGamesViewController.m */, 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */, @@ -1324,6 +1335,8 @@ 61188C0912A6FE9C0026C5DA /* tw@2x.png in Resources */, 6174F7C812CD62E300205D6F /* smallerTitle.png in Resources */, 6174F7C912CD62E300205D6F /* smallerTitle@2x.png in Resources */, + 6167A6771391514600AA6D07 /* RestoreViewController-iPhone.xib in Resources */, + 6167A72D13919E6800AA6D07 /* RestoreViewController-iPad.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1475,6 +1488,7 @@ 61B7A33812CC21080086B604 /* StatsPageViewController.m in Sources */, 61EDB5B0135B3F97009B29A6 /* GameInterfaceBridge.m in Sources */, 61A976B3136F668500DD9878 /* uCursor.pas in Sources */, + 6167A6761391514600AA6D07 /* RestoreViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Resources/RestoreViewController-iPad.xib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Resources/RestoreViewController-iPad.xib Sat May 28 23:40:42 2011 +0200 @@ -0,0 +1,616 @@ + + + + 1056 + 10J869 + 823 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBIPadFramework + + + IBFirstResponder + IBIPadFramework + + + + 274 + + YES + + + 302 + {{84, 517}, {151, 37}} + + NO + IBIPadFramework + 0 + 0 + + Helvetica-Bold + 15 + 16 + + 1 + Dismiss + + 3 + MQA + + + 1 + MCAwIDAuNTAxOTYwODE0AA + + + 3 + MC41AA + + + + + 299 + {{308, 517}, {151, 37}} + + NO + 1 + IBIPadFramework + 0 + 0 + + 1 + Restore + + + + + + + 315 + {{216, 35}, {108, 29}} + + NO + YES + 7 + NO + IBIPadFramework + Hmm... + + Helvetica-Bold + 24 + 16 + + + 1 + MSAxIDAAA + + + 1 + 10 + 1 + + + + 307 + {{80, 375}, {380, 96}} + + NO + YES + 7 + NO + IBIPadFramework + Would you like to restore it? + + Helvetica + 18 + 16 + + + 1 + MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA + + + 1 + 10 + 4 + 1 + + + + 307 + {{80, 87}, {380, 96}} + + NO + YES + 7 + NO + IBIPadFramework + It appears you didn't complete your last game! + + + 1 + MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA + + + 1 + 10 + 4 + 1 + + + + 300 + {{150, 191}, {240, 160}} + + NO + IBIPadFramework + + NSImage + denied.png + + + + {540, 640} + + + 4 + + 3 + + IBIPadFramework + + + + + YES + + + view + + + + 3 + + + + buttonReleased: + + + 7 + + 21 + + + + buttonReleased: + + + 7 + + 22 + + + + + YES + + 0 + + + + + + 1 + + + YES + + + + + + + + + + + -1 + + + File's Owner + + + -2 + + + + + 15 + + + + + 16 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 23 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 15.IBPluginDependency + 15.IBViewBoundsToFrameTransform + 16.IBPluginDependency + 16.IBViewBoundsToFrameTransform + 18.IBPluginDependency + 18.IBViewBoundsToFrameTransform + 19.IBPluginDependency + 19.IBViewBoundsToFrameTransform + 20.IBPluginDependency + 20.IBViewBoundsToFrameTransform + 23.IBPluginDependency + 23.IBViewBoundsToFrameTransform + + + YES + RestoreViewController + UIResponder + {{640, 244}, {540, 640}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDlIAAw2gAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABEAkAAw2gAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDXAAAw3UAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUKgAABDmYAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDFgAAw8cAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCoAAAw9uAAA + + + + + YES + + + YES + + + + + YES + + + YES + + + + 23 + + + + YES + + RestoreViewController + UIViewController + + buttonReleased: + id + + + buttonReleased: + + buttonReleased: + id + + + + IBProjectSource + Classes/RestoreViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIButton + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UIButton.h + + + + UIControl + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIControl.h + + + + UIImageView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIImageView.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIPrintFormatter.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBIPadFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../Hedgewars.xcodeproj + 3 + + denied.png + {240, 160} + + 132 + + diff -r 9e2a17ab178b -r 76a2246f18f0 project_files/HedgewarsMobile/Resources/RestoreViewController-iPhone.xib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Resources/RestoreViewController-iPhone.xib Sat May 28 23:40:42 2011 +0200 @@ -0,0 +1,582 @@ + + + + 1056 + 10J869 + 823 + 1038.35 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 132 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + YES + + + 300 + {{20, 20}, {240, 160}} + + NO + IBCocoaTouchFramework + + NSImage + denied.png + + + + + 315 + {{310, 32}, {108, 29}} + + NO + YES + 7 + NO + IBCocoaTouchFramework + Hmm... + + Helvetica-Bold + 24 + 16 + + + 1 + MSAxIDAAA + + + 3 + MQA + + 1 + 10 + 1 + + + + 307 + {{268, 74}, {192, 96}} + + NO + YES + 7 + NO + IBCocoaTouchFramework + It appears you didn't complete your last game! Would you like to restore it? + + Helvetica + 18 + 16 + + + 1 + MC45MDE5NjA3OTAyIDAuOTAxOTYwNzkwMiAwLjkwMTk2MDc5MDIAA + + + 1 + 10 + 4 + 1 + + + + 302 + {{53, 229}, {151, 37}} + + NO + IBCocoaTouchFramework + 0 + 0 + + Helvetica-Bold + 15 + 16 + + 1 + Dismiss + + + 1 + MCAwIDAuNTAxOTYwODE0AA + + + 3 + MC41AA + + + + + 299 + {{277, 229}, {151, 37}} + + NO + 1 + IBCocoaTouchFramework + 0 + 0 + + 1 + Restore + + + + + + {480, 320} + + + 4 + + 3 + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 3 + + + + buttonReleased: + + + 7 + + 11 + + + + buttonReleased: + + + 7 + + 12 + + + + + YES + + 0 + + + + + + 1 + + + YES + + + + + + + + + + -1 + + + File's Owner + + + -2 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + 10 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 10.IBPluginDependency + 10.IBViewBoundsToFrameTransform + 5.IBPluginDependency + 5.IBViewBoundsToFrameTransform + 6.IBPluginDependency + 6.IBViewBoundsToFrameTransform + 7.IBPluginDependency + 7.IBViewBoundsToFrameTransform + 8.IBPluginDependency + 8.IBViewBoundsToFrameTransform + + + YES + RestoreViewController + UIResponder + {{206, 423}, {480, 320}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUOKgABDZQAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUGgAABBoAAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUObAABCAAAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUOGAABClAAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUJUAABDZQAAA + + + + + YES + + + YES + + + + + YES + + + YES + + + + 14 + + + + YES + + RestoreViewController + UIViewController + + buttonReleased: + id + + + buttonReleased: + + buttonReleased: + id + + + + IBProjectSource + Classes/RestoreViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIButton + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UIButton.h + + + + UIControl + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIControl.h + + + + UIImageView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIImageView.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIPrintFormatter.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../Hedgewars.xcodeproj + 3 + + denied.png + {240, 160} + + 132 + +