/[hegemonie]/hegemonie/GameEngine/HgPlayer.m
ViewVC logotype

Diff of /hegemonie/GameEngine/HgPlayer.m

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by thunder, Wed Jul 16 13:17:15 2003 UTC revision 1.10 by thunder, Tue Jul 22 13:37:47 2003 UTC
# Line 168  Line 168 
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];
# Line 185  Line 184 
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

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26