From: Perttu Ahola Date: Sat, 28 Jul 2012 00:08:09 +0000 (+0300) Subject: Add enable_rollback_recording setting, defaulting to false X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=c9ed379e39be94b588f4b62f893760c53b2d2a4f;p=zefram%2Fminetest%2Fminetest_engine.git Add enable_rollback_recording setting, defaulting to false --- diff --git a/minetest.conf.example b/minetest.conf.example index fdfbf201..adeb3c8f 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -160,6 +160,8 @@ #disallow_empty_password = false # If true, disable cheat prevention in multiplayer #disable_anticheat = false +# If true, actions are recorded for rollback +#enable_rollback_recording = false # Profiler data print interval. #0 = disable. #profiler_print_interval = 0 diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index dabdbb4a..6b85feb6 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -122,6 +122,7 @@ void set_default_settings(Settings *settings) settings->setDefault("enable_pvp", "true"); settings->setDefault("disallow_empty_password", "false"); settings->setDefault("disable_anticheat", "false"); + settings->setDefault("enable_rollback_recording", "false"); settings->setDefault("profiler_print_interval", "0"); settings->setDefault("enable_mapgen_debug_info", "false"); diff --git a/src/server.cpp b/src/server.cpp index 6a126b60..05dff06c 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -937,6 +937,7 @@ Server::Server( m_banmanager(path_world+DIR_DELIM+"ipban.txt"), m_rollback(NULL), m_rollback_sink_enabled(true), + m_enable_rollback_recording(false), m_lua(NULL), m_itemdef(createItemDefManager()), m_nodedef(createNodeDefManager()), @@ -1873,6 +1874,10 @@ void Server::AsyncRunStep() counter = 0.0; m_emergethread.trigger(); + + // Update m_enable_rollback_recording here too + m_enable_rollback_recording = + g_settings->getBool("enable_rollback_recording"); } } @@ -4658,6 +4663,8 @@ MtEventManager* Server::getEventManager() } IRollbackReportSink* Server::getRollbackReportSink() { + if(!m_enable_rollback_recording) + return NULL; if(!m_rollback_sink_enabled) return NULL; return m_rollback; diff --git a/src/server.h b/src/server.h index 668d4241..223c1b0f 100644 --- a/src/server.h +++ b/src/server.h @@ -734,6 +734,7 @@ private: // Rollback manager (behind m_env_mutex) IRollbackManager *m_rollback; bool m_rollback_sink_enabled; + bool m_enable_rollback_recording; // Updated once in a while // Scripting // Envlock and conlock should be locked when using Lua