summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game.c3
-rw-r--r--src/net/server.h1
-rw-r--r--src/player.c14
3 files changed, 18 insertions, 0 deletions
diff --git a/src/game.c b/src/game.c
index 2abf725..991f206 100644
--- a/src/game.c
+++ b/src/game.c
@@ -319,6 +319,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;
+}
+