project_files/HedgewarsMobile/Classes/CommodityFunctions.m
author unc0rr
Mon, 16 Aug 2010 18:43:32 +0400
changeset 3741 73246d25dfe1
parent 3737 2ba6ac8a114b
child 3778 2e61bb50cc57
permissions -rw-r--r--
Add some more strictness, use unsafeThaw and unsafeFreeze functions which work at O(1)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     1
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     2
//  CommodityFunctions.m
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     3
//  HedgewarsMobile
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     4
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     5
//  Created by Vittorio on 08/04/10.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     7
//
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     8
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
     9
#import "CommodityFunctions.h"
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
    10
#import <sys/types.h>
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
    11
#import <sys/sysctl.h>
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    12
#import <mach/mach.h>
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    13
#import <mach/mach_host.h>
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    14
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    15
void createTeamNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    16
    NSString *teamsDirectory = TEAMS_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    17
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    18
    if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    19
        [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    20
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    21
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    22
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    24
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
    NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: MAX_HOGS];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    26
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    27
    for (int i = 0; i < MAX_HOGS; i++) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
        NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    29
        NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
                             hogName,@"hogname", @"NoHat",@"hat", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
        [hogName release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
        [hedgehogs addObject:hog];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
        [hog release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    35
3660
bc125bea5849 complete settings page rework
koda
parents: 3621
diff changeset
    36
    NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash",
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
                             @"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
                             @"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
    [hedgehogs release];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    40
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    41
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    42
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
    [theTeam writeToFile:teamFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
    [teamFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    45
    [theTeam release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    46
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    47
3737
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    48
void createWeaponNamed (NSString *nameWithoutExt, int type) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    49
    NSString *weaponsDirectory = WEAPONS_DIRECTORY();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    50
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    51
    if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    52
        [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    53
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    54
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    55
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    56
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    57
3737
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    58
    NSDictionary *theWeapon;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    59
    switch (type) {
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    60
        case 0: //default
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    61
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    62
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    63
                         @"939192942219912103223511100120100000021111011101",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    64
                         @"040504054160065554655446477657666666615551011111",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    65
                         @"000000000000020550000004000700400000000020000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    66
                         @"131111031211111112311411111111111111121111111111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    67
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    68
        case 1: //crazy
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    69
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    70
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    71
                         @"999999999999999999299999999999999929999999999999",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    72
                         @"111111011111111111111111111111111111111111111111",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    73
                         @"000000000000000000000000000000000000000000000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    74
                         @"131111031211111112311411111111111111121111010111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    75
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    76
        case 2: //pro mode
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    77
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    78
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    79
                         @"909000900000000000000900000000000000000000090000",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    80
                         @"000000000000000000000000000000000000000000000000",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    81
                         @"000000000000020550000004000700400000000020000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    82
                         @"111111111111111111111111111111111111111110011111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    83
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    84
        case 3: //shoppa
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    85
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    86
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    87
                         @"000000990000000000000000000000000000000000000000",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    88
                         @"444441004424440221011212122242200000000200040001",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    89
                         @"000000000000000000000000000000000000000000000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    90
                         @"111111111111111111111111111111111111111110111111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    91
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    92
        case 4: //basketball
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    93
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    94
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    95
                         @"939192942219912103223511100120100000021111011100",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    96
                         @"000000000000000000000000000000000000000000000000",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    97
                         @"000000000000000550000004000700400000000020000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    98
                         @"111111111111111111111111111111111111111111111111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
    99
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   100
        case 5: //minefield
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   101
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   102
                         [NSNumber numberWithInt:CURRENT_AMMOSIZE],@"version",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   103
                         @"000000990009000000030000000000000000000000000000",@"ammostore_initialqt",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   104
                         @"000000000000000000000000000000000000000000000000",@"ammostore_probability",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   105
                         @"000000000000020550000004000700400000000020000000",@"ammostore_delay",
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   106
                         @"111111111111111111111111111111111111111111111111",@"ammostore_crate", nil];
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   107
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   108
        default:
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   109
            NSLog(@"Nope");
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   110
            break;
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   111
    }
2ba6ac8a114b reworked the initialization functions, now it should be safe to update and no more need of spinning wheel at first launch
koda
parents: 3697
diff changeset
   112
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   113
    NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   114
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   115
    [theWeapon writeToFile:weaponFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   116
    [weaponFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   117
    [theWeapon release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   118
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   119
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   120
void createSchemeNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   121
    NSString *schemesDirectory = SCHEMES_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   122
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
    if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   124
        [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   125
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   126
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   127
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   128
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   129
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
    NSArray *theScheme = [[NSArray alloc] initWithObjects:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
                          [NSNumber numberWithBool:NO],    //fortmode
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   132
                          [NSNumber numberWithBool:NO],    //divideteam
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   133
                          [NSNumber numberWithBool:NO],    //solidland
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   134
                          [NSNumber numberWithBool:NO],    //addborder
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   135
                          [NSNumber numberWithBool:NO],    //lowgravity
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   136
                          [NSNumber numberWithBool:NO],    //lasersight
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   137
                          [NSNumber numberWithBool:NO],    //invulnerable
3573
c84067629035 complete configuration for schemes
koda
parents: 3551
diff changeset
   138
                          [NSNumber numberWithBool:YES],   //addmines
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   139
                          [NSNumber numberWithBool:NO],    //vampirism
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   140
                          [NSNumber numberWithBool:NO],    //karma
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   141
                          [NSNumber numberWithBool:NO],    //artillery
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   142
                          [NSNumber numberWithBool:YES],   //randomorder
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   143
                          [NSNumber numberWithBool:NO],    //king
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   144
                          [NSNumber numberWithBool:NO],    //placehedgehogs
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   145
                          [NSNumber numberWithBool:NO],    //clansharesammo
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   146
                          [NSNumber numberWithBool:NO],    //disablegirders
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   147
                          [NSNumber numberWithBool:NO],    //disablelandobjects
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   148
                          [NSNumber numberWithInt:100],    //damagemodifier
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   149
                          [NSNumber numberWithInt:45],     //turntime
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   150
                          [NSNumber numberWithInt:100],    //initialhealth
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   151
                          [NSNumber numberWithInt:15],     //suddendeathtimeout
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
                          [NSNumber numberWithInt:5],      //cratedrops
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   153
                          [NSNumber numberWithInt:3],      //minestime
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   154
                          [NSNumber numberWithInt:4],      //mines
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   155
                          [NSNumber numberWithInt:0],      //dudmines
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   156
                          [NSNumber numberWithInt:2],      //explosives
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   157
                          nil];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   158
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   159
    NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   160
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   161
    [theScheme writeToFile:schemeFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   162
    [schemeFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   163
    [theScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   164
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   165
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   166
BOOL rotationManager (UIInterfaceOrientation interfaceOrientation) {
3551
d4de36b3801a moar zoom, fixed fort mode, other glitches
koda
parents: 3547
diff changeset
   167
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   168
           (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   169
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   170
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   171
NSInteger randomPort () {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   172
    srandom(time(NULL));
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   173
    return (random() % 64511) + 1024;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   174
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   175
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   176
void popError (const char *title, const char *message) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   177
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:title]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   178
                                                    message:[NSString stringWithUTF8String:message]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   179
                                                   delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   180
                                          cancelButtonTitle:@"Ok"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   181
                                          otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   182
    [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
    [alert release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   186
// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
void print_free_memory () {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
    mach_port_t host_port;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   189
    mach_msg_type_number_t host_size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   190
    vm_size_t pagesize;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   191
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
    host_port = mach_host_self();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   193
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   194
    host_page_size(host_port, &pagesize);
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   195
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
    vm_statistics_data_t vm_stat;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   197
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   198
    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
        DLog(@"Failed to fetch vm statistics");
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   200
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   201
    /* Stats in bytes */
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   202
    natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   203
    natural_t mem_free = vm_stat.free_count * pagesize;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   204
    natural_t mem_total = mem_used + mem_free;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   205
    DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   206
}
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   207
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   208
BOOL isPhone () {
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   209
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   210
}
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   211
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   212
NSString *modelType () {
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   213
    size_t size;
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   214
    // set 'oldp' parameter to NULL to get the size of the data returned so we can allocate appropriate amount of space
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   215
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   216
    char *name = (char *)malloc(sizeof(char) * size);
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   217
    // get the platform name
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   218
    sysctlbyname("hw.machine", name, &size, NULL, 0);
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   219
    NSString *modelId = [NSString stringWithUTF8String:name];
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   220
    free(name);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   221
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   222
    return modelId;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   223
}