void CNetManager::sendOutPacketUnreliable(SOutPacket& outpacket, const u16 playerId) { ENetPacket* packet = enet_packet_create((char*)outpacket.getData(), outpacket.getSize(), 0); ENetPeer* currentPeer = getPlayerById(playerId); if(currentPeer && currentPeer->state == ENET_PEER_STATE_CONNECTED) enet_peer_send(currentPeer, 0, packet); }
void CNetManager::kickClient(const u16 playerId, bool hardKick = false) { ENetPeer* currentPeer = getPlayerById(playerId); if(currentPeer) hardKick ? enet_peer_disconnect_now(currentPeer,0) : enet_peer_disconnect(currentPeer,0); }
const u32 CNetManager::getClientAddress(const u16 playerId) { ENetPeer* currentPeer = getPlayerById(playerId); if(currentPeer) return currentPeer->address.host; return 0; }
void Map::update(double elapsedTime) { Player *player; std::pair<int, int> pos; for (std::vector<Fire*>::iterator i = _fire.begin() ; i != _fire.end();) { if ((*i)->stillBurn(elapsedTime) == false) { pos = (*i)->getPos(); i = _fire.erase(i); delete _map[pos.first][pos.second]; _map[pos.first][pos.second] = new Void(pos); _map[pos.first][pos.second]->initialize(); } else ++i; } for (std::vector<Bomb*>::iterator i = _bomb.begin() ; i != _bomb.end();) { if ((*i)->explose(elapsedTime) == true) { pos = (*i)->getPos(); if ((player = getPlayerById((*i)->getPlayerId()))) player->addBomb(); fireSomeHut(pos, (*i)->getBombPower()); i = _bomb.erase(i); } else ++i; } for (std::vector<Player*>::iterator i = _player.begin() ; i != _player.end();) { std::pair<int, int> pos; pos = (*i)->getPos(); if (_map[pos.first][pos.second]->what() == FIRE) { delete (*i); i = _player.erase(i); } else i++; } }