project_files/HedgewarsMobile/Classes/CommodityFunctions.m
author koda
Mon, 30 Aug 2010 06:33:56 +0200
changeset 3792 dd9345e74b66
parent 3783 8e9daf967406
child 3823 cca9bfb88a24
permissions -rw-r--r--
help page for lobby
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>
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
    14
#import "AudioToolbox/AudioToolbox.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    15
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    16
void createTeamNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    17
    NSString *teamsDirectory = TEAMS_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    18
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    19
    if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    20
        [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    21
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    22
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    25
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
    NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: MAX_HOGS];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    27
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
    for (int i = 0; i < MAX_HOGS; i++) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    29
        NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
        NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
                             hogName,@"hogname", @"NoHat",@"hat", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
        [hogName release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
        [hedgehogs addObject:hog];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
        [hog release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    36
3660
bc125bea5849 complete settings page rework
koda
parents: 3621
diff changeset
    37
    NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash",
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
                             @"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
                             @"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
    [hedgehogs release];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    41
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    42
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
    [theTeam writeToFile:teamFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    45
    [teamFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    46
    [theTeam release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    47
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    48
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
    49
void createWeaponNamed (NSString *nameWithoutExt, int type) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    50
    NSString *weaponsDirectory = WEAPONS_DIRECTORY();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    51
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    52
    if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    53
        [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    54
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    55
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    56
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    57
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    58
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3737
diff changeset
    59
    NSDictionary *theWeapon = nil;
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
    60
    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
    61
        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
    62
            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
    63
                         [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
    64
                         @"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
    65
                         @"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
    66
                         @"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
    67
                         @"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
    68
            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
    69
        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
    70
            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
    71
                         [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
    72
                         @"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
    73
                         @"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
    74
                         @"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
    75
                         @"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
    76
            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
    77
        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
    78
            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
    79
                         [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
    80
                         @"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
    81
                         @"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
    82
                         @"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
    83
                         @"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
    84
            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
    85
        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
    86
            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
    87
                         [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
    88
                         @"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
    89
                         @"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
    90
                         @"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
    91
                         @"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
    92
            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
    93
        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
    94
            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
    95
                         [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
    96
                         @"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
    97
                         @"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
    98
                         @"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
    99
                         @"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
   100
            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
   101
        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
   102
            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
   103
                         [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
   104
                         @"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
   105
                         @"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
   106
                         @"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
   107
                         @"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
   108
            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
   109
        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
   110
            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
   111
            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
   112
    }
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
   113
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   114
    NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   115
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   116
    [theWeapon writeToFile:weaponFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   117
    [weaponFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   118
    [theWeapon release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   119
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   120
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   121
void createSchemeNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   122
    NSString *schemesDirectory = SCHEMES_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   123
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   124
    if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   125
        [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   126
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   127
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   128
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   129
    }
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   130
    
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   131
    NSMutableArray *basicArray  = [[NSMutableArray alloc] initWithObjects:
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   132
                                   [NSNumber numberWithInt:100],      //damagemodifier
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   133
                                   [NSNumber numberWithInt:45],       //turntime
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   134
                                   [NSNumber numberWithInt:100],      //initialhealth
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   135
                                   [NSNumber numberWithInt:15],       //suddendeathtimeout
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   136
                                   [NSNumber numberWithInt:5],        //cratedrops
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   137
                                   [NSNumber numberWithInt:3],        //minestime
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   138
                                   [NSNumber numberWithInt:4],        //mines
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   139
                                   [NSNumber numberWithInt:0],        //dudmines
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   140
                                   [NSNumber numberWithInt:2],        //explosives
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   141
                                   nil];
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   142
    
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   143
    NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithObjects:
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   144
                                   [NSNumber numberWithBool:NO],      //fortmode
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   145
                                   [NSNumber numberWithBool:NO],      //divideteam
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   146
                                   [NSNumber numberWithBool:NO],      //solidland
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   147
                                   [NSNumber numberWithBool:NO],      //addborder
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   148
                                   [NSNumber numberWithBool:NO],      //lowgravity
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   149
                                   [NSNumber numberWithBool:NO],      //lasersight
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   150
                                   [NSNumber numberWithBool:NO],      //invulnerable
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   151
                                   [NSNumber numberWithBool:YES],     //addmines
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   152
                                   [NSNumber numberWithBool:NO],      //vampirism
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   153
                                   [NSNumber numberWithBool:NO],      //karma
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   154
                                   [NSNumber numberWithBool:NO],      //artillery
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   155
                                   [NSNumber numberWithBool:YES],     //randomorder
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   156
                                   [NSNumber numberWithBool:NO],      //king
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   157
                                   [NSNumber numberWithBool:NO],      //placehedgehogs
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   158
                                   [NSNumber numberWithBool:NO],      //clansharesammo
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   159
                                   [NSNumber numberWithBool:NO],      //disablegirders
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   160
                                   [NSNumber numberWithBool:NO],      //disablelandobjects
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   161
                                   [NSNumber numberWithBool:NO],      //aisurvival
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   162
                                   nil];
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   163
    
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   164
    NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   165
                                      basicArray,@"basic",
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   166
                                      gamemodArray,@"gamemod",
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   167
                                      nil];
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   168
    [gamemodArray release];
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   169
    [basicArray release];
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   170
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   171
    NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3778
diff changeset
   172
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   173
    [theScheme writeToFile:schemeFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   174
    [schemeFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   175
    [theScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   176
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   177
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   178
BOOL rotationManager (UIInterfaceOrientation interfaceOrientation) {
3551
d4de36b3801a moar zoom, fixed fort mode, other glitches
koda
parents: 3547
diff changeset
   179
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   180
           (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   181
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   182
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
NSInteger randomPort () {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
    srandom(time(NULL));
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
    return (random() % 64511) + 1024;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   186
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
void popError (const char *title, const char *message) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   189
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:title]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   190
                                                    message:[NSString stringWithUTF8String:message]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   191
                                                   delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
                                          cancelButtonTitle:@"Ok"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   193
                                          otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   194
    [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   195
    [alert release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   197
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   198
// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
void print_free_memory () {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   200
    mach_port_t host_port;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   201
    mach_msg_type_number_t host_size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   202
    vm_size_t pagesize;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   203
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   204
    host_port = mach_host_self();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   205
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   206
    host_page_size(host_port, &pagesize);
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   207
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   208
    vm_statistics_data_t vm_stat;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   209
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   210
    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
   211
        DLog(@"Failed to fetch vm statistics");
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   212
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   213
    /* Stats in bytes */
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   214
    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
   215
    natural_t mem_free = vm_stat.free_count * pagesize;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   216
    natural_t mem_total = mem_used + mem_free;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   217
    DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   218
}
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   219
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   220
BOOL isPhone () {
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   221
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   222
}
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   223
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   224
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
   225
    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
   226
    // 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
   227
    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
   228
    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
   229
    // 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
   230
    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
   231
    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
   232
    free(name);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   233
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   234
    return modelId;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   235
}
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   236
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   237
void playSound (NSString *snd) {
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   238
    //Get the filename of the sound file:
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   239
    NSString *path = [NSString stringWithFormat:@"%@/%@.wav",[[NSBundle mainBundle] resourcePath],snd];
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   240
    
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   241
    //declare a system sound id
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   242
    SystemSoundID soundID;
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   243
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   244
    //Get a URL for the sound file
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   245
    NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   246
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   247
    //Use audio sevices to create the sound
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   248
    AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   249
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   250
    //Use audio services to play the sound
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   251
    AudioServicesPlaySystemSound(soundID);
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   252
}