void NetClient::SetLocalDrivers() { m_setLocalDrivers.clear(); m_driverIdx = GetDriverIdx(); m_setLocalDrivers.insert(m_driverIdx-1); GfLogTrace("Adding Human start rank: %i\n",m_driverIdx-1); }
void NetClient::SetDriverReady(bool bReady) { // Get local driver index in the race driver list int idx = GetDriverIdx(); NetMutexData *pNData = LockNetworkData(); pNData->m_vecReadyStatus[idx-1] = bReady; UnlockNetworkData(); PackedBuffer msg; try { msg.pack_ubyte(DRIVERREADY_PACKET); msg.pack_int(idx); msg.pack_int(bReady); } // catch (PackedBufferException &e) catch (PackedBufferException) { GfLogFatal("SetDriverReady: packed buffer error\n"); } GfLogTrace("SetDriverReady: packed data length=%d\n", msg.length()); ENetPacket *pPacket = enet_packet_create (msg.buffer(), msg.length(), ENET_PACKET_FLAG_RELIABLE); if (enet_peer_send (m_pServer, RELIABLECHANNEL, pPacket)==0) return; }
void NetServer::SetLocalDrivers() { m_setLocalDrivers.clear(); m_driverIdx = GetDriverIdx(); GfLogTrace("Adding Human start rank: %i\n",m_driverIdx); m_setLocalDrivers.insert(m_driverIdx-1); assert(m_strRaceXMLFile!=""); void *params = GfParmReadFileLocal(m_strRaceXMLFile.c_str(),GFPARM_RMODE_STD); assert(params); //const char *pName =GfParmGetStr(params, RM_SECT_HEADER, RM_ATTR_NAME, ""); int nCars = GfParmGetEltNb(params, RM_SECT_DRIVERS); //Gather vector of all non human drivers std::vector<NetDriver> vecRDrivers; for (int i=1;i<=nCars;i++) { NetDriver driver; ReadDriverData(driver,i,params); if ((strcmp(driver.module,NETWORKROBOT)!=0) &&(strcmp(driver.module,HUMANROBOT)!=0)) { m_setLocalDrivers.insert(i-1); GfLogTrace("Adding driver start rank:%i\n",i); } } }
void NetServer::SetDriverReady(bool bReady) { int idx = GetDriverIdx(); NetMutexData *pNData = LockNetworkData(); pNData->m_vecReadyStatus[idx-1] = bReady; UnlockNetworkData(); Dump("NetServer::SetDriverReady"); SendDriversReadyPacket(); }