project_files/HedgewarsMobile/Classes/CreationChamber.m
author alfadur
Tue, 04 Jun 2019 20:01:37 +0300
changeset 15114 a7841105493e
parent 13167 c129707eb1e6
permissions -rw-r--r--
upgrade to nom5 beta2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     1
/*
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
6700
e04da46ee43c the most important commit of the year
koda
parents: 6624
diff changeset
     3
 * Copyright (c) 2009-2012 Vittorio Giovara <vittorio.giovara@gmail.com>
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     4
 *
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     8
 *
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    12
 * GNU General Public License for more details.
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    13
 *
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 8835
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    17
 */
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    18
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    19
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    20
#import "CreationChamber.h"
8835
01bcf9ea68c1 ios compiles again (using an old version of sdl)
koda
parents: 8441
diff changeset
    21
#import "weapons.h"
6832
fae8fd118da9 dates are no more!
koda
parents: 6822
diff changeset
    22
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    23
@implementation CreationChamber
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    24
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    25
#pragma mark Checking status
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
    26
+ (void)createFirstLaunch {
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    27
    DLog(@"Creating necessary files");
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    28
    NSInteger index;
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    29
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    30
    // SAVES - just delete and overwrite
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    31
    if ([[NSFileManager defaultManager] fileExistsAtPath:SAVES_DIRECTORY()])
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    32
        [[NSFileManager defaultManager] removeItemAtPath:SAVES_DIRECTORY() error:NULL];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    33
    [[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY()
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    34
                              withIntermediateDirectories:NO
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    35
                                               attributes:nil
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    36
                                                    error:NULL];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    37
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    38
    // SCREENSHOTS - just create it the first time
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    39
    if ([[NSFileManager defaultManager] fileExistsAtPath:SCREENSHOTS_DIRECTORY()] == NO)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    40
        [[NSFileManager defaultManager] createDirectoryAtPath:SCREENSHOTS_DIRECTORY()
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    41
                                  withIntermediateDirectories:NO
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    42
                                                   attributes:nil
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    43
                                                        error:NULL];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    44
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    45
    // SETTINGS - nsuserdefaults ftw
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    46
    [self createSettings];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    47
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    48
    // TEAMS - update exisiting teams with new format
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    49
    NSArray *teamNames = [[NSArray alloc] initWithObjects:@"Edit Me!",@"Ninjas",@"Pirates",@"Robots",nil];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    50
    index = 0;
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    51
    for (NSString *name in teamNames)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    52
        [self createTeamNamed:name ofType:index++ controlledByAI:[name isEqualToString:@"Robots"]];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    53
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    54
    // SCHEMES - always overwrite and delete custom ones
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    55
    if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == YES)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    56
        [[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    57
    NSArray *schemeNames = [[NSArray alloc] initWithObjects:@"Default",@"Pro Mode",@"Shoppa",@"Clean Slate",
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    58
                            @"Minefield",@"Barrel Mayhem",@"Tunnel Hogs",@"Fort Mode",@"Timeless",
11188
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
    59
                            @"Thinking with Portals",@"King Mode",@"Construction Mode",nil];
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    60
    index = 0;
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    61
    for (NSString *name in schemeNames)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    62
        [self createSchemeNamed:name ofType:index++];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    63
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    64
    // WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    65
    NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate",
11190
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
    66
                            @"Minefield",@"Thinking with Portals",@"One of Everything",@"Highlander",@"Construction Mode",@"Shoppa Pro",nil];
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    67
    index = 0;
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    68
    for (NSString *name in weaponNames)
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    69
        [self createWeaponNamed:name ofType:index++];
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    70
}
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    71
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    72
#pragma mark Settings
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
    73
+ (void)createSettings {
5206
db775bddf771 settings.plist is no more, long live nsuserdefaults
koda
parents: 5200
diff changeset
    74
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
13167
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    75
    
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    76
    [settings setDefaultBool:NO forNonExistingKey:@"alternate"];
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    77
    [settings setDefaultBool:YES forNonExistingKey:@"music"];
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    78
    [settings setDefaultBool:YES forNonExistingKey:@"sound"];
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    79
    [settings setDefaultBool:YES forNonExistingKey:@"sync_ws"];
5451
e359a79e3d08 rip out the sync weapons/schemes switch and place it into settings; also perform some runtime check on what can be enabled
koda
parents: 5376
diff changeset
    80
5207
4c9ae0f484da some general tweaks (more intelligent use of macros and more caching)
koda
parents: 5206
diff changeset
    81
    // don't overwrite these two strings when present
13167
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    82
    [settings setDefaultValue:@"" forNonExistingKey:@"username"];
c129707eb1e6 - Remember user settings on app update
antonc27 <antonc27@mail.ru>
parents: 12872
diff changeset
    83
    [settings setDefaultValue:@"" forNonExistingKey:@"password"];
5206
db775bddf771 settings.plist is no more, long live nsuserdefaults
koda
parents: 5200
diff changeset
    84
db775bddf771 settings.plist is no more, long live nsuserdefaults
koda
parents: 5200
diff changeset
    85
    [settings synchronize];
db775bddf771 settings.plist is no more, long live nsuserdefaults
koda
parents: 5200
diff changeset
    86
}
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    87
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    88
#pragma mark Teams
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
    89
+ (void)createTeamNamed:(NSString *)nameWithoutExt {
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    90
    [self createTeamNamed:nameWithoutExt ofType:0 controlledByAI:NO];
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    91
}
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    92
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
    93
+ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
    94
    [self createTeamNamed:nameWithoutExt ofType:type controlledByAI:NO];
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    95
}
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
    96
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
    97
+ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type controlledByAI:(BOOL) shouldAITakeOver {
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    98
    NSString *teamsDirectory = TEAMS_DIRECTORY();
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
    99
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   100
    if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   101
        [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   102
                                  withIntermediateDirectories:NO
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   103
                                                   attributes:nil
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   104
                                                        error:NULL];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   105
    }
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   106
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   107
    NSArray *customNames;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   108
    NSArray *customHats;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   109
    NSString *flag, *grave, *voicepack, *fort;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   110
    switch (type) {
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   111
        default: // default
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   112
            customNames = [[NSArray alloc] initWithObjects:@"No Name",@"Unnamed",@"Anonymous",@"Nameless",@"Incognito",@"Unidentified",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   113
                           @"Uknown",@"Secret",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   114
            customHats = [[NSArray alloc] initWithObjects:@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",@"NoHat",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   115
            flag = @"hedgewars";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   116
            grave = @"Statue";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   117
            voicepack = @"Default";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   118
            fort = @"Plane";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   119
            break;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   120
        case 1:  // ninjas
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   121
            customNames = [[NSArray alloc] initWithObjects:@"Shinobi",@"Ukemi",@"Godai",@"Ninpo",@"Tatsujin",@"Arashi",@"Bushi",@"Itami",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   122
            customHats = [[NSArray alloc] initWithObjects:@"NinjaFull",@"NinjaStraight",@"NinjaTriangle",@"NinjaFull",@"NinjaStraight",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   123
                          @"NinjaTriangle",@"NinjaFull",@"NinjaTriangle",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   124
            flag = @"japan";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   125
            grave = @"bp2";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   126
            voicepack = @"Singer";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   127
            fort = @"Wood";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   128
            break;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   129
        case 2: // pirates
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   130
            customNames = [[NSArray alloc] initWithObjects:@"Toothless Wayne",@"Long-nose Kidd",@"Eye-patch Jim",@"Rackham Blood",@"One-eyed Ayee",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   131
                           @"Dirty Ben",@"Morris",@"Cruise Seymour",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   132
            customHats = [[NSArray alloc] initWithObjects:@"pirate_jack_bandana",@"pirate_jack",@"dwarf",@"pirate_jack_bandana",@"pirate_jack",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   133
                          @"dwarf",@"pirate_jack_bandana",@"pirate_jack",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   134
            flag = @"cm_pirate";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   135
            grave = @"chest";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   136
            voicepack = @"Pirate";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   137
            fort = @"Hydrant";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   138
            break;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   139
        case 3: // robots
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   140
            customNames = [[NSArray alloc] initWithObjects:@"HAL",@"R2-D2",@"Wall-E",@"Robocop",@"Optimus Prime",@"Terminator",@"C-3PO",@"KITT",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   141
            customHats = [[NSArray alloc] initWithObjects:@"cyborg1",@"cyborg2",@"cyborg1",@"cyborg2",@"cyborg1",@"cyborg2",@"cyborg1",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   142
                          @"cyborg2",nil];
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   143
            flag = @"cm_binary";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   144
            grave = @"Rip";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   145
            voicepack = @"Robot";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   146
            fort = @"UFO";
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   147
            break;
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   148
    }
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   149
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   150
    NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity:HW_getMaxNumberOfHogs()];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   151
    for (int i = 0; i < HW_getMaxNumberOfHogs(); i++) {
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   152
        NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   153
                             [NSNumber numberWithInt:(shouldAITakeOver ? 4 : 0)],@"level",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   154
                             [customNames objectAtIndex:i],@"hogname",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   155
                             [customHats objectAtIndex:i],@"hat",
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   156
                             nil];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   157
        [hedgehogs addObject:hog];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   158
    }
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   159
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   160
    NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   161
                             @"0",@"hash",
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   162
                             grave,@"grave",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   163
                             fort,@"fort",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   164
                             voicepack,@"voicepack",
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   165
                             flag,@"flag",
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   166
                             hedgehogs,@"hedgehogs",
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   167
                             nil];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   168
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   169
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   170
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   171
    [theTeam writeToFile:teamFile atomically:YES];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   172
}
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   173
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   174
#pragma mark Weapons
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
   175
+ (void)createWeaponNamed:(NSString *)nameWithoutExt {
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
   176
    [self createWeaponNamed:nameWithoutExt ofType:0];
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   177
}
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   178
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
   179
+ (void)createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   180
    NSString *weaponsDirectory = WEAPONS_DIRECTORY();
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   181
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   182
    if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   183
        [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   184
                                  withIntermediateDirectories:NO
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   185
                                                   attributes:nil
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   186
                                                        error:NULL];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   187
    }
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   188
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   189
    NSInteger ammolineSize = HW_getNumberOfWeapons();
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   190
    NSString *qt, *prob, *delay, *crate;
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   191
    switch (type) {
4607
7f683c2357a0 update weapons
koda
parents: 4605
diff changeset
   192
        default: //default
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   193
            qt = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_QT length:ammolineSize encoding:NSUTF8StringEncoding];
5376
ea8a74951948 copy pasta fail
koda
parents: 5207
diff changeset
   194
            prob = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
ea8a74951948 copy pasta fail
koda
parents: 5207
diff changeset
   195
            delay = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
ea8a74951948 copy pasta fail
koda
parents: 5207
diff changeset
   196
            crate = [[NSString alloc] initWithBytes:AMMOLINE_DEFAULT_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   197
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   198
        case 1:  //crazy
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   199
            qt = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   200
            prob = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   201
            delay = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   202
            crate = [[NSString alloc] initWithBytes:AMMOLINE_CRAZY_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   203
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   204
        case 2:  //pro mode
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   205
            qt = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   206
            prob = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   207
            delay = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   208
            crate = [[NSString alloc] initWithBytes:AMMOLINE_PROMODE_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   209
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   210
        case 3:  //shoppa
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   211
            qt = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   212
            prob = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   213
            delay = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   214
            crate = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPA_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   215
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   216
        case 4:  //clean slate
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   217
            qt = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   218
            prob = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   219
            delay = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   220
            crate = [[NSString alloc] initWithBytes:AMMOLINE_CLEAN_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   221
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   222
        case 5:  //minefield
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   223
            qt = [[NSString alloc] initWithBytes:AMMOLINE_MINES_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   224
            prob = [[NSString alloc] initWithBytes:AMMOLINE_MINES_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   225
            delay = [[NSString alloc] initWithBytes:AMMOLINE_MINES_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   226
            crate = [[NSString alloc] initWithBytes:AMMOLINE_MINES_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4284
57a501a69e5f update iFrontend with new schemes and weaps, fix up smaller glitches
koda
parents: 4281
diff changeset
   227
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   228
        case 6:  //thinking with portals
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   229
            qt = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_QT length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   230
            prob = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   231
            delay = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   232
            crate = [[NSString alloc] initWithBytes:AMMOLINE_PORTALS_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   233
            break;
11186
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   234
        case 7:  //one of everything
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   235
            qt = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_QT length:ammolineSize encoding:NSUTF8StringEncoding];
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   236
            prob = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   237
            delay = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   238
            crate = [[NSString alloc] initWithBytes:AMMOLINE_ONEEVERY_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
ee8e2494eaee - 'One of everything' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 10108
diff changeset
   239
            break;
11187
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   240
        case 8:  //highlander
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   241
            qt = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_QT length:ammolineSize encoding:NSUTF8StringEncoding];
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   242
            prob = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   243
            delay = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   244
            crate = [[NSString alloc] initWithBytes:AMMOLINE_HIGHLANDER_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
fa6f6e8b927c - 'Highlander' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11186
diff changeset
   245
            break;
11188
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   246
        case 9:  //construction mode
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   247
            qt = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_QT length:ammolineSize encoding:NSUTF8StringEncoding];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   248
            prob = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   249
            delay = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   250
            crate = [[NSString alloc] initWithBytes:AMMOLINE_CONSTRUCTION_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   251
            break;
11190
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   252
        case 10:  //shoppa pro
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   253
            qt = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_QT length:ammolineSize encoding:NSUTF8StringEncoding];
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   254
            prob = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_PROB length:ammolineSize encoding:NSUTF8StringEncoding];
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   255
            delay = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_DELAY length:ammolineSize encoding:NSUTF8StringEncoding];
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   256
            crate = [[NSString alloc] initWithBytes:AMMOLINE_SHOPPAPRO_CRATE length:ammolineSize encoding:NSUTF8StringEncoding];
d77ffd68e1cd - 'Shoppa Pro' ammo set added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11188
diff changeset
   257
            break;
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   258
    }
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   259
5200
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   260
    NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: qt,@"ammostore_initialqt",
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   261
                               prob,@"ammostore_probability", delay,@"ammostore_delay", crate,@"ammostore_crate", nil];
7440fe992e73 * move ammo lines from .cpp.in to .h so that it is readable from the ios frontend (and who knows, maybe from other frontends as well)
koda
parents: 5185
diff changeset
   262
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   263
    NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   264
    [theWeapon writeToFile:weaponFile atomically:YES];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   265
}
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   266
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   267
#pragma mark Schemes
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
   268
+ (void)createSchemeNamed:(NSString *)nameWithoutExt {
6865
fe19af8278e6 ios, this method belongs here
koda
parents: 6832
diff changeset
   269
    [self createSchemeNamed:nameWithoutExt ofType:0];
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   270
}
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   271
12872
00215a7ec5f5 - BIG CHANGE: Convert iOS project to use ARC
antonc27 <antonc27@mail.ru>
parents: 11281
diff changeset
   272
+ (void)createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   273
    NSString *schemesDirectory = SCHEMES_DIRECTORY();
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   274
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   275
    if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   276
        [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   277
                                  withIntermediateDirectories:NO
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   278
                                                   attributes:nil
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   279
                                                        error:NULL];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   280
    }
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   281
5181
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   282
    // load data to get the size of the arrays and their default values
5185
7607a64e1853 remove the trailing _en from scheme data and use the macros available instead of creating a string every time
koda
parents: 5181
diff changeset
   283
    NSArray *basicSettings = [[NSArray alloc] initWithContentsOfFile:BASICFLAGS_FILE()];
5181
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   284
    NSMutableArray *basicArray  = [[NSMutableArray alloc] initWithCapacity:[basicSettings count]];
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   285
    for (NSDictionary *basicDict in basicSettings)
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   286
        [basicArray addObject:[basicDict objectForKey:@"default"]];
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   287
5185
7607a64e1853 remove the trailing _en from scheme data and use the macros available instead of creating a string every time
koda
parents: 5181
diff changeset
   288
    NSArray *mods = [[NSArray alloc] initWithContentsOfFile:GAMEMODS_FILE()];
5181
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   289
    NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithCapacity:[mods count]];
6908
896ed2afcfb8 ios: turn on more warning messages and start correcting them
koda
parents: 6865
diff changeset
   290
    for (NSUInteger i = 0; i < [mods count]; i++)
5181
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   291
        [gamemodArray addObject:[NSNumber numberWithBool:NO]];
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   292
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   293
    switch (type) {
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   294
        default: // default
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   295
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   296
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   297
        case 1:  // pro mode
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   298
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:15]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   299
            [basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   300
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   301
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   302
            [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   303
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   304
        case 2:  // shoppa
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   305
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   306
            [basicArray replaceObjectAtIndex:3 withObject:[NSNumber numberWithInt:50]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   307
            [basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:1]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   308
            [basicArray replaceObjectAtIndex:8 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   309
            [basicArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithInt:25]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   310
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   311
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
11281
9c021eadd374 - Added 'Air Mines' flag for Scheme Settings
antonc27 <antonc27@mail.ru>
parents: 11190
diff changeset
   312
            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:8]];
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   313
            [gamemodArray replaceObjectAtIndex:1 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   314
            [gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   315
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   316
            [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   317
            [gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   318
            [gamemodArray replaceObjectAtIndex:19 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   319
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   320
        case 3:  // clean slate
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   321
            [gamemodArray replaceObjectAtIndex:6 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   322
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   323
            [gamemodArray replaceObjectAtIndex:18 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   324
            [gamemodArray replaceObjectAtIndex:19 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   325
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   326
        case 4:  // minefield
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   327
            [basicArray replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:50]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   328
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   329
            [basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   330
            [basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   331
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:80]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   332
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   333
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   334
            [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   335
            [gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   336
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   337
        case 5:  // barrel mayhem
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   338
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   339
            [basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   340
            [basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   341
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   342
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:40]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   343
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   344
            [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   345
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   346
        case 6:  // tunnel hogs
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   347
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:30]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   348
            [basicArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithInt:3]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   349
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:10]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   350
            [basicArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithInt:10]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   351
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:10]];
11281
9c021eadd374 - Added 'Air Mines' flag for Scheme Settings
antonc27 <antonc27@mail.ru>
parents: 11190
diff changeset
   352
            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:4]];
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   353
            [gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   354
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   355
            [gamemodArray replaceObjectAtIndex:14 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   356
            [gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   357
            [gamemodArray replaceObjectAtIndex:16 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   358
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   359
        case 7:  // fort mode
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   360
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   361
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   362
            [gamemodArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   363
            [gamemodArray replaceObjectAtIndex:3 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   364
            [gamemodArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   365
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   366
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   367
        case 8:  // timeless
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   368
            [basicArray replaceObjectAtIndex:2 withObject:[NSNumber numberWithInt:100]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   369
            [basicArray replaceObjectAtIndex:4 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   370
            [basicArray replaceObjectAtIndex:5 withObject:[NSNumber numberWithInt:0]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   371
            [basicArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithInt:30]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   372
            [basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:5]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   373
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:3]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   374
            [basicArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithInt:10]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   375
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   376
            [gamemodArray replaceObjectAtIndex:20 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   377
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   378
        case 9:  // thinking with portals
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   379
            [basicArray replaceObjectAtIndex:7 withObject:[NSNumber numberWithInt:2]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   380
            [basicArray replaceObjectAtIndex:8 withObject:[NSNumber numberWithInt:25]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   381
            [basicArray replaceObjectAtIndex:10 withObject:[NSNumber numberWithInt:4]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   382
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:5]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   383
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:5]];
11281
9c021eadd374 - Added 'Air Mines' flag for Scheme Settings
antonc27 <antonc27@mail.ru>
parents: 11190
diff changeset
   384
            [basicArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithInt:4]];
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   385
            [gamemodArray replaceObjectAtIndex:9 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   386
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   387
            break;
6104
117bdf4e7af9 create teams programmatically
koda
parents: 6103
diff changeset
   388
        case 10: // king mode
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   389
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   390
            [gamemodArray replaceObjectAtIndex:12 withObject:[NSNumber numberWithBool:YES]];
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   391
            break;
11188
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   392
        case 11: // construction mode
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   393
            [basicArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithInt:0]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   394
            [basicArray replaceObjectAtIndex:13 withObject:[NSNumber numberWithInt:0]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   395
            [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   396
            [gamemodArray replaceObjectAtIndex:15 withObject:[NSNumber numberWithBool:YES]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   397
            [gamemodArray replaceObjectAtIndex:16 withObject:[NSNumber numberWithBool:YES]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   398
            [gamemodArray replaceObjectAtIndex:18 withObject:[NSNumber numberWithBool:YES]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   399
            [gamemodArray replaceObjectAtIndex:20 withObject:[NSNumber numberWithBool:YES]];
3dbea499390d - 'Construction Mode' ammo set and game parameters added to iOS front-end
antonc27 <antonc27@mail.ru>
parents: 11187
diff changeset
   400
            break;
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   401
    }
5181
102fef5ca5fc add getawaytime and tagteam mode to ios
koda
parents: 4976
diff changeset
   402
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   403
    NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   404
                                      basicArray,@"basic",
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   405
                                      gamemodArray,@"gamemod",
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   406
                                      nil];
5984
6fd40d866342 create the ios schemes programmatically
koda
parents: 5664
diff changeset
   407
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   408
    NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
8441
a00b0fa0dbd7 some whitespaces from ios files
koda
parents: 6908
diff changeset
   409
4281
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   410
    [theScheme writeToFile:schemeFile atomically:YES];
e033cf015b2c redo once again file updating, moving stuff around
koda
parents:
diff changeset
   411
}
6103
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   412
55ecfbf834e3 convert creation chamber functions to class methods
koda
parents: 5984
diff changeset
   413
@end