return("you");
else
for (player = &first_player; player; player = player->next)
- if (player->nr == player_nr && player->name && strlen(player->name))
+ if (player->nr == player_nr && strlen(player->name) > 0)
return(player->name);
return(EMPTY_PLAYER_NAME);
if (old_local_player != new_local_player)
{
- /* copy existing player settings and change to new player */
+ /* set relevant player settings and change to new player */
- *new_local_player = *old_local_player;
- old_local_player->connected = FALSE;
local_player = new_local_player;
+
+ old_local_player->connected_locally = FALSE;
+ new_local_player->connected_locally = TRUE;
+
+ old_local_player->connected_network = FALSE;
+ new_local_player->connected_network = TRUE;
}
if (first_player.nr > MAX_PLAYERS)
if (old_client_nr != new_client_nr)
{
- /* copy existing player settings and change to new player */
+ /* set relevant player settings and change to new player */
- *new_player = *old_player;
- old_player->connected = FALSE;
+ old_player->connected_network = FALSE;
+ new_player->connected_network = TRUE;
}
player = getNetworkPlayer(old_client_nr);
player->nr = new_client_nr;
if (old_player == local_player) /* local player switched */
+ {
local_player = new_player;
+
+ old_player->connected_locally = FALSE;
+ new_player->connected_locally = TRUE;
+ }
}
else if (old_client_nr == first_player.nr) /* failed -- local player? */
{
player->name[0] = '\0';
player->next = NULL;
- stored_player[new_index_nr].connected = TRUE;
+ stored_player[new_index_nr].connected_network = TRUE;
}
static void Handle_OP_PLAYER_DISCONNECTED()
{
struct NetworkClientPlayerInfo *player, *player_disconnected;
int player_nr = (int)buffer[0];
+ int index_nr = player_nr - 1;
printf("OP_PLAYER_DISCONNECTED: %d\n", player_nr);
player_disconnected = getNetworkPlayer(player_nr);
if (player->next == player_disconnected)
player->next = player_disconnected->next;
free(player_disconnected);
+
+ stored_player[index_nr].connected_locally = FALSE;
+ stored_player[index_nr].connected_network = FALSE;
}
static void Handle_OP_START_PLAYING()
Request("Network game stopped!", REQ_CONFIRM);
}
- game_status = GAME_MODE_MAIN;
+ SetGameStatus(GAME_MODE_MAIN);
+
DrawMainMenu();
}
/* copy valid player actions */
for (i = 0; i < MAX_PLAYERS; i++)
stored_player[i].effective_action =
- (i < len - 6 && stored_player[i].active ? buffer[6 + i] : 0);
+ (i < len - 6 ? buffer[6 + i] : 0);
network_player_action_received = TRUE;
}