93 NSLog(@"engineProtocol - sending game config"); |
93 NSLog(@"engineProtocol - sending game config"); |
94 |
94 |
95 // send config data data |
95 // send config data data |
96 /* |
96 /* |
97 seed is arbitrary string |
97 seed is arbitrary string |
98 addteam <color> <team name> |
98 addteam <32charsMD5hash> <color> <team name> |
99 addhh <level> <health> <hedgehog name> |
99 addhh <level> <health> <hedgehog name> |
100 <level> is 0 for human, 1-5 for bots (5 is the most stupid) |
100 <level> is 0 for human, 1-5 for bots (5 is the most stupid) |
101 ammostore is one byte/number for each ammocount then one for each probability or so |
101 ammostore is one byte/number for each ammocount then one for each probability or so |
102 */ |
102 */ |
103 // local game |
103 // local game |
140 // team 1 members info |
140 // team 1 members info |
141 [self sendToEngine:@"eaddhh 0 100 Snow Leopard"]; |
141 [self sendToEngine:@"eaddhh 0 100 Snow Leopard"]; |
142 [self sendToEngine:@"ehat NoHat"]; |
142 [self sendToEngine:@"ehat NoHat"]; |
143 |
143 |
144 // team 1 ammostore |
144 // team 1 ammostore |
145 [self sendToEngine:@"eammstore 20501090003040000009000000000000000000010404000441400444645644444774776112211144"]; |
145 [self sendToEngine:@"eammstore 9391929422199121032235111001201000000211040400044140044464564444477477611221114400000000000002055000000400070040000000001311111312111111123114111111111111111211"]; |
146 //[self sendToEngine:@"eammstore 93919294221991210322351110012010000002110404000441400444645644444774776112211144"]; |
146 |
147 |
|
148 // team 2 info |
147 // team 2 info |
149 [self sendToEngine:@"eaddteam 4100897 Poke-MAN"]; |
148 [self sendToEngine:@"eaddteam 0 4100897 Poke-MAN"]; |
150 |
149 |
151 // team 2 grave info |
150 // team 2 grave info |
152 [self sendToEngine:@"egrave Badger"]; |
151 [self sendToEngine:@"egrave Badger"]; |
153 |
152 |
154 // team 2 fort info |
153 // team 2 fort info |
164 // team 2 members info |
163 // team 2 members info |
165 [self sendToEngine:@"eaddhh 0 100 Raichu"]; |
164 [self sendToEngine:@"eaddhh 0 100 Raichu"]; |
166 [self sendToEngine:@"ehat Bunny"]; |
165 [self sendToEngine:@"ehat Bunny"]; |
167 |
166 |
168 // team 2 ammostore |
167 // team 2 ammostore |
169 [self sendToEngine:@"eammstore 20501090003040000009000000000000000000010404000441400444645644444774776112211144"]; |
168 [self sendToEngine:@"eammstore 9391929422199121032235111001201000000211040400044140044464564444477477611221114400000000000002055000000400070040000000001311111312111111123114111111111111111211"]; |
170 |
169 |
171 clientQuit = NO; |
170 clientQuit = NO; |
172 } else { |
171 } else { |
173 NSLog(@"engineProtocolThread - wrong message or client closed connection"); |
172 NSLog(@"engineProtocolThread - wrong message or client closed connection"); |
174 clientQuit = YES; |
173 clientQuit = YES; |
199 break; |
198 break; |
200 case 'e': |
199 case 'e': |
201 sscanf(buffer, "%*s %d", &eProto); |
200 sscanf(buffer, "%*s %d", &eProto); |
202 short int netProto; |
201 short int netProto; |
203 char *versionStr; |
202 char *versionStr; |
204 HW_versionInfo(&netProto, &versionStr); |
203 /* |
|
204 HW_versionInfo(&netProto, &versionStr); |
205 if (netProto == eProto) { |
205 if (netProto == eProto) { |
206 NSLog(@"Setting protocol version %d (%s)", eProto, versionStr); |
206 NSLog(@"Setting protocol version %d (%s)", eProto, versionStr); |
207 } else { |
207 } else { |
208 NSLog(@"ERROR - wrong protocol number: [%s] - expecting %d", buffer, eProto); |
208 NSLog(@"ERROR - wrong protocol number: [%s] - expecting %d", buffer, eProto); |
209 clientQuit = YES; |
209 clientQuit = YES; |
210 } |
210 } |
|
211 */ |
211 break; |
212 break; |
212 case 'i': |
213 case 'i': |
213 switch (buffer[1]) { |
214 switch (buffer[1]) { |
214 case 'r': |
215 case 'r': |
215 NSLog(@"Winning team: %s", &buffer[2]); |
216 NSLog(@"Winning team: %s", &buffer[2]); |
244 #pragma mark - |
245 #pragma mark - |
245 #pragma mark Setting methods |
246 #pragma mark Setting methods |
246 -(const char **)getSettings { |
247 -(const char **)getSettings { |
247 const char **gameArgs = (const char**) malloc(sizeof(char*) * 6); |
248 const char **gameArgs = (const char**) malloc(sizeof(char*) * 6); |
248 NSString *ipcString = [[NSString alloc] initWithFormat:@"%d", ipcPort]; |
249 NSString *ipcString = [[NSString alloc] initWithFormat:@"%d", ipcPort]; |
249 NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt", [[NSLocale currentLocale] localeIdentifier]]; |
250 NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt", [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]]; |
250 |
251 |
251 gameArgs[0] = [[systemSettings objectForKey:@"username"] UTF8String]; //UserNick |
252 gameArgs[0] = [[systemSettings objectForKey:@"username"] UTF8String]; //UserNick |
252 gameArgs[1] = [ipcString UTF8String]; //ipcPort |
253 gameArgs[1] = [ipcString UTF8String]; //ipcPort |
253 gameArgs[2] = [[systemSettings objectForKey:@"sounds"] UTF8String]; //isSoundEnabled |
254 gameArgs[2] = [[systemSettings objectForKey:@"sounds"] UTF8String]; //isSoundEnabled |
254 gameArgs[3] = [[systemSettings objectForKey:@"music"] UTF8String]; //isMusicEnabled |
255 gameArgs[3] = [[systemSettings objectForKey:@"music"] UTF8String]; //isMusicEnabled |
255 gameArgs[4] = [localeString UTF8String]; //cLocaleFName |
256 gameArgs[4] = [localeString UTF8String]; //cLocaleFName |
256 gameArgs[5] = [[systemSettings objectForKey:@"alternate"] UTF8String]; //cAltDamage |
257 gameArgs[5] = [[systemSettings objectForKey:@"alternate"] UTF8String]; //cAltDamage |
257 |
258 |
258 [localeString release]; |
259 [localeString release]; |
259 [ipcString release]; |
260 [ipcString release]; |
260 return gameArgs; |
261 return gameArgs; |