diff --git a/src/connection.cpp b/src/connection.cpp index 76cb7b8b..cb175027 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -125,7 +125,7 @@ std::list > makeSplitPacket( { // Chunk packets, containing the TYPE_SPLIT header std::list > chunks; - + u32 chunk_header_size = 7; u32 maximum_data_size = chunksize_max - chunk_header_size; u32 start = 0; @@ -136,12 +136,12 @@ std::list > makeSplitPacket( end = start + maximum_data_size - 1; if(end > data.getSize() - 1) end = data.getSize() - 1; - + u32 payload_size = end - start + 1; u32 packet_size = chunk_header_size + payload_size; SharedBuffer chunk(packet_size); - + writeU8(&chunk[0], TYPE_SPLIT); writeU16(&chunk[1], seqnum); // [3] u16 chunk_count is written at next stage @@ -150,7 +150,7 @@ std::list > makeSplitPacket( chunks.push_back(chunk); chunk_count++; - + start = end + 1; chunk_num++; } @@ -465,9 +465,9 @@ SharedBuffer IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable) sp->reliable = reliable; m_buf[seqnum] = sp; } - + IncomingSplitPacket *sp = m_buf[seqnum]; - + // TODO: These errors should be thrown or something? Dunno. if(chunk_count != sp->chunk_count) LOG(derr_con<<"Connection: WARNING: chunk_count="< IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable) // lag and the server re-sends stuff. if(sp->chunks.find(chunk_num) != sp->chunks.end()) return SharedBuffer(); - + // Cut chunk data out of packet u32 chunkdatasize = p.data.getSize() - headersize; SharedBuffer chunkdata(chunkdatasize); memcpy(*chunkdata, &(p.data[headersize]), chunkdatasize); - + // Set chunk data in buffer sp->chunks[chunk_num] = chunkdata; - + // If not all chunks are received, return empty buffer if(sp->allReceived() == false) return SharedBuffer(); @@ -503,7 +503,7 @@ SharedBuffer IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable) { totalsize += i->second.getSize(); } - + SharedBuffer fulldata(totalsize); // Copy chunks to data buffer @@ -561,6 +561,7 @@ Channel::Channel() : next_outgoing_split_seqnum(SEQNUM_INITIAL), current_packet_loss(0), current_packet_too_late(0), + current_packet_successfull(0), packet_loss_counter(0), current_bytes_transfered(0), current_bytes_received(0), @@ -2096,7 +2097,7 @@ void ConnectionReceiveThread::receive() // infrastructure unsigned int packet_maxsize = 1500; SharedBuffer packetdata(packet_maxsize); - + bool packet_queued = true; unsigned int loop_count = 0; @@ -2146,13 +2147,13 @@ void ConnectionReceiveThread::receive() u16 peer_id = readPeerId(*packetdata); u8 channelnum = readChannel(*packetdata); - + if(channelnum > CHANNEL_COUNT-1){ LOG(derr_con<getDesc() <<"Receive(): Invalid channel "<setSentWithID(); @@ -2215,7 +2216,7 @@ void ConnectionReceiveThread::receive() { channel = &(dynamic_cast(&peer)->channels[channelnum]); } - + if (channel != 0) { channel->UpdateBytesReceived(received_size); } @@ -2226,17 +2227,17 @@ void ConnectionReceiveThread::receive() SharedBuffer strippeddata(received_size - BASE_HEADER_SIZE); memcpy(*strippeddata, &packetdata[BASE_HEADER_SIZE], strippeddata.getSize()); - + try{ // Process it (the result is some data with no headers made by us) SharedBuffer resultdata = processPacket (channel, strippeddata, peer_id, channelnum, false); - + LOG(dout_con<getDesc() <<" ProcessPacket from peer_id: " << peer_id << ",channel: " << (channelnum & 0xFF) << ", returned " << resultdata.getSize() << " bytes" <putEvent(e); @@ -2854,11 +2855,11 @@ bool Connection::Connected() if(m_peers.size() != 1) return false; - + std::map::iterator node = m_peers.find(PEER_ID_SERVER); if(node == m_peers.end()) return false; - + if(m_peer_id == PEER_ID_INEXISTENT) return false; @@ -3114,4 +3115,3 @@ std::list Connection::getPeerIDs() } } // namespace - diff --git a/src/gettext.h b/src/gettext.h index 3299f5b2..81510aed 100644 --- a/src/gettext.h +++ b/src/gettext.h @@ -68,12 +68,12 @@ inline wchar_t* chartowchar_t(const char *str) MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) str, -1, (WCHAR *) nstr, nResult ); } #else - size_t l = strlen(str)+1; - nstr = new wchar_t[l]; + size_t l = strlen(str); + nstr = new wchar_t[l+1]; std::wstring intermediate = narrow_to_wide(str); - memset(nstr,0,l); - memcpy(nstr,intermediate.c_str(),l*sizeof(wchar_t)); + memset(nstr, 0, (l+1)*sizeof(wchar_t)); + memcpy(nstr, intermediate.c_str(), l*sizeof(wchar_t)); #endif return nstr; diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp index 54414d7e..7ba3305b 100644 --- a/src/guiFormSpecMenu.cpp +++ b/src/guiFormSpecMenu.cpp @@ -81,6 +81,7 @@ GUIFormSpecMenu::GUIFormSpecMenu(irr::IrrlichtDevice* dev, m_selected_amount(0), m_selected_dragging(false), m_tooltip_element(NULL), + m_old_tooltip_id(-1), m_allowclose(true), m_lock(false), m_form_src(fsrc), @@ -1301,7 +1302,7 @@ void GUIFormSpecMenu::parseImageButton(parserData* data,std::string element, if (spec.fname == data->focused_fieldname) { Environment->setFocus(e); } - + e->setUseAlphaChannel(true); e->setImage(texture); e->setPressedImage(pressed_texture); @@ -1800,7 +1801,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) m_fields.clear(); m_boxes.clear(); m_tooltips.clear(); - + // Set default values (fits old formspec values) m_bgcolor = video::SColor(140,0,0,0); m_bgfullscreen = false; @@ -1810,7 +1811,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) m_default_tooltip_bgcolor = video::SColor(255,110,130,60); m_default_tooltip_color = video::SColor(255,255,255,255); - + m_slotbordercolor = video::SColor(200,0,0,0); m_slotborder = false; @@ -2828,7 +2829,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) } } - + if(event.EventType==EET_MOUSE_INPUT_EVENT && event.MouseInput.Event != EMIE_MOUSE_MOVED) { // Mouse event other than movement diff --git a/src/nodedef.cpp b/src/nodedef.cpp index d009a952..f62c9e82 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -117,7 +117,7 @@ void NodeBox::deSerialize(std::istream &is) void TileDef::serialize(std::ostream &os, u16 protocol_version) const { if(protocol_version >= 17) - writeU8(os, 1); + writeU8(os, 1); else writeU8(os, 0); os<first; - + std::map::iterator j = m_group_to_items.find(group_name); if (j == m_group_to_items.end()) { @@ -1018,4 +1018,3 @@ void ContentFeatures::deSerializeOld(std::istream &is, int version) throw SerializationError("unsupported ContentFeatures version"); } } -