]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/client.cpp
Made unknown nodes stop falling nodes properly and shorten lines
[dragonfireclient.git] / src / client.cpp
index e5ba1485045ce59a027314218a592916f76fb9d5..98c9af972dadb428f74b65e27a00ac715f2c4fdc 100644 (file)
@@ -20,9 +20,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "client.h"
 #include <iostream>
 #include "clientserver.h"
-#include "jmutexautolock.h"
+#include "jthread/jmutexautolock.h"
 #include "main.h"
 #include <sstream>
+#include "filesys.h"
 #include "porting.h"
 #include "mapsector.h"
 #include "mapblock_mesh.h"
@@ -556,14 +557,14 @@ void Client::step(float dtime)
        
                        // Send TOSERVER_INIT
                        // [0] u16 TOSERVER_INIT
-                       // [2] u8 SER_FMT_VER_HIGHEST
+                       // [2] u8 SER_FMT_VER_HIGHEST_READ
                        // [3] u8[20] player_name
                        // [23] u8[28] password (new in some version)
                        // [51] u16 minimum supported network protocol version (added sometime)
                        // [53] u16 maximum supported network protocol version (added later than the previous one)
                        SharedBuffer<u8> data(2+1+PLAYERNAME_SIZE+PASSWORD_SIZE+2+2);
                        writeU16(&data[0], TOSERVER_INIT);
-                       writeU8(&data[2], SER_FMT_VER_HIGHEST);
+                       writeU8(&data[2], SER_FMT_VER_HIGHEST_READ);
 
                        memset((char*)&data[3], 0, PLAYERNAME_SIZE);
                        snprintf((char*)&data[3], PLAYERNAME_SIZE, "%s", myplayer->getName());
@@ -1154,8 +1155,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                infostream<<"Client: TOCLIENT_INIT received with "
                                "deployed="<<((int)deployed&0xff)<<std::endl;
 
-               if(deployed < SER_FMT_VER_LOWEST
-                               || deployed > SER_FMT_VER_HIGHEST)
+               if(!ser_ver_supported(deployed))
                {
                        infostream<<"Client: TOCLIENT_INIT: Server sent "
                                        <<"unsupported ser_fmt_ver"<<std::endl;
@@ -1300,6 +1300,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                        */
                        //infostream<<"Updating"<<std::endl;
                        block->deSerialize(istr, ser_version, false);
+                       block->deSerializeNetworkSpecific(istr);
                }
                else
                {
@@ -1309,6 +1310,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                        //infostream<<"Creating new"<<std::endl;
                        block = new MapBlock(&m_env.getMap(), p, this);
                        block->deSerialize(istr, ser_version, false);
+                       block->deSerializeNetworkSpecific(istr);
                        sector->insertBlock(block);
                }
 
@@ -1355,8 +1357,6 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                        std::istringstream is(datastring, std::ios_base::binary);
                        //t3.stop();
                        
-                       //m_env.printPlayers(infostream);
-
                        //TimeTaker t4("player get", m_device);
                        Player *player = m_env.getLocalPlayer();
                        assert(player != NULL);
@@ -2175,6 +2175,10 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                        s32 hotbar_itemcount = readS32((u8*) value.c_str());
                        if(hotbar_itemcount > 0 && hotbar_itemcount <= HUD_HOTBAR_ITEMCOUNT_MAX)
                                player->hud_hotbar_itemcount = hotbar_itemcount;
+               } else if (param == HUD_PARAM_HOTBAR_IMAGE) {
+                       ((LocalPlayer *) player)->hotbar_image = value;
+               } else if (param == HUD_PARAM_HOTBAR_SELECTED_IMAGE) {
+                       ((LocalPlayer *) player)->hotbar_selected_image = value;
                }
        }
        else