(svn r6820) -Codechange: Some more const correctness, coding style.

-Codechange: Add FOR_ALL_ACTIVE_CLIENT_INFOS macro that will loop all clients
 skipping inactive ones.
This commit is contained in:
Darkvater 2006-10-18 13:17:46 +00:00
parent ccc1ad52d9
commit 68314cf576
4 changed files with 18 additions and 28 deletions

View File

@ -658,10 +658,10 @@ DEF_CONSOLE_CMD(ConKick)
DEF_CONSOLE_CMD(ConResetCompany)
{
Player *p;
NetworkClientState *cs;
NetworkClientInfo *ci;
byte index;
const Player *p;
const NetworkClientState *cs;
const NetworkClientInfo *ci;
PlayerID index;
if (argc == 0) {
IConsoleHelp("Remove an idle company from the game. Usage: 'reset_company <company-id>'");
@ -721,13 +721,11 @@ DEF_CONSOLE_CMD(ConNetworkClients)
return true;
}
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
if (ci->client_index != NETWORK_EMPTY_INDEX) {
IConsolePrintF(8, "Client #%1d name: '%s' company: %1d IP: %s",
ci->client_index, ci->client_name,
ci->client_playas + (IsValidPlayer(ci->client_playas) ? 1 : 0),
GetPlayerIP(ci));
}
FOR_ALL_ACTIVE_CLIENT_INFOS(ci) {
IConsolePrintF(8, "Client #%1d name: '%s' company: %1d IP: %s",
ci->client_index, ci->client_name,
ci->client_playas + (IsValidPlayer(ci->client_playas) ? 1 : 0),
GetPlayerIP(ci));
}
return true;
@ -748,9 +746,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
}
if (argc < 2) return false;
if (_networking) // We are in network-mode, first close it!
NetworkDisconnect();
if (_networking) NetworkDisconnect(); // we are in network-mode, first close it!
ip = argv[1];
/* Default settings: default port and new company */

View File

@ -55,7 +55,7 @@ NetworkClientInfo *NetworkFindClientInfoFromIndex(uint16 client_index)
{
NetworkClientInfo *ci;
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
for (ci = _network_client_info; ci != endof(_network_client_info); ci++) {
if (ci->client_index == client_index) return ci;
}
@ -70,7 +70,7 @@ NetworkClientInfo *NetworkFindClientInfoFromIP(const char *ip)
NetworkClientInfo *ci;
uint32 ip_number = inet_addr(ip);
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
for (ci = _network_client_info; ci != endof(_network_client_info); ci++) {
if (ci->client_ip == ip_number) return ci;
}

View File

@ -198,7 +198,8 @@ NetworkClientState _clients[MAX_CLIENTS];
#define SEND_COMMAND(type) NetworkPacketSend_ ## type ## _command
#define RECEIVE_COMMAND(type) NetworkPacketReceive_ ## type ## _command
#define FOR_ALL_CLIENTS(cs) for (cs = _clients; cs != &_clients[MAX_CLIENTS] && cs->socket != INVALID_SOCKET; cs++)
#define FOR_ALL_CLIENTS(cs) for (cs = _clients; cs != endof(_clients) && cs->socket != INVALID_SOCKET; cs++)
#define FOR_ALL_ACTIVE_CLIENT_INFOS(ci) for (ci = _network_client_info; ci != endof(_network_client_info); ci++) if (ci->client_index != NETWORK_EMPTY_INDEX)
Packet *NetworkSend_Init(PacketType type);
void NetworkSend_uint8(Packet *packet, uint8 data);

View File

@ -1048,9 +1048,7 @@ static const NetworkClientInfo *NetworkFindClientInfo(byte client_no)
{
const NetworkClientInfo *ci;
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
// Skip non-active items
if (ci->client_index == NETWORK_EMPTY_INDEX) continue;
FOR_ALL_ACTIVE_CLIENT_INFOS(ci) {
if (client_no == 0) return ci;
client_no--;
}
@ -1123,12 +1121,10 @@ static void HandleClientListPopupClick(byte index, byte clientno) {
static bool CheckClientListHeight(Window *w)
{
int num = 0;
NetworkClientInfo *ci;
const NetworkClientInfo *ci;
// Should be replaced with a loop through all clients
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
// Skip non-active items
if (ci->client_index == NETWORK_EMPTY_INDEX) continue;
FOR_ALL_ACTIVE_CLIENT_INFOS(ci) {
num++;
}
@ -1307,10 +1303,7 @@ static void ClientListWndProc(Window *w, WindowEvent *e)
y = CLNWND_OFFSET;
for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) {
// Skip non-active items
if (ci->client_index == NETWORK_EMPTY_INDEX) continue;
FOR_ALL_ACTIVE_CLIENT_INFOS(ci) {
if (_selected_clientlist_item == i++) { // Selected item, highlight it
GfxFillRect(1, y, 248, y + CLNWND_ROWSIZE - 1, 0);
colour = 0xC;