168 |
} |
} |
169 |
|
|
170 |
|
|
171 |
//@end |
/** |
172 |
|
* NSCoding method |
173 |
|
* to encode and decode objects |
174 |
//@implementation HgPlayer (Coding) |
*/ |
|
|
|
175 |
- (void)encodeWithCoder: (NSCoder *)encoder |
- (void)encodeWithCoder: (NSCoder *)encoder |
176 |
{ |
{ |
177 |
[encoder encodeValueOfObjCType: "I" at: &_identifier]; |
[encoder encodeValueOfObjCType: "I" at: &_identifier]; |
184 |
|
|
185 |
- (id)initWithCoder: (NSCoder *)decoder |
- (id)initWithCoder: (NSCoder *)decoder |
186 |
{ |
{ |
187 |
self = [super init]; |
[decoder decodeValueOfObjCType: "I" at: &_identifier]; |
188 |
[decoder decodeValueOfObjCType: "I" at: &_identifier]; |
NSNumber *numIdent = [NSNumber numberWithInt: _identifier]; |
|
_name = RETAIN([decoder decodeObject]); |
|
|
_userAtHost = RETAIN([decoder decodeObject]); |
|
|
_team = RETAIN([decoder decodeObject]); |
|
|
_ship = RETAIN([decoder decodeObject]); |
|
|
[decoder decodeValueOfObjCType: "i" at: &_score]; |
|
|
|
|
|
return self; |
|
|
} |
|
|
|
|
|
- (id)replacementObjectForCoder:(NSCoder *)coder |
|
|
{ |
|
|
int ident; |
|
|
NSNumber *numIdent; |
|
|
HgGame *current; |
|
|
HgPlayer *playerObject; |
|
189 |
|
|
190 |
[coder decodeValueOfObjCType: "I" at: &ident]; |
HgGame *current = [HgGame currentGame]; |
191 |
numIdent = [NSNumber numberWithInt: ident]; |
HgPlayer *playerObject = [[current players] objectForKey: numIdent]; |
192 |
|
|
193 |
current = [HgGame currentGame]; |
printf ("current: %@, players : %@\n", current, [current players]); |
|
playerObject = [[current players] objectForKey: numIdent]; |
|
194 |
|
|
195 |
if (playerObject != nil) |
if (playerObject != nil) |
196 |
{ |
{ |
197 |
return playerObject; |
printf ("meuh trouvé\n"); |
198 |
|
DESTROY(self); |
199 |
|
self = RETAIN(playerObject); |
200 |
} |
} |
201 |
else |
else |
202 |
{ |
{ |
203 |
return self; |
printf ("pas trouvé\n"); |
204 |
|
self = [super init]; |
205 |
|
} |
206 |
|
|
207 |
|
if (self != nil) |
208 |
|
{ |
209 |
|
ASSIGN (_name, [decoder decodeObject]); |
210 |
|
ASSIGN (_userAtHost, [decoder decodeObject]); |
211 |
|
ASSIGN (_team, [decoder decodeObject]); |
212 |
|
ASSIGN (_ship, [decoder decodeObject]); |
213 |
|
[decoder decodeValueOfObjCType: "i" at: &_score]; |
214 |
} |
} |
|
} |
|
215 |
|
|
216 |
|
return self; |
217 |
|
} |
218 |
|
|
219 |
@end |
@end |