Kahrl [Fri, 15 Jan 2016 01:16:21 +0000 (02:16 +0100)]
Make all mesh manipulators in mesh.cpp work with any vertex type
cloneMesh() has to use a switch in order to create a different
mesh buffer type depending on vertex type. (Credit: the new cloneMesh
was written by RealBadAngel.)
To avoid repetitive code, all other methods use getVertexPitchFromType()
to automatically adapt the indexing to the vertex type at runtime.
Rogier [Thu, 7 Jan 2016 19:59:35 +0000 (20:59 +0100)]
Fix the checking of flags values in the settings tab
Changes:
- Accept setting an empty flags-type value in the settings tab
if the variable specification permits it
- Don't accept substrings of flag values
E.g. with values: 'one,two,three', 'hree', 'w', etc. used to
be accepted. Not any more
- Don't accept flags with random pattern-matching special characters
E.g. with values: 'one,two,three', 'on.', '(o)[n]e*' etc. used
to be accepted. Not any more.
Rogier [Thu, 7 Jan 2016 11:33:26 +0000 (12:33 +0100)]
Improve parsing of setting types from settingtypes.txt for settings tab
- Accept numbers prefixed with '+'
- Accept multiple spaces instead of just a single one where spaces are expected
- Allow flags to have an empty default value
Dalai Felinto [Mon, 14 Dec 2015 21:01:32 +0000 (19:01 -0200)]
New 3D Mode: Pageflip
The pageflip mode requires a stereo quadbuffer, and a modern graphic
card. Patch tested with NVidia 3D Vision.
The mini-map is not drawn, but that's what is done for topbottom and
sidebyside modes as well.
Also most of the time the user would prefer the HUD to be off. That's
for the user to decide though, and toggle it manually.
Finally, the interocular distance (aka eye separation) is twice as much
as the "3d_paralax_strength" settings. I find this a strange design
decision. I didn't want to chance this though, since it's how the other
3d modes interpret this settings.
est31 [Fri, 8 Jan 2016 14:37:11 +0000 (15:37 +0100)]
Fix redis error reporting
Previously, we assumed that reply->str was NULL
terminated. However, this turned out to be not true,
as users reported crashes in strlen connected to
where reply->str was appended to an std::string.
Use the method recomended by the docs, to read the
length separately.
ShadowNinja [Mon, 7 Dec 2015 02:34:30 +0000 (21:34 -0500)]
Improve Doxyfile
* Add main page.
* Organize into sections.
* Add threading sources.
* Include SpatialAreaStore, LevelDB/Redis, sound, FreeType, and cURL in output.
* Add logo.
* Fix project name hardcoding.
* Remove PAPER_TYPE (only used when GENERATE_LATEX is enabled).
* Have dot render graphs as SVG (smaller, and works even if dot's text drawing functionality is broken).
* Enable built-in STL support.
* Enable search bar.
* Switch from header-bar based navigation to treeview based navigation.
* Enable dynamic HTML (collapses graphs).
* Enable generation timestamp.
ShadowNinja [Fri, 18 Dec 2015 20:42:12 +0000 (15:42 -0500)]
Fix cache path with RUN_IN_PLACE
If an `XDG_CACHE_HOME` can't be found or `RUN_IN_PLACE` is enabled,
`path_cache` is left at its default of `$PATH_USER/cache`
(at a time when `PATH_USER` is `..`), rather than being reset to
`$PATH_USER/cache` after `PATH_USER` has been properly set.
Rogier [Wed, 23 Dec 2015 10:38:50 +0000 (11:38 +0100)]
Handle SQLITE_BUSY errors gracefully
This allows other applications (e.g. minetestmapper) to interrogate
the database while minetest is running, without causing an almost
certain minetest crash.
est31 [Wed, 23 Dec 2015 03:51:09 +0000 (04:51 +0100)]
Android: Tell make about sub-makes to speed up build
Before, sub-makes called by make were called without make knowing they
were sub-makes. This however led make's jobserver not do its tasks,
and the build process ended up with inefficient parralelisation. This
commit fixes this by applying the two ways the make manual tells
about: putting + to the start of the line (used when ndk-build is
invoked), and exchanging "make" with "$(MAKE)".
Before, make complained with messages like:
make[2]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
This complaint can now only been seen for openssl. openssl has issues
if make gets exchanged with $(MAKE): if exchanged, above error message
is multiplied for various subdirs of the openssl source tree.
On a 4 core box, "make -j 4" build time from "make clean_all" cleaned
source tree could be improved from 15:34 minutes to 10:45 minutes.
This means a speedup of 45%.
ShadowNinja [Sat, 19 Dec 2015 04:26:44 +0000 (23:26 -0500)]
Android: Fix extra files being copied to the APK
dcb91cf0c0c9a20622feeb4e5e8104ffbc9fa8ec hacked around the biggest issue
this caused, but wasted a lot of CPU time and disk space It also still
included a lot of other unwanted files. This removes all of `doc/` except
the license, and also removes the server list.
paramat [Tue, 8 Dec 2015 05:40:36 +0000 (05:40 +0000)]
Mgfractal: Add 3D and 4D fractals
3D Mandelbrot/Mandelbar
3D Christmas Tree
3D Mandelbulb
3D Cosine Mandelbulb
4D Mandelbulb
Plus corresponding julia set for each
Add credits for formulas
Rename parameter 'formula' to 'fractal'
Speed optimisations
est31 [Thu, 10 Dec 2015 17:25:28 +0000 (18:25 +0100)]
Fix some setting documentation
* Horizontal and vertical are used wrongly. Use height and width because
horizontal/vertical describes different things. Thanks @kilbith for pointing out.
* Update minetest.conf.example and settings_translation_file.cpp
* Correct maximum/minimum copy paste mistake.
paramat [Wed, 2 Dec 2015 03:28:03 +0000 (03:28 +0000)]
Mapgen: Add propagate_shadow bool to calcLighting
To terminate unwanted shadows from floatlands or realms above
Also add to LuaVoxelManip calc_lighting for use in mapgen mods
Remove the 2 argument calcLighting, mapgens now use the 5
argument form to specify the volumes for propagateSunlight and
spreadLight
In mgsinglenode replace calcLighting with setLighting and
clean-up use of tabs and spaces
On openSUSE luajit is not detected correctly.
This is because openSUSE is using a lua version suffix, like other Linux distributions do it also.
So the include directory is:
include/luajit-5_1-2.0
paramat [Mon, 30 Nov 2015 01:43:28 +0000 (01:43 +0000)]
Dungeongen: Fix rarely triggered segfault
A segfault exposed a missing 'vm->m_area.contains()'
check in makeCorridor that allowed the calculation
of vm index for a node outside the vm area. The huge
and invalid index number caused getContent to fail
paramat [Sun, 15 Nov 2015 11:55:45 +0000 (11:55 +0000)]
Mapgen: Add global 'decorations' flag
Flag is set by default in MapgenParams
The global 'trees' flag remains but is now
undocumented and unset by default in MapgenParams
Add mgv6_spflag 'trees' set by default in
defaultsettings.cpp to affect new worlds only
This is automatically backwards
compatible for existing worlds
est31 [Mon, 16 Nov 2015 16:11:32 +0000 (17:11 +0100)]
Android: hardcode irrlicht revision, update other dependencies
Recent irrlicht revisions break the build, hardcode the revision to a working one
until upstream publishes a working version. See issue #3366 for
a discussion about this.