3547
|
1 |
//
|
|
2 |
// CommodityFunctions.m
|
|
3 |
// HedgewarsMobile
|
|
4 |
//
|
|
5 |
// Created by Vittorio on 08/04/10.
|
|
6 |
// Copyright 2010 __MyCompanyName__. All rights reserved.
|
|
7 |
//
|
|
8 |
|
|
9 |
#import "CommodityFunctions.h"
|
|
10 |
#import <mach/mach.h>
|
|
11 |
#import <mach/mach_host.h>
|
|
12 |
|
|
13 |
void createTeamNamed (NSString *nameWithoutExt) {
|
|
14 |
NSString *teamsDirectory = TEAMS_DIRECTORY();
|
|
15 |
|
|
16 |
if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
|
|
17 |
[[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
|
|
18 |
withIntermediateDirectories:NO
|
|
19 |
attributes:nil
|
|
20 |
error:NULL];
|
|
21 |
}
|
|
22 |
|
|
23 |
NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: MAX_HOGS];
|
|
24 |
|
|
25 |
for (int i = 0; i < MAX_HOGS; i++) {
|
|
26 |
NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
|
|
27 |
NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
|
|
28 |
hogName,@"hogname", @"NoHat",@"hat", nil];
|
|
29 |
[hogName release];
|
|
30 |
[hedgehogs addObject:hog];
|
|
31 |
[hog release];
|
|
32 |
}
|
|
33 |
|
|
34 |
NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash", nameWithoutExt,@"teamname",
|
|
35 |
@"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
|
|
36 |
@"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
|
|
37 |
[hedgehogs release];
|
|
38 |
|
|
39 |
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
|
|
40 |
|
|
41 |
[theTeam writeToFile:teamFile atomically:YES];
|
|
42 |
[teamFile release];
|
|
43 |
[theTeam release];
|
|
44 |
}
|
|
45 |
|
|
46 |
void createWeaponNamed (NSString *nameWithoutExt) {
|
|
47 |
NSString *weaponsDirectory = WEAPONS_DIRECTORY();
|
|
48 |
|
|
49 |
if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
|
|
50 |
[[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
|
|
51 |
withIntermediateDirectories:NO
|
|
52 |
attributes:nil
|
|
53 |
error:NULL];
|
|
54 |
}
|
|
55 |
|
|
56 |
NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
57 |
@"9391929422199121032235111001201000000211190911",@"ammostore_initialqt",
|
|
58 |
@"0405040541600655546554464776576666666155501000",@"ammostore_probability",
|
|
59 |
@"0000000000000205500000040007004000000000200000",@"ammostore_delay",
|
|
60 |
@"1311110312111111123114111111111111111211101111",@"ammostore_crate", nil];
|
|
61 |
|
|
62 |
NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
|
|
63 |
|
|
64 |
[theWeapon writeToFile:weaponFile atomically:YES];
|
|
65 |
[weaponFile release];
|
|
66 |
[theWeapon release];
|
|
67 |
}
|
|
68 |
|
|
69 |
void createSchemeNamed (NSString *nameWithoutExt) {
|
|
70 |
NSString *schemesDirectory = SCHEMES_DIRECTORY();
|
|
71 |
|
|
72 |
if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
|
|
73 |
[[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
|
|
74 |
withIntermediateDirectories:NO
|
|
75 |
attributes:nil
|
|
76 |
error:NULL];
|
|
77 |
}
|
|
78 |
|
|
79 |
NSArray *theScheme = [[NSArray alloc] initWithObjects:
|
|
80 |
[NSNumber numberWithBool:NO], //fortmode
|
|
81 |
[NSNumber numberWithBool:NO], //divideteam
|
|
82 |
[NSNumber numberWithBool:NO], //solidland
|
|
83 |
[NSNumber numberWithBool:NO], //addborder
|
|
84 |
[NSNumber numberWithBool:NO], //lowgravity
|
|
85 |
[NSNumber numberWithBool:NO], //lasersight
|
|
86 |
[NSNumber numberWithBool:NO], //invulnerable
|
|
87 |
[NSNumber numberWithBool:NO], //addmines
|
|
88 |
[NSNumber numberWithBool:NO], //vampirism
|
|
89 |
[NSNumber numberWithBool:NO], //karma
|
|
90 |
[NSNumber numberWithBool:NO], //artillery
|
|
91 |
[NSNumber numberWithBool:YES], //randomorder
|
|
92 |
[NSNumber numberWithBool:NO], //king
|
|
93 |
[NSNumber numberWithBool:NO], //placehedgehogs
|
|
94 |
[NSNumber numberWithBool:NO], //clansharesammo
|
|
95 |
[NSNumber numberWithBool:NO], //disablegirders
|
|
96 |
[NSNumber numberWithBool:NO], //disablelandobjects
|
|
97 |
[NSNumber numberWithInt:100], //damagemodifier
|
|
98 |
[NSNumber numberWithInt:45], //turntime
|
|
99 |
[NSNumber numberWithInt:100], //initialhealth
|
|
100 |
[NSNumber numberWithInt:15], //suddendeathtimeout
|
|
101 |
[NSNumber numberWithInt:5], //cratedrops
|
|
102 |
[NSNumber numberWithInt:3], //minestime
|
|
103 |
[NSNumber numberWithInt:4], //mines
|
|
104 |
[NSNumber numberWithInt:0], //dudmines
|
|
105 |
[NSNumber numberWithInt:2], //explosives
|
|
106 |
nil];
|
|
107 |
|
|
108 |
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
|
|
109 |
|
|
110 |
[theScheme writeToFile:schemeFile atomically:YES];
|
|
111 |
[schemeFile release];
|
|
112 |
[theScheme release];
|
|
113 |
}
|
|
114 |
|
|
115 |
BOOL rotationManager (UIInterfaceOrientation interfaceOrientation) {
|
|
116 |
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
|
|
117 |
return YES;
|
|
118 |
else
|
|
119 |
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
|
|
120 |
(interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
|
|
121 |
}
|
|
122 |
|
|
123 |
NSInteger randomPort () {
|
|
124 |
srandom(time(NULL));
|
|
125 |
return (random() % 64511) + 1024;
|
|
126 |
}
|
|
127 |
|
|
128 |
void popError (const char *title, const char *message) {
|
|
129 |
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithUTF8String:title]
|
|
130 |
message:[NSString stringWithUTF8String:message]
|
|
131 |
delegate:nil
|
|
132 |
cancelButtonTitle:@"Ok"
|
|
133 |
otherButtonTitles:nil];
|
|
134 |
[alert show];
|
|
135 |
[alert release];
|
|
136 |
}
|
|
137 |
|
|
138 |
// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
|
|
139 |
void print_free_memory () {
|
|
140 |
mach_port_t host_port;
|
|
141 |
mach_msg_type_number_t host_size;
|
|
142 |
vm_size_t pagesize;
|
|
143 |
|
|
144 |
host_port = mach_host_self();
|
|
145 |
host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
|
|
146 |
host_page_size(host_port, &pagesize);
|
|
147 |
|
|
148 |
vm_statistics_data_t vm_stat;
|
|
149 |
|
|
150 |
if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
|
|
151 |
DLog(@"Failed to fetch vm statistics");
|
|
152 |
|
|
153 |
/* Stats in bytes */
|
|
154 |
natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize;
|
|
155 |
natural_t mem_free = vm_stat.free_count * pagesize;
|
|
156 |
natural_t mem_total = mem_used + mem_free;
|
|
157 |
DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
|
|
158 |
}
|