diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-24 21:03:20 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-24 21:03:20 +0100 |
| commit | 7a2cbc68de52f324d6694856a20b8c6945941b96 (patch) | |
| tree | 6d2fcaf46f0935bd94f4a73c27ccb21ec15ccc9b | |
| parent | ba45c5f939e5e31061237388d42e01739f9f561f (diff) | |
add mapping between sockets and pnocs
| -rw-r--r-- | src/game.c | 3 | ||||
| -rw-r--r-- | src/net/server.h | 1 | ||||
| -rw-r--r-- | src/player.c | 14 |
3 files changed, 18 insertions, 0 deletions
@@ -304,6 +304,9 @@ void start_game(const bool servermode, const char* addr, const char* port) for(int i=0; i<num_players; i++) { net_recv(client_socks.sockets[i], msg_type_hello); + // assign ids + client_socks.player_ids[i] = i; + data->players.players[i].player_id = i; printf("Player connected: %s\n", data->players.players[i].player_name); } diff --git a/src/net/server.h b/src/net/server.h index 9d7dcf5..eb53a03 100644 --- a/src/net/server.h +++ b/src/net/server.h @@ -12,6 +12,7 @@ typedef struct { uint8_t count; int sockets[MAX_PLAYERS]; + uint8_t player_ids[MAX_PLAYERS]; } socket_list_t; int server_start(const char* port); diff --git a/src/player.c b/src/player.c new file mode 100644 index 0000000..60cd514 --- /dev/null +++ b/src/player.c @@ -0,0 +1,14 @@ +#include "player.h" + +pnoc_t* get_pnoc_from_playerid(const player_list* pl, const uint8_t pid) +{ + for(int i=0; i<pl->count; i++) + { + if(pl->players[i].player_id != pid) + continue; + return &pl->players[i]; + } + + return NULL; +} + |
