Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "network.h"
- void network::init(){
- char getIP[20];
- SDLNet_ResolveHost(&ip, "127.0.0.1", 7777);
- connection = SDLNet_TCP_Open(&ip);
- server=SDLNet_AllocSocketSet(1);
- SDLNet_TCP_AddSocket(server, connection);
- }
- void network::close(){
- SDLNet_TCP_Send(connection, "2 \n", 4);
- SDLNet_TCP_Close(connection);
- SDLNet_FreeSocketSet(server);
- }
- void network::send(Player *p){
- std::cout<< SDLNet_GetError() << std::endl;
- if(p->isReady()){
- //1 id x y angle
- sprintf(tmp, "1 %d %d %d %d", p->getID(), GameManager::GetInstance().getGlobalX(), GameManager::GetInstance().getGlobalY(), p->getAngle());
- int siz=0;
- int len = strlen(tmp) + 1;
- while(siz < len){
- siz+=SDLNet_TCP_Send(connection, tmp+siz, len - siz);
- }
- }
- }
- void network::recv(std::vector<OtherPlayer*>& enemies, Player *p){
- while(SDLNet_CheckSockets(server, 0)>0 && SDLNet_SocketReady(connection)){
- int offset = 0;
- do{
- offset+=SDLNet_TCP_Recv(connection, tmp+offset, 1400);
- if(offset <= 0){
- return;
- }
- }while(tmp[strlen(tmp - 1)] != '\n');
- int type, id;
- sscanf(tmp, "%d %d", &type, &id);
- if(type==0){
- p->setID(id);
- }else if(type == 1){
- int i;
- for(i = 0; i < enemies.size(); i++){
- if(enemies[i]->getID() == id){
- int tmp2, tmpid, tmpx, tmpy, tmpangle;
- scanf(tmp, "%d %d %d %d", &tmp2, &tmpx, &tmpy, &tmpangle);
- enemies[i]->setX(tmpx);
- enemies[i]->setY(tmpy);
- enemies[i]->setAngle(tmpangle);
- break;
- }
- }
- if(i>=enemies.size()){
- enemies.push_back(new OtherPlayer());
- }
- }else if(type==2){
- for(int i = 0; i<enemies.size(); i++){
- enemies.erase(enemies.begin() + i);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement