Views/PlayerListView.m

00001 //
00002 //  PlayerListView.m
00003 //  MacTrek
00004 //
00005 //  Created by Aqua on 01/08/2006.
00006 //  Copyright 2006 Luky Soft. All rights reserved.
00007 //
00008 
00009 #import "PlayerListView.h"
00010 
00011 
00012 @implementation PlayerListView
00013 
00014 - (void) awakeFromNib {
00015     [super awakeFromNib];
00016     
00017     universe = [Universe defaultInstance];
00018     players = [[NSMutableArray alloc] init];
00019     
00020     [notificationCenter addObserver:self selector:@selector(refreshData) name:@"SP_PLAYER_INFO" 
00021                              object:nil useLocks:NO useMainRunLoop:YES];  
00022     [self setNrOfColumns:2];
00023     
00024     // user clicked on message list, disable our selection
00025     [notificationCenter addObserver:self selector:@selector(disableSelection) name:@"MV_MESSAGE_SELECTION"];
00026     // user manually choose a destination, disable our selection
00027     // $$$ [notificationCenter addObserver:self selector:@selector(disableSelection) name:@""];
00028 }
00029 
00030 - (void) addPlayer:(Player*)player {
00031     
00032     int column = 0;
00033     
00034     switch ([[player team] teamId]) {
00035 
00036         case TEAM_FED:
00037         case TEAM_KLI:
00038             column = 0;
00039             break;
00040         case TEAM_ROM:
00041         case TEAM_ORI:
00042         case TEAM_IND:
00043             column = 1;
00044             break;
00045         default:
00046             NSLog(@"PlayerListView.addPlayer illigal team");
00047             return;
00048             break;
00049     }
00050    // NSLog(@"PlayerListView.addPlayer [%@] to column %d", [player nameWithRank], column);
00051     [self addString:[player nameWithRank] withColor:[[player team] colorForTeam] toColumn:column];
00052 }
00053 
00054 - (void) removePlayer:(Player*)player {
00055     
00056     int column = 0;
00057     
00058     switch ([[player team] teamId]) {
00059         
00060         case TEAM_FED:
00061         case TEAM_KLI:
00062             column = 0;
00063             break;
00064         case TEAM_ROM:
00065         case TEAM_ORI:
00066         case TEAM_IND:
00067             column = 1;
00068             break;
00069         default:
00070             NSLog(@"PlayerListView.removePlayer illigal team");
00071             return;
00072             break;
00073     }
00074   //  NSLog(@"PlayerListView.removePlayer [%@] from column %d", [player nameWithRank], column);
00075     [self removeString:[player nameWithRank] fromColumn:column];
00076 }
00077 
00078 // tie this to events that change players
00079 - (void) refreshData {
00080     
00081     // clean up
00082     [self emptyAllColumns];
00083     
00084     // find players
00085     for (int i = 0; i < UNIVERSE_MAX_PLAYERS; i++) {
00086         Player *player = [universe playerWithId:i];
00087         if ([player status] != PLAYER_FREE) {
00088             [self addPlayer:player];                  
00089         }        
00090     } 
00091     
00092     hasChanged = YES;   // $$ could be heavy, since we change all the time
00093 }
00094 
00095 - (void) newStringSelected:(NSString*)str { 
00096     [notificationCenter postNotificationName:@"PV_PLAYER_SELECTION" object:self userInfo:str];
00097 }
00098 
00099 
00100 @end

Generated on Sat Aug 26 21:14:17 2006 for MacTrek by  doxygen 1.4.7