project_files/HedgewarsMobile/Classes/SingleTeamViewController.m
branchios-revival
changeset 11217 e68b3e392091
parent 11183 b2112ed988cb
child 11254 407045ffe343
equal deleted inserted replaced
11216:76fd61a88c1e 11217:e68b3e392091
   304 #pragma mark Table view delegate
   304 #pragma mark Table view delegate
   305 -(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   305 -(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   306     NSInteger row = [indexPath row];
   306     NSInteger row = [indexPath row];
   307     NSInteger section = [indexPath section];
   307     NSInteger section = [indexPath section];
   308 
   308 
   309     if (2 == section) {
   309     if (2 == section)
   310         switch (row) {
   310     {
       
   311         switch (row)
       
   312         {
   311             case 0: // grave
   313             case 0: // grave
   312                 if (nil == gravesViewController)
   314             {
   313                     gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
   315                 GravesViewController *gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
   314 
   316 
   315                 [gravesViewController setTeamDictionary:teamDictionary];
   317                 [gravesViewController setTeamDictionary:teamDictionary];
   316                 [self.navigationController pushViewController:gravesViewController animated:YES];
   318                 [self.navigationController pushViewController:gravesViewController animated:YES];
   317                 break;
   319                 [gravesViewController release];
       
   320                 break;
       
   321             }
   318             case 1: // voice
   322             case 1: // voice
   319                 if (nil == voicesViewController)
   323             {
   320                     voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
   324                 VoicesViewController *voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
   321 
   325 
   322                 [voicesViewController setTeamDictionary:teamDictionary];
   326                 [voicesViewController setTeamDictionary:teamDictionary];
   323                 [self.navigationController pushViewController:voicesViewController animated:YES];
   327                 [self.navigationController pushViewController:voicesViewController animated:YES];
   324                 break;
   328                 [voicesViewController release];
       
   329                 break;
       
   330             }
   325             case 2: // fort
   331             case 2: // fort
   326                 if (nil == fortsViewController)
   332             {
   327                     fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
   333                 FortsViewController *fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
   328 
   334 
   329                 [fortsViewController setTeamDictionary:teamDictionary];
   335                 [fortsViewController setTeamDictionary:teamDictionary];
   330                 [self.navigationController pushViewController:fortsViewController animated:YES];
   336                 [self.navigationController pushViewController:fortsViewController animated:YES];
   331                 break;
   337                 [fortsViewController release];
       
   338                 break;
       
   339             }
   332             case 3: // flag
   340             case 3: // flag
   333                 if (nil == flagsViewController)
   341             {
   334                     flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
   342                 FlagsViewController *flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
   335 
   343 
   336                 [flagsViewController setTeamDictionary:teamDictionary];
   344                 [flagsViewController setTeamDictionary:teamDictionary];
   337                 [self.navigationController pushViewController:flagsViewController animated:YES];
   345                 [self.navigationController pushViewController:flagsViewController animated:YES];
   338                 break;
   346                 [flagsViewController release];
       
   347                 break;
       
   348             }
   339             case 4: // level
   349             case 4: // level
   340                 if (nil == levelViewController)
   350             {
   341                     levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
   351                 LevelViewController *levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
   342 
   352 
   343                 [levelViewController setTeamDictionary:teamDictionary];
   353                 [levelViewController setTeamDictionary:teamDictionary];
   344                 [self.navigationController pushViewController:levelViewController animated:YES];
   354                 [self.navigationController pushViewController:levelViewController animated:YES];
   345                 break;
   355                 [levelViewController release];
       
   356                 break;
       
   357             }
   346             default:
   358             default:
   347                 DLog(@"Nope");
   359                 DLog(@"Nope");
   348                 break;
   360                 break;
   349         }
   361         }
   350     } else {
   362     } else {
   369     [self showHogHatViewControllerForHogIndex:[indexPath row]];
   381     [self showHogHatViewControllerForHogIndex:[indexPath row]];
   370 }
   382 }
   371 
   383 
   372 - (void)showHogHatViewControllerForHogIndex:(NSInteger)hogIndex
   384 - (void)showHogHatViewControllerForHogIndex:(NSInteger)hogIndex
   373 {
   385 {
   374     if (nil == hogHatViewController)
   386     HogHatViewController *hogHatViewController = [[HogHatViewController alloc] initWithStyle:UITableViewStyleGrouped];
   375         hogHatViewController = [[HogHatViewController alloc] initWithStyle:UITableViewStyleGrouped];
       
   376     
   387     
   377     // cache the dictionary file of the team, so that other controllers can modify it
   388     // cache the dictionary file of the team, so that other controllers can modify it
   378     hogHatViewController.teamDictionary = self.teamDictionary;
   389     hogHatViewController.teamDictionary = self.teamDictionary;
   379     hogHatViewController.selectedHog = hogIndex;
   390     hogHatViewController.selectedHog = hogIndex;
   380     
   391     
   381     [self.navigationController pushViewController:hogHatViewController animated:YES];
   392     [self.navigationController pushViewController:hogHatViewController animated:YES];
       
   393     [hogHatViewController release];
   382 }
   394 }
   383 
   395 
   384 #pragma mark -
   396 #pragma mark -
   385 #pragma mark Memory management
   397 #pragma mark Memory management
   386 -(void) didReceiveMemoryWarning {
   398 -(void) didReceiveMemoryWarning {
   387     [super didReceiveMemoryWarning];
   399     [super didReceiveMemoryWarning];
   388     if (hogHatViewController.view.superview == nil)
       
   389         hogHatViewController = nil;
       
   390     if (gravesViewController.view.superview == nil)
       
   391         gravesViewController = nil;
       
   392     if (voicesViewController.view.superview == nil)
       
   393         voicesViewController = nil;
       
   394     if (fortsViewController.view.superview == nil)
       
   395         fortsViewController = nil;
       
   396     if (flagsViewController.view.superview == nil)
       
   397         flagsViewController = nil;
       
   398     if (levelViewController.view.superview == nil)
       
   399         levelViewController = nil;
       
   400     MSG_MEMCLEAN();
   400     MSG_MEMCLEAN();
   401 }
   401 }
   402 
   402 
   403 -(void) viewDidUnload {
   403 -(void) viewDidUnload {
   404     [[NSNotificationCenter defaultCenter] removeObserver:self];
   404     [[NSNotificationCenter defaultCenter] removeObserver:self];
   405     self.teamDictionary = nil;
   405     self.teamDictionary = nil;
   406     self.teamName = nil;
   406     self.teamName = nil;
   407     self.normalHogSprite = nil;
   407     self.normalHogSprite = nil;
   408     self.secondaryItems = nil;
   408     self.secondaryItems = nil;
   409     self.moreSecondaryItems = nil;
   409     self.moreSecondaryItems = nil;
   410     hogHatViewController = nil;
       
   411     gravesViewController = nil;
       
   412     voicesViewController = nil;
       
   413     flagsViewController = nil;
       
   414     fortsViewController = nil;
       
   415     levelViewController = nil;
       
   416     MSG_DIDUNLOAD();
   410     MSG_DIDUNLOAD();
   417     [super viewDidUnload];
   411     [super viewDidUnload];
   418 }
   412 }
   419 
   413 
   420 -(void) dealloc {
   414 -(void) dealloc {
   421     releaseAndNil(teamDictionary);
   415     releaseAndNil(teamDictionary);
   422     releaseAndNil(teamName);
   416     releaseAndNil(teamName);
   423     releaseAndNil(normalHogSprite);
   417     releaseAndNil(normalHogSprite);
   424     releaseAndNil(secondaryItems);
   418     releaseAndNil(secondaryItems);
   425     releaseAndNil(moreSecondaryItems);
   419     releaseAndNil(moreSecondaryItems);
   426     releaseAndNil(hogHatViewController);
       
   427     releaseAndNil(gravesViewController);
       
   428     releaseAndNil(fortsViewController);
       
   429     releaseAndNil(voicesViewController);
       
   430     releaseAndNil(flagsViewController);
       
   431     releaseAndNil(levelViewController);
       
   432     [super dealloc];
   420     [super dealloc];
   433 }
   421 }
   434 
   422 
   435 
   423 
   436 @end
   424 @end