display an empty table for missions
authorkoda
Sun, 21 Nov 2010 04:10:39 +0100
changeset 4349 8efa91f98274
parent 4348 d4f659e96a4a
child 4352 5a7b02cadc68
display an empty table for missions
hedgewars/uAmmos.pas
project_files/HedgewarsMobile/Classes/GameConfigViewController.m
project_files/HedgewarsMobile/Classes/MapConfigViewController.h
project_files/HedgewarsMobile/Classes/MapConfigViewController.m
project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h
project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m
project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj
--- a/hedgewars/uAmmos.pas	Tue Nov 16 20:04:20 2010 +0100
+++ b/hedgewars/uAmmos.pas	Sun Nov 21 04:10:39 2010 +0100
@@ -20,7 +20,7 @@
 
 unit uAmmos;
 interface
-uses uConsts, uTeams, uStats;
+uses uConsts, uTeams;
 
 procedure initModule;
 procedure freeModule;
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m	Sun Nov 21 04:10:39 2010 +0100
@@ -157,7 +157,6 @@
     int hogs = 0;
     for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams)
         hogs += [[teamData objectForKey:@"number"] intValue];
-    
     if (hogs > self.mapConfigViewController.maxHogs) {
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many hogs",@"")
                                                         message:NSLocalizedString(@"The map is too small for that many hogs",@"")
@@ -193,7 +192,7 @@
         return NO;
     }
 
-    // play if the gameflags are set correctly (divideteam works only with 2 teams
+    // play if the gameflags are set correctly (divideteam works only with 2 teams)
     NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),self.schemeWeaponConfigViewController.selectedScheme];
     NSArray *gameFlags = [[NSDictionary dictionaryWithContentsOfFile:schemePath] objectForKey:@"gamemod"];
     [schemePath release];
@@ -367,6 +366,7 @@
         [self.view addSubview:self.schemeWeaponConfigViewController.view];
     }
     [self.view addSubview:self.mapConfigViewController.view];
+    self.mapConfigViewController.externalController = schemeWeaponConfigViewController;
 
     [super viewDidLoad];
 }
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.h	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.h	Sun Nov 21 04:10:39 2010 +0100
@@ -22,10 +22,12 @@
 #import <UIKit/UIKit.h>
 #import "MapPreviewButtonView.h"
 
+@class SchemeWeaponConfigViewController;
+
 @interface MapConfigViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, MapPreviewViewDelegate> {
-    NSInteger oldValue;  //slider
-    NSInteger oldPage;   //segmented control
-    BOOL busy;
+    NSInteger oldValue;     // for the slider
+    NSInteger oldPage;      // for the segmented control
+    BOOL busy;              // for the preview button
 
     // objects read (mostly) by parent view
     NSInteger maxHogs;
@@ -48,6 +50,9 @@
     // internal objects
     NSIndexPath *lastIndexPath;
     NSArray *dataSourceArray;
+
+    // controller for mission state
+    SchemeWeaponConfigViewController *externalController;
 }
 
 
@@ -71,6 +76,9 @@
 @property (nonatomic,retain) NSIndexPath *lastIndexPath;
 @property (nonatomic,retain) NSArray *dataSourceArray;
 
+@property (nonatomic,assign) SchemeWeaponConfigViewController *externalController;
+
+
 -(IBAction) buttonPressed:(id) sender;
 
 -(IBAction) mapButtonPressed;
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m	Sun Nov 21 04:10:39 2010 +0100
@@ -23,13 +23,14 @@
 #import "PascalImports.h"
 #import "CommodityFunctions.h"
 #import "UIImageExtra.h"
+#import "SchemeWeaponConfigViewController.h"
 
 #define scIndex         self.segmentedControl.selectedSegmentIndex
 #define isRandomness()  (segmentedControl.selectedSegmentIndex == 0 || segmentedControl.selectedSegmentIndex == 2)
 
 @implementation MapConfigViewController
 @synthesize previewButton, maxHogs, seedCommand, templateFilterCommand, mapGenCommand, mazeSizeCommand, themeCommand, staticMapCommand,
-            missionCommand, tableView, maxLabel, sizeLabel, segmentedControl, slider, lastIndexPath, dataSourceArray, busy;
+            missionCommand, tableView, maxLabel, sizeLabel, segmentedControl, slider, lastIndexPath, dataSourceArray, busy, externalController;
 
 
 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
@@ -320,16 +321,17 @@
             mission = @"";
             [self sliderChanged:nil];
             self.slider.enabled = YES;
+            [externalController fillSections];
             break;
 
         case 1: // Map
-        case 3: // Mission
             mapgen = @"e$mapgen 0";
             // dummy values, these are set by -updatePreview -> -didSelectRowAtIndexPath -> -setDetailsForStaticMap
             staticmap = @"map Bamboo";
             mission = @"";
             self.slider.enabled = NO;
             self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
+            [externalController fillSections];
             break;
 
         case 2: // Maze
@@ -338,6 +340,17 @@
             mission = @"";
             [self sliderChanged:nil];
             self.slider.enabled = YES;
+            [externalController fillSections];
+            break;
+
+        case 3: // Mission
+            mapgen = @"e$mapgen 0";
+            // dummy values, these are set by -updatePreview -> -didSelectRowAtIndexPath -> -setDetailsForStaticMap
+            staticmap = @"map Bamboo";
+            mission = @"";
+            self.slider.enabled = NO;
+            self.sizeLabel.text = NSLocalizedString(@"No filter",@"");
+            [externalController emptySections];
             break;
 
         default:
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h	Sun Nov 21 04:10:39 2010 +0100
@@ -33,6 +33,7 @@
     NSString *selectedWeapon;
 
     UISwitch *syncSwitch;
+    BOOL hideSections;
 }
 
 @property (nonatomic,retain) NSArray *listOfSchemes;
@@ -43,4 +44,7 @@
 @property (nonatomic,retain) NSString *selectedWeapon;
 @property (nonatomic,retain) UISwitch *syncSwitch;
 
+-(void) fillSections;
+-(void) emptySections;
+
 @end
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m	Sun Nov 21 04:10:39 2010 +0100
@@ -23,6 +23,8 @@
 #import "CommodityFunctions.h"
 #import "SDL_uikitappdelegate.h"
 
+#define LABEL_TAG 57423
+
 @implementation SchemeWeaponConfigViewController
 @synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon, syncSwitch;
 
@@ -81,7 +83,10 @@
 #pragma mark -
 #pragma mark Table view data source
 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
-    return 3;
+    if (hideSections)
+        return 0;
+    else
+        return 3;
 }
 
 -(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
@@ -215,6 +220,45 @@
     [aTableView deselectRowAtIndexPath:indexPath animated:YES];
 }
 
+-(void) fillSections {
+    if (hideSections == YES) {
+        hideSections = NO;
+        NSRange range;
+        range.location = 0;
+        range.length = 3;
+        NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
+        [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
+        self.selectedScheme = @"Default.plist";
+        self.selectedWeapon = @"Default.plist";
+
+        self.tableView.scrollEnabled = YES;
+
+        [[self.view viewWithTag:LABEL_TAG] removeFromSuperview];
+    }
+}
+
+-(void) emptySections {
+    hideSections = YES;
+    NSRange range;
+    range.location = 0;
+    range.length = 3;
+    NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
+    [self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
+    self.selectedScheme = @"Default.plist";
+    self.selectedWeapon = @"Default.plist";
+
+    self.tableView.scrollEnabled = NO;
+
+    CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 60);
+    UILabel *theLabel = createBlueLabel(NSLocalizedString(@"Missions don't need further configuration",@""), frame);
+    theLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
+    theLabel.numberOfLines = 2;
+    theLabel.tag = LABEL_TAG;
+
+    [self.view addSubview:theLabel];
+    [theLabel release];
+}
+
 #pragma mark -
 #pragma mark Memory management
 -(void) didReceiveMemoryWarning {
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Tue Nov 16 20:04:20 2010 +0100
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj	Sun Nov 21 04:10:39 2010 +0100
@@ -1469,7 +1469,7 @@
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-		1D6058900D05DD3D006BFB54 /* Hedgewars */ = {
+		1D6058900D05DD3D006BFB54 /* Test Lua */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Hedgewars" */;
 			buildPhases = (
@@ -1560,7 +1560,7 @@
 			);
 			projectRoot = "";
 			targets = (
-				1D6058900D05DD3D006BFB54 /* Hedgewars */,
+				1D6058900D05DD3D006BFB54 /* Test Lua */,
 				928301160F10CAFC00CC5A3C /* fpc */,
 				6179928B114AE0C800BA94A9 /* UpdateDataFolder */,
 			);