aboutsummaryrefslogtreecommitdiff
path: root/src/mapblock.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-11-05Settingtypes: Correct documentation for mgfractalparamat1-10/+16
Use type 'string' for v3fs and add comments
2015-11-04Fix time progressing too fastest311-2/+7
Before, time progressed wrongly. This was due to a mistake in how m_time_of_day_f was calculated, and a regression of the last two commits.
2015-11-04Mgfractal: Add documentation to conf.example and settingtypesparamat2-7/+134
2015-11-04Time: use locks againest313-48/+77
The Atomic implementation was only partially correct, and was very complex. Use locks for sake of simplicity, following KISS principle. Only remaining atomic operation use is time of day speed, because that really is only read + written. Also fixes a bug with m_time_conversion_skew only being decremented, never incremented (Regresion from previous commit). atomic.h changes: * Add GenericAtomic<T> class for non-integral types like floats. * Remove some last remainders from atomic.h of the volatile use.
2015-11-03Time: Remove serverside getter, and use atomic operationsest314-43/+31
It isn't possible to use atomic operations for floats, so don't use them there. Having a lock is good out of other reasons too, because this way the float time and the integer time both match, and can't get different values in a race, e.g. when two setTimeofDay() get executed simultaneously.
2015-11-03Atomic: cleanup and add more operationsest311-35/+54
Cleanup: * Remove volatile keyword, it is of no use at all. [1] * Remove the enable_if stuff. It had no use either. The most likely explanation why the enable_if stuff was there is that it was used as something like a STATIC_ASSERT to verify that sizeof(T) is not larger than sizeof(void *). This check however is not just misplaced in a place where we already use a lock, it isn't needed at all, as gcc will just generate a call to to the runtime if it compiles for platforms that don't support atomic instructions. The runtime will then most likely use locks. Code style fixes: * Prefix name of the mutex * Line everything up nicely, where it makes things look nice * Filling \ continuations with spaces is code style rule Added operations on the atomic var: * Compare and swap * Swap The second point of the cleanup also fixes the Android build of the next commit. [1]: http://stackoverflow.com/q/2484980
2015-11-03Only go fast in autorun if fast move is enabledest311-6/+7
2015-11-03Silence 'unused typedef' warning for STATIC_ASSERT()kwolekr1-1/+8
2015-11-02Add callback parameter for core.emerge_area()kwolekr9-22/+166
2015-11-02Speed up saving of profiling data by 27xgregorycu1-3/+3
On Windows Release x64 bit build this changes: ProfilerGraph::put 1.68% -> 0.061% ProfilerGraph::draw 12% -> 17.% So yes, there is a tradeoff between saving profiling data (executed always) and drawing the profiler graph (executed very rarely). But usually you don't have the profiler graph open.
2015-11-02Rename and move basicmacros.h to util/basic_macros.hest316-5/+5
2015-11-02Print --videomodes response to standard output, tooKahrl1-4/+4
2015-11-02Print direct command line responses to standard output instead of using the ↵Perttu Ahola1-10/+10
log system Using logging for these just makes them bloated and hard to read and overally just not neat at all.
2015-11-01Fix Lua scripting synchronizationkwolekr5-17/+57
For several years now, the lua script lock has been completely broken. This commit fixes the main issue (creation of a temporary rather than scoped object), and fixes a subsequent deadlock issue caused by nested script API calls by adding support for recursive mutexes.
2015-11-01Fix Noise compiled under clang >= 3.7.x with -O2 or higherkwolekr1-4/+4
When compiled with optimizations, the most recent versions of clang seem to 'optimize' out a crucial "and %reg, 0x7FFFFFFF" instruction in noise2d(), probably because it somehow assumed the variable n would never become greater than that amount. Indeed, signed integer underflow is undefined behavior in C and C++, so while this optimization is "correct" in that sense, it breaks lots of existing code. Solved by changing n to an unsigned type, making behavior well-defined.
2015-10-31Fix server crashing on Lua errorsShadowNinja10-81/+59
Previously, the server called FATAL_ERROR when a Lua error occured. This caused a (mostly useless) core dump. The server now simply throws an exception, which is caught and printed before exiting with a non-zero return value. This also fixes a number of instances where errors were logged multiple times.
2015-10-31Fix clang warningShadowNinja1-1/+1
2015-10-31Fix C++11 compatibilitykwolekr4-8/+12
2015-10-31minetest. to core.Rui9143-3/+3
2015-10-29WoW-style AutorunDuane Robertson2-0/+8
This allows the player to toggle continuous forward with a key (F by default), so we don't have to hold down the forward key endlessly.
2015-10-29findSpawnPos: Add setting for max height above water levelparamat4-4/+18
Increase default from 6 to 16 to help with mgv7 and mgfractal Large-scale or alternative mapgens can result in a lowland spawn point not being found, causing a spawn at (0, 0, 0) possibly buried underground The max height is now settable to allow correct player spawn in any mapgen or when using custom noise parameters
2015-10-29Mgfractal: Add filler depth noiseparamat2-7/+14
2015-10-27Add STATIC_ASSERT() macro and use itkwolekr2-2/+9
2015-10-27Add DISABLE_CLASS_COPY macro (and use it)kwolekr11-0/+30
Use this macro to disallow copying of an object using the assignment operator or copy constructor. This catches otherwise silent-but-deadly mistakes such as "ServerMap map = env->getMap();" at compile time. If so desired, it is still possible to copy a class, but it now requires an explicit call to memcpy or std::copy.
2015-10-27Environment: Time of day fixes and add serverside getterest314-17/+31
-> Put access to time variables under the time lock. -> Merge both time locks, there is no point to have two locks. -> Fix the lock being released too early in Environment::setTimeOfDay -> Add serverside getter so that you don't have to get the environment if you only have the server
2015-10-27Fix missing #includePilzAdam1-0/+2
2015-10-27Move basic, non-numeric macros from util/numeric.h to basicmacros.hkwolekr2-10/+32
2015-10-26Fix jittering sounds on entities (fixes #2974)BlockMen3-59/+40
2015-10-26Fix typoBlockMen1-2/+1
2015-10-26SAPI: Fix seed parameter truncation for LuaPseudoRandom constructorkwolekr1-3/+3
Also fix a potential seed truncation issue on platforms where the range of ptrdiff_t (the underlying type of lua_Integer) is too small.
2015-10-26SAPI: Move core.get_us_time() to Util modulekwolekr5-12/+17
2015-10-26Remove some abort() callsest314-13/+7
abort() doesn't benefit from the high level abstractions from FATAL_ERROR.
2015-10-25SAPI: Throw runtime error instead of if l_get_mapgen_object called in ↵kwolekr1-1/+1
incorrect thread
2015-10-25SAPI: Mark all Lua API functions requiring envlockkwolekr13-37/+141
2015-10-26Correct comment in l_util.cppest311-1/+3
Remove outdated loglevel list from a l_util.cpp comment, and rather point to the updated code.
2015-10-25Fix parameter passing to gettext callPilzAdam1-1/+1
2015-10-25Check if hitter has inventory when punching itemBlockMen1-3/+4
Fixes #3280
2015-10-25Credits: Remove my nameRui1-1/+0
2015-10-25Add option to disable backface culling for modelsBlockMen5-4/+15
- Disabled by default (except players) - Fixes #2984
2015-10-25Escape " in generated settings_translation_file.cppPilzAdam3-15/+18
2015-10-25Fix out of bounds vector write in Logger::addOutput(ILogOutput *out)est311-1/+2
Previously, the invocation of Logger::addOutput(ILogOutput *out) led to an out of bounds write of the m_outputs vector, resulting in the m_silenced_levels array being modified. Fortunately, the only caller of that method was android system logging, and only since a few commits ago.
2015-10-24Fix setting commentsPilzAdam1-7/+7
2015-10-24Don't allow games or mods to add secure. settingsPilzAdam1-152/+169
2015-10-24Mgfractal: Independent iterations and scale parametersparamat2-54/+62
Complete set of parameters for each of mandelbrot and julia sets The julia set structure often needs different iterations and scale
2015-10-24Android: statically load iconv libraryest311-15/+16
Fixes #3291 Thanks to @arpruss for reporting the bug, and suggesting the fix. Also, remove trailing whitespaces.
2015-10-24Run updatepo.shest3128-5058/+69985
2015-10-24Better gettext support for protocol version mismatch messagesest311-9/+22
Previously, xgettext failed to resolve the dynamic call. Thanks to @JakubVanek for pointing this out.
2015-10-24Small logging refactor and additional optionsest312-57/+89
-> Get rid of Logger::logToSystem and use normal downstream output system for android instead -> Give the downstream output system more information: enrich the log function of ILogOutput with information and add ICombinedLogOutput for easier use. -> Make Logger::getLevelLabel() static and public so that it can be used by downstream log output. -> Add g_ and m_ prefixes where required
2015-10-24Improve Lua settings menuPilzAdam5-754/+1359
* Add key settings to setting table and ignore them later This way they are added to the auto-generated minetest.conf.example * Add flags type * Add input validation for int, float and flags * Break in-game graphic settings into multiple sections * Parse settingtpes.txt in mods and games * Improve description for a lot of settings * Fix typos and wording in settingtypes.txt * Convert language setting to an enum
2015-10-24Fix compilation under MSVC and remove unnecessary conditional function prototypekwolekr3-15/+2
Thanks to SmallJoker for pointing this out.