76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
|
//
|
||
|
// Created by emile on 10/31/19.
|
||
|
//
|
||
|
|
||
|
#ifndef PROJEKTDSIK_PLAYER_H
|
||
|
#define PROJEKTDSIK_PLAYER_H
|
||
|
|
||
|
#include <memory.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <time.h>
|
||
|
#include <stdbool.h>
|
||
|
|
||
|
struct Player{
|
||
|
char name[100];
|
||
|
int x;
|
||
|
int y;
|
||
|
int points;
|
||
|
int connectionId;
|
||
|
pthread_t threadId;
|
||
|
struct sockaddr_in incoming;
|
||
|
} typedef Player;
|
||
|
Player* players[200];
|
||
|
bool playerConnected[200];
|
||
|
void InitPlayers(){
|
||
|
for (int i=0; i<200; i++){
|
||
|
playerConnected[i] = false;
|
||
|
}
|
||
|
}
|
||
|
int GetPlayersCount(){
|
||
|
int count=0;
|
||
|
for (int i=0; i<200; i++){
|
||
|
if (playerConnected[i] == true){
|
||
|
count++;
|
||
|
}
|
||
|
}
|
||
|
return count;
|
||
|
}
|
||
|
int AddPlayerToList(Player* p){
|
||
|
for (int i=0; i<200; i++){
|
||
|
if (playerConnected[i] == false){
|
||
|
playerConnected[i]=true;
|
||
|
players[i] = p;
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
return -1;
|
||
|
}
|
||
|
int RemovePlayer(Player* p){
|
||
|
for (int i=0; i<200; i++){
|
||
|
if (players[i] == p){
|
||
|
playerConnected[i]=false;
|
||
|
players[i] = NULL;
|
||
|
free(p);
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
|
||
|
Player *CreatePlayer(const char *name, int incomingConnectionId, struct sockaddr_in incoming) {
|
||
|
time_t t;
|
||
|
Player* p = malloc(sizeof(Player));
|
||
|
strcpy(p->name, name);
|
||
|
srand((unsigned) time(&t));
|
||
|
p->x = rand() % 50;
|
||
|
srand((unsigned) time(&t));
|
||
|
p->y = rand()%50;
|
||
|
p->points=0;
|
||
|
p->incoming=incoming;
|
||
|
p->connectionId=incomingConnectionId;
|
||
|
return p;
|
||
|
|
||
|
};
|
||
|
#endif //PROJEKTDSIK_PLAYER_H
|