]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/clientiface.h
Merge branch 'master' of https://github.com/minetest/minetest
[dragonfireclient.git] / src / clientiface.h
index 2b0ccfbb1c75cb8636706246eb0a475cb540ff43..cc5292b71bf96fb5b2c8d9063921fc8ff18c7f15 100644 (file)
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "serialization.h"             // for SER_FMT_VER_INVALID
 #include "network/networkpacket.h"
 #include "network/networkprotocol.h"
+#include "network/address.h"
 #include "porting.h"
 
 #include <list>
@@ -188,7 +189,6 @@ enum ClientStateEvent
 {
        CSE_Hello,
        CSE_AuthAccept,
-       CSE_InitLegacy,
        CSE_GotInit2,
        CSE_SetDenied,
        CSE_SetDefinitionsSent,
@@ -338,6 +338,14 @@ class RemoteClient
        u8 getMajor() const { return m_version_major; }
        u8 getMinor() const { return m_version_minor; }
        u8 getPatch() const { return m_version_patch; }
+       const std::string &getFullVer() const { return m_full_version; }
+       
+       void setLangCode(const std::string &code) { m_lang_code = code; }
+       const std::string &getLangCode() const { return m_lang_code; }
+
+       void setCachedAddress(const Address &addr) { m_addr = addr; }
+       const Address &getAddress() const { return m_addr; }
+
 private:
        // Version is stored in here after INIT before INIT2
        u8 m_pending_serialization_version = SER_FMT_VER_INVALID;
@@ -345,6 +353,12 @@ class RemoteClient
        /* current state of client */
        ClientState m_state = CS_Created;
 
+       // Cached here so retrieval doesn't have to go to connection API
+       Address m_addr;
+
+       // Client sent language code
+       std::string m_lang_code;
+
        /*
                Blocks that have been sent to client.
                - These don't have to be sent again.
@@ -357,7 +371,7 @@ class RemoteClient
        std::set<v3s16> m_blocks_sent;
        s16 m_nearest_unsent_d = 0;
        v3s16 m_last_center;
-       float m_nearest_unsent_reset_timer = 0.0f;
+       v3f m_last_camera_dir;
 
        const u16 m_max_simul_sends;
        const float m_min_time_from_building;
@@ -377,10 +391,10 @@ class RemoteClient
        std::map<v3s16, float> m_blocks_sending;
 
        /*
-               Blocks that have been modified since last sending them.
-               These blocks will not be marked as sent, even if the
-               client reports it has received them to account for blocks
-               that are being modified while on the line.
+               Blocks that have been modified since blocks were
+               sent to the client last (getNextBlocks()).
+               This is used to reset the unsent distance, so that
+               modified blocks are resent to the client.
 
                List of block positions.
        */
@@ -405,7 +419,7 @@ class RemoteClient
 
        /*
                client information
-        */
+       */
        u8 m_version_major = 0;
        u8 m_version_minor = 0;
        u8 m_version_patch = 0;