This fixes the bug where reloading the interface would cause inactive,
grayed-out player names to appear solid instead of grayed out.
What I had been thinking when writing this code is that this function
would be called only when a new player joins the game, (and by
definition, a newly joined player must be active). But this function
can also be called when a player reloads their interface, and at that
point player-join events are received for all players whether active
or not.
Meanwhile, the server is now explicitly providing the active bit for
players, so we get the right information without doing anything.
}
set_other_player_info(info) {
- const player_object = {...info, active: true};
const other_players_copy = [...this.state.other_players];
const idx = other_players_copy.findIndex(o => o.id === info.id);
if (idx >= 0) {
- other_players_copy[idx] = player_object;
+ other_players_copy[idx] = info;
} else {
- other_players_copy.push(player_object);
+ other_players_copy.push(info);
}
this.setState({
other_players: other_players_copy