Skip to content
Permalink
Browse files

client.cpp: modernize code

* Range based for loops
* Empty operator on stl containers
  • Loading branch information
nerzhul committed Aug 16, 2017
1 parent 90dfafc commit 816bca32ac69f58b7de881d68689c6a1e3897a0e
Showing with 47 additions and 74 deletions.
  1. +36 −53 src/client.cpp
  2. +11 −21 src/client.h
@@ -144,9 +144,9 @@ void Client::scanModSubfolder(const std::string &mod_name, const std::string &mo
{
std::string full_path = mod_path + DIR_DELIM + mod_subpath;
std::vector<fs::DirListNode> mod = fs::GetDirListing(full_path);
for (unsigned int j=0; j < mod.size(); j++){
std::string filename = mod[j].name;
if (mod[j].dir) {
for (const fs::DirListNode &j : mod) {
std::string filename = j.name;
if (j.dir) {
scanModSubfolder(mod_name, mod_path, mod_subpath
+ filename + DIR_DELIM);
continue;
@@ -230,10 +230,8 @@ Client::~Client()
delete m_inventory_from_server;

// Delete detached inventories
for (std::unordered_map<std::string, Inventory*>::iterator
i = m_detached_inventories.begin();
i != m_detached_inventories.end(); ++i) {
delete i->second;
for (auto &m_detached_inventorie : m_detached_inventories) {
delete m_detached_inventorie.second;
}

// cleanup 3d model meshes on client shutdown
@@ -556,15 +554,13 @@ void Client::step(float dtime)
Update positions of sounds attached to objects
*/
{
for(std::unordered_map<int, u16>::iterator i = m_sounds_to_objects.begin();
i != m_sounds_to_objects.end(); ++i) {
int client_id = i->first;
u16 object_id = i->second;
for (auto &m_sounds_to_object : m_sounds_to_objects) {
int client_id = m_sounds_to_object.first;
u16 object_id = m_sounds_to_object.second;
ClientActiveObject *cao = m_env.getActiveObject(object_id);
if(!cao)
if (!cao)
continue;
v3f pos = cao->getPosition();
m_sound->updateSoundPosition(client_id, pos);
m_sound->updateSoundPosition(client_id, cao->getPosition());
}
}

@@ -628,8 +624,7 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)
NULL
};
name = removeStringEnd(filename, image_ext);
if(name != "")
{
if (!name.empty()) {
verbosestream<<"Client: Attempting to load image "
<<"file \""<<filename<<"\""<<std::endl;

@@ -644,18 +639,17 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)

// Read image
video::IImage *img = vdrv->createImageFromFile(rfile);
if(!img){
if (!img) {
errorstream<<"Client: Cannot create image from data of "
<<"file \""<<filename<<"\""<<std::endl;
rfile->drop();
return false;
}
else {
m_tsrc->insertSourceImage(filename, img);
img->drop();
rfile->drop();
return true;
}

m_tsrc->insertSourceImage(filename, img);
img->drop();
rfile->drop();
return true;
}

const char *sound_ext[] = {
@@ -664,8 +658,7 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)
".ogg", NULL
};
name = removeStringEnd(filename, sound_ext);
if(name != "")
{
if (!name.empty()) {
verbosestream<<"Client: Attempting to load sound "
<<"file \""<<filename<<"\""<<std::endl;
m_sound->loadSoundData(name, data);
@@ -676,9 +669,9 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)
".x", ".b3d", ".md2", ".obj",
NULL
};

name = removeStringEnd(filename, model_ext);
if(name != "")
{
if (!name.empty()) {
verbosestream<<"Client: Storing model into memory: "
<<"\""<<filename<<"\""<<std::endl;
if(m_mesh_data.count(filename))
@@ -732,9 +725,8 @@ void Client::request_media(const std::vector<std::string> &file_requests)

pkt << (u16) (file_requests_size & 0xFFFF);

for(std::vector<std::string>::const_iterator i = file_requests.begin();
i != file_requests.end(); ++i) {
pkt << (*i);
for (const std::string &file_request : file_requests) {
pkt << file_request;
}

Send(&pkt);
@@ -1020,7 +1012,7 @@ void Client::startAuth(AuthMechanism chosen_auth_mechanism)
&verifier, &salt);

NetworkPacket resp_pkt(TOSERVER_FIRST_SRP, 0);
resp_pkt << salt << verifier << (u8)((m_password == "") ? 1 : 0);
resp_pkt << salt << verifier << (u8)((m_password.empty()) ? 1 : 0);

Send(&resp_pkt);
break;
@@ -1062,12 +1054,8 @@ void Client::sendDeletedBlocks(std::vector<v3s16> &blocks)

pkt << (u8) blocks.size();

u32 k = 0;
for(std::vector<v3s16>::iterator
j = blocks.begin();
j != blocks.end(); ++j) {
pkt << *j;
k++;
for (const v3s16 &block : blocks) {
pkt << block;
}

Send(&pkt);
@@ -1089,9 +1077,8 @@ void Client::sendRemovedSounds(std::vector<s32> &soundList)

pkt << (u16) (server_ids & 0xFFFF);

for(std::vector<s32>::iterator i = soundList.begin();
i != soundList.end(); ++i)
pkt << *i;
for (int sound_id : soundList)
pkt << sound_id;

Send(&pkt);
}
@@ -1354,10 +1341,8 @@ void Client::removeNode(v3s16 p)
catch(InvalidPositionException &e) {
}

for(std::map<v3s16, MapBlock *>::iterator
i = modified_blocks.begin();
i != modified_blocks.end(); ++i) {
addUpdateMeshTaskWithEdge(i->first, false, true);
for (const auto &modified_block : modified_blocks) {
addUpdateMeshTaskWithEdge(modified_block.first, false, true);
}
}

@@ -1374,7 +1359,7 @@ MapNode Client::getNode(v3s16 p, bool *is_valid_position)
v3s16 ppos = floatToInt(m_env.getLocalPlayer()->getPosition(), BS);
if ((u32) ppos.getDistanceFrom(p) > m_csm_noderange_limit) {
*is_valid_position = false;
return MapNode();
return {};
}
}
return m_env.getMap().getNodeNoEx(p, is_valid_position);
@@ -1393,10 +1378,8 @@ void Client::addNode(v3s16 p, MapNode n, bool remove_metadata)
catch(InvalidPositionException &e) {
}

for(std::map<v3s16, MapBlock *>::iterator
i = modified_blocks.begin();
i != modified_blocks.end(); ++i) {
addUpdateMeshTaskWithEdge(i->first, false, true);
for (const auto &modified_block : modified_blocks) {
addUpdateMeshTaskWithEdge(modified_block.first, false, true);
}
}

@@ -1567,7 +1550,7 @@ bool Client::getChatMessage(std::wstring &res)
void Client::typeChatMessage(const std::wstring &message)
{
// Discard empty line
if(message == L"")
if (message.empty())
return;

// If message was ate by script API, don't send it to server
@@ -1677,8 +1660,8 @@ float Client::mediaReceiveProgress()
{
if (m_media_downloader)
return m_media_downloader->getProgress();
else
return 1.0; // downloader only exists when not yet done

return 1.0; // downloader only exists when not yet done
}

typedef struct TextureUpdateArgs {
@@ -1746,7 +1729,7 @@ void Client::afterContentReceived()
RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 72);
m_nodedef->updateAliases(m_itemdef);
std::string texture_path = g_settings->get("texture_path");
if (texture_path != "" && fs::IsDir(texture_path))
if (!texture_path.empty() && fs::IsDir(texture_path))
m_nodedef->applyTextureOverrides(texture_path + DIR_DELIM + "override.txt");
m_nodedef->setNodeRegistrationStatus(true);
m_nodedef->runNodeResolveCallbacks();
@@ -204,9 +204,7 @@ struct ClientEvent
class PacketCounter
{
public:
PacketCounter()
{
}
PacketCounter() = default;

void add(u16 command)
{
@@ -223,23 +221,15 @@ class PacketCounter

void clear()
{
for(std::map<u16, u16>::iterator
i = m_packets.begin();
i != m_packets.end(); ++i)
{
i->second = 0;
for (auto &m_packet : m_packets) {
m_packet.second = 0;
}
}

void print(std::ostream &o)
{
for(std::map<u16, u16>::iterator
i = m_packets.begin();
i != m_packets.end(); ++i)
{
o<<"cmd "<<i->first
<<" count "<<i->second
<<std::endl;
for (const auto &m_packet : m_packets) {
o << "cmd "<< m_packet.first <<" count "<< m_packet.second << std::endl;
}
}

@@ -544,12 +534,12 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
m_client_event_queue.push(event);
}

void showGameChat(const bool show = true);
void showGameHud(const bool show = true);
void showMinimap(const bool show = true);
void showProfiler(const bool show = true);
void showGameFog(const bool show = true);
void showGameDebug(const bool show = true);
void showGameChat(bool show = true);
void showGameHud(bool show = true);
void showMinimap(bool show = true);
void showProfiler(bool show = true);
void showGameFog(bool show = true);
void showGameDebug(bool show = true);

const Address getServerAddress()
{

2 comments on commit 816bca3

@JRottm

This comment has been minimized.

Copy link
Contributor

@JRottm JRottm replied Aug 19, 2017

Hi @nerzhul, you removed the "const" from the bool param of showGameChat()...showGameDebug() in client.h, but you forgot to make the same change in the implementation in client.cpp.

@nerzhul

This comment has been minimized.

Copy link
Member Author

@nerzhul nerzhul replied Aug 19, 2017

yeah it's accepted by compilers, clang-tidy reported it's not necessary to add them in the declaration they have no effect, just setting it in definition

Please sign in to comment.