X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclient.h;h=420d188951c610cb08838fa7d44f1da3ccf67b0b;hb=67f97f8d3274e0e96a8f541a05a39f81dfec1a20;hp=0255b2803337f2c361edd41e7b03db2febe6eb94;hpb=f3ad75691aea30d2d68aab19fbfa9031409c39d7;p=oweals%2Fminetest.git diff --git a/src/client.h b/src/client.h index 0255b2803..420d18895 100644 --- a/src/client.h +++ b/src/client.h @@ -17,10 +17,8 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef CLIENT_HEADER -#define CLIENT_HEADER +#pragma once -#include "network/connection.h" #include "clientenvironment.h" #include "irrlichttypes_extrabloated.h" #include @@ -37,12 +35,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapnode.h" #include "tileanimation.h" #include "mesh_generator_thread.h" +#include "network/address.h" +#include "network/peerhandler.h" #include -#include "filesys.h" #define CLIENT_CHAT_MESSAGE_LIMIT_PER_10S 10.0f +struct ClientEvent; struct MeshMakeData; +struct ChatMessage; class MapBlockMesh; class IWritableTextureSource; class IWritableShaderSource; @@ -58,6 +59,9 @@ class Minimap; struct MinimapMapblock; class Camera; class NetworkPacket; +namespace con { +class Connection; +} enum LocalClientState { LC_Created, @@ -65,137 +69,6 @@ enum LocalClientState { LC_Ready }; -enum ClientEventType -{ - CE_NONE, - CE_PLAYER_DAMAGE, - CE_PLAYER_FORCE_MOVE, - CE_DEATHSCREEN, - CE_SHOW_FORMSPEC, - CE_SHOW_LOCAL_FORMSPEC, - CE_SPAWN_PARTICLE, - CE_ADD_PARTICLESPAWNER, - CE_DELETE_PARTICLESPAWNER, - CE_HUDADD, - CE_HUDRM, - CE_HUDCHANGE, - CE_SET_SKY, - CE_OVERRIDE_DAY_NIGHT_RATIO, - CE_CLOUD_PARAMS, -}; - -struct ClientEvent -{ - ClientEventType type; - union{ - //struct{ - //} none; - struct{ - u8 amount; - } player_damage; - struct{ - f32 pitch; - f32 yaw; - } player_force_move; - struct{ - bool set_camera_point_target; - f32 camera_point_target_x; - f32 camera_point_target_y; - f32 camera_point_target_z; - } deathscreen; - struct{ - std::string *formspec; - std::string *formname; - } show_formspec; - //struct{ - //} textures_updated; - struct{ - v3f *pos; - v3f *vel; - v3f *acc; - f32 expirationtime; - f32 size; - bool collisiondetection; - bool collision_removal; - bool vertical; - std::string *texture; - struct TileAnimationParams animation; - u8 glow; - } spawn_particle; - struct{ - u16 amount; - f32 spawntime; - v3f *minpos; - v3f *maxpos; - v3f *minvel; - v3f *maxvel; - v3f *minacc; - v3f *maxacc; - f32 minexptime; - f32 maxexptime; - f32 minsize; - f32 maxsize; - bool collisiondetection; - bool collision_removal; - u16 attached_id; - bool vertical; - std::string *texture; - u32 id; - struct TileAnimationParams animation; - u8 glow; - } add_particlespawner; - struct{ - u32 id; - } delete_particlespawner; - struct{ - u32 id; - u8 type; - v2f *pos; - std::string *name; - v2f *scale; - std::string *text; - u32 number; - u32 item; - u32 dir; - v2f *align; - v2f *offset; - v3f *world_pos; - v2s32 * size; - } hudadd; - struct{ - u32 id; - } hudrm; - struct{ - u32 id; - HudElementStat stat; - v2f *v2fdata; - std::string *sdata; - u32 data; - v3f *v3fdata; - v2s32 * v2s32data; - } hudchange; - struct{ - video::SColor *bgcolor; - std::string *type; - std::vector *params; - bool clouds; - } set_sky; - struct{ - bool do_override; - float ratio_f; - } override_day_night_ratio; - struct { - f32 density; - u32 color_bright; - u32 color_ambient; - f32 height; - f32 thickness; - f32 speed_x; - f32 speed_y; - } cloud_params; - }; -}; - /* Packet counter */ @@ -203,9 +76,7 @@ struct ClientEvent class PacketCounter { public: - PacketCounter() - { - } + PacketCounter() = default; void add(u16 command) { @@ -222,23 +93,15 @@ public: void clear() { - for(std::map::iterator - i = m_packets.begin(); - i != m_packets.end(); ++i) - { - i->second = 0; + for (auto &m_packet : m_packets) { + m_packet.second = 0; } } void print(std::ostream &o) { - for(std::map::iterator - i = m_packets.begin(); - i != m_packets.end(); ++i) - { - o<<"cmd "<first - <<" count "<second - < &blocks); @@ -602,7 +475,7 @@ private: MeshUpdateThread m_mesh_update_thread; ClientEnvironment m_env; ParticleManager m_particle_manager; - con::Connection m_con; + std::unique_ptr m_con; std::string m_address_name; Camera *m_camera = nullptr; Minimap *m_minimap = nullptr; @@ -629,10 +502,10 @@ private: // 0 <= m_daynight_i < DAYNIGHT_CACHE_COUNT //s32 m_daynight_i; //u32 m_daynight_ratio; - std::queue m_chat_queue; std::queue m_out_chat_queue; u32 m_last_chat_message_sent; float m_chat_message_allowance = 5.0f; + std::queue m_chat_queue; // The authentication methods we can use to enter sudo mode (=change password) u32 m_sudo_auth_methods; @@ -653,7 +526,7 @@ private: bool m_access_denied = false; bool m_access_denied_reconnect = false; std::string m_access_denied_reason = ""; - std::queue m_client_event_queue; + std::queue m_client_event_queue; bool m_itemdef_received = false; bool m_nodedef_received = false; ClientMediaDownloader *m_media_downloader; @@ -703,6 +576,8 @@ private: GameUIFlags *m_game_ui_flags; bool m_shutdown = false; -}; -#endif // !CLIENT_HEADER + // CSM flavour limits byteflag + u64 m_csm_flavour_limits = CSMFlavourLimit::CSM_FL_NONE; + u32 m_csm_noderange_limit = 8; +};