DSIK_C/Player.h

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