project_files/HedgewarsMobile/Classes/CommodityFunctions.m
author koda
Fri, 05 Nov 2010 00:38:30 +0100
changeset 4115 222b8016c773
parent 4098 40df542b5f62
child 4149 51200479f9d8
permissions -rw-r--r--
make the support page more portable fix the respondsToSelector calls and update modes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    18
 * File created on 08/04/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3823
diff changeset
    20
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    21
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    22
#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
    23
#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
    24
#import <sys/sysctl.h>
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
#import <mach/mach.h>
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
#import <mach/mach_host.h>
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
    27
#import <QuartzCore/QuartzCore.h>
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
    28
#import "AudioToolbox/AudioToolbox.h"
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3917
diff changeset
    29
#import "PascalImports.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
void createTeamNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
    NSString *teamsDirectory = TEAMS_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    33
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
    if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    35
        [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    36
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    37
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    40
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3917
diff changeset
    41
    NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: HW_getMaxNumberOfHogs()];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    42
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3917
diff changeset
    43
    for (int i = 0; i < HW_getMaxNumberOfHogs(); i++) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
        NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    45
        NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    46
                             hogName,@"hogname", @"NoHat",@"hat", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    47
        [hogName release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    48
        [hedgehogs addObject:hog];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    49
        [hog release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    50
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    51
3660
bc125bea5849 complete settings page rework
koda
parents: 3621
diff changeset
    52
    NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash",
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    53
                             @"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
                             @"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    55
    [hedgehogs release];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    56
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    57
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    58
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    59
    [theTeam writeToFile:teamFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    60
    [teamFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    61
    [theTeam release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    62
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    63
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
    64
void createWeaponNamed (NSString *nameWithoutExt, int type) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    65
    NSString *weaponsDirectory = WEAPONS_DIRECTORY();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    66
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    67
    if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    68
        [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    69
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    70
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    71
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    73
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3737
diff changeset
    74
    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
    75
    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
    76
        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
    77
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    78
                         @"9391929422199121032235111001201000000211110101010",@"ammostore_initialqt",
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    79
                         @"0405040541600655546554464776576666666155510101110",@"ammostore_probability",
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    80
                         @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    81
                         @"1311110312111111123114111111111111111211111101110",@"ammostore_crate", 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
    82
            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
    83
        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
    84
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    85
                         @"9999999999999999992999999999999999299999999909990",@"ammostore_initialqt",
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    86
                         @"1111110111111111111111111111111111111111111101110",@"ammostore_probability",
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    87
                         @"0000000000000000000000000000000000000000000000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    88
                         @"1311110312111111123114111111111111111211110101110",@"ammostore_crate", 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
    89
            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
    90
        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
    91
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    92
                         @"9090009000000000000009000000000000000000000000000",@"ammostore_initialqt",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    93
                         @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    94
                         @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
    95
                         @"1111111111111111111111111111111111111111100101110",@"ammostore_crate", 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
    96
            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
    97
        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
    98
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
    99
                         @"0000009900000000000000000000000000000000000000000",@"ammostore_initialqt",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   100
                         @"4444410044244402210112121222422000000002000400010",@"ammostore_probability",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   101
                         @"0000000000000000000000000000000000000000000000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
   102
                         @"1111111111111111111111111111111111111111101101110",@"ammostore_crate", 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
   103
            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
   104
        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
   105
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   106
                         @"9391929422199121032235111001201000000211110101000",@"ammostore_initialqt",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   107
                         @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   108
                         @"0000000000000005500000040007004000000000200000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
   109
                         @"1111111111111111111111111111111111111111111101110",@"ammostore_crate", 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
   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
        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
   112
            theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   113
                         @"0000009900090000000300000000000000000000000000000",@"ammostore_initialqt",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   114
                         @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   115
                         @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
3982
86c3a6e8e265 ios version bump and other minor things
koda
parents: 3971
diff changeset
   116
                         @"1111111111111111111111111111111111111111111101110",@"ammostore_crate", 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
   117
            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
   118
        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
   119
            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
   120
            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
   121
    }
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
   122
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
    NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   124
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   125
    [theWeapon writeToFile:weaponFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   126
    [weaponFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   127
    [theWeapon release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   128
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   129
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
void createSchemeNamed (NSString *nameWithoutExt) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
    NSString *schemesDirectory = SCHEMES_DIRECTORY();
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   132
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   133
    if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   134
        [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   135
                                  withIntermediateDirectories:NO
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   136
                                                   attributes:nil
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   137
                                                        error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   138
    }
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
   139
    
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
    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
   141
                                   [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
   142
                                   [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
   143
                                   [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
   144
                                   [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
   145
                                   [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
   146
                                   [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
   147
                                   [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
   148
                                   [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
   149
                                   [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
   150
                                   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
   151
    
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
    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
   153
                                   [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
   154
                                   [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
   155
                                   [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
   156
                                   [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
   157
                                   [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
   158
                                   [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
   159
                                   [NSNumber numberWithBool:NO],      //invulnerable
4115
222b8016c773 make the support page more portable
koda
parents: 4098
diff changeset
   160
                                   [NSNumber numberWithBool:NO],      //resethealth
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
   161
                                   [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
   162
                                   [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
   163
                                   [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
   164
                                   [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
   165
                                   [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
   166
                                   [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
   167
                                   [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
   168
                                   [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
   169
                                   [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
   170
                                   [NSNumber numberWithBool:NO],      //aisurvival
4115
222b8016c773 make the support page more portable
koda
parents: 4098
diff changeset
   171
                                   [NSNumber numberWithBool:NO],      //infattack
222b8016c773 make the support page more portable
koda
parents: 4098
diff changeset
   172
                                   [NSNumber numberWithBool:NO],      //resetweaps
222b8016c773 make the support page more portable
koda
parents: 4098
diff changeset
   173
                                   [NSNumber numberWithBool:NO],      //perhogammo
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
   174
                                   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
   175
    
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
   176
    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
   177
                                      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
   178
                                      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
   179
                                      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
   180
    [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
   181
    [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
   182
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
    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
   184
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
    [theScheme writeToFile:schemeFile atomically:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   186
    [schemeFile release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
    [theScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   189
3940
cc29628976cc some optimizations to drawing and fetching data of new ammomenu
koda
parents: 3930
diff changeset
   190
BOOL inline rotationManager (UIInterfaceOrientation interfaceOrientation) {
4098
40df542b5f62 i give up and disable rotation on the iphone; also fix smaller compilation issues
koda
parents: 3996
diff changeset
   191
    if (IS_IPAD())
40df542b5f62 i give up and disable rotation on the iphone; also fix smaller compilation issues
koda
parents: 3996
diff changeset
   192
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
40df542b5f62 i give up and disable rotation on the iphone; also fix smaller compilation issues
koda
parents: 3996
diff changeset
   193
               (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
40df542b5f62 i give up and disable rotation on the iphone; also fix smaller compilation issues
koda
parents: 3996
diff changeset
   194
    else
40df542b5f62 i give up and disable rotation on the iphone; also fix smaller compilation issues
koda
parents: 3996
diff changeset
   195
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   197
3940
cc29628976cc some optimizations to drawing and fetching data of new ammomenu
koda
parents: 3930
diff changeset
   198
NSInteger inline randomPort () {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
    srandom(time(NULL));
3971
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   200
    NSInteger res = (random() % 64511) + 1024;
5c82ee165ed5 minor stuff
koda
parents: 3941
diff changeset
   201
    return (res == DEFAULT_NETGAME_PORT) ? randomPort() : res;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   202
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   203
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   204
void popError (const char *title, const char *message) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   205
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:title]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   206
                                                    message:[NSString stringWithUTF8String:message]
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   207
                                                   delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   208
                                          cancelButtonTitle:@"Ok"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   209
                                          otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   210
    [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   211
    [alert release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   212
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   213
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   214
// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   215
void print_free_memory () {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   216
    mach_port_t host_port;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   217
    mach_msg_type_number_t host_size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   218
    vm_size_t pagesize;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   219
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   220
    host_port = mach_host_self();
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   221
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   222
    host_page_size(host_port, &pagesize);
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   223
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   224
    vm_statistics_data_t vm_stat;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   225
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   226
    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
   227
        DLog(@"Failed to fetch vm statistics");
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   228
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   229
    /* Stats in bytes */
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   230
    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
   231
    natural_t mem_free = vm_stat.free_count * pagesize;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   232
    natural_t mem_total = mem_used + mem_free;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   233
    DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   234
}
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   235
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   236
BOOL inline isApplePhone () {
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3983
diff changeset
   237
    return (IS_IPAD() == NO);
3668
3f7a95234d8a tap to play piano notes, fix for audio and pause glitch
koda
parents: 3660
diff changeset
   238
}
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   239
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   240
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
   241
    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
   242
    // 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
   243
    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
   244
    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
   245
    // 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
   246
    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
   247
    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
   248
    free(name);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   249
3670
4c673e57f0d7 use llvm to compile, don't preview map on wimpier devices, merge vsync, fix iphone launch image
koda
parents: 3668
diff changeset
   250
    return modelId;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   251
}
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   252
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   253
void playSound (NSString *snd) {
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   254
    //Get the filename of the sound file:
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   255
    NSString *path = [NSString stringWithFormat:@"%@/%@.wav",[[NSBundle mainBundle] resourcePath],snd];
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   256
    
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   257
    //declare a system sound id
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   258
    SystemSoundID soundID;
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   259
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   260
    //Get a URL for the sound file
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   261
    NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   262
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   263
    //Use audio sevices to create the sound
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   264
    AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   265
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   266
    //Use audio services to play the sound
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3781
diff changeset
   267
    AudioServicesPlaySystemSound(soundID);
3917
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   268
}
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   269
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   270
NSArray inline *getAvailableColors (void) {
3917
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   271
    return [NSArray arrayWithObjects:[NSNumber numberWithUnsignedInt:0x4376e9],     // bluette
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   272
                                     [NSNumber numberWithUnsignedInt:0x3e9321],     // greeeen
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   273
                                     [NSNumber numberWithUnsignedInt:0xa23dbb],     // violett
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   274
                                     [NSNumber numberWithUnsignedInt:0xff9329],     // oranngy
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   275
                                     [NSNumber numberWithUnsignedInt:0xdd0000],     // reddish
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   276
                                     [NSNumber numberWithUnsignedInt:0x737373],     // graaaay
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   277
                                     [NSNumber numberWithUnsignedInt:0xbba23d],     // gold$$$
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   278
                                     [NSNumber numberWithUnsignedInt:0x3da2bb],     // cyannnn  
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   279
                                     nil];
4c243b1eac97 playing a bit with colors
koda
parents: 3878
diff changeset
   280
}
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   281
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   282
UILabel *createBlueLabel (NSString *title, CGRect frame) {
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   283
    return createLabelWithParams(title, frame, 1.5f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_DARKBLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   284
}
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   285
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   286
UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor) {
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   287
    UILabel *theLabel = [[UILabel alloc] initWithFrame:frame];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   288
    theLabel.backgroundColor = backgroundColor;
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   289
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   290
    if (title != nil) {
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   291
        theLabel.text = title;
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   292
        theLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   293
        theLabel.textAlignment = UITextAlignmentCenter;
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   294
        theLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]*80/100];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   295
    }
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   296
    
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   297
    [theLabel.layer setBorderWidth:borderWidth];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   298
    [theLabel.layer setBorderColor:borderColor.CGColor];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   299
    [theLabel.layer setCornerRadius:8.0f];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   300
    [theLabel.layer setMasksToBounds:YES];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   301
    
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   302
    return theLabel;
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3982
diff changeset
   303
}