X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclient.cpp;h=f9908ad2cbdc6d5f1b1625523e02080a9738d21e;hb=c8930850e37dab9820049152a3e668a315a97560;hp=c82d9b0507116bf61fd82730cfa4c374ecf4e557;hpb=f960c3be313c761fe02f9167dc1fe3fca5dc4ada;p=dragonfireclient.git diff --git a/src/client.cpp b/src/client.cpp index c82d9b050..f9908ad2c 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -250,7 +250,7 @@ void * MediaFetchThread::Thread() m_file_data.push_back(make_pair(i->name, data)); } else { m_failed.push_back(*i); - infostream << "cURL request failed for " << i->name << std::endl; + infostream << "cURL request failed for " << i->name << " (" << curl_easy_strerror(res) << ")"<< std::endl; } curl_easy_cleanup(curl); } @@ -320,12 +320,6 @@ Client::Client( m_playerpos_send_timer = 0.0; m_ignore_damage_timer = 0.0; - // Build main texture atlas, now that the GameDef exists (that is, us) - if(g_settings->getBool("enable_texture_atlas")) - m_tsrc->buildMainAtlas(this); - else - infostream<<"Not building texture atlas."< data(2+1+PLAYERNAME_SIZE+PASSWORD_SIZE+2+2); writeU16(&data[0], TOSERVER_INIT); - writeU8(&data[2], SER_FMT_VER_HIGHEST); + writeU8(&data[2], SER_FMT_VER_HIGHEST_READ); memset((char*)&data[3], 0, PLAYERNAME_SIZE); snprintf((char*)&data[3], PLAYERNAME_SIZE, "%s", myplayer->getName()); @@ -698,9 +692,14 @@ void Client::step(float dtime) m_client_event_queue.push_back(event); } } + else if(event.type == CEE_PLAYER_BREATH) + { + u16 breath = event.player_breath.amount; + sendBreath(breath); + } } } - + /* Print some info */ @@ -803,7 +802,8 @@ void Client::step(float dtime) all_stopped &= !(*thread)->IsRunning(); while (!(*thread)->m_file_data.empty()) { std::pair out = (*thread)->m_file_data.pop_front(); - ++m_media_received_count; + if(m_media_received_count < m_media_count) + m_media_received_count++; bool success = loadMedia(out.second, out.first); if(success){ @@ -1154,8 +1154,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) infostream<<"Client: TOCLIENT_INIT received with " "deployed="<<((int)deployed&0xff)< SER_FMT_VER_HIGHEST) + if(!ser_ver_supported(deployed)) { infostream<<"Client: TOCLIENT_INIT: Server sent " <<"unsupported ser_fmt_ver"<deSerialize(istr, ser_version, false); + block->deSerializeNetworkSpecific(istr); } else { @@ -1309,6 +1309,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) //infostream<<"Creating new"<deSerialize(istr, ser_version, false); + block->deSerializeNetworkSpecific(istr); sector->insertBlock(block); } @@ -1584,6 +1585,15 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) m_client_event_queue.push_back(event); } } + else if(command == TOCLIENT_BREATH) + { + std::string datastring((char*)&data[2], datasize-2); + std::istringstream is(datastring, std::ios_base::binary); + Player *player = m_env.getLocalPlayer(); + assert(player != NULL); + u16 breath = readU16(is); + player->setBreath(breath) ; + } else if(command == TOCLIENT_MOVE_PLAYER) { std::string datastring((char*)&data[2], datasize-2); @@ -1737,15 +1747,9 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) } else if(command == TOCLIENT_MEDIA) { - if (m_media_count == 0) - return; std::string datastring((char*)&data[2], datasize-2); std::istringstream is(datastring, std::ios_base::binary); - // Mesh update thread must be stopped while - // updating content definitions - assert(!m_mesh_update_thread.IsRunning()); - /* u16 command u16 total number of file bunches @@ -1760,11 +1764,31 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) */ int num_bunches = readU16(is); int bunch_i = readU16(is); - int num_files = readU32(is); + u32 num_files = readU32(is); infostream<<"Client: Received files: bunch "<rebuildImagesAndTextures(); - // Update texture atlas - infostream<<"- Updating texture atlas"<getBool("enable_texture_atlas")) - m_tsrc->buildMainAtlas(this); - // Rebuild shaders + infostream<<"- Rebuilding shaders"<rebuildShaders(); // Update node aliases