25 |
#include <Foundation/NSArray.h> |
#include <Foundation/NSArray.h> |
26 |
#include <Foundation/NSException.h> |
#include <Foundation/NSException.h> |
27 |
#include <Foundation/NSCoder.h> |
#include <Foundation/NSCoder.h> |
28 |
|
#include <Foundation/NSValue.h> |
29 |
|
|
30 |
#include "GameEngine/HgPlayer.h" |
#include "GameEngine/HgPlayer.h" |
31 |
|
#include "GameEngine/HgGame.h" |
32 |
#include "GameEngine/HgShip.h" |
#include "GameEngine/HgShip.h" |
33 |
#include "GameEngine/HgTeam.h" |
#include "GameEngine/HgTeam.h" |
34 |
|
|
157 |
_score += point; |
_score += point; |
158 |
} |
} |
159 |
|
|
160 |
@end |
/** |
161 |
|
* Test the equivalence of the two players |
162 |
|
*/ |
163 |
|
- (BOOL) isEqualToPlayer: (HgPlayer *)player |
164 |
|
{ |
165 |
|
NSParameterAssert(player); |
166 |
|
|
167 |
|
return ([_name isEqualToString: [player name]]); |
168 |
|
} |
169 |
|
|
170 |
|
|
171 |
|
//@end |
172 |
|
|
173 |
|
|
174 |
@implementation HgPlayer (Coding) |
//@implementation HgPlayer (Coding) |
175 |
|
|
176 |
- (void)encodeWithCoder: (NSCoder *)encoder |
- (void)encodeWithCoder: (NSCoder *)encoder |
177 |
{ |
{ |
187 |
{ |
{ |
188 |
self = [super init]; |
self = [super init]; |
189 |
[decoder decodeValueOfObjCType: "I" at: &_identifier]; |
[decoder decodeValueOfObjCType: "I" at: &_identifier]; |
190 |
_name = [[decoder decodeObject] retain]; |
_name = RETAIN([decoder decodeObject]); |
191 |
_userAtHost = [[decoder decodeObject] retain]; |
_userAtHost = RETAIN([decoder decodeObject]); |
192 |
_team = [[decoder decodeObject] retain]; |
_team = RETAIN([decoder decodeObject]); |
193 |
_ship = [[decoder decodeObject] retain]; |
_ship = RETAIN([decoder decodeObject]); |
194 |
[decoder decodeValueOfObjCType: "i" at: &_score]; |
[decoder decodeValueOfObjCType: "i" at: &_score]; |
195 |
|
|
196 |
return self; |
return self; |
197 |
} |
} |
198 |
|
|
199 |
|
- (id)replacementObjectForCoder:(NSCoder *)coder |
200 |
|
{ |
201 |
|
int ident; |
202 |
|
NSNumber *numIdent; |
203 |
|
HgGame *current; |
204 |
|
HgPlayer *playerObject; |
205 |
|
|
206 |
|
[coder decodeValueOfObjCType: "I" at: &ident]; |
207 |
|
numIdent = [NSNumber numberWithInt: ident]; |
208 |
|
|
209 |
|
current = [HgGame currentGame]; |
210 |
|
playerObject = [[current players] objectForKey: numIdent]; |
211 |
|
|
212 |
|
if (playerObject != nil) |
213 |
|
{ |
214 |
|
return playerObject; |
215 |
|
} |
216 |
|
else |
217 |
|
{ |
218 |
|
return self; |
219 |
|
} |
220 |
|
} |
221 |
|
|
222 |
|
|
223 |
@end |
@end |