diff --git a/src/client/camera.h b/src/client/camera.h index 1018af55a7ba..cd6c89a96b5e 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include "inventory.h" #include "client/tile.h" +#include "client/localplayer.h" #include #include #include diff --git a/src/client/client.cpp b/src/client/client.cpp index 054c7d2ac896..b2d71d0575b6 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -32,6 +32,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/renderingengine.h" #include "client/sound.h" #include "client/tile.h" +#include "client/mesh_generator_thread.h" +#include "client/particles.h" +#include "client/localplayer.h" #include "util/auth.h" #include "util/directiontables.h" #include "util/pointedthing.h" @@ -60,6 +63,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "chatmessage.h" #include "translation.h" #include "content/mod_configuration.h" +#include "mapnode.h" extern gui::IGUIEnvironment* guienv; @@ -112,12 +116,12 @@ Client::Client( m_sound(sound), m_event(event), m_rendering_engine(rendering_engine), - m_mesh_update_manager(this), + m_mesh_update_manager(std::make_unique(this)), m_env( new ClientMap(this, rendering_engine, control, 666), tsrc, this ), - m_particle_manager(&m_env), + m_particle_manager(std::make_unique(&m_env)), m_con(new con::Connection(PROTOCOL_ID, 512, CONNECTION_TIMEOUT, ipv6, this)), m_address_name(address_name), m_allow_login_or_register(allow_login_or_register), @@ -314,7 +318,7 @@ void Client::Stop() if (m_mods_loaded) m_script->on_shutdown(); //request all client managed threads to stop - m_mesh_update_manager.stop(); + m_mesh_update_manager->stop(); // Save local server map if (m_localdb) { infostream << "Local map saving ended." << std::endl; @@ -327,7 +331,7 @@ void Client::Stop() bool Client::isShutdown() { - return m_shutdown || !m_mesh_update_manager.isRunning(); + return m_shutdown || !m_mesh_update_manager->isRunning(); } Client::~Client() @@ -337,11 +341,11 @@ Client::~Client() deleteAuthData(); - m_mesh_update_manager.stop(); - m_mesh_update_manager.wait(); + m_mesh_update_manager->stop(); + m_mesh_update_manager->wait(); MeshUpdateResult r; - while (m_mesh_update_manager.getNextResult(r)) { + while (m_mesh_update_manager->getNextResult(r)) { for (auto block : r.map_blocks) if (block) block->refDrop(); @@ -553,7 +557,7 @@ void Client::step(float dtime) std::vector blocks_to_ack; bool force_update_shadows = false; MeshUpdateResult r; - while (m_mesh_update_manager.getNextResult(r)) + while (m_mesh_update_manager->getNextResult(r)) { num_processed_meshes++; @@ -1128,12 +1132,14 @@ void Client::startAuth(AuthMechanism chosen_auth_mechanism) { m_chosen_auth_mech = chosen_auth_mechanism; + std::string playername = m_env.getLocalPlayer()->getName(); + switch (chosen_auth_mechanism) { case AUTH_MECHANISM_FIRST_SRP: { // send srp verifier to server std::string verifier; std::string salt; - generate_srp_verifier_and_salt(getPlayerName(), m_password, + generate_srp_verifier_and_salt(playername, m_password, &verifier, &salt); NetworkPacket resp_pkt(TOSERVER_FIRST_SRP, 0); @@ -1147,13 +1153,13 @@ void Client::startAuth(AuthMechanism chosen_auth_mechanism) u8 based_on = 1; if (chosen_auth_mechanism == AUTH_MECHANISM_LEGACY_PASSWORD) { - m_password = translate_password(getPlayerName(), m_password); + m_password = translate_password(playername, m_password); based_on = 0; } - std::string playername_u = lowercase(getPlayerName()); + std::string playername_u = lowercase(playername); m_auth_data = srp_user_new(SRP_SHA256, SRP_NG_2048, - getPlayerName().c_str(), playername_u.c_str(), + playername.c_str(), playername_u.c_str(), (const unsigned char *) m_password.c_str(), m_password.length(), NULL, NULL); char *bytes_A = 0; @@ -1695,12 +1701,12 @@ void Client::addUpdateMeshTask(v3s16 p, bool ack_to_server, bool urgent) if (b == NULL) return; - m_mesh_update_manager.updateBlock(&m_env.getMap(), p, ack_to_server, urgent); + m_mesh_update_manager->updateBlock(&m_env.getMap(), p, ack_to_server, urgent); } void Client::addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server, bool urgent) { - m_mesh_update_manager.updateBlock(&m_env.getMap(), blockpos, ack_to_server, urgent, true); + m_mesh_update_manager->updateBlock(&m_env.getMap(), blockpos, ack_to_server, urgent, true); } void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool urgent) @@ -1714,7 +1720,7 @@ void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool ur v3s16 blockpos = getNodeBlockPos(nodepos); v3s16 blockpos_relative = blockpos * MAP_BLOCKSIZE; - m_mesh_update_manager.updateBlock(&m_env.getMap(), blockpos, ack_to_server, urgent, false); + m_mesh_update_manager->updateBlock(&m_env.getMap(), blockpos, ack_to_server, urgent, false); // Leading edge if (nodepos.X == blockpos_relative.X) addUpdateMeshTask(blockpos + v3s16(-1, 0, 0), false, urgent); @@ -1724,6 +1730,11 @@ void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool ur addUpdateMeshTask(blockpos + v3s16(0, 0, -1), false, urgent); } +void Client::updateCameraOffset(v3s16 camera_offset) +{ + m_mesh_update_manager->m_camera_offset = camera_offset; +} + ClientEvent *Client::getClientEvent() { FATAL_ERROR_IF(m_client_event_queue.empty(), @@ -1828,7 +1839,7 @@ void Client::afterContentReceived() // Start mesh update thread after setting up content definitions infostream<<"- Starting mesh update thread"<start(); m_state = LC_Ready; sendReady(); @@ -1979,7 +1990,7 @@ MtEventManager* Client::getEventManager() ParticleManager* Client::getParticleManager() { - return &m_particle_manager; + return m_particle_manager.get(); } scene::IAnimatedMesh* Client::getMesh(const std::string &filename, bool cache) @@ -2078,3 +2089,8 @@ ModChannel* Client::getModChannel(const std::string &channel) { return m_modchannel_mgr->getModChannel(channel); } + +const std::string &Client::getFormspecPrepend() const +{ + return m_env.getLocalPlayer()->formspec_prepend; +} diff --git a/src/client/client.h b/src/client/client.h index 5ed5c6e9a28a..585af2fd3d76 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -23,18 +23,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include #include +#include #include #include #include #include "clientobject.h" #include "gamedef.h" #include "inventorymanager.h" -#include "localplayer.h" #include "client/hud.h" -#include "particles.h" -#include "mapnode.h" #include "tileanimation.h" -#include "mesh_generator_thread.h" #include "network/address.h" #include "network/peerhandler.h" #include "gameparams.h" @@ -61,10 +58,14 @@ struct MapDrawControl; class ModChannelMgr; class MtEventManager; struct PointedThing; +struct MapNode; class MapDatabase; class Minimap; struct MinimapMapblock; +class MeshUpdateManager; +class ParticleManager; class Camera; +struct PlayerControl; class NetworkPacket; namespace con { class Connection; @@ -315,8 +316,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef 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_manager.m_camera_offset = camera_offset; } + void updateCameraOffset(v3s16 camera_offset); bool hasClientEvents() const { return !m_client_event_queue.empty(); } // Get event from queue. If queue is empty, it triggers an assertion failure. @@ -436,10 +436,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef const std::string &message) override; ModChannel *getModChannel(const std::string &channel) override; - const std::string &getFormspecPrepend() const - { - return m_env.getLocalPlayer()->formspec_prepend; - } + const std::string &getFormspecPrepend() const; inline MeshGrid getMeshGrid() { return m_mesh_grid; @@ -470,10 +467,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef void sendGotBlocks(const std::vector &blocks); void sendRemovedSounds(std::vector &soundList); - // Helper function - inline std::string getPlayerName() - { return m_env.getLocalPlayer()->getName(); } - bool canSendChatMessage() const; float m_packetcounter_timer = 0.0f; @@ -491,9 +484,9 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef RenderingEngine *m_rendering_engine; - MeshUpdateManager m_mesh_update_manager; + std::unique_ptr m_mesh_update_manager; ClientEnvironment m_env; - ParticleManager m_particle_manager; + std::unique_ptr m_particle_manager; std::unique_ptr m_con; std::string m_address_name; ELoginRegister m_allow_login_or_register = ELoginRegister::Any; diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index d9b88eb4a54b..69c8ac00bdc8 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "clientenvironment.h" #include "clientsimpleobject.h" #include "clientmap.h" +#include "localplayer.h" #include "scripting_client.h" #include "mapblock_mesh.h" #include "mtevent.h" diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index e99e6b89d8fc..00fd4b133827 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "mapsector.h" #include "mapblock.h" +#include "nodedef.h" #include "profiler.h" #include "settings.h" #include "camera.h" // CameraModes diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 230edc222fb9..76a0b63dcd7a 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/renderingengine.h" #include "client/sound.h" #include "client/tile.h" +#include "client/mapblock_mesh.h" #include "util/basic_macros.h" #include "util/numeric.h" #include "util/serialize.h" diff --git a/src/client/game.cpp b/src/client/game.cpp index 5d630a01dd79..18b3f9ec9d3f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/tile.h" // For TextureSource #include "client/keys.h" #include "client/joystick_controller.h" +#include "client/mapblock_mesh.h" #include "clientmap.h" #include "clouds.h" #include "config.h" diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 23db42c5577b..10eb1f5cd80b 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client.h" #include "mapblock.h" #include "map.h" +#include "noise.h" #include "profiler.h" #include "shader.h" #include "mesh.h" @@ -31,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/renderingengine.h" #include #include +#include /* MeshMakeData diff --git a/src/client/render/pipeline.cpp b/src/client/render/pipeline.cpp index 3e5347e376f1..8fccc7808bb9 100644 --- a/src/client/render/pipeline.cpp +++ b/src/client/render/pipeline.cpp @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "pipeline.h" #include "client/client.h" #include "client/hud.h" +#include "IRenderTarget.h" #include #include @@ -63,7 +64,7 @@ void TextureBuffer::setTexture(u8 index, v2f scale_factor, const std::string &na if (m_definitions.size() <= index) m_definitions.resize(index + 1); - + auto &definition = m_definitions[index]; definition.valid = true; definition.dirty = true; @@ -99,7 +100,7 @@ void TextureBuffer::reset(PipelineContext &context) ensureTexture(ptr, m_definitions[i], context); m_definitions[i].dirty = false; } - + RenderSource::reset(context); } @@ -124,7 +125,7 @@ bool TextureBuffer::ensureTexture(video::ITexture **texture, const TextureDefini size = core::dimension2du( (u32)(context.target_size.X * definition.scale_factor.X), (u32)(context.target_size.Y * definition.scale_factor.Y)); - + modify = definition.dirty || (*texture == nullptr) || (*texture)->getSize() != size; } else { @@ -283,7 +284,7 @@ void RenderPipeline::run(PipelineContext &context) for (auto &step: m_pipeline) step->run(context); - + context.target_size = original_size; } diff --git a/src/client/render/secondstage.cpp b/src/client/render/secondstage.cpp index 1575cfb1fff4..ee8d41c387b8 100644 --- a/src/client/render/secondstage.cpp +++ b/src/client/render/secondstage.cpp @@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/client.h" #include "client/shader.h" #include "client/tile.h" +#include "settings.h" PostProcessingStep::PostProcessingStep(u32 _shader_id, const std::vector &_texture_map) : shader_id(_shader_id), texture_map(_texture_map) diff --git a/src/client/shadows/dynamicshadowsrender.cpp b/src/client/shadows/dynamicshadowsrender.cpp index 320a046cda0a..688bfae1d462 100644 --- a/src/client/shadows/dynamicshadowsrender.cpp +++ b/src/client/shadows/dynamicshadowsrender.cpp @@ -29,6 +29,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/client.h" #include "client/clientmap.h" #include "profiler.h" +#include "EShaderTypes.h" +#include "IGPUProgrammingServices.h" +#include "IMaterialRenderer.h" ShadowRenderer::ShadowRenderer(IrrlichtDevice *device, Client *client) : m_smgr(device->getSceneManager()), m_driver(device->getVideoDriver()), diff --git a/src/environment.h b/src/environment.h index b4884fdb3849..19c30b4d5ae2 100644 --- a/src/environment.h +++ b/src/environment.h @@ -35,8 +35,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "irr_v3d.h" -#include "network/networkprotocol.h" // for AccessDeniedCode #include "util/basic_macros.h" +#include "line3d.h" class IGameDef; class Map; diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 36a84c13c00e..02d4f1a1937d 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include "irr_ptr.h" +#include "inventory.h" #include "inventorymanager.h" #include "modalMenu.h" #include "guiInventoryList.h" diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp index 233a7e63587d..c2241c944fbe 100644 --- a/src/gui/guiHyperText.cpp +++ b/src/gui/guiHyperText.cpp @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/client.h" #include "client/renderingengine.h" #include "hud.h" +#include "inventory.h" #include "util/string.h" #include "irrlicht_changes/CGUITTFont.h" diff --git a/src/gui/guiItemImage.cpp b/src/gui/guiItemImage.cpp index f93d5476c98a..a02285fcbf94 100644 --- a/src/gui/guiItemImage.cpp +++ b/src/gui/guiItemImage.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiItemImage.h" #include "client/client.h" +#include "inventory.h" GUIItemImage::GUIItemImage(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id, const core::rect &rectangle, const std::string &item_name, diff --git a/src/inventory.cpp b/src/inventory.cpp index 43f45a2d4065..eb7133b41a12 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "log.h" -#include "itemdef.h" #include "util/strfnd.h" #include "content_mapnode.h" // For loading legacy MaterialItems #include "nameidmapping.h" // For loading legacy MaterialItems diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 782a17112d62..1c6b3ffc9f06 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "rollback_interface.h" #include "util/strfnd.h" #include "util/basic_macros.h" +#include "inventory.h" #define PLAYER_TO_SA(p) p->getEnv()->getScriptIface() diff --git a/src/inventorymanager.h b/src/inventorymanager.h index 4ad5d3f49ae0..246ad2947427 100644 --- a/src/inventorymanager.h +++ b/src/inventorymanager.h @@ -19,10 +19,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include "inventory.h" +#include "irr_v3d.h" #include #include +#include + class ServerActiveObject; +struct ItemStack; +class Inventory; +class IGameDef; struct InventoryLocation { diff --git a/src/mapblock.h b/src/mapblock.h index d2ffc4bb7077..f0491e25ce36 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -30,7 +30,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "modifiedstate.h" #include "util/numeric.h" // getContainerPos #include "settings.h" -#include "mapgen/mapgen.h" class Map; class NodeMetadataList; diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 942f101fcad3..48524553e50e 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/base64.h" #include "client/camera.h" +#include "client/mesh_generator_thread.h" #include "chatmessage.h" #include "client/clientmedia.h" #include "log.h" @@ -30,12 +31,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "modchannels.h" #include "nodedef.h" #include "serialization.h" -#include "server.h" #include "util/strfnd.h" #include "client/clientevent.h" #include "client/sound.h" #include "network/clientopcodes.h" #include "network/connection.h" +#include "network/networkpacket.h" #include "script/scripting_client.h" #include "util/serialize.h" #include "util/srp.h" @@ -43,6 +44,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "tileanimation.h" #include "gettext.h" #include "skyparams.h" +#include "particles.h" #include void Client::handleCommand_Deprecated(NetworkPacket* pkt) @@ -672,7 +674,7 @@ void Client::handleCommand_AnnounceMedia(NetworkPacket* pkt) // Mesh update thread must be stopped while // updating content definitions - sanity_check(!m_mesh_update_manager.isRunning()); + sanity_check(!m_mesh_update_manager->isRunning()); for (u16 i = 0; i < num_files; i++) { std::string name, sha1_base64; @@ -732,7 +734,7 @@ void Client::handleCommand_Media(NetworkPacket* pkt) if (init_phase) { // Mesh update thread must be stopped while // updating content definitions - sanity_check(!m_mesh_update_manager.isRunning()); + sanity_check(!m_mesh_update_manager->isRunning()); } for (u32 i = 0; i < num_files; i++) { @@ -769,7 +771,7 @@ void Client::handleCommand_NodeDef(NetworkPacket* pkt) // Mesh update thread must be stopped while // updating content definitions - sanity_check(!m_mesh_update_manager.isRunning()); + sanity_check(!m_mesh_update_manager->isRunning()); // Decompress node definitions std::istringstream tmp_is(pkt->readLongString(), std::ios::binary); @@ -788,7 +790,7 @@ void Client::handleCommand_ItemDef(NetworkPacket* pkt) // Mesh update thread must be stopped while // updating content definitions - sanity_check(!m_mesh_update_manager.isRunning()); + sanity_check(!m_mesh_update_manager->isRunning()); // Decompress item definitions std::istringstream tmp_is(pkt->readLongString(), std::ios::binary); diff --git a/src/script/cpp_api/s_client.cpp b/src/script/cpp_api/s_client.cpp index b937c9f7be39..6faa0695c38a 100644 --- a/src/script/cpp_api/s_client.cpp +++ b/src/script/cpp_api/s_client.cpp @@ -23,6 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/client.h" #include "common/c_converter.h" #include "common/c_content.h" +#include "lua_api/l_item.h" +#include "itemdef.h" #include "s_item.h" void ScriptApiClient::on_mods_loaded() diff --git a/src/script/cpp_api/s_client.h b/src/script/cpp_api/s_client.h index 93fe96791c57..8a5523d0d328 100644 --- a/src/script/cpp_api/s_client.h +++ b/src/script/cpp_api/s_client.h @@ -20,19 +20,19 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include "util/pointedthing.h" #include "cpp_api/s_base.h" #include "mapnode.h" -#include "itemdef.h" #include "util/string.h" #include "util/pointedthing.h" -#include "lua_api/l_item.h" #ifdef _CRT_MSVCP_CURRENT #include #endif class ClientEnvironment; +struct ItemStack; +class Inventory; +struct ItemDefinition; class ScriptApiClient : virtual public ScriptApiBase { diff --git a/src/script/cpp_api/s_modchannels.cpp b/src/script/cpp_api/s_modchannels.cpp index caff3f05e57e..e2fa0dfec95b 100644 --- a/src/script/cpp_api/s_modchannels.cpp +++ b/src/script/cpp_api/s_modchannels.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "s_modchannels.h" #include "s_internal.h" +#include "modchannels.h" void ScriptApiModChannels::on_modchannel_message(const std::string &channel, const std::string &sender, const std::string &message) diff --git a/src/script/cpp_api/s_modchannels.h b/src/script/cpp_api/s_modchannels.h index 4de7a8291d0c..d8295076230b 100644 --- a/src/script/cpp_api/s_modchannels.h +++ b/src/script/cpp_api/s_modchannels.h @@ -20,7 +20,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "cpp_api/s_base.h" -#include "modchannels.h" + +enum ModChannelSignal : u8; class ScriptApiModChannels : virtual public ScriptApiBase { diff --git a/src/server.cpp b/src/server.cpp index 5e5f96360e93..e8c3daaacc92 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -73,6 +73,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "database/database-files.h" #include "database/database-dummy.h" #include "gameparams.h" +#include "particles.h" class ClientNotFoundException : public BaseException { diff --git a/src/server.h b/src/server.h index 9ce3cc24dc8b..e8865fbef0b0 100644 --- a/src/server.h +++ b/src/server.h @@ -27,8 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "content/mods.h" #include "inventorymanager.h" #include "content/subgames.h" -#include "tileanimation.h" // TileAnimationParams -#include "particles.h" // ParticleParams #include "network/peerhandler.h" #include "network/address.h" #include "util/numeric.h" @@ -38,6 +36,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serverenvironment.h" #include "clientiface.h" #include "chatmessage.h" +#include "sound.h" #include "translation.h" #include #include @@ -74,6 +73,8 @@ class ServerThread; class ServerModManager; class ServerInventoryManager; struct PackedValue; +struct ParticleParameters; +struct ParticleSpawnerParameters; enum ClientDeletionReason { CDR_LEAVE, diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index 5624c0f55126..3b6ef1fbacc0 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "luaentity_sao.h" #include "collision.h" #include "constants.h" +#include "inventory.h" #include "player_sao.h" #include "scripting_server.h" #include "server.h" @@ -409,7 +410,7 @@ void LuaEntitySAO::setHP(s32 hp, const PlayerHPChangeReason &reason) m_env->getScriptIface()->luaentity_on_death(m_id, killer); } markForRemoval(); - } + } } u16 LuaEntitySAO::getHP() const diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 6d8498d8d0c6..973a415a31c6 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "constants.h" +#include "metadata.h" #include "network/networkprotocol.h" #include "unit_sao.h" #include "util/numeric.h" diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp index 96b433d1d106..fb09464cfbb4 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serveractiveobject.h" #include #include "inventory.h" +#include "inventorymanager.h" #include "constants.h" // BS #include "log.h" @@ -89,3 +90,8 @@ void ServerActiveObject::markForDeactivation() m_pending_deactivation = true; } } + +InventoryLocation ServerActiveObject::getInventoryLocation() const +{ + return InventoryLocation(); +} diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h index 5b0ee2d9b312..568295e29d61 100644 --- a/src/server/serveractiveobject.h +++ b/src/server/serveractiveobject.h @@ -19,10 +19,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include #include #include "irrlichttypes_bloated.h" #include "activeobject.h" -#include "inventorymanager.h" #include "itemgroup.h" #include "util/container.h" @@ -47,6 +47,8 @@ struct ItemStack; struct ToolCapabilities; struct ObjectProperties; struct PlayerHPChangeReason; +class Inventory; +struct InventoryLocation; class ServerActiveObject : public ActiveObject { @@ -184,8 +186,7 @@ class ServerActiveObject : public ActiveObject // Inventory and wielded item virtual Inventory *getInventory() const { return NULL; } - virtual InventoryLocation getInventoryLocation() const - { return InventoryLocation(); } + virtual InventoryLocation getInventoryLocation() const; virtual void setInventoryModified() {} virtual std::string getWieldList() const diff --git a/src/server/serverinventorymgr.h b/src/server/serverinventorymgr.h index 0e4b7241537e..ce1af41be33f 100644 --- a/src/server/serverinventorymgr.h +++ b/src/server/serverinventorymgr.h @@ -20,8 +20,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "inventorymanager.h" +#include #include +#include +class IItemDefManager; class ServerEnvironment; class ServerInventoryManager : public InventoryManager diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp index 6fdefaad47a1..54d4a029d281 100644 --- a/src/server/unit_sao.cpp +++ b/src/server/unit_sao.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "unit_sao.h" #include "scripting_server.h" #include "serverenvironment.h" +#include "util/serialize.h" UnitSAO::UnitSAO(ServerEnvironment *env, v3f pos) : ServerActiveObject(env, pos) { diff --git a/src/serverenvironment.h b/src/serverenvironment.h index bb40a33ce221..312b282021eb 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -41,6 +41,8 @@ struct StaticObject; class ServerActiveObject; class Server; class ServerScripting; +enum AccessDeniedCode : u8; +typedef u16 session_t; /* {Active, Loading} block modifier interface. diff --git a/src/unittest/mock_inventorymanager.h b/src/unittest/mock_inventorymanager.h index 0cbf8c70760a..dc75490de38d 100644 --- a/src/unittest/mock_inventorymanager.h +++ b/src/unittest/mock_inventorymanager.h @@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include +#include #include class MockInventoryManager : public InventoryManager diff --git a/src/unittest/test_voxelalgorithms.cpp b/src/unittest/test_voxelalgorithms.cpp index 767e9de31e93..8caa0fbf40d1 100644 --- a/src/unittest/test_voxelalgorithms.cpp +++ b/src/unittest/test_voxelalgorithms.cpp @@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "voxelalgorithms.h" #include "util/numeric.h" #include "dummymap.h" +#include "nodedef.h" class TestVoxelAlgorithms : public TestBase { public: