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

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

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.
You can’t perform that action at this time.