48 // TEAMS - update exisiting teams with new format |
48 // TEAMS - update exisiting teams with new format |
49 NSArray *teamNames = [[NSArray alloc] initWithObjects:@"Edit Me!",@"Ninjas",@"Pirates",@"Robots",nil]; |
49 NSArray *teamNames = [[NSArray alloc] initWithObjects:@"Edit Me!",@"Ninjas",@"Pirates",@"Robots",nil]; |
50 index = 0; |
50 index = 0; |
51 for (NSString *name in teamNames) |
51 for (NSString *name in teamNames) |
52 [self createTeamNamed:name ofType:index++ controlledByAI:[name isEqualToString:@"Robots"]]; |
52 [self createTeamNamed:name ofType:index++ controlledByAI:[name isEqualToString:@"Robots"]]; |
53 [teamNames release]; |
|
54 |
53 |
55 // SCHEMES - always overwrite and delete custom ones |
54 // SCHEMES - always overwrite and delete custom ones |
56 if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == YES) |
55 if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == YES) |
57 [[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL]; |
56 [[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL]; |
58 NSArray *schemeNames = [[NSArray alloc] initWithObjects:@"Default",@"Pro Mode",@"Shoppa",@"Clean Slate", |
57 NSArray *schemeNames = [[NSArray alloc] initWithObjects:@"Default",@"Pro Mode",@"Shoppa",@"Clean Slate", |
59 @"Minefield",@"Barrel Mayhem",@"Tunnel Hogs",@"Fort Mode",@"Timeless", |
58 @"Minefield",@"Barrel Mayhem",@"Tunnel Hogs",@"Fort Mode",@"Timeless", |
60 @"Thinking with Portals",@"King Mode",@"Construction Mode",nil]; |
59 @"Thinking with Portals",@"King Mode",@"Construction Mode",nil]; |
61 index = 0; |
60 index = 0; |
62 for (NSString *name in schemeNames) |
61 for (NSString *name in schemeNames) |
63 [self createSchemeNamed:name ofType:index++]; |
62 [self createSchemeNamed:name ofType:index++]; |
64 [schemeNames release]; |
|
65 |
63 |
66 // WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically) |
64 // WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically) |
67 NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate", |
65 NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate", |
68 @"Minefield",@"Thinking with Portals",@"One of Everything",@"Highlander",@"Construction Mode",@"Shoppa Pro",nil]; |
66 @"Minefield",@"Thinking with Portals",@"One of Everything",@"Highlander",@"Construction Mode",@"Shoppa Pro",nil]; |
69 index = 0; |
67 index = 0; |
70 for (NSString *name in weaponNames) |
68 for (NSString *name in weaponNames) |
71 [self createWeaponNamed:name ofType:index++]; |
69 [self createWeaponNamed:name ofType:index++]; |
72 [weaponNames release]; |
|
73 } |
70 } |
74 |
71 |
75 #pragma mark Settings |
72 #pragma mark Settings |
76 +(void) createSettings { |
73 + (void)createSettings { |
77 NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; |
74 NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; |
78 [settings setObject:[NSNumber numberWithBool:NO] forKey:@"alternate"]; |
75 [settings setObject:[NSNumber numberWithBool:NO] forKey:@"alternate"]; |
79 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"]; |
76 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"]; |
80 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sound"]; |
77 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sound"]; |
81 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sync_ws"]; |
78 [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sync_ws"]; |
88 |
85 |
89 [settings synchronize]; |
86 [settings synchronize]; |
90 } |
87 } |
91 |
88 |
92 #pragma mark Teams |
89 #pragma mark Teams |
93 +(void) createTeamNamed:(NSString *)nameWithoutExt { |
90 + (void)createTeamNamed:(NSString *)nameWithoutExt { |
94 [self createTeamNamed:nameWithoutExt ofType:0 controlledByAI:NO]; |
91 [self createTeamNamed:nameWithoutExt ofType:0 controlledByAI:NO]; |
95 } |
92 } |
96 |
93 |
97 +(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type { |
94 + (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type { |
98 [self createTeamNamed:nameWithoutExt ofType:type controlledByAI:NO]; |
95 [self createTeamNamed:nameWithoutExt ofType:type controlledByAI:NO]; |
99 } |
96 } |
100 |
97 |
101 +(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type controlledByAI:(BOOL) shouldAITakeOver { |
98 + (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type controlledByAI:(BOOL) shouldAITakeOver { |
102 NSString *teamsDirectory = TEAMS_DIRECTORY(); |
99 NSString *teamsDirectory = TEAMS_DIRECTORY(); |
103 |
100 |
104 if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) { |
101 if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) { |
105 [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory |
102 [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory |
106 withIntermediateDirectories:NO |
103 withIntermediateDirectories:NO |
157 [NSNumber numberWithInt:(shouldAITakeOver ? 4 : 0)],@"level", |
154 [NSNumber numberWithInt:(shouldAITakeOver ? 4 : 0)],@"level", |
158 [customNames objectAtIndex:i],@"hogname", |
155 [customNames objectAtIndex:i],@"hogname", |
159 [customHats objectAtIndex:i],@"hat", |
156 [customHats objectAtIndex:i],@"hat", |
160 nil]; |
157 nil]; |
161 [hedgehogs addObject:hog]; |
158 [hedgehogs addObject:hog]; |
162 [hog release]; |
159 } |
163 } |
|
164 [customHats release]; |
|
165 [customNames release]; |
|
166 |
160 |
167 NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys: |
161 NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys: |
168 @"0",@"hash", |
162 @"0",@"hash", |
169 grave,@"grave", |
163 grave,@"grave", |
170 fort,@"fort", |
164 fort,@"fort", |
171 voicepack,@"voicepack", |
165 voicepack,@"voicepack", |
172 flag,@"flag", |
166 flag,@"flag", |
173 hedgehogs,@"hedgehogs", |
167 hedgehogs,@"hedgehogs", |
174 nil]; |
168 nil]; |
175 [hedgehogs release]; |
|
176 |
169 |
177 NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt]; |
170 NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt]; |
178 |
171 |
179 [theTeam writeToFile:teamFile atomically:YES]; |
172 [theTeam writeToFile:teamFile atomically:YES]; |
180 [teamFile release]; |
|
181 [theTeam release]; |
|
182 } |
173 } |
183 |
174 |
184 #pragma mark Weapons |
175 #pragma mark Weapons |
185 +(void) createWeaponNamed:(NSString *)nameWithoutExt { |
176 + (void)createWeaponNamed:(NSString *)nameWithoutExt { |
186 [self createWeaponNamed:nameWithoutExt ofType:0]; |
177 [self createWeaponNamed:nameWithoutExt ofType:0]; |
187 } |
178 } |
188 |
179 |
189 +(void) createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type { |
180 + (void)createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type { |
190 NSString *weaponsDirectory = WEAPONS_DIRECTORY(); |
181 NSString *weaponsDirectory = WEAPONS_DIRECTORY(); |
191 |
182 |
192 if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) { |
183 if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) { |
193 [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory |
184 [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory |
194 withIntermediateDirectories:NO |
185 withIntermediateDirectories:NO |
267 break; |
258 break; |
268 } |
259 } |
269 |
260 |
270 NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: qt,@"ammostore_initialqt", |
261 NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: qt,@"ammostore_initialqt", |
271 prob,@"ammostore_probability", delay,@"ammostore_delay", crate,@"ammostore_crate", nil]; |
262 prob,@"ammostore_probability", delay,@"ammostore_delay", crate,@"ammostore_crate", nil]; |
272 [qt release]; |
|
273 [prob release]; |
|
274 [delay release]; |
|
275 [crate release]; |
|
276 |
263 |
277 NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt]; |
264 NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt]; |
278 [theWeapon writeToFile:weaponFile atomically:YES]; |
265 [theWeapon writeToFile:weaponFile atomically:YES]; |
279 [weaponFile release]; |
|
280 [theWeapon release]; |
|
281 } |
266 } |
282 |
267 |
283 #pragma mark Schemes |
268 #pragma mark Schemes |
284 +(void) createSchemeNamed:(NSString *)nameWithoutExt { |
269 + (void)createSchemeNamed:(NSString *)nameWithoutExt { |
285 [self createSchemeNamed:nameWithoutExt ofType:0]; |
270 [self createSchemeNamed:nameWithoutExt ofType:0]; |
286 } |
271 } |
287 |
272 |
288 +(void) createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type { |
273 + (void)createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type { |
289 NSString *schemesDirectory = SCHEMES_DIRECTORY(); |
274 NSString *schemesDirectory = SCHEMES_DIRECTORY(); |
290 |
275 |
291 if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) { |
276 if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) { |
292 [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory |
277 [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory |
293 withIntermediateDirectories:NO |
278 withIntermediateDirectories:NO |
298 // load data to get the size of the arrays and their default values |
283 // load data to get the size of the arrays and their default values |
299 NSArray *basicSettings = [[NSArray alloc] initWithContentsOfFile:BASICFLAGS_FILE()]; |
284 NSArray *basicSettings = [[NSArray alloc] initWithContentsOfFile:BASICFLAGS_FILE()]; |
300 NSMutableArray *basicArray = [[NSMutableArray alloc] initWithCapacity:[basicSettings count]]; |
285 NSMutableArray *basicArray = [[NSMutableArray alloc] initWithCapacity:[basicSettings count]]; |
301 for (NSDictionary *basicDict in basicSettings) |
286 for (NSDictionary *basicDict in basicSettings) |
302 [basicArray addObject:[basicDict objectForKey:@"default"]]; |
287 [basicArray addObject:[basicDict objectForKey:@"default"]]; |
303 [basicSettings release]; |
|
304 |
288 |
305 NSArray *mods = [[NSArray alloc] initWithContentsOfFile:GAMEMODS_FILE()]; |
289 NSArray *mods = [[NSArray alloc] initWithContentsOfFile:GAMEMODS_FILE()]; |
306 NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithCapacity:[mods count]]; |
290 NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithCapacity:[mods count]]; |
307 for (NSUInteger i = 0; i < [mods count]; i++) |
291 for (NSUInteger i = 0; i < [mods count]; i++) |
308 [gamemodArray addObject:[NSNumber numberWithBool:NO]]; |
292 [gamemodArray addObject:[NSNumber numberWithBool:NO]]; |
309 [mods release]; |
|
310 |
293 |
311 switch (type) { |
294 switch (type) { |
312 default: // default |
295 default: // default |
313 [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]]; |
296 [gamemodArray replaceObjectAtIndex:11 withObject:[NSNumber numberWithBool:YES]]; |
314 break; |
297 break; |