cocoaTouch/otherSrc/CommodityFunctions.m
author koda
Sun, 23 May 2010 22:05:59 +0000
changeset 3479 972ae3ec178a
parent 3405 8fdb08497bf1
child 3490 016b3172b645
permissions -rw-r--r--
initial support for game modifiers (schemes)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3325
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     1
//
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     2
//  CommodityFunctions.m
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     3
//  HedgewarsMobile
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     4
//
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     5
//  Created by Vittorio on 08/04/10.
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     7
//
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     8
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
     9
#import "CommodityFunctions.h"
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    10
#import "SDL_uikitappdelegate.h"
3325
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    11
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    12
void createTeamNamed (NSString *nameWithoutExt) {
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    13
    NSString *teamsDirectory = TEAMS_DIRECTORY();
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    14
    
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    15
    if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    16
        [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory 
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    17
                                  withIntermediateDirectories:NO 
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    18
                                                   attributes:nil 
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    19
                                                        error:NULL];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    20
    }
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    21
    
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    22
    NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: MAX_HOGS];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    23
    
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    24
    for (int i = 0; i < MAX_HOGS; i++) {
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    25
        NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
3479
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    26
        NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
3325
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    27
                             hogName,@"hogname", @"NoHat",@"hat", nil];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    28
        [hogName release];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    29
        [hedgehogs addObject:hog];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    30
        [hog release];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    31
    }
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    32
    
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    33
    NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash", nameWithoutExt,@"teamname",
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    34
                             @"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    35
                             @"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    36
    [hedgehogs release];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    37
    
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    38
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
    39
3325
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    40
    [theTeam writeToFile:teamFile atomically:YES];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    41
    [teamFile release];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    42
    [theTeam release];
652a8ebdf667 moved around team creation
koda
parents:
diff changeset
    43
}
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3325
diff changeset
    44
3479
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    45
void createSchemeNamed (NSString *nameWithoutExt) {
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    46
    NSString *schemesDirectory = SCHEMES_DIRECTORY();
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    47
    
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    48
    if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    49
        [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory 
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    50
                                  withIntermediateDirectories:NO 
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    51
                                                   attributes:nil 
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    52
                                                        error:NULL];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    53
    }
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    54
    
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    55
    NSArray *theScheme = [[NSArray alloc] initWithObjects:
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    56
                          [NSNumber numberWithBool:NO],    //fortmode
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    57
                          [NSNumber numberWithBool:NO],    //divideteam
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    58
                          [NSNumber numberWithBool:NO],    //solidland
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    59
                          [NSNumber numberWithBool:NO],    //addborder
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    60
                          [NSNumber numberWithBool:NO],    //lowgravity
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    61
                          [NSNumber numberWithBool:NO],    //lasersight
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    62
                          [NSNumber numberWithBool:NO],    //invulnerable
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    63
                          [NSNumber numberWithBool:NO],    //addmines
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    64
                          [NSNumber numberWithBool:NO],    //vampirism
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    65
                          [NSNumber numberWithBool:NO],    //karma
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    66
                          [NSNumber numberWithBool:NO],    //artillery
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    67
                          [NSNumber numberWithBool:YES],   //randomorder
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    68
                          [NSNumber numberWithBool:NO],    //king
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    69
                          [NSNumber numberWithBool:NO],    //placehedgehogs
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    70
                          [NSNumber numberWithBool:NO],    //clansharesammo
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    71
                          [NSNumber numberWithBool:NO],    //disablegirders
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    72
                          [NSNumber numberWithBool:NO],    //disablelandobjects
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    73
                          [NSNumber numberWithInt:100],    //damagemodifier
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    74
                          [NSNumber numberWithInt:45],     //turntime
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    75
                          [NSNumber numberWithInt:100],    //initialhealth
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    76
                          [NSNumber numberWithInt:15],     //suddendeathtimeout
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    77
                          [NSNumber numberWithInt:5],      //cratedrops
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    78
                          [NSNumber numberWithInt:3],      //minestime
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    79
                          [NSNumber numberWithInt:4],      //mines
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    80
                          [NSNumber numberWithInt:0],      //dudmines
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    81
                          [NSNumber numberWithInt:2],      //explosives
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    82
                          nil];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    83
    
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    84
    NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    85
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    86
    [theScheme writeToFile:schemeFile atomically:YES];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    87
    [schemeFile release];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    88
    [theScheme release];
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    89
}
972ae3ec178a initial support for game modifiers (schemes)
koda
parents: 3405
diff changeset
    90
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    91
BOOL rotationManager (UIInterfaceOrientation interfaceOrientation) {
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    92
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
3405
8fdb08497bf1 js' patch that restores Vsync on snow leopard
koda
parents: 3385
diff changeset
    93
        return YES;
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    94
    else
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    95
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    96
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3330
diff changeset
    97
}
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3352
diff changeset
    98
3373
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
    99
NSInteger randomPort () {
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   100
    srandom(time(NULL));
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   101
    return (random() % 64511) + 1024;
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3352
diff changeset
   102
}
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3352
diff changeset
   103
3373
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   104
void popError (const char *title, const char *message) {
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   105
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:title]
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   106
                                                    message:[NSString stringWithUTF8String:message]
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   107
                                                   delegate:nil
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   108
                                          cancelButtonTitle:@"Ok"
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   109
                                          otherButtonTitles:nil];
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   110
    [alert show];
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   111
    [alert release];
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   112
}
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   113
    
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3352
diff changeset
   114
3373
c1ff724a5c34 use a proper bundle identifier
koda
parents: 3365
diff changeset
   115