X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fclient.h;h=51ce5b8f22a30df5031b32b9fe6d2e3216fef9a4;hb=e5b4748bb44a12fd09a92f7d36986b4bda86e6bf;hp=f2e1b86d7bbd133a731aa76bc2ea9216853da586;hpb=7cac34c807b6f38eaca3bc8296566493c8874e03;p=oweals%2Fminetest.git diff --git a/src/client.h b/src/client.h index f2e1b86d7..51ce5b8f2 100644 --- a/src/client.h +++ b/src/client.h @@ -57,6 +57,12 @@ struct QueuedMeshUpdate ~QueuedMeshUpdate(); }; +enum LocalClientState { + LC_Created, + LC_Init, + LC_Ready +}; + /* A thread-safe queue of mesh update tasks */ @@ -209,6 +215,7 @@ struct ClientEvent v2f *align; v2f *offset; v3f *world_pos; + v2s32 * size; } hudadd; struct{ u32 id; @@ -220,6 +227,7 @@ struct ClientEvent std::string *sdata; u32 data; v3f *v3fdata; + v2s32 * v2s32data; } hudchange; struct{ video::SColor *bgcolor; @@ -319,14 +327,7 @@ public: calling this, as it is sent in the initialization. */ void connect(Address address); - /* - returns true when - m_con.Connected() == true - AND m_server_ser_ver != SER_FMT_VER_INVALID - throws con::PeerNotFoundException if connection has been deleted, - eg. timed out. - */ - bool connectedAndInitialized(); + /* Stuff that references the environment is valid only as long as this is not called. (eg. Players) @@ -354,6 +355,7 @@ public: void sendDamage(u8 damage); void sendBreath(u16 breath); void sendRespawn(); + void sendReady(); ClientEnvironment& getEnv() { return m_env; } @@ -409,7 +411,8 @@ public: void addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server=false, bool urgent=false); void addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server=false, bool urgent=false); - void updateCameraOffset(v3s16 camera_offset){ m_mesh_update_thread.m_camera_offset = camera_offset; } + void updateCameraOffset(v3s16 camera_offset) + { m_mesh_update_thread.m_camera_offset = camera_offset; } // Get event from queue. CE_NONE is returned if queue is empty. ClientEvent getClientEvent(); @@ -432,6 +435,8 @@ public: void afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font); float getRTT(void); + float getCurRate(void); + float getAvgRate(void); // IGameDef interface virtual IItemDefManager* getItemDefManager(); @@ -454,6 +459,8 @@ public: // Send a notification that no conventional media transfer is needed void received_media(); + LocalClientState getState() { return m_state; } + private: // Virtual methods from con::PeerHandler @@ -537,6 +544,9 @@ private: // Storage for mesh data for creating multiple instances of the same mesh std::map m_mesh_data; + + // own state + LocalClientState m_state; }; #endif // !CLIENT_HEADER