l_server, clientenvironment, clientiface: code modernization
authorLoic Blot <loic.blot@unix-experience.fr>
Thu, 17 Aug 2017 06:11:39 +0000 (08:11 +0200)
committerLoic Blot <loic.blot@unix-experience.fr>
Thu, 17 Aug 2017 06:11:39 +0000 (08:11 +0200)
* use range-based for loops
* use refs on some exceptions & one setter

src/clientenvironment.cpp
src/clientenvironment.h
src/clientiface.h
src/script/lua_api/l_server.cpp

index c98b5fc9020a24eaa764bed022b1816e66fe361d..57b18760af432b84b7757291ffed80f0b5713888 100644 (file)
@@ -52,14 +52,12 @@ ClientEnvironment::ClientEnvironment(ClientMap *map,
 ClientEnvironment::~ClientEnvironment()
 {
        // delete active objects
-       for (ClientActiveObjectMap::iterator i = m_active_objects.begin();
-                       i != m_active_objects.end(); ++i) {
-               delete i->second;
+       for (auto &active_object : m_active_objects) {
+               delete active_object.second;
        }
 
-       for(std::vector<ClientSimpleObject*>::iterator
-               i = m_simple_objects.begin(); i != m_simple_objects.end(); ++i) {
-               delete *i;
+       for (auto &simple_object : m_simple_objects) {
+               delete simple_object;
        }
 
        // Drop/delete map
@@ -211,13 +209,11 @@ void ClientEnvironment::step(float dtime)
 
        //std::cout<<"Looped "<<loopcount<<" times."<<std::endl;
 
-       for(std::vector<CollisionInfo>::iterator i = player_collisions.begin();
-               i != player_collisions.end(); ++i) {
-               CollisionInfo &info = *i;
+       for (const CollisionInfo &info : player_collisions) {
                v3f speed_diff = info.new_speed - info.old_speed;;
                // Handle only fall damage
                // (because otherwise walking against something in fast_move kills you)
-               if(speed_diff.Y < 0 || info.old_speed.Y >= 0)
+               if (speed_diff.Y < 0 || info.old_speed.Y >= 0)
                        continue;
                // Get rid of other components
                speed_diff.X = 0;
@@ -225,8 +221,7 @@ void ClientEnvironment::step(float dtime)
                f32 pre_factor = 1; // 1 hp per node/s
                f32 tolerance = BS*14; // 5 without damage
                f32 post_factor = 1; // 1 hp per node/s
-               if(info.type == COLLISION_NODE)
-               {
+               if (info.type == COLLISION_NODE) {
                        const ContentFeatures &f = m_client->ndef()->
                                get(m_map->getNodeNoEx(info.node_p));
                        // Determine fall damage multiplier
@@ -343,14 +338,12 @@ void ClientEnvironment::step(float dtime)
 
        g_profiler->avg("CEnv: num of objects", m_active_objects.size());
        bool update_lighting = m_active_object_light_update_interval.step(dtime, 0.21);
-       for (ClientActiveObjectMap::iterator i = m_active_objects.begin();
-                       i != m_active_objects.end(); ++i) {
-               ClientActiveObject* obj = i->second;
+       for (auto &ao_it : m_active_objects) {
+               ClientActiveObject* obj = ao_it.second;
                // Step object
                obj->step(dtime, this);
 
-               if(update_lighting)
-               {
+               if (update_lighting) {
                        // Update lighting
                        u8 light = 0;
                        bool pos_ok;
@@ -371,9 +364,8 @@ void ClientEnvironment::step(float dtime)
                Step and handle simple objects
        */
        g_profiler->avg("CEnv: num of simple objects", m_simple_objects.size());
-       for(std::vector<ClientSimpleObject*>::iterator
-               i = m_simple_objects.begin(); i != m_simple_objects.end();) {
-               std::vector<ClientSimpleObject*>::iterator cur = i;
+       for (auto i = m_simple_objects.begin(); i != m_simple_objects.end();) {
+               auto cur = i;
                ClientSimpleObject *simple = *cur;
 
                simple->step(dtime);
@@ -397,13 +389,13 @@ GenericCAO* ClientEnvironment::getGenericCAO(u16 id)
        ClientActiveObject *obj = getActiveObject(id);
        if (obj && obj->getType() == ACTIVEOBJECT_TYPE_GENERIC)
                return (GenericCAO*) obj;
-       else
-               return NULL;
+
+       return NULL;
 }
 
 ClientActiveObject* ClientEnvironment::getActiveObject(u16 id)
 {
-       ClientActiveObjectMap::iterator n = m_active_objects.find(id);
+       auto n = m_active_objects.find(id);
        if (n == m_active_objects.end())
                return NULL;
        return n->second;
@@ -412,10 +404,8 @@ ClientActiveObject* ClientEnvironment::getActiveObject(u16 id)
 bool isFreeClientActiveObjectId(const u16 id,
        ClientActiveObjectMap &objects)
 {
-       if(id == 0)
-               return false;
+       return id != 0 && objects.find(id) == objects.end();
 
-       return objects.find(id) == objects.end();
 }
 
 u16 getFreeClientActiveObjectId(ClientActiveObjectMap &objects)
@@ -580,18 +570,15 @@ void ClientEnvironment::updateLocalPlayerBreath(u16 breath)
 void ClientEnvironment::getActiveObjects(v3f origin, f32 max_d,
        std::vector<DistanceSortedActiveObject> &dest)
 {
-       for (ClientActiveObjectMap::iterator i = m_active_objects.begin();
-                       i != m_active_objects.end(); ++i) {
-               ClientActiveObject* obj = i->second;
+       for (auto &ao_it : m_active_objects) {
+               ClientActiveObject* obj = ao_it.second;
 
                f32 d = (obj->getPosition() - origin).getLength();
 
-               if(d > max_d)
+               if (d > max_d)
                        continue;
 
-               DistanceSortedActiveObject dso(obj, d);
-
-               dest.push_back(dso);
+               dest.emplace_back(obj, d);
        }
 }
 
@@ -614,12 +601,13 @@ void ClientEnvironment::getSelectedActiveObjects(
                shootline_on_map.getLength() + 10.0f, allObjects);
        const v3f line_vector = shootline_on_map.getVector();
 
-       for (u32 i = 0; i < allObjects.size(); i++) {
-               ClientActiveObject *obj = allObjects[i].obj;
+       for (const auto &allObject : allObjects) {
+               ClientActiveObject *obj = allObject.obj;
                aabb3f selection_box;
                if (!obj->getSelectionBox(&selection_box))
                        continue;
-               v3f pos = obj->getPosition();
+
+               const v3f &pos = obj->getPosition();
                aabb3f offsetted_box(selection_box.MinEdge + pos,
                        selection_box.MaxEdge + pos);
 
@@ -627,9 +615,8 @@ void ClientEnvironment::getSelectedActiveObjects(
                v3s16 current_normal;
                if (boxLineCollision(offsetted_box, shootline_on_map.start, line_vector,
                                &current_intersection, &current_normal)) {
-                       objects.push_back(PointedThing(
-                               (s16) obj->getId(), current_intersection, current_normal,
-                               (current_intersection - shootline_on_map.start).getLengthSQ()));
+                       objects.emplace_back((s16) obj->getId(), current_intersection, current_normal,
+                               (current_intersection - shootline_on_map.start).getLengthSQ());
                }
        }
 }
index 35dca5718c411c1222c0a3571fccee30f8b5a3c7..d384bf78c04df8d1689ab8b8f14049dd6f9a4ff8 100644 (file)
@@ -139,7 +139,7 @@ public:
        const std::list<std::string> &getPlayerNames() { return m_player_names; }
        void addPlayerName(const std::string &name) { m_player_names.push_back(name); }
        void removePlayerName(const std::string &name) { m_player_names.remove(name); }
-       void updateCameraOffset(v3s16 camera_offset)
+       void updateCameraOffset(const v3s16 &camera_offset)
        { m_camera_offset = camera_offset; }
        v3s16 getCameraOffset() const { return m_camera_offset; }
 private:
index b19a91b6f86fadefe3e3da02f9fb9cfaa47f4678..36aa3572d4613ee80f28cc022b9f4298c11bc312 100644 (file)
@@ -205,7 +205,7 @@ enum ClientStateEvent
 */
 struct PrioritySortedBlockTransfer
 {
-       PrioritySortedBlockTransfer(float a_priority, v3s16 a_pos, u16 a_peer_id)
+       PrioritySortedBlockTransfer(float a_priority, const v3s16 &a_pos, u16 a_peer_id)
        {
                priority = a_priority;
                pos = a_pos;
@@ -246,8 +246,8 @@ public:
        bool isMechAllowed(AuthMechanism mech)
        { return allowed_auth_mechs & mech; }
 
-       RemoteClient() {}
-       ~RemoteClient() {}
+       RemoteClient() = default;
+       ~RemoteClient() = default;
 
        /*
                Finds block that should be sent next to the client.
@@ -495,7 +495,6 @@ private:
 
        // Environment
        ServerEnvironment *m_env;
-       std::mutex m_env_mutex;
 
        float m_print_info_timer;
 
index a0e475decaa267a50864f60a78aa058498f7be5c..e60d1d2d6e4fb101b220b0aa1042def1ce44799a 100644 (file)
@@ -103,10 +103,9 @@ int ModApiServer::l_get_player_privs(lua_State *L)
        lua_newtable(L);
        int table = lua_gettop(L);
        std::set<std::string> privs_s = server->getPlayerEffectivePrivs(name);
-       for(std::set<std::string>::const_iterator
-                       i = privs_s.begin(); i != privs_s.end(); ++i){
+       for (const std::string &privs_ : privs_s) {
                lua_pushboolean(L, true);
-               lua_setfield(L, table, i->c_str());
+               lua_setfield(L, table, privs_.c_str());
        }
        lua_pushvalue(L, table);
        return 1;
@@ -129,9 +128,7 @@ int ModApiServer::l_get_player_ip(lua_State *L)
                std::string ip_str = addr.serializeString();
                lua_pushstring(L, ip_str.c_str());
                return 1;
-       }
-       catch(con::PeerNotFoundException) // unlikely
-       {
+       } catch (const con::PeerNotFoundException &) {
                dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
                lua_pushnil(L); // error
                return 1;
@@ -154,9 +151,7 @@ int ModApiServer::l_get_player_information(lua_State *L)
        try
        {
                addr = getServer(L)->getPeerAddress(player->peer_id);
-       }
-       catch(con::PeerNotFoundException) // unlikely
-       {
+       } catch(const con::PeerNotFoundException &) {
                dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
                lua_pushnil(L); // error
                return 1;
@@ -235,7 +230,7 @@ int ModApiServer::l_get_player_information(lua_State *L)
        lua_pushstring(L,"protocol_version");
        lua_pushnumber(L, prot_vers);
        lua_settable(L, table);
-       
+
 #ifndef NDEBUG
        lua_pushstring(L,"serialization_version");
        lua_pushnumber(L, ser_vers);
@@ -299,9 +294,7 @@ int ModApiServer::l_ban_player(lua_State *L)
                        dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name)->peer_id);
                std::string ip_str = addr.serializeString();
                getServer(L)->setIpBanned(ip_str, name);
-       }
-       catch(con::PeerNotFoundException) // unlikely
-       {
+       } catch(const con::PeerNotFoundException &) {
                dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
                lua_pushboolean(L, false); // error
                return 1;
@@ -478,7 +471,7 @@ int ModApiServer::l_is_singleplayer(lua_State *L)
 int ModApiServer::l_notify_authentication_modified(lua_State *L)
 {
        NO_MAP_LOCK_REQUIRED;
-       std::string name = "";
+       std::string name;
        if(lua_isstring(L, 1))
                name = lua_tostring(L, 1);
        getServer(L)->reportPrivsModified(name);