00001
00002
00003
00004
00005
00006
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
00025 [notificationCenter addObserver:self selector:@selector(disableSelection) name:@"MV_MESSAGE_SELECTION"];
00026
00027
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
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
00075 [self removeString:[player nameWithRank] fromColumn:column];
00076 }
00077
00078
00079 - (void) refreshData {
00080
00081
00082 [self emptyAllColumns];
00083
00084
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;
00093 }
00094
00095 - (void) newStringSelected:(NSString*)str {
00096 [notificationCenter postNotificationName:@"PV_PLAYER_SELECTION" object:self userInfo:str];
00097 }
00098
00099
00100 @end