#import "ServerInfo.h" #include "cube.h" @implementation ServerInfo + (instancetype)infoWithName: (OFString *)name; { return [[self alloc] initWithName: name]; } - (instancetype)initWithName: (OFString *)name { self = [super init]; _name = [name copy]; _full = @""; _mode = 0; _numplayers = 0; _ping = 9999; _protocol = 0; _minremain = 0; _map = @""; _sdesc = @""; _address.host = ENET_HOST_ANY; _address.port = CUBE_SERVINFO_PORT; return self; } - (OFComparisonResult)compare: (ServerInfo *)otherObject { if (![otherObject isKindOfClass: ServerInfo.class]) @throw [OFInvalidArgumentException exception]; if (_ping > otherObject.ping) return OFOrderedDescending; if (_ping < otherObject.ping) return OFOrderedAscending; return [_name compare: otherObject.name]; } @end