project_files/HedgewarsMobile/Classes/GameConfigViewController.m
changeset 3778 2e61bb50cc57
parent 3739 97cf933e5bd2
child 3780 7c704e69242e
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Thu Aug 26 22:58:38 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Sat Aug 28 00:30:29 2010 +0200
@@ -11,10 +11,10 @@
 #import "CommodityFunctions.h"
 #import "TeamConfigViewController.h"
 #import "SchemeWeaponConfigViewController.h"
-
+#import "UIImageExtra.h"
 
 @implementation GameConfigViewController
-
+@synthesize hedgehogImage, imgContainer;
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
     return rotationManager(interfaceOrientation);
@@ -185,6 +185,14 @@
     self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+        // load a base image that will be updated in viewWill Load
+        NSString *filePath = [NSString stringWithFormat:@"%@/Hedgehog.png",GRAPHICS_DIRECTORY()];
+        UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:filePath andCutAt:CGRectMake(96, 0, 32, 32)];
+        self.hedgehogImage = sprite;
+        [sprite release];
+        srandom(time(NULL));
+        
+        // load other controllers
         if (mapConfigViewController == nil)
             mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPad" bundle:nil];
         mapConfigViewController.delegate = self;
@@ -213,10 +221,33 @@
 }
 
 -(void) viewWillAppear:(BOOL)animated {
+    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+        NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
+        int numberOfHats = [hatArray count];
+        if (self.imgContainer == nil)
+            self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
+        
+        for (int i=0; i < 1 + random()%40; i++) {
+            NSString *hat = [hatArray objectAtIndex:random()%numberOfHats];
+            
+            NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
+            UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
+            [hatFile release];
+            UIImage *hogWithHat = [self.hedgehogImage mergeWith:hatSprite atPoint:CGPointMake(0, -5)];
+            [hatSprite release];
+            
+            UIImageView *hog = [[UIImageView alloc] initWithImage:hogWithHat];
+            hog.frame = CGRectMake(10*(i+1)+random()%30, 30, 32, 32);
+            [self.imgContainer addSubview:hog];
+            [hog release];
+        }
+        [self.view addSubview:self.imgContainer];
+    }
+
     [mapConfigViewController viewWillAppear:animated];
     [teamConfigViewController viewWillAppear:animated];
     [schemeWeaponConfigViewController viewWillAppear:animated];
-    // ADD other controllers here
+    // add other controllers here and below
 
     [super viewWillAppear:animated];
 }
@@ -236,6 +267,11 @@
 }
 
 -(void) viewDidDisappear:(BOOL)animated {
+    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+        [self.imgContainer removeFromSuperview];
+        releaseAndNil(self.imgContainer);
+    }
+    
     [mapConfigViewController viewDidDisappear:animated];
     [teamConfigViewController viewDidDisappear:animated];
     [schemeWeaponConfigViewController viewDidDisappear:animated];
@@ -243,21 +279,25 @@
 }
 
 -(void) didReceiveMemoryWarning {
+    // Releases the view if it doesn't have a superview.
     if (activeController.view.superview == nil)
         activeController = nil;
-    // Releases the view if it doesn't have a superview.
-    [super didReceiveMemoryWarning];
-    // Release any cached data, images, etc that aren't in use.
     if (mapConfigViewController.view.superview == nil)
         mapConfigViewController = nil;
     if (teamConfigViewController.view.superview == nil)
         teamConfigViewController = nil;
     if (schemeWeaponConfigViewController.view.superview == nil)
-        schemeWeaponConfigViewController = nil;
+        schemeWeaponConfigViewController = nil;    
+    // Release any cached data, images, etc that aren't in use.
+
+    self.imgContainer = nil;
+    [super didReceiveMemoryWarning];
     MSG_MEMCLEAN();
 }
 
 -(void) viewDidUnload {
+    hedgehogImage = nil;
+    imgContainer = nil;
     activeController = nil;
     mapConfigViewController = nil;
     teamConfigViewController = nil;
@@ -267,6 +307,8 @@
 }
 
 -(void) dealloc {
+    [hedgehogImage release];
+    [imgContainer release];
     [mapConfigViewController release];
     [teamConfigViewController release];
     [schemeWeaponConfigViewController release];