106 } |
106 } |
107 |
107 |
108 - (void) presentViewController:(UIViewController *)vc |
108 - (void) presentViewController:(UIViewController *)vc |
109 { |
109 { |
110 [self presentViewController:vc animated:NO completion:nil]; |
110 [self presentViewController:vc animated:NO completion:nil]; |
111 [vc release]; |
111 } |
112 } |
112 |
113 |
113 - (void)viewWillAppear:(BOOL)animated { |
114 -(void) viewWillAppear:(BOOL)animated { |
|
115 [[AudioManagerController mainManager] playBackgroundMusic]; |
114 [[AudioManagerController mainManager] playBackgroundMusic]; |
116 [super viewWillAppear:animated]; |
115 [super viewWillAppear:animated]; |
117 } |
116 } |
118 |
117 |
119 #pragma mark - |
118 #pragma mark - |
120 -(IBAction) switchViews:(id) sender { |
119 - (IBAction)switchViews:(id)sender { |
121 UIButton *button = (UIButton *)sender; |
120 UIButton *button = (UIButton *)sender; |
122 UIAlertView *alert; |
121 UIAlertView *alert; |
123 NSString *xib = nil; |
122 NSString *xib = nil; |
124 |
123 |
125 [[AudioManagerController mainManager] playClickSound]; |
124 [[AudioManagerController mainManager] playClickSound]; |
126 switch (button.tag) { |
125 switch (button.tag) { |
127 case 0: |
126 case 0: { |
128 xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone"; |
127 xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone"; |
129 |
128 |
130 GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil]; |
129 GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil]; |
131 gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; |
130 gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; |
132 |
131 |
133 [self presentViewController:gcvc animated:YES completion:nil]; |
132 [self presentViewController:gcvc animated:YES completion:nil]; |
134 [gcvc release]; |
133 break; |
135 break; |
134 } |
136 case 2: |
135 case 2: |
137 if (IS_IPAD()) |
136 if (IS_IPAD()) |
138 { |
137 { |
139 // the contents on the right of the splitview, setting targetController to nil to avoid creating the table |
138 // the contents on the right of the splitview, setting targetController to nil to avoid creating the table |
140 SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init]; |
139 SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init]; |
141 rightController.targetController = nil; |
140 rightController.targetController = nil; |
142 UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController]; |
141 UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController]; |
143 [rightController release]; |
|
144 |
142 |
145 // the contens on the left of the splitview, setting targetController that will receive push/pop actions |
143 // the contens on the left of the splitview, setting targetController that will receive push/pop actions |
146 SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init]; |
144 SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init]; |
147 leftController.targetController = rightNavController.topViewController; |
145 leftController.targetController = rightNavController.topViewController; |
148 UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController]; |
146 UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController]; |
149 [leftController release]; |
|
150 |
147 |
151 MGSplitViewController *splitViewRootController = [[MGSplitViewController alloc] init]; |
148 MGSplitViewController *splitViewRootController = [[MGSplitViewController alloc] init]; |
152 splitViewRootController.delegate = nil; |
149 splitViewRootController.delegate = nil; |
153 splitViewRootController.showsMasterInPortrait = YES; |
150 splitViewRootController.showsMasterInPortrait = YES; |
154 splitViewRootController.viewControllers = [NSArray arrayWithObjects:leftNavController, rightNavController, nil]; |
151 splitViewRootController.viewControllers = [NSArray arrayWithObjects:leftNavController, rightNavController, nil]; |
155 [leftNavController release]; |
|
156 [rightNavController release]; |
|
157 |
152 |
158 [self presentViewController:splitViewRootController animated:YES completion:nil]; |
153 [self presentViewController:splitViewRootController animated:YES completion:nil]; |
159 [splitViewRootController release]; |
|
160 } |
154 } |
161 else |
155 else |
162 { |
156 { |
163 NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5]; |
157 NSMutableArray *tabBarNavigationControllers = [[NSMutableArray alloc] initWithCapacity:5]; |
164 |
158 |
165 UIViewController *generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
159 UIViewController *generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
166 generalSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"General",@"") imageName:@"flower" selectedImageName:@"flower_filled"]; |
160 generalSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"General",@"") imageName:@"flower" selectedImageName:@"flower_filled"]; |
167 UINavigationController *generalNavController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController]; |
161 UINavigationController *generalNavController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController]; |
168 [generalSettingsViewController release]; |
|
169 [tabBarNavigationControllers addObject:generalNavController]; |
162 [tabBarNavigationControllers addObject:generalNavController]; |
170 [generalNavController release]; |
|
171 |
163 |
172 UIViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
164 UIViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
173 teamSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Teams",@"") imageName:@"teams" selectedImageName:@"teams_filled"]; |
165 teamSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Teams",@"") imageName:@"teams" selectedImageName:@"teams_filled"]; |
174 UINavigationController *teamNavController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController]; |
166 UINavigationController *teamNavController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController]; |
175 [teamSettingsViewController release]; |
|
176 [tabBarNavigationControllers addObject:teamNavController]; |
167 [tabBarNavigationControllers addObject:teamNavController]; |
177 [teamNavController release]; |
|
178 |
168 |
179 UIViewController *weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
169 UIViewController *weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
180 weaponSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Weapons",@"") imageName:@"bullet" selectedImageName:@"bullet_filled"]; |
170 weaponSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Weapons",@"") imageName:@"bullet" selectedImageName:@"bullet_filled"]; |
181 UINavigationController *weaponNavController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController]; |
171 UINavigationController *weaponNavController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController]; |
182 [weaponSettingsViewController release]; |
|
183 [tabBarNavigationControllers addObject:weaponNavController]; |
172 [tabBarNavigationControllers addObject:weaponNavController]; |
184 [weaponNavController release]; |
|
185 |
173 |
186 UIViewController *schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
174 UIViewController *schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
187 schemeSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Schemes",@"") imageName:@"target" selectedImageName:@"target_filled"]; |
175 schemeSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Schemes",@"") imageName:@"target" selectedImageName:@"target_filled"]; |
188 UINavigationController *schemeNavController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController]; |
176 UINavigationController *schemeNavController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController]; |
189 [schemeSettingsViewController release]; |
|
190 [tabBarNavigationControllers addObject:schemeNavController]; |
177 [tabBarNavigationControllers addObject:schemeNavController]; |
191 [schemeNavController release]; |
|
192 |
178 |
193 UIViewController *supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
179 UIViewController *supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped]; |
194 supportViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Support",@"") imageName:@"heart" selectedImageName:@"heart_filled"]; |
180 supportViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Support",@"") imageName:@"heart" selectedImageName:@"heart_filled"]; |
195 UINavigationController *supportNavController = [[UINavigationController alloc] initWithRootViewController:supportViewController]; |
181 UINavigationController *supportNavController = [[UINavigationController alloc] initWithRootViewController:supportViewController]; |
196 [supportViewController release]; |
|
197 [tabBarNavigationControllers addObject:supportNavController]; |
182 [tabBarNavigationControllers addObject:supportNavController]; |
198 [supportNavController release]; |
|
199 |
183 |
200 UITabBarController *settingsTabController = [[UITabBarController alloc] init]; |
184 UITabBarController *settingsTabController = [[UITabBarController alloc] init]; |
201 settingsTabController.viewControllers = tabBarNavigationControllers; |
185 settingsTabController.viewControllers = tabBarNavigationControllers; |
202 [tabBarNavigationControllers release]; |
|
203 |
186 |
204 [self presentViewController:settingsTabController animated:YES completion:nil]; |
187 [self presentViewController:settingsTabController animated:YES completion:nil]; |
205 [settingsTabController release]; |
|
206 } |
188 } |
207 break; |
189 break; |
208 case 3: |
190 case 3: |
209 #ifdef DEBUG |
191 #ifdef DEBUG |
210 { |
192 { |
211 GameLogViewController *gameLogVC = [[GameLogViewController alloc] init]; |
193 GameLogViewController *gameLogVC = [[GameLogViewController alloc] init]; |
212 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:gameLogVC]; |
194 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:gameLogVC]; |
213 [gameLogVC release]; |
|
214 |
195 |
215 [self presentViewController:navController animated:YES completion:nil]; |
196 [self presentViewController:navController animated:YES completion:nil]; |
216 [navController release]; |
|
217 } |
197 } |
218 #else |
198 #else |
219 { |
199 { |
220 AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; |
200 AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; |
221 about.modalTransitionStyle = UIModalTransitionStyleCoverVertical; |
201 about.modalTransitionStyle = UIModalTransitionStyleCoverVertical; |
222 about.modalPresentationStyle = UIModalPresentationFormSheet; |
202 about.modalPresentationStyle = UIModalPresentationFormSheet; |
223 |
203 |
224 [self presentViewController:about animated:YES completion:nil]; |
204 [self presentViewController:about animated:YES completion:nil]; |
225 [about release]; |
|
226 } |
205 } |
227 #endif |
206 #endif |
228 break; |
207 break; |
229 case 4: |
208 case 4: |
230 { |
209 { |
231 SavedGamesViewController *savedgames = [[SavedGamesViewController alloc] initWithNibName:@"SavedGamesViewController" bundle:nil]; |
210 SavedGamesViewController *savedgames = [[SavedGamesViewController alloc] initWithNibName:@"SavedGamesViewController" bundle:nil]; |
232 savedgames.modalTransitionStyle = UIModalTransitionStyleCoverVertical; |
211 savedgames.modalTransitionStyle = UIModalTransitionStyleCoverVertical; |
233 savedgames.modalPresentationStyle = UIModalPresentationPageSheet; |
212 savedgames.modalPresentationStyle = UIModalPresentationPageSheet; |
234 |
213 |
235 [self presentViewController:savedgames animated:YES completion:nil]; |
214 [self presentViewController:savedgames animated:YES completion:nil]; |
236 [savedgames release]; |
|
237 } |
215 } |
238 break; |
216 break; |
239 case 5: |
217 case 5: |
240 { |
218 { |
241 xib = IS_IPAD() ? @"MissionTrainingViewController-iPad" : @"MissionTrainingViewController-iPhone"; |
219 xib = IS_IPAD() ? @"MissionTrainingViewController-iPad" : @"MissionTrainingViewController-iPhone"; |
242 MissionTrainingViewController *missions = [[MissionTrainingViewController alloc] initWithNibName:xib bundle:nil]; |
220 MissionTrainingViewController *missions = [[MissionTrainingViewController alloc] initWithNibName:xib bundle:nil]; |
243 missions.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; |
221 missions.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; |
244 missions.modalPresentationStyle = UIModalPresentationPageSheet; |
222 missions.modalPresentationStyle = UIModalPresentationPageSheet; |
245 |
223 |
246 [self presentViewController:missions animated:YES completion:nil]; |
224 [self presentViewController:missions animated:YES completion:nil]; |
247 [missions release]; |
225 } |
248 } |
226 break; |
249 break; |
227 case 6: { |
250 case 6: |
|
251 [GameInterfaceBridge registerCallingController:self]; |
228 [GameInterfaceBridge registerCallingController:self]; |
252 [GameInterfaceBridge startSimpleGame]; |
229 [GameInterfaceBridge startSimpleGame]; |
253 break; |
230 break; |
|
231 } |
254 case 7: |
232 case 7: |
255 { |
233 { |
256 xib = IS_IPAD() ? @"CampaignsViewController-iPad" : @"CampaignsViewController-iPhone"; |
234 xib = IS_IPAD() ? @"CampaignsViewController-iPad" : @"CampaignsViewController-iPhone"; |
257 CampaignsViewController *campaigns = [[CampaignsViewController alloc] initWithNibName:xib bundle:nil]; |
235 CampaignsViewController *campaigns = [[CampaignsViewController alloc] initWithNibName:xib bundle:nil]; |
258 UINavigationController *campaignNavigationController = [[UINavigationController alloc] initWithRootViewController:campaigns]; |
236 UINavigationController *campaignNavigationController = [[UINavigationController alloc] initWithRootViewController:campaigns]; |
259 [campaigns release]; |
|
260 |
237 |
261 campaignNavigationController.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; |
238 campaignNavigationController.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve; |
262 campaignNavigationController.modalPresentationStyle = UIModalPresentationPageSheet; |
239 campaignNavigationController.modalPresentationStyle = UIModalPresentationPageSheet; |
263 |
240 |
264 [self presentViewController:campaignNavigationController animated:YES completion:nil]; |
241 [self presentViewController:campaignNavigationController animated:YES completion:nil]; |
265 [campaignNavigationController release]; |
242 } |
266 } |
243 break; |
267 break; |
244 default: { |
268 default: |
|
269 alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented" |
245 alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented" |
270 message:@"Sorry, this feature is not yet implemented" |
246 message:@"Sorry, this feature is not yet implemented" |
271 delegate:nil |
247 delegate:nil |
272 cancelButtonTitle:@"Well, don't worry" |
248 cancelButtonTitle:@"Well, don't worry" |
273 otherButtonTitles:nil]; |
249 otherButtonTitles:nil]; |
274 [alert show]; |
250 [alert show]; |
275 [alert release]; |
251 break; |
276 break; |
252 } |
277 } |
253 } |
278 } |
254 } |
279 |
255 |
280 - (UITabBarItem *)tabBarItemWithTitle: (NSString *)title |
256 - (UITabBarItem *)tabBarItemWithTitle: (NSString *)title |
281 imageName: (NSString *)imageName |
257 imageName: (NSString *)imageName |
282 selectedImageName: (NSString *)selectedImageName |
258 selectedImageName: (NSString *)selectedImageName |
283 { |
259 { |
284 return [[[UITabBarItem alloc] initWithTitle:title |
260 return [[UITabBarItem alloc] initWithTitle:title |
285 image:[UIImage imageNamed:imageName] |
261 image:[UIImage imageNamed:imageName] |
286 selectedImage:[UIImage imageNamed:selectedImageName]] autorelease]; |
262 selectedImage:[UIImage imageNamed:selectedImageName]]; |
287 } |
263 } |
288 |
264 |
289 #pragma mark - |
265 #pragma mark - |
290 -(void) viewDidUnload { |
266 |
291 MSG_DIDUNLOAD(); |
267 - (void)didReceiveMemoryWarning { |
292 [super viewDidUnload]; |
|
293 } |
|
294 |
|
295 -(void) didReceiveMemoryWarning { |
|
296 MSG_MEMCLEAN(); |
268 MSG_MEMCLEAN(); |
297 [super didReceiveMemoryWarning]; |
269 [super didReceiveMemoryWarning]; |
298 } |
270 } |
299 |
271 |
300 -(void) dealloc { |
|
301 [_simpleGameButton release]; |
|
302 [_missionsButton release]; |
|
303 [_campaignButton release]; |
|
304 [super dealloc]; |
|
305 } |
|
306 |
|
307 @end |
272 @end |