9 #import "GameSetup.h" |
9 #import "GameSetup.h" |
10 #import "SDL_uikitappdelegate.h" |
10 #import "SDL_uikitappdelegate.h" |
11 #import "SDL_net.h" |
11 #import "SDL_net.h" |
12 #import "PascalImports.h" |
12 #import "PascalImports.h" |
13 |
13 |
14 #define IPC_PORT 51342 |
14 |
15 #define IPC_PORT_STR "51342" |
|
16 #define BUFFER_SIZE 256 |
15 #define BUFFER_SIZE 256 |
17 |
16 |
18 |
17 |
19 // they should go in the interface |
18 // they should go in the interface |
20 TCPsocket sd, csd; /* Socket descriptor, Client socket descriptor */ |
19 TCPsocket sd, csd; /* Socket descriptor, Client socket descriptor */ |
|
20 NSInteger ipcPort; |
|
21 |
21 int sendToEngine (NSString * string) { |
22 int sendToEngine (NSString * string) { |
22 Uint8 length = [string length]; |
23 Uint8 length = [string length]; |
23 |
24 |
24 SDLNet_TCP_Send(csd, &length , 1); |
25 SDLNet_TCP_Send(csd, &length , 1); |
25 return SDLNet_TCP_Send(csd, [string UTF8String], length); |
26 return SDLNet_TCP_Send(csd, [string UTF8String], length); |
26 } |
27 } |
27 |
28 |
28 |
29 |
29 @implementation GameSetup |
30 @implementation GameSetup |
30 |
31 |
31 @synthesize locale, engineProtocolStarted; |
32 @synthesize localeString, systemSettings; |
32 |
33 |
33 -(id) init { |
34 -(id) init { |
34 self = [super init]; |
35 self = [super init]; |
35 self.locale = [NSLocale currentLocale]; |
36 self.localeString = [[[NSLocale currentLocale] localeIdentifier] stringByAppendingString:@".txt"]; |
36 self.engineProtocolStarted = NO; |
37 self.systemSettings = nil; |
|
38 engineProtocolStarted = NO; |
|
39 ipcPort = 51342; |
37 return self; |
40 return self; |
38 } |
41 } |
39 |
42 |
40 -(void) startThread: (NSString *) selector { |
43 -(void) startThread: (NSString *) selector { |
41 SEL usage = NSSelectorFromString(selector); |
44 SEL usage = NSSelectorFromString(selector); |
60 fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError()); |
63 fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError()); |
61 exit(EXIT_FAILURE); |
64 exit(EXIT_FAILURE); |
62 } |
65 } |
63 |
66 |
64 /* Resolving the host using NULL make network interface to listen */ |
67 /* Resolving the host using NULL make network interface to listen */ |
65 if (SDLNet_ResolveHost(&ip, NULL, IPC_PORT) < 0) { |
68 if (SDLNet_ResolveHost(&ip, NULL, ipcPort) < 0) { |
66 fprintf(stderr, "SDLNet_ResolveHost: %s\n", SDLNet_GetError()); |
69 fprintf(stderr, "SDLNet_ResolveHost: %s\n", SDLNet_GetError()); |
67 exit(EXIT_FAILURE); |
70 exit(EXIT_FAILURE); |
68 } |
71 } |
69 |
72 |
70 /* Open a connection with the IP provided (listen on the host's port) */ |
73 /* Open a connection with the IP provided (listen on the host's port) */ |
236 [pool release]; |
239 [pool release]; |
237 [NSThread exit]; |
240 [NSThread exit]; |
238 } |
241 } |
239 |
242 |
240 -(void) setArgsForLocalPlay { |
243 -(void) setArgsForLocalPlay { |
241 NSString *localeString = [[self.locale localeIdentifier] stringByAppendingString:@".txt"]; |
244 NSString *portNumber = [[NSString alloc] initWithFormat:@"%d",ipcPort]; |
242 NSLog(localeString); |
245 /*for (NSString *theString in [NSLocale ISOLanguageCodes]) { |
|
246 NSLog(theString); |
|
247 }*/ |
|
248 |
243 |
249 |
244 memset(forward_argv, 0, forward_argc); |
250 memset(forward_argv, 0, forward_argc); |
245 |
251 |
246 forward_argc = 18; |
252 forward_argc = 18; |
247 forward_argv = (char **)realloc(forward_argv, forward_argc * sizeof(char *)); |
253 forward_argv = (char **)realloc(forward_argv, forward_argc * sizeof(char *)); |
248 //forward_argv[i] = malloc( (strlen(argv[i])+1) * sizeof(char)); |
254 //forward_argv[i] = malloc( (strlen(argv[i])+1) * sizeof(char)); |
249 forward_argv[ 1] = forward_argv[0]; // (UNUSED) |
255 forward_argv[ 1] = forward_argv[0]; // (UNUSED) |
250 forward_argv[ 2] = "320"; // cScreenWidth (NO EFFECT) |
256 forward_argv[ 2] = "320"; // cScreenWidth |
251 forward_argv[ 3] = "480"; // cScreenHeight (NO EFFECT) |
257 forward_argv[ 3] = "480"; // cScreenHeight |
252 forward_argv[ 4] = "32"; // cBitsStr |
258 forward_argv[ 4] = "16"; // cBitsStr |
253 forward_argv[ 5] = IPC_PORT_STR; // ipcPort; |
259 forward_argv[ 5] = [portNumber UTF8String]; // ipcPort; |
254 forward_argv[ 6] = "1"; // cFullScreen (NO EFFECT) |
260 forward_argv[ 6] = "1"; // cFullScreen (NO EFFECT) |
255 forward_argv[ 7] = "0"; // isSoundEnabled (TOSET) |
261 forward_argv[ 7] = "0"; // isSoundEnabled (TOSET) |
256 forward_argv[ 8] = "1"; // cVSyncInUse (UNUSED) |
262 forward_argv[ 8] = "1"; // cVSyncInUse (UNUSED) |
257 forward_argv[ 9] = [localeString UTF8String]; // cLocaleFName |
263 forward_argv[ 9] = [localeString UTF8String]; // cLocaleFName |
258 forward_argv[10] = "100"; // cInitVolume (TOSET) |
264 forward_argv[10] = "100"; // cInitVolume (TOSET) |
259 forward_argv[11] = "8"; // cTimerInterval |
265 forward_argv[11] = "8"; // cTimerInterval |
260 forward_argv[12] = "Data"; // PathPrefix |
266 forward_argv[12] = "Data"; // PathPrefix |
261 forward_argv[13] = "1"; // cShowFPS (TOSET?) |
267 forward_argv[13] = "1"; // cShowFPS (TOSET?) |
262 forward_argv[14] = "0"; // cAltDamage (TOSET) |
268 forward_argv[14] = "0"; // cAltDamage (TOSET) |
263 forward_argv[15] = "Koda"; // UserNick (DecodeBase64(ParamStr(15)) FTW) <- TODO |
269 forward_argv[15] = "Koda"; // UserNick (DecodeBase64(ParamStr(15)) FTW) <- TODO |
264 forward_argv[16] = "0"; // isMusicEnabled (TOSET) |
270 forward_argv[16] = "0"; // isMusicEnabled (TOSET) |
265 forward_argv[17] = "0"; // cReducedQuality |
271 forward_argv[17] = "0"; // cReducedQuality |
266 |
272 |
267 fprintf(stderr, forward_argv[9]); |
273 [portNumber release]; |
268 return; |
274 return; |
269 } |
275 } |
270 |
276 |
271 |
277 |
272 /* |
278 |
273 -(void) dealloc { |
279 -(void) dealloc { |
|
280 [self.systemSettings release]; |
|
281 [self.localeString autorelease]; |
274 [super dealloc]; |
282 [super dealloc]; |
275 } |
283 } |
276 */ |
284 |
277 |
285 |
278 |
286 |
279 @end |
287 @end |