engine: reorder GameFlags and update files, frontend and other stuff
authorkoda
Wed, 27 Oct 2010 01:33:25 +0200
changeset 4000 ddc4a09889e7
parent 3999 411e71912f4c
child 4001 cfd83b04e0be
engine: reorder GameFlags and update files, frontend and other stuff ifrontend: load scheme descriptions from file and automate them a little correct order is schemes, ammo, hogs properly fix an autoreleased uiswitch
QTfrontend/gamecfgwidget.cpp
hedgewars/uConsts.pas
project_files/HedgewarsMobile/Classes/AboutViewController.m
project_files/HedgewarsMobile/Classes/CommodityFunctions.h
project_files/HedgewarsMobile/Classes/GameSetup.m
project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m
project_files/HedgewarsMobile/Info.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Basketball.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist
project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist
project_files/HedgewarsMobile/Resources/Settings/credits.plist
project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist
project_files/HedgewarsMobile/Resources/Settings/iFrontend/credits.plist
project_files/HedgewarsMobile/Resources/Settings/iFrontend/gameFlags_en.plist
--- a/QTfrontend/gamecfgwidget.cpp	Tue Oct 26 19:04:51 2010 +0200
+++ b/QTfrontend/gamecfgwidget.cpp	Wed Oct 27 01:33:25 2010 +0200
@@ -101,47 +101,47 @@
     quint32 result = 0;
 
     if (schemeData(1).toBool())
-        result |= 0x01;
+        result |= 0x00001000;
     if (schemeData(2).toBool())
-        result |= 0x10;
+        result |= 0x00000010;
     if (schemeData(3).toBool())
-        result |= 0x04;
+        result |= 0x00000004;
     if (schemeData(4).toBool())
-        result |= 0x08;
+        result |= 0x00000008;
     if (schemeData(5).toBool())
-        result |= 0x20;
+        result |= 0x00000020;
     if (schemeData(6).toBool())
-        result |= 0x40;
+        result |= 0x00000040;
     if (schemeData(7).toBool())
-        result |= 0x80;
+        result |= 0x00000080;
     if (schemeData(8).toBool())
-        result |= 0x100;
+        result |= 0x00000100;
     if (schemeData(9).toBool())
-        result |= 0x200;
+        result |= 0x00000200;
     if (schemeData(10).toBool())
-        result |= 0x400;
+        result |= 0x00000400;
     if (schemeData(11).toBool())
-        result |= 0x800;
+        result |= 0x00000800;
     if (schemeData(12).toBool())
-        result |= 0x2000;
+        result |= 0x00002000;
     if (schemeData(13).toBool())
-        result |= 0x4000;
+        result |= 0x00004000;
     if (schemeData(14).toBool())
-        result |= 0x8000;
+        result |= 0x00008000;
     if (schemeData(15).toBool())
-        result |= 0x10000;
+        result |= 0x00010000;
     if (schemeData(16).toBool())
-        result |= 0x20000;
+        result |= 0x00020000;
     if (schemeData(17).toBool())
-        result |= 0x80000;
+        result |= 0x00040000;
     if (schemeData(18).toBool())
-        result |= 0x100000;
+        result |= 0x00080000;
     if (schemeData(19).toBool())
-        result |= 0x200000;
+        result |= 0x00100000;
     if (schemeData(20).toBool())
-        result |= 0x400000;
+        result |= 0x00200000;
     if (schemeData(21).toBool())
-        result |= 0x800000;
+        result |= 0x00400000;
 
     return result;
 }
--- a/hedgewars/uConsts.pas	Tue Oct 26 19:04:51 2010 +0200
+++ b/hedgewars/uConsts.pas	Wed Oct 27 01:33:25 2010 +0200
@@ -319,8 +319,6 @@
 {$ENDIF}
 
     cSendEmptyPacketTime = 1000;
-
-    // from uTriggers
     trigTurns = $80000001;
 
     // Training Flags
@@ -332,7 +330,7 @@
     tfTargetRespawn = $00000010;
 
     gfAny                = $FFFFFFFF;
-    gfForts              = $00000001;
+    gfOneClanMode        = $00000001;           // used in trainings
     gfMultiWeapon        = $00000002;           // used in trainings
     gfSolidLand          = $00000004;
     gfBorder             = $00000008;
@@ -344,18 +342,17 @@
     gfVampiric           = $00000200;
     gfKarma              = $00000400;
     gfArtillery          = $00000800;
-    gfOneClanMode        = $00001000;           // used for testing
+    gfForts              = $00001000;
     gfRandomOrder        = $00002000;
     gfKing               = $00004000;
     gfPlaceHog           = $00008000;
     gfSharedAmmo         = $00010000;
     gfDisableGirders     = $00020000;
-    //gfExplosives       = $00040000;           // unused flag, reuse it
-    gfDisableLandObjects = $00080000;
-    gfAISurvival         = $00100000;
-    gfInfAttack          = $00200000;
-    gfResetWeps          = $00400000;
-    gfPerHogAmmo         = $00800000;
+    gfDisableLandObjects = $00040000;
+    gfAISurvival         = $00080000;
+    gfInfAttack          = $00100000;
+    gfResetWeps          = $00200000;
+    gfPerHogAmmo         = $00400000;
     // NOTE: When adding new game flags, ask yourself
     // if a "game start notice" would be useful. If so,
     // add one in uWorld.pas - look for "AddGoal".
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.m	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m	Wed Oct 27 01:33:25 2010 +0200
@@ -33,7 +33,7 @@
     self.tableView.backgroundView = nil;
     self.tableView.allowsSelection = NO;
 
-    NSString *strPath = [NSString stringWithFormat:@"%@/Settings/credits.plist",[[NSBundle mainBundle] resourcePath]];
+    NSString *strPath = [NSString stringWithFormat:@"%@/credits.plist",IFRONTEND_DIRECTORY()];
     NSArray *array = [[NSArray alloc] initWithContentsOfFile:strPath];
     self.people = array;
     [array release];
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h	Wed Oct 27 01:33:25 2010 +0200
@@ -34,8 +34,8 @@
 #define GRAPHICS_DIRECTORY()    [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/"]
 #define HATS_DIRECTORY()        [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Hats/"]
 #define GRAVES_DIRECTORY()      [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Graves/"]
-#define BOTLEVELS_DIRECTORY()   [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Hedgehog/botlevels"]
-#define BTN_DIRECTORY()         [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Btn"]
+#define BOTLEVELS_DIRECTORY()   [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Hedgehog/botlevels/"]
+#define BTN_DIRECTORY()         [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Btn/"]
 #define FLAGS_DIRECTORY()       [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Flags/"]
 #define FORTS_DIRECTORY()       [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Forts/"]
 #define VOICES_DIRECTORY()      [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Sounds/voices/"]
@@ -43,6 +43,7 @@
 #define MAPS_DIRECTORY()        [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"]
 #define MISSIONS_DIRECTORY()    [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"]
 #define LOCALE_DIRECTORY()      [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Locale/"]
+#define IFRONTEND_DIRECTORY()   [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Settings/iFrontend/"]
 
 #define MSG_MEMCLEAN()          DLog(@"has cleaned up some memory");
 #define MSG_DIDUNLOAD()         DLog(@"unloaded");
--- a/project_files/HedgewarsMobile/Classes/GameSetup.m	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameSetup.m	Wed Oct 27 01:33:25 2010 +0200
@@ -165,58 +165,26 @@
     [schemePath release];
     NSArray *basicArray = [schemeDictionary objectForKey:@"basic"];
     NSArray *gamemodArray = [schemeDictionary objectForKey:@"gamemod"];
+    int i = 0;
     int result = 0;
-    int i = 0;
+    int mask = 0x00000004;
 
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000001;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000010;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000004;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000008;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000020;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000040;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000080;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000100;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000200;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000400;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00000800;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00002000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00004000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00008000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00010000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00020000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00080000;
-    if ([[gamemodArray objectAtIndex:i++] boolValue])
-        result |= 0x00100000;  
-
-    DLog(@"Sent %d flags",i);
+    // pack the gameflags in a single var and send it
+    for (NSNumber *value in gamemodArray) {
+        if ([value boolValue] == YES)
+            result |= mask;
+        mask <<= 1;
+    }
     NSString *flags = [[NSString alloc] initWithFormat:@"e$gmflags %d",result];
     [self sendToEngine:flags];
     [flags release];
 
-    i = 0;
     NSString *dmgMod = [[NSString alloc] initWithFormat:@"e$damagepct %d",[[basicArray objectAtIndex:i++] intValue]];
     [self sendToEngine:dmgMod];
     [dmgMod release];
 
     // support for endless games
-    int tentativeTurntime = [[basicArray objectAtIndex:i++] intValue];
+    NSInteger tentativeTurntime = [[basicArray objectAtIndex:i++] intValue];
     if (tentativeTurntime == 100)
         tentativeTurntime = 9999;
     NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000];
@@ -249,7 +217,7 @@
     [self sendToEngine:explosives];
     [explosives release];
 
-    DLog(@"Sent %d modes",i);
+    DLog(@"Sent %d flags and %d modes", [gamemodArray count], i);
     [schemeDictionary release];
     return result;
 }
@@ -367,15 +335,17 @@
                 // scheme (returns initial health)
                 NSInteger health = [self provideScheme:[self.gameConfig objectForKey:@"scheme"]];
 
+                // send an ammostore for each team
                 NSArray *teamsConfig = [self.gameConfig objectForKey:@"teams_list"];
+                [self provideAmmoData:[self.gameConfig objectForKey:@"weapon"] forPlayingTeams:[teamsConfig count]];
+
+                // finally add hogs
                 for (NSDictionary *teamData in teamsConfig) {
                     [self provideTeamData:[teamData objectForKey:@"team"]
                                   forHogs:[[teamData objectForKey:@"number"] intValue]
                                withHealth:health
                                   ofColor:[teamData objectForKey:@"color"]];
                 }
-
-                [self provideAmmoData:[self.gameConfig objectForKey:@"weapon"] forPlayingTeams:[teamsConfig count]];
                 break;
             case '?':
                 DLog(@"Ping? Pong!");
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m	Wed Oct 27 01:33:25 2010 +0200
@@ -39,88 +39,17 @@
 #pragma mark View lifecycle
 -(void) viewDidLoad {
     [super viewDidLoad];
+    NSString *path = nil;
 
     // title, description, image name (+btn)
-    NSArray *mods = [[NSArray alloc] initWithObjects:
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Fort Mode",@""),@"title",
-                      NSLocalizedString(@"Defend your fort and destroy the opponents (two team colours max)",@""),@"description",
-                      @"Forts",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Divide Team",@""),@"title",
-                      NSLocalizedString(@"Teams will start on opposite sides of the terrain (two team colours max)",@""),@"description",
-                      @"TeamsDivide",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Solid Land",@""),@"title",
-                      NSLocalizedString(@"Land can not be destroyed",@""),@"description",
-                      @"Solid",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Add Border",@""),@"title",
-                      NSLocalizedString(@"Add an indestructable border around the terrain",@""),@"description",
-                      @"Border",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Low Gravity",@""),@"title",
-                      NSLocalizedString(@"Lower gravity",@""),@"description",
-                      @"LowGravity",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Laser Sight",@""),@"title",
-                      NSLocalizedString(@"Assisted aiming with laser sight",@""),@"description",
-                      @"LaserSight",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Invulnerable",@""),@"title",
-                      NSLocalizedString(@"All hogs have a personal forcefield",@""),@"description",
-                      @"Invulnerable",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Add Mines",@""),@"title",
-                      NSLocalizedString(@"Enable random mines",@""),@"description",
-                      @"Mines",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Vampirism Mode",@""),@"title",
-                      NSLocalizedString(@"Gain 80% of the damage you do back in health",@""),@"description",
-                      @"Vampiric",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Karma Mode",@""),@"title",
-                      NSLocalizedString(@"Share your opponents pain, share their damage",@""),@"description",
-                      @"Karma",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Artillery Mode",@""),@"title",
-                      NSLocalizedString(@"Your hogs are unable to move, test your aim",@""),@"description",
-                      @"Artillery",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Random Order",@""),@"title",
-                      NSLocalizedString(@"Order of play is random instead of in room order",@""),@"description",
-                      @"RandomOrder",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"King Mode",@""),@"title",
-                      NSLocalizedString(@"Play with a King. If he dies, your side loses",@""),@"description",
-                      @"King",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys: NSLocalizedString(@"Place Hedgehogs",@""),@"title",
-                      NSLocalizedString(@"Take turns placing your hedgehogs pre-game",@""),@"description",
-                      @"PlaceHog",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Clan Shares Ammo",@""),@"title",
-                      NSLocalizedString(@"Ammo is shared between all clan teams",@""),@"description",
-                      @"SharedAmmo",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Disable Girders",@""),@"title",
-                      NSLocalizedString(@"Disable girders when generating random maps",@""),@"description",
-                      @"DisableGirders",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Disable Land Objects",@""),@"title",
-                      NSLocalizedString(@"Disable land objects when generating maps",@""),@"description",
-                      @"DisableLandObjects",@"image",nil],
-                     [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"AI Survival Mode",@""),@"title",
-                      NSLocalizedString(@"AI-controlled hogs respawn on death",@""),@"description",
-                      @"AISurvival",@"image",nil],
-                     nil];
+    path = [NSString stringWithFormat:@"%@/gameFlags_en.plist",IFRONTEND_DIRECTORY()];
+    NSArray *mods = [[NSArray alloc] initWithContentsOfFile:path];
     self.gameModifierArray = mods;
     [mods release];
 
     // title, image name (+icon), default value, max value, min value
-    NSArray *basicSettings = [[NSArray alloc] initWithObjects:
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Damage Modifier",@""),@"title",@"Damage",@"image",
-                               [NSNumber numberWithInt:100],@"default",[NSNumber numberWithInt:10],@"min",[NSNumber numberWithInt:300],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Turn Time",@""),@"title",@"Time",@"image",
-                               [NSNumber numberWithInt:45],@"default",[NSNumber numberWithInt:1],@"min",[NSNumber numberWithInt:100],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Initial Health",@""),@"title",@"Health",@"image",
-                               [NSNumber numberWithInt:100],@"default",[NSNumber numberWithInt:50],@"min",[NSNumber numberWithInt:200],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Sudden Death Timeout",@""),@"title",@"SuddenDeath",@"image",
-                               [NSNumber numberWithInt:15],@"default",[NSNumber numberWithInt:0],@"min",[NSNumber numberWithInt:50],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Crate Drops",@""),@"title",@"Box",@"image",
-                               [NSNumber numberWithInt:5],@"default",[NSNumber numberWithInt:0],@"min",[NSNumber numberWithInt:9],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Mines Time",@""),@"title",@"Time",@"image",
-                               [NSNumber numberWithInt:3],@"default",[NSNumber numberWithInt:0],@"min",[NSNumber numberWithInt:3],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Mines Number",@""),@"title",@"Mine",@"image",
-                               [NSNumber numberWithInt:4],@"default",[NSNumber numberWithInt:1],@"min",[NSNumber numberWithInt:80],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Dud Mines Probability",@""),@"title",@"Dud",@"image",
-                               [NSNumber numberWithInt:0],@"default",[NSNumber numberWithInt:0],@"min",[NSNumber numberWithInt:100],@"max",nil],
-                              [NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Explosives",@""),@"title",@"Damage",@"image",
-                               [NSNumber numberWithInt:2],@"default",[NSNumber numberWithInt:0],@"min",[NSNumber numberWithInt:40],@"max",nil],
-                              nil];
+    path = [NSString stringWithFormat:@"%@/basicFlags_en.plist",IFRONTEND_DIRECTORY()];
+    NSArray *basicSettings = [[NSArray alloc] initWithContentsOfFile:path];
     self.basicSettingList = basicSettings;
     [basicSettings release];
 
@@ -177,10 +106,10 @@
             return 2;
             break;
         case 1:
-            return [self.basicSettingList count];
+            return [[self.schemeDictionary objectForKey:@"basic"] count];
             break;
         case 2:
-            return [self.gameModifierArray count];
+            return [[self.schemeDictionary objectForKey:@"gamemod"] count];
         default:
             break;
     }
@@ -259,7 +188,7 @@
                 if ([oneView isMemberOfClass:[UISlider class]]) {
                     cellSlider = (UISlider *)oneView;
                     break;
-                }
+                } 
             }
             cellSlider.tag = SLIDER_TAG + row;
             cellSlider.value = [[[self.schemeDictionary objectForKey:@"basic"] objectAtIndex:row] floatValue];
@@ -282,21 +211,24 @@
                 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                                reuseIdentifier:CellIdentifier2] autorelease];
                 UISwitch *onOff = [[UISwitch alloc] init];
-                onOff.tag = SWITCH_TAG+row;
                 [onOff addTarget:self action:@selector(toggleSwitch:) forControlEvents:UIControlEventValueChanged];
                 cell.accessoryView = onOff;
                 [onOff release];
             }
 
+            UISwitch *switcher = (UISwitch *)cell.accessoryView;
+            switcher.tag = SWITCH_TAG + row;
+            [switcher setOn:[[[self.schemeDictionary objectForKey:@"gamemod"] objectAtIndex:row] boolValue] animated:NO];
+            
             UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/btn%@.png",BTN_DIRECTORY(),[[self.gameModifierArray objectAtIndex:row] objectForKey:@"image"]]];
             cell.imageView.image = image;
             [image release];
             [cell.imageView.layer setCornerRadius:7.0f];
-            [cell.imageView.layer setBorderWidth:1];
             [cell.imageView.layer setMasksToBounds:YES];
             cell.textLabel.text = [[self.gameModifierArray objectAtIndex:row] objectForKey:@"title"];
             cell.detailTextLabel.text = [[self.gameModifierArray objectAtIndex:row] objectForKey:@"description"];
-            [(UISwitch *)cell.accessoryView setOn:[[[self.schemeDictionary objectForKey:@"gamemod"] objectAtIndex:row] boolValue] animated:NO];
+            cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
+            cell.detailTextLabel.minimumFontSize = 6;
 
             cell.selectionStyle = UITableViewCellSelectionStyleNone;
         }
--- a/project_files/HedgewarsMobile/Info.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Info.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -28,7 +28,7 @@
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>1.1</string>
+	<string>1.2</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>UIApplicationExitsOnSuspend</key>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -23,10 +23,13 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
+		<false/>
+		<false/>
+		<false/>
 		<true/>
 		<false/>
 		<false/>
-		<false/>
 		<true/>
 		<false/>
 		<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Basketball.plist	Tue Oct 26 19:04:51 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>basic</key>
-	<array>
-		<integer>100</integer>
-		<integer>30</integer>
-		<integer>100</integer>
-		<integer>15</integer>
-		<integer>0</integer>
-		<integer>3</integer>
-		<integer>4</integer>
-		<integer>0</integer>
-		<integer>0</integer>
-	</array>
-	<key>gamemod</key>
-	<array>
-		<false/>
-		<false/>
-		<true/>
-		<true/>
-		<true/>
-		<false/>
-		<true/>
-		<false/>
-		<false/>
-		<false/>
-		<false/>
-		<true/>
-		<false/>
-		<false/>
-		<true/>
-		<true/>
-		<true/>
-		<false/>
-	</array>
-</dict>
-</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -22,8 +22,8 @@
 		<false/>
 		<false/>
 		<false/>
+		<true/>
 		<false/>
-		<true/>
 		<false/>
 		<false/>
 		<false/>
@@ -34,6 +34,9 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
+		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -22,8 +22,8 @@
 		<false/>
 		<false/>
 		<false/>
+		<true/>
 		<false/>
-		<true/>
 		<false/>
 		<false/>
 		<false/>
@@ -32,7 +32,10 @@
 		<false/>
 		<true/>
 		<true/>
-		<true/>
+		<false/>
+		<false/>
+		<false/>
+		<false/>
 		<false/>
 	</array>
 </dict>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -34,6 +34,9 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
+		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -17,7 +17,6 @@
 	<key>gamemod</key>
 	<array>
 		<false/>
-		<false/>
 		<true/>
 		<true/>
 		<false/>
@@ -27,12 +26,16 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 		<true/>
 		<false/>
 		<false/>
 		<true/>
 		<true/>
-		<true/>
+		<false/>
+		<false/>
+		<false/>
+		<false/>
 		<false/>
 	</array>
 </dict>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -22,11 +22,14 @@
 		<false/>
 		<false/>
 		<false/>
+		<true/>
+		<false/>
+		<false/>
+		<false/>
 		<false/>
 		<true/>
 		<false/>
 		<false/>
-		<false/>
 		<true/>
 		<false/>
 		<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist	Tue Oct 26 19:04:51 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -18,7 +18,6 @@
 	<array>
 		<false/>
 		<false/>
-		<false/>
 		<true/>
 		<false/>
 		<false/>
@@ -27,6 +26,7 @@
 		<false/>
 		<false/>
 		<false/>
+		<false/>
 		<true/>
 		<false/>
 		<false/>
@@ -34,6 +34,9 @@
 		<true/>
 		<true/>
 		<false/>
+		<false/>
+		<false/>
+		<false/>
 	</array>
 </dict>
 </plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/credits.plist	Tue Oct 26 19:04:51 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<array>
-	<array>
-		<string>Andrey &quot;UnC0Rr&quot; Korotaev</string>
-		<string>Igor &quot;Displacer&quot; Ulyanov</string>
-		<string>Derek &quot;Nemo&quot; Pomery</string>
-		<string>Martin &quot;Affect&quot; Boze</string>
-		<string>David &quot;Krawek&quot; Cuadrado</string>
-		<string>Martin &quot;Ttsmj&quot; Minarik</string>
-		<string>Kristian &quot;TheXception&quot; Lehmann</string>
-		<string>Vittorio &quot;Koda&quot; Giovara</string>
-		<string>Mario &quot;Smaxx&quot; Liebisch</string>
-		<string>Carlos &quot;Palewolf&quot; Vives</string>
-		<string>Richard &quot;Sheepluva&quot; Korlyi</string>
-		<string>Henning &quot;Prg&quot; Kühn</string>
-	</array>
-	<array>
-		<string>Tiyuri</string>
-		<string>Joshua Frese</string>
-		<string>Stanko Tadić</string>
-		<string>Julien Koesten</string>
-		<string>Joshua O&apos;Sullivan</string>
-		<string>Nils Luck</string>
-		<string>Trey Perry</string>
-	</array>
-	<array>
-		<string>Stephen &quot;Armagon&quot; Alexander</string>
-		<string>Finn &quot;Tiyuri&quot; Brice</string>
-		<string>Jonatan Nilsson</string>
-		<string>Daniel Martin</string>
-	</array>
-	<array>
-		<string>Romulo Fernandes Machado</string>
-		<string>Svetoslav Stefanov</string>
-		<string>Petr Řezáček</string>
-		<string>Jie Luo</string>
-		<string>Andrey Korotaev</string>
-		<string>Nina Kuisma</string>
-		<string>Antoine Turmel</string>
-		<string>Peter Hüwe, Mario Liebisch</string>
-		<string>Luca Bonora</string>
-		<string>Adam Etienne</string>
-		<string>Maciej Mroziński, Wojciech Latkowski, Maciej Górny</string>
-		<string>Fábio Canário</string>
-		<string>Andrey Korotaev</string>
-		<string>Jose Riha</string>
-		<string>Carlos Vives</string>
-		<string>Niklas Grahn</string>
-		<string>Eugene V. Lyubimkin</string>
-	</array>
-	<array>
-		<string>Aleksey Andreev</string>
-		<string>Aleksander Rudalev</string>
-		<string>Natasha Stafeeva</string>
-		<string>Adam Higerd</string>
-	</array>
-	<array>
-		<string>Engine, frontend, net server author</string>
-		<string>Desktop frontend improvements</string>
-		<string>Many engine and frontend improvements</string>
-		<string>Drillrocket, Ballgun, RC Plane weapons</string>
-		<string>Mine number and time game settings</string>
-		<string>Desktop frontend improvements</string>
-		<string>Desktop frontend improvements</string>
-		<string>Mac OS X and iPhone version</string>
-		<string>Gamepad support, OpenGL wizard</string>
-		<string>Many engine improvements and graphics</string>
-		<string>Many engine and server improvements</string>
-		<string>Maze maps</string>
-	</array>
-	<array>
-		<string></string>
-		<string></string>
-		<string></string>
-		<string></string>
-		<string></string>
-		<string></string>
-		<string>Some hats</string>
-	</array>
-	<array>
-		<string>Hedgehogs voice</string>
-		<string></string>
-		<string></string>
-		<string></string>
-	</array>
-	<array>
-		<string>Brazilian Portuguese</string>
-		<string>Bulgarian</string>
-		<string>Czech</string>
-		<string>Chinese</string>
-		<string>English</string>
-		<string>Finnish</string>
-		<string>French</string>
-		<string>German</string>
-		<string>Italian</string>
-		<string>Japanese</string>
-		<string>Polish</string>
-		<string>Portuguese</string>
-		<string>Russian</string>
-		<string>Slovak</string>
-		<string>Spanish</string>
-		<string>Swedish</string>
-		<string>Ukrainian</string>
-	</array>
-	<array>
-		<string></string>
-		<string></string>
-		<string></string>
-		<string></string>
-	</array>
-</array>
-</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<dict>
+		<key>default</key>
+		<integer>100</integer>
+		<key>image</key>
+		<string>Damage</string>
+		<key>max</key>
+		<integer>300</integer>
+		<key>min</key>
+		<integer>10</integer>
+		<key>title</key>
+		<string>Damage Modifier</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>45</integer>
+		<key>image</key>
+		<string>Time</string>
+		<key>max</key>
+		<integer>100</integer>
+		<key>min</key>
+		<integer>1</integer>
+		<key>title</key>
+		<string>Turn Time</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>100</integer>
+		<key>image</key>
+		<string>Health</string>
+		<key>max</key>
+		<integer>200</integer>
+		<key>min</key>
+		<integer>50</integer>
+		<key>title</key>
+		<string>Initial Health</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>15</integer>
+		<key>image</key>
+		<string>SuddenDeath</string>
+		<key>max</key>
+		<integer>50</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Sudden Death Timeout</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>5</integer>
+		<key>image</key>
+		<string>Box</string>
+		<key>max</key>
+		<integer>9</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Crate Drops</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>3</integer>
+		<key>image</key>
+		<string>Time</string>
+		<key>max</key>
+		<integer>3</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Mines Time</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>4</integer>
+		<key>image</key>
+		<string>Mine</string>
+		<key>max</key>
+		<integer>80</integer>
+		<key>min</key>
+		<integer>1</integer>
+		<key>title</key>
+		<string>Mines Number</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>0</integer>
+		<key>image</key>
+		<string>Dud</string>
+		<key>max</key>
+		<integer>100</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Dud Mines Probability</string>
+	</dict>
+	<dict>
+		<key>default</key>
+		<integer>2</integer>
+		<key>image</key>
+		<string>Damage</string>
+		<key>max</key>
+		<integer>40</integer>
+		<key>min</key>
+		<integer>0</integer>
+		<key>title</key>
+		<string>Explosives</string>
+	</dict>
+</array>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/credits.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<array>
+		<string>Andrey &quot;UnC0Rr&quot; Korotaev</string>
+		<string>Igor &quot;Displacer&quot; Ulyanov</string>
+		<string>Derek &quot;Nemo&quot; Pomery</string>
+		<string>Martin &quot;Affect&quot; Boze</string>
+		<string>David &quot;Krawek&quot; Cuadrado</string>
+		<string>Martin &quot;Ttsmj&quot; Minarik</string>
+		<string>Kristian &quot;TheXception&quot; Lehmann</string>
+		<string>Vittorio &quot;Koda&quot; Giovara</string>
+		<string>Mario &quot;Smaxx&quot; Liebisch</string>
+		<string>Carlos &quot;Palewolf&quot; Vives</string>
+		<string>Richard &quot;Sheepluva&quot; Korlyi</string>
+		<string>Henning &quot;Prg&quot; Kühn</string>
+	</array>
+	<array>
+		<string>Tiyuri</string>
+		<string>Joshua Frese</string>
+		<string>Stanko Tadić</string>
+		<string>Julien Koesten</string>
+		<string>Joshua O&apos;Sullivan</string>
+		<string>Nils Luck</string>
+		<string>Trey Perry</string>
+	</array>
+	<array>
+		<string>Stephen &quot;Armagon&quot; Alexander</string>
+		<string>Finn &quot;Tiyuri&quot; Brice</string>
+		<string>Jonatan Nilsson</string>
+		<string>Daniel Martin</string>
+	</array>
+	<array>
+		<string>Romulo Fernandes Machado</string>
+		<string>Svetoslav Stefanov</string>
+		<string>Petr Řezáček</string>
+		<string>Jie Luo</string>
+		<string>Andrey Korotaev</string>
+		<string>Nina Kuisma</string>
+		<string>Antoine Turmel</string>
+		<string>Peter Hüwe, Mario Liebisch</string>
+		<string>Luca Bonora</string>
+		<string>Adam Etienne</string>
+		<string>Maciej Mroziński, Wojciech Latkowski, Maciej Górny</string>
+		<string>Fábio Canário</string>
+		<string>Andrey Korotaev</string>
+		<string>Jose Riha</string>
+		<string>Carlos Vives</string>
+		<string>Niklas Grahn</string>
+		<string>Eugene V. Lyubimkin</string>
+	</array>
+	<array>
+		<string>Aleksey Andreev</string>
+		<string>Aleksander Rudalev</string>
+		<string>Natasha Stafeeva</string>
+		<string>Adam Higerd</string>
+	</array>
+	<array>
+		<string>Engine, frontend, net server author</string>
+		<string>Desktop frontend improvements</string>
+		<string>Many engine and frontend improvements</string>
+		<string>Drillrocket, Ballgun, RC Plane weapons</string>
+		<string>Mine number and time game settings</string>
+		<string>Desktop frontend improvements</string>
+		<string>Desktop frontend improvements</string>
+		<string>Mac OS X and iPhone version</string>
+		<string>Gamepad support, OpenGL wizard</string>
+		<string>Many engine improvements and graphics</string>
+		<string>Many engine and server improvements</string>
+		<string>Maze maps</string>
+	</array>
+	<array>
+		<string></string>
+		<string></string>
+		<string></string>
+		<string></string>
+		<string></string>
+		<string></string>
+		<string>Some hats</string>
+	</array>
+	<array>
+		<string>Hedgehogs voice</string>
+		<string></string>
+		<string></string>
+		<string></string>
+	</array>
+	<array>
+		<string>Brazilian Portuguese</string>
+		<string>Bulgarian</string>
+		<string>Czech</string>
+		<string>Chinese</string>
+		<string>English</string>
+		<string>Finnish</string>
+		<string>French</string>
+		<string>German</string>
+		<string>Italian</string>
+		<string>Japanese</string>
+		<string>Polish</string>
+		<string>Portuguese</string>
+		<string>Russian</string>
+		<string>Slovak</string>
+		<string>Spanish</string>
+		<string>Swedish</string>
+		<string>Ukrainian</string>
+	</array>
+	<array>
+		<string></string>
+		<string></string>
+		<string></string>
+		<string></string>
+	</array>
+</array>
+</plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/gameFlags_en.plist	Wed Oct 27 01:33:25 2010 +0200
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<dict>
+		<key>description</key>
+		<string>Land can not be destroyed</string>
+		<key>image</key>
+		<string>Solid</string>
+		<key>title</key>
+		<string>Solid Land</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Add an indestructable border around the terrain</string>
+		<key>image</key>
+		<string>Border</string>
+		<key>title</key>
+		<string>Add Border</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Teams will start on opposite sides of the terrain (two teams only)</string>
+		<key>image</key>
+		<string>TeamsDivide</string>
+		<key>title</key>
+		<string>Divide Team</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Lower gravity</string>
+		<key>image</key>
+		<string>LowGravity</string>
+		<key>title</key>
+		<string>Low Gravity</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Assisted aiming with laser sight</string>
+		<key>image</key>
+		<string>LaserSight</string>
+		<key>title</key>
+		<string>Laser Sight</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>All hogs have a personal forcefield</string>
+		<key>image</key>
+		<string>Invulnerable</string>
+		<key>title</key>
+		<string>Invulnerable</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Enable random mines</string>
+		<key>image</key>
+		<string>Mines</string>
+		<key>title</key>
+		<string>Add Mines</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Gain 80% of the damage you do back in health</string>
+		<key>image</key>
+		<string>Vampiric</string>
+		<key>title</key>
+		<string>Vampirism Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Share your opponents pain, share their damage</string>
+		<key>image</key>
+		<string>Karma</string>
+		<key>title</key>
+		<string>Karma Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Your hogs are unable to move, test your aim</string>
+		<key>image</key>
+		<string>Artillery</string>
+		<key>title</key>
+		<string>Artillery Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Defend your fort and destroy the opponents (two teams only)</string>
+		<key>image</key>
+		<string>Forts</string>
+		<key>title</key>
+		<string>Fort Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Order of play is random instead of in room order</string>
+		<key>image</key>
+		<string>RandomOrder</string>
+		<key>title</key>
+		<string>Random Order</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Play with a King. If he dies, your side loses</string>
+		<key>image</key>
+		<string>King</string>
+		<key>title</key>
+		<string>King Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Take turns placing your hedgehogs pre-game</string>
+		<key>image</key>
+		<string>PlaceHog</string>
+		<key>title</key>
+		<string>Place Hedgehogs</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Ammo is shared between all clan teams</string>
+		<key>image</key>
+		<string>SharedAmmo</string>
+		<key>title</key>
+		<string>Clan Shares Ammo</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Disable girders when generating random maps</string>
+		<key>image</key>
+		<string>DisableGirders</string>
+		<key>title</key>
+		<string>Disable Girders</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Disable land objects when generating maps</string>
+		<key>image</key>
+		<string>DisableLandObjects</string>
+		<key>title</key>
+		<string>Disable Land Objects</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>AI-controlled hogs respawn on death</string>
+		<key>image</key>
+		<string>AISurvival</string>
+		<key>title</key>
+		<string>AI Survival Mode</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Attacking does not end your turn</string>
+		<key>image</key>
+		<string>InfAttack</string>
+		<key>title</key>
+		<string>Unlimited Attacks</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Weapons are reset to starting values each turn</string>
+		<key>image</key>
+		<string>ResetWeps</string>
+		<key>title</key>
+		<string>Reset Weapons</string>
+	</dict>
+	<dict>
+		<key>description</key>
+		<string>Each hedgehog has its own ammo.</string>
+		<key>image</key>
+		<string>PerHogAmmo</string>
+		<key>title</key>
+		<string>Per Hedgehog Ammo</string>
+	</dict>
+</array>
+</plist>