149 |
_canonElevation = canonElevation; |
_canonElevation = canonElevation; |
150 |
} |
} |
151 |
|
|
152 |
|
@end |
153 |
|
|
154 |
|
|
155 |
|
@implementation HgPlayerState (Coding) |
156 |
|
|
157 |
|
- (void)encodeWithCoder: (NSCoder *)encoder |
158 |
|
{ |
159 |
|
[super encodeWithCoder: encoder]; |
160 |
|
[encoder encodeObject: _player]; |
161 |
|
[encoder encodeValueOfObjCType: "f" at: &_acceleration]; |
162 |
|
[encoder encodeValueOfObjCType: "f" at: &_direction]; |
163 |
|
/* FIXME array coding */ |
164 |
|
int size = [_fireWeapons count]; |
165 |
|
[encoder encodeValueOfObjCType: "i" at: &size]; |
166 |
|
[encoder encodeArrayOfObjCType: "c" count: size at: &_fireWeapons]; |
167 |
|
[encoder encodeValueOfObjCType: "f" at: &_canonDirection]; |
168 |
|
[encoder encodeValueOfObjCType: "I" at: &_canonElevation]; |
169 |
|
[encoder encodeValueOfObjCType: "I" at: &_identifiant]; |
170 |
|
} |
171 |
|
|
172 |
|
- (id)initWithCoder: (NSCoder *)decoder |
173 |
|
{ |
174 |
|
int size; |
175 |
|
|
176 |
|
self = [super initWithCoder: decoder]; |
177 |
|
_player = [[decoder encodeObject] retain]; |
178 |
|
[decoder decodeValueOfObjCType: "f" at: &_acceleration]; |
179 |
|
[decoder decodeValueOfObjCType: "f" at: &_direction]; |
180 |
|
|
181 |
|
[decoder decodeValueOfObjCType: "i" at: &size]; |
182 |
|
_fireWeapons = malloc(size);// + 1; |
183 |
|
[decoder decodeArrayOfObjCType: "c" count: size at: &_fireWeapons]; |
184 |
|
//_fireWeapons[size] = 0; |
185 |
|
|
186 |
|
[decoder decodeValueOfObjCType: "f" at: &_canonDirection]; |
187 |
|
[decoder decodeValueOfObjCType: "I" at: &_canonElevation]; |
188 |
|
[decoder decodeValueOfObjCType: "I" at: &_identifiant]; |
189 |
|
|
190 |
|
return self; |
191 |
|
} |
192 |
|
|
193 |
@end |
@end |