36 self.cover = nil; |
36 self.cover = nil; |
37 [super viewDidUnload]; |
37 [super viewDidUnload]; |
38 } |
38 } |
39 |
39 |
40 -(void) viewDidLoad { |
40 -(void) viewDidLoad { |
41 |
|
42 char *ver; |
41 char *ver; |
43 HW_versionInfo(NULL, &ver); |
42 HW_versionInfo(NULL, &ver); |
44 NSString *versionNumber = [[NSString alloc] initWithCString:ver]; |
43 NSString *versionNumber = [[NSString alloc] initWithCString:ver]; |
45 self.versionLabel.text = versionNumber; |
44 self.versionLabel.text = versionNumber; |
46 [versionNumber release]; |
45 [versionNumber release]; |
47 |
46 |
48 // initialize some files the first time we load the game |
|
49 [NSThread detachNewThreadSelector:@selector(checkFirstRun) toTarget:self withObject:nil]; |
|
50 // listen to request to remove the modalviewcontroller |
47 // listen to request to remove the modalviewcontroller |
51 [[NSNotificationCenter defaultCenter] addObserver:self |
48 [[NSNotificationCenter defaultCenter] addObserver:self |
52 selector:@selector(dismissModalViewController) |
49 selector:@selector(dismissModalViewController) |
53 name: @"dismissModalView" |
50 name: @"dismissModalView" |
54 object:nil]; |
51 object:nil]; |
55 |
52 |
|
53 // initialize some files the first time we load the game |
|
54 NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"]; |
|
55 if (!([[NSFileManager defaultManager] fileExistsAtPath:filePath])) |
|
56 [NSThread detachNewThreadSelector:@selector(checkFirstRun) toTarget:self withObject:nil]; |
|
57 |
56 [super viewDidLoad]; |
58 [super viewDidLoad]; |
57 } |
59 } |
58 |
60 |
59 // this is called to verify whether it's the first time the app is launched |
61 // this is called to verify whether it's the first time the app is launched |
60 // if it is it blocks user interaction with an alertView until files are created |
62 // if it is it blocks user interaction with an alertView until files are created |
61 -(void) checkFirstRun { |
63 -(void) checkFirstRun { |
62 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
64 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
|
65 NSLog(@"First time run, creating settings files"); |
|
66 |
|
67 // show a popup with an indicator to make the user wait |
|
68 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Please wait",@"") |
|
69 message:nil |
|
70 delegate:nil |
|
71 cancelButtonTitle:nil |
|
72 otherButtonTitles:nil]; |
|
73 [alert show]; |
|
74 |
|
75 UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] |
|
76 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; |
|
77 indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50); |
|
78 [indicator startAnimating]; |
|
79 [alert addSubview:indicator]; |
|
80 [indicator release]; |
|
81 [alert release]; |
|
82 |
|
83 // create Default Team.plist |
|
84 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); |
|
85 NSString *teamsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"/Teams/"]; |
|
86 [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory |
|
87 withIntermediateDirectories:NO |
|
88 attributes:nil |
|
89 error:NULL]; |
|
90 |
|
91 NSMutableArray *hedgehogs = [[NSMutableArray alloc] init]; |
|
92 |
|
93 for (int i = 0; i < 8; i++) { |
|
94 NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i]; |
|
95 NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:@"100",@"health",@"0",@"level", |
|
96 hogName,@"hogname",@"NoHat",@"hat",nil]; |
|
97 [hogName release]; |
|
98 [hedgehogs addObject:hog]; |
|
99 [hog release]; |
|
100 } |
|
101 |
|
102 NSDictionary *defaultTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"4421353",@"color",@"0",@"hash", |
|
103 @"Default Team",@"teamname",@"Statue",@"grave",@"Plane",@"fort", |
|
104 @"Default",@"voicepack",@"hedgewars",@"flag",hedgehogs,@"hedgehogs",nil]; |
|
105 [hedgehogs release]; |
|
106 NSString *defaultTeamFile = [teamsDirectory stringByAppendingString:@"Default Team.plist"]; |
|
107 [defaultTeam writeToFile:defaultTeamFile atomically:YES]; |
|
108 [defaultTeam release]; |
|
109 |
|
110 // create settings.plist |
|
111 NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init]; |
63 |
112 |
64 NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"]; |
113 [saveDict setObject:@"" forKey:@"username"]; |
65 if (!([[NSFileManager defaultManager] fileExistsAtPath:filePath])) { |
114 [saveDict setObject:@"" forKey:@"password"]; |
66 // file not present, means that also other files are absent |
115 [saveDict setObject:@"1" forKey:@"music"]; |
67 NSLog(@"First time run, creating settings files"); |
116 [saveDict setObject:@"1" forKey:@"sounds"]; |
68 |
117 [saveDict setObject:@"0" forKey:@"alternate"]; |
69 // show a popup with an indicator to make the user wait |
|
70 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Please wait",@"") |
|
71 message:nil |
|
72 delegate:nil |
|
73 cancelButtonTitle:nil |
|
74 otherButtonTitles:nil]; |
|
75 [alert show]; |
|
76 |
118 |
77 UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] |
119 NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"]; |
78 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; |
120 [saveDict writeToFile:filePath atomically:YES]; |
79 indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50); |
121 [saveDict release]; |
80 [indicator startAnimating]; |
122 |
81 [alert addSubview:indicator]; |
123 // create other files |
82 [indicator release]; |
124 |
83 [alert release]; |
125 // ok let the user take control |
84 |
126 [alert dismissWithClickedButtonIndex:0 animated:YES]; |
85 // create Default Team.plist |
|
86 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); |
|
87 NSString *teamsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"/Teams/"]; |
|
88 [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory |
|
89 withIntermediateDirectories:NO |
|
90 attributes:nil |
|
91 error:NULL]; |
|
92 |
127 |
93 NSMutableArray *hedgehogs = [[NSMutableArray alloc] init]; |
|
94 |
|
95 for (int i = 0; i < 8; i++) { |
|
96 NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i]; |
|
97 NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:@"100",@"health",@"0",@"level", |
|
98 hogName,@"hogname",@"NoHat",@"hat",nil]; |
|
99 [hogName release]; |
|
100 [hedgehogs addObject:hog]; |
|
101 [hog release]; |
|
102 } |
|
103 |
|
104 NSDictionary *defaultTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"4421353",@"color",@"0",@"hash", |
|
105 @"Default Team",@"teamname",@"Statue",@"grave",@"Plane",@"fort", |
|
106 @"Default",@"voicepack",@"hedgewars",@"flag",hedgehogs,@"hedgehogs",nil]; |
|
107 [hedgehogs release]; |
|
108 NSString *defaultTeamFile = [teamsDirectory stringByAppendingString:@"Default Team.plist"]; |
|
109 [defaultTeam writeToFile:defaultTeamFile atomically:YES]; |
|
110 [defaultTeam release]; |
|
111 |
|
112 // create settings.plist |
|
113 NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init]; |
|
114 |
|
115 [saveDict setObject:@"" forKey:@"username"]; |
|
116 [saveDict setObject:@"" forKey:@"password"]; |
|
117 [saveDict setObject:@"1" forKey:@"music"]; |
|
118 [saveDict setObject:@"1" forKey:@"sounds"]; |
|
119 [saveDict setObject:@"0" forKey:@"alternate"]; |
|
120 |
|
121 [saveDict writeToFile:filePath atomically:YES]; |
|
122 [saveDict release]; |
|
123 |
|
124 // create other files |
|
125 |
|
126 // ok let the user take control |
|
127 [alert dismissWithClickedButtonIndex:0 animated:YES]; |
|
128 } |
|
129 [pool release]; |
128 [pool release]; |
130 [NSThread exit]; |
129 [NSThread exit]; |
131 } |
130 } |
132 |
131 |
133 #pragma mark - |
132 #pragma mark - |