Additional testing, entity deletion, and player disconnection

This commit is contained in:
2020-05-01 02:24:34 -04:00
parent b94b469c39
commit 9a6ba77e72
7 changed files with 235 additions and 21 deletions

View File

@ -97,11 +97,22 @@ int main (int argc, char ** argv)
case ENET_EVENT_TYPE_DISCONNECT:
std::cout << event.peer -> data << " disconnected." << std::endl;
//Remove peer data on disconnect
// DELETE ENTITY HERE
//Clear username data and remove entity
std::string username = usernames[event.peer -> incomingPeerID];
if(username != "")
{
std::cout << "Removing '" << username << "'s player data!" << std::endl;
gamemap.remove_entity(username,"player");
usernames[event.peer -> incomingPeerID] = "";
usernames[event.peer -> incomingPeerID] = "";
std::string resp = "2|delete,player:" + username;
const char* data = resp.c_str();
ENetPacket* packet = enet_packet_create(data, strlen(data) + 1, ENET_PACKET_FLAG_RELIABLE);
enet_host_broadcast(server, 0, packet);
}
//Open peer for new connection
event.peer -> data = NULL;
}
}