177 } |
178 } |
178 NSString *flags = [[NSString alloc] initWithFormat:@"e$gmflags %d",result]; |
179 NSString *flags = [[NSString alloc] initWithFormat:@"e$gmflags %d",result]; |
179 [self sendToEngine:flags]; |
180 [self sendToEngine:flags]; |
180 [flags release]; |
181 [flags release]; |
181 |
182 |
182 NSString *dmgMod = [[NSString alloc] initWithFormat:@"e$damagepct %d",[[basicArray objectAtIndex:i++] intValue]]; |
183 NSString *dmgMod = [[NSString alloc] initWithFormat:@"e$damagepct %d",[[basicArray objectAtIndex:i] intValue]]; |
183 [self sendToEngine:dmgMod]; |
184 [self sendToEngine:dmgMod]; |
184 [dmgMod release]; |
185 [dmgMod release]; |
|
186 if (i < basicArraySize) i++; |
185 |
187 |
186 // support for endless games |
188 // support for endless games |
187 NSInteger tentativeTurntime = [[basicArray objectAtIndex:i++] intValue]; |
189 NSInteger tentativeTurntime = [[basicArray objectAtIndex:i] intValue]; |
188 if (tentativeTurntime == 100) |
190 if (tentativeTurntime == 100) |
189 tentativeTurntime = 9999; |
191 tentativeTurntime = 9999; |
190 NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000]; |
192 NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000]; |
191 [self sendToEngine:turnTime]; |
193 [self sendToEngine:turnTime]; |
192 [turnTime release]; |
194 [turnTime release]; |
193 |
195 if (i < basicArraySize) i++; |
194 result = [[basicArray objectAtIndex:i++] intValue]; // initial health |
196 |
195 |
197 result = [[basicArray objectAtIndex:i] intValue]; // initial health |
196 NSString *sdTime = [[NSString alloc] initWithFormat:@"e$sd_turns %d",[[basicArray objectAtIndex:i++] intValue]]; |
198 if (i < basicArraySize) i++; |
|
199 |
|
200 NSString *sdTime = [[NSString alloc] initWithFormat:@"e$sd_turns %d",[[basicArray objectAtIndex:i] intValue]]; |
197 [self sendToEngine:sdTime]; |
201 [self sendToEngine:sdTime]; |
198 [sdTime release]; |
202 [sdTime release]; |
199 |
203 if (i < basicArraySize) i++; |
200 NSString *crateDrops = [[NSString alloc] initWithFormat:@"e$casefreq %d",[[basicArray objectAtIndex:i++] intValue]]; |
204 |
|
205 NSString *crateDrops = [[NSString alloc] initWithFormat:@"e$casefreq %d",[[basicArray objectAtIndex:i] intValue]]; |
201 [self sendToEngine:crateDrops]; |
206 [self sendToEngine:crateDrops]; |
202 [crateDrops release]; |
207 [crateDrops release]; |
203 |
208 if (i < basicArraySize) i++; |
204 NSString *minesTime = [[NSString alloc] initWithFormat:@"e$minestime %d",[[basicArray objectAtIndex:i++] intValue] * 1000]; |
209 |
|
210 NSString *healthProb = [[NSString alloc] initWithFormat:@"e$healthprob %d",[[basicArray objectAtIndex:i] intValue]]; |
|
211 [self sendToEngine:healthProb]; |
|
212 [healthProb release]; |
|
213 if (i < basicArraySize) i++; |
|
214 |
|
215 NSString *healthAmount = [[NSString alloc] initWithFormat:@"e$hcaseamount %d",[[basicArray objectAtIndex:i] intValue]]; |
|
216 [self sendToEngine:healthAmount]; |
|
217 [healthAmount release]; |
|
218 if (i < basicArraySize) i++; |
|
219 |
|
220 NSString *minesTime = [[NSString alloc] initWithFormat:@"e$minestime %d",[[basicArray objectAtIndex:i] intValue] * 1000]; |
205 [self sendToEngine:minesTime]; |
221 [self sendToEngine:minesTime]; |
206 [minesTime release]; |
222 [minesTime release]; |
207 |
223 if (i < basicArraySize) i++; |
208 NSString *minesNumber = [[NSString alloc] initWithFormat:@"e$minesnum %d",[[basicArray objectAtIndex:i++] intValue]]; |
224 |
|
225 NSString *minesNumber = [[NSString alloc] initWithFormat:@"e$minesnum %d",[[basicArray objectAtIndex:i] intValue]]; |
209 [self sendToEngine:minesNumber]; |
226 [self sendToEngine:minesNumber]; |
210 [minesNumber release]; |
227 [minesNumber release]; |
211 |
228 if (i < basicArraySize) i++; |
212 NSString *dudMines = [[NSString alloc] initWithFormat:@"e$minedudpct %d",[[basicArray objectAtIndex:i++] intValue]]; |
229 |
|
230 NSString *dudMines = [[NSString alloc] initWithFormat:@"e$minedudpct %d",[[basicArray objectAtIndex:i] intValue]]; |
213 [self sendToEngine:dudMines]; |
231 [self sendToEngine:dudMines]; |
214 [dudMines release]; |
232 [dudMines release]; |
215 |
233 if (i < basicArraySize) i++; |
216 NSString *explosives = [[NSString alloc] initWithFormat:@"e$explosives %d",[[basicArray objectAtIndex:i++] intValue]]; |
234 |
|
235 NSString *explosives = [[NSString alloc] initWithFormat:@"e$explosives %d",[[basicArray objectAtIndex:i] intValue]]; |
217 [self sendToEngine:explosives]; |
236 [self sendToEngine:explosives]; |
218 [explosives release]; |
237 [explosives release]; |
|
238 if (i < basicArraySize) i++; |
219 |
239 |
220 DLog(@"Sent %d flags and %d modes", [gamemodArray count], i); |
240 DLog(@"Sent %d flags and %d modes", [gamemodArray count], i); |
221 [schemeDictionary release]; |
241 [schemeDictionary release]; |
222 return result; |
242 return result; |
223 } |
243 } |
224 |
244 |
225 #pragma mark - |
245 #pragma mark - |
226 #pragma mark Thread/Network relevant code |
246 #pragma mark Thread/Network relevant code |
227 // select one of GameSetup method and execute it in a seprate thread |
247 // select one of GameSetup method and execute it in a seprate thread |
228 -(void) startThread: (NSString *) selector { |
248 -(void) startThread:(NSString *)selector { |
229 SEL usage = NSSelectorFromString(selector); |
249 SEL usage = NSSelectorFromString(selector); |
230 [NSThread detachNewThreadSelector:usage toTarget:self withObject:nil]; |
250 [NSThread detachNewThreadSelector:usage toTarget:self withObject:nil]; |
231 } |
251 } |
232 |
252 |
233 -(void) dumpRawData:(const uint8_t*)buffer ofSize:(uint8_t) length { |
253 -(void) dumpRawData:(const uint8_t*)buffer ofSize:(uint8_t) length { |