Improve glass
[oweals/minetest.git] / src / clientserver.h
index 7972762c05af82eccdbf9be60b0026c530a42fc9..cd54fe239749a9836641f9a975d2148ad3923b21 100644 (file)
@@ -22,6 +22,19 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "utility.h"
 
+/*
+       changes by PROTOCOL_VERSION:
+
+       PROTOCOL_VERSION 3:
+               Base for writing changes here
+       PROTOCOL_VERSION 4:
+               Add TOCLIENT_TOOLDEF
+               Add TOCLIENT_TEXTURES
+               Add TOCLIENT_NODEDEF
+*/
+
+#define PROTOCOL_VERSION 4
+
 #define PROTOCOL_ID 0x4f457403
 
 #define PASSWORD_SIZE 28       // Maximum password length. Allows for
@@ -37,7 +50,7 @@ enum ToClientCommand
                [0] u16 TOSERVER_INIT
                [2] u8 deployed version
                [3] v3s16 player's position + v3f(0,BS/2,0) floatToInt'd 
-               ([4] u64 map seed (new as of 2011-02-27))
+               [12] u64 map seed (new as of 2011-02-27)
 
                NOTE: The position in here is deprecated; position is
                      explicitly sent afterwards
@@ -90,6 +103,7 @@ enum ToClientCommand
                u16 command
                u16 number of player positions
                for each player:
+                       u16 peer_id
                        v3s32 position*100
                        v3s32 speed*100
                        s32 pitch*100
@@ -106,6 +120,8 @@ enum ToClientCommand
                u16 time (0-23999)
        */
 
+       // (oops, there is some gap here)
+
        TOCLIENT_CHAT_MESSAGE = 0x30,
        /*
                u16 command
@@ -124,7 +140,7 @@ enum ToClientCommand
                for all added objects {
                        u16 id
                        u8 type
-                       u16 initialization data length
+                       u32 initialization data length
                        string initialization data
                }
        */
@@ -160,6 +176,56 @@ enum ToClientCommand
                u16 reason_length
                wstring reason
        */
+
+       TOCLIENT_PLAYERITEM = 0x36,
+       /*
+               u16 command
+               u16 count of player items
+               for all player items {
+                       u16 peer id
+                       u16 length of serialized item
+                       string serialized item
+               }
+       */
+
+       TOCLIENT_DEATHSCREEN = 0x37,
+       /*
+               u16 command
+               u8 bool set camera point target
+               v3f1000 camera point target (to point the death cause or whatever)
+       */
+
+       TOCLIENT_TOOLDEF = 0x38,
+       /*
+               u16 command
+               u32 length of the next item
+               serialized ToolDefManager
+       */
+       
+       TOCLIENT_TEXTURES = 0x39,
+       /*
+               u16 command
+               u32 number of textures
+               for each texture {
+                       u16 length of name
+                       string name
+                       u32 length of data
+                       data
+               }
+       */
+       
+       TOCLIENT_NODEDEF = 0x3a,
+       /*
+               u16 command
+               u32 length of the next item
+               serialized NodeDefManager
+       */
+       
+       //TOCLIENT_CONTENT_SENDING_MODE = 0x38,
+       /*
+               u16 command
+               u8 mode (0 = off, 1 = on)
+       */
 };
 
 enum ToServerCommand
@@ -171,7 +237,8 @@ enum ToServerCommand
                [0] u16 TOSERVER_INIT
                [2] u8 SER_FMT_VER_HIGHEST
                [3] u8[20] player_name
-               [23] u8[28] password
+               [23] u8[28] password (new in some version)
+               [51] u16 client network protocol version (new in some version)
        */
 
        TOSERVER_INIT2 = 0x11,
@@ -247,6 +314,8 @@ enum ToServerCommand
        
        TOSERVER_RELEASE = 0x29, // Obsolete
 
+       // (oops, there is some gap here)
+
        TOSERVER_SIGNTEXT = 0x30, // Old signs
        /*
                u16 command
@@ -300,6 +369,18 @@ enum ToServerCommand
                [30] u8[28] new password
        */
 
+       TOSERVER_PLAYERITEM=0x37,
+       /*
+               Sent to change selected item.
+
+               [0] u16 TOSERVER_PLAYERITEM
+               [2] u16 item
+       */
+       
+       TOSERVER_RESPAWN=0x38,
+       /*
+               u16 TOSERVER_RESPAWN
+       */
 };
 
 inline SharedBuffer<u8> makePacket_TOCLIENT_TIME_OF_DAY(u16 time)