*/
#include "content_sao.h"
+#include "util/serialize.h"
+#include "util/mathconstants.h"
#include "collision.h"
#include "environment.h"
#include "settings.h"
#include "player.h"
#include "scripting_game.h"
#include "genericobject.h"
-#include "util/serialize.h"
-#include "util/mathconstants.h"
+#include "log.h"
std::map<u16, ServerActiveObject::Factory> ServerActiveObject::m_types;
}
ItemSAO(ServerEnvironment *env, v3f pos,
- const std::string itemstring):
+ const std::string &itemstring):
ServerActiveObject(env, pos),
m_itemstring(itemstring),
m_itemstring_changed(false),
ItemSAO proto_ItemSAO(NULL, v3f(0,0,0), "");
ServerActiveObject* createItemSAO(ServerEnvironment *env, v3f pos,
- const std::string itemstring)
+ const std::string &itemstring)
{
return new ItemSAO(env, pos, itemstring);
}
m_physics_override_speed(1),
m_physics_override_jump(1),
m_physics_override_gravity(1),
+ m_physics_override_sneak(true),
+ m_physics_override_sneak_glitch(true),
m_physics_override_sent(false)
{
assert(m_player);
{
m_player->setPlayerSAO(NULL);
m_player->peer_id = 0;
+ m_env->savePlayer(m_player->getName());
+ m_env->removePlayer(m_player->getName());
}
}
return false;
}
-bool PlayerSAO::unlimitedTransferDistance() const
-{
- return g_settings->getBool("unlimited_player_transfer_distance");
-}
-
std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
{
std::ostringstream os(std::ios::binary);
os<<serializeLongString(gob_cmd_update_bone_position((*ii).first, (*ii).second.X, (*ii).second.Y)); // m_bone_position.size
}
os<<serializeLongString(gob_cmd_update_attachment(m_attachment_parent_id, m_attachment_bone, m_attachment_position, m_attachment_rotation)); // 4
- os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity)); // 5
+ os<<serializeLongString(gob_cmd_update_physics_override(m_physics_override_speed,
+ m_physics_override_jump, m_physics_override_gravity, m_physics_override_sneak,
+ m_physics_override_sneak_glitch)); // 5
}
else
{
if(m_physics_override_sent == false){
m_physics_override_sent = true;
- std::string str = gob_cmd_update_physics_override(m_physics_override_speed, m_physics_override_jump, m_physics_override_gravity);
+ std::string str = gob_cmd_update_physics_override(m_physics_override_speed,
+ m_physics_override_jump, m_physics_override_gravity,
+ m_physics_override_sneak, m_physics_override_sneak_glitch);
// create message and add to list
ActiveObjectMessage aom(getId(), true, str);
m_messages_out.push_back(aom);