Commit Graph

6421 Commits

Author SHA1 Message Date
est31
9aec701a4c Pathfinder: improve GridNode storage
Before, the GridNodes were stored in vector<vector<vector<T>>>,
and initialized in advance. Putting three vectors inside each other
puts lots of unneccessary stress onto the allocator, costs more memory,
and has worse cache locality than a flat vector<T>.

For larger search distances, an the array getting initialized means
essentially O(distance^3) complexity in both time and memory,
which makes the current path search a joke. In order to really
profit from the dijkstra/A* algorithms, other data structures
need to be used for larger distances.

For shorter distances, a map based GridNode storage may be slow as
it requires lots of levels of indirection, which is bad for things like
cache locality, and an array based storage may be faster.

This commit does:

1. remove the vector<vector<vector<T>>> based GridNodes storage that
	is allocated and initialized in advance and for the whole
	possible area.

2. Add a vector<T> based GridNodes storage that is allocated and
	initialized in advance for the whole possible area.

3. Add a map<P,T> based GridNodes storage whose elements are
	allocated and initialized, when the path search code
	demands it.

4. Add code to decide between approach 2 and 3,
	based on the length of the path.

5. Remove the unused "surfaces" member of the PathGridnode class.
	Setting this isn't as easy anymore for the
	map based GridNodes storage.
2016-05-01 15:32:03 +02:00
est31
f0de237de7 Pathfinder: use core::aabbox3d instead of own type
There is no need to reinvent the wheel here, we have
great classes from irrlicht.
2016-05-01 15:32:03 +02:00
est31
ac8bb457aa Pathfinder: Fix style
* Fix naming style for methods and classes:
	Use camelCase for methods and PascalCase for classes as
	code style demands it. And use sneak_case for methods that
	are not member of a class.
* Replace "* " with " *" for Pointers
* Same for references
* Put function body opening braces on new line
* Other misc minor non functional style improvements
2016-05-01 15:32:02 +02:00
est31
46e5ef4e9a Move pathfinder classes to cpp file
There is no need to put them into the header, they are solely used
inside the pathfinder.

Another advantage of this change is that only the pathfinder.cpp has
to be compiled if PATHFINDER_DEBUG gets defined or undefined, not
all files including the .h.

This commit moves the pathfinder classes to the cpp file without
modifications.
Also, the PATHFINDER_DEBUG macro gets moved to the cpp file and
the PATHFINDER_CALC_TIME macro gets moved to a plce where it
actually does work.
2016-05-01 15:32:02 +02:00
Craig Robbins
c1a0ebb725 Fix use of uninitialised variable in class Event 2016-05-01 17:32:00 +10:00
gregorycu
c95734654c Use MoveFileEx to rename files on Windows (not rename) 2016-05-01 17:28:16 +10:00
Rui
29877dfb45 Mainmenu: Remove space under mod list 2016-05-01 14:16:37 +10:00
Rui
0d40bb83a7 Translated using Weblate (Japanese)
Currently translated at 51.7% (448 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:24 +02:00
Emon Omen
6667ffc0ab Translated using Weblate (Italian)
Currently translated at 100.0% (865 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:24 +02:00
Claybiokiller
3de452e0d2 Translated using Weblate (Chinese (China))
Currently translated at 75.4% (653 of 865 strings)
2016-05-01 01:13:23 +02:00
Joan Ciprià Moreno Teodoro
2a12ebd652 Translated using Weblate (Catalan)
Currently translated at 46.5% (403 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:23 +02:00
Thomas Wagner Nielsen
b2b8c49d04 Translated using Weblate (Danish)
Currently translated at 28.7% (249 of 865 strings)
2016-05-01 01:13:23 +02:00
Muhammad Rifqi Priyo Susanto
e9c3824d1b Translated using Weblate (Indonesian)
Currently translated at 57.4% (497 of 865 strings)

This is a merger of three commits.
2016-05-01 01:13:23 +02:00
Jan Harald
9fc4415f9d Translated using Weblate (Estonian)
Currently translated at 21.8% (189 of 865 strings)
2016-05-01 01:13:23 +02:00
Fernando Reis
cd9177964a Translated using Weblate (Portuguese)
Currently translated at 67.5% (584 of 865 strings)

This is a merger of 5 commits.
2016-05-01 01:13:23 +02:00
Wuzzy
01517e210c Translated using Weblate (German)
Currently translated at 100.0% (865 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:22 +02:00
YFdyh000
1e103d0850 Translated using Weblate (Chinese (China))
Currently translated at 75.3% (652 of 865 strings)

This is a merger of 3 commits.
2016-05-01 01:13:22 +02:00
Stas Kies
fe64f93170 Translated using Weblate (Russian)
Currently translated at 59.3% (513 of 865 strings)

This is a merger of 5 commits.
2016-05-01 01:13:22 +02:00
Pavel Sokolov
2b1ad6a4dc Translated using Weblate (Russian)
Currently translated at 58.9% (510 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:22 +02:00
Anton Tsyganenko
7a923f5b0b Translated using Weblate (Russian)
Currently translated at 58.9% (510 of 865 strings)
2016-05-01 01:13:22 +02:00
Alex “XShell” Schekoldin
ac38f4ec99 Translated using Weblate (Russian)
Currently translated at 58.9% (510 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:21 +02:00
Stas Kies
aec0979b27 Translated using Weblate (Russian)
Currently translated at 58.9% (510 of 865 strings)
2016-05-01 01:13:21 +02:00
Ever Medina
a760359391 Translated using Weblate (Spanish)
Currently translated at 46.2% (400 of 865 strings)
2016-05-01 01:13:21 +02:00
Ian Giestas Pauli
93fc5556ca Translated using Weblate (Portuguese (Brazil))
Currently translated at 71.3% (617 of 865 strings)

This is a merger of two commits.
2016-05-01 01:13:21 +02:00
Jean-Patrick G
6e6bd7e774 Translated using Weblate (French)
Currently translated at 94.1% (814 of 865 strings)

This is a merger of two commits.
2016-04-30 23:52:11 +02:00
ShadowNinja
a53357d291 Fix POSIX C++11 build
I broke this in 46fd114e9a4e05b74576dce682e24357363298e7.
2016-04-30 13:41:04 -04:00
Craig Robbins
ae75073944 Fix prepreprocessor error in thread.h (related to C++11 threads) 2016-04-30 12:29:52 +10:00
paramat
8b1f8e99cf Mapgen: Make 3D noise tunnels' width settable
Correct parameter names mg_valleys to mgvalleys
Remove biome NoiseParams from MapgenValleysParams
Improve format of parameter code
2016-04-28 23:36:19 -04:00
ShadowNinja
46fd114e9a Fix race on thread creation
This often broke the threading tests on OSX.
2016-04-28 13:21:46 -04:00
ShadowNinja
e41673820f Upgrade Android build to Gradle build system
The old Ant build system has been deprecated for a while and new development is focused on Gradle.
I also removed a hardcoded string that lint caught and moved the patch files to a subdirectory.
I left the JNI files in the root directory.
2016-04-28 12:28:42 -04:00
tenplus1
7baddd1735 Avoid teleporting player if /teleport coords are out-of-range 2016-04-29 00:00:35 +10:00
kilbith
dc35091aff Android menu: Unified serverlist 2016-04-28 07:19:31 +01:00
rubenwardy
17bfe2fe5b Builtin: Add basic_privs setting 2016-04-28 07:19:07 +01:00
SmallJoker
30083d1e00 Mainmenu: Standardize the menu button order and sizes 2016-04-28 07:16:58 +01:00
obneq
6278da296b Handle particle spawners in env and delete expired ids
Rebased by Zeno (2016-04-2016)
2016-04-28 02:09:36 +10:00
Maksim Gamarnik
26a9a85129 Android: Update dependencies, GMP was required as a dependency 2016-04-26 10:17:04 +01:00
Xunto
ae7fb9b5be Inventory: Make ItemStack with different metadata not stackable 2016-04-26 10:16:20 +01:00
SmallJoker
31c1fca6fd tile.cpp: Automatically upscale lower resolution texture 2016-04-25 06:39:32 +01:00
gregorycu
46da0e8b3b Make GUIEngine use pause_fps_max not fps_max 2016-04-24 17:40:16 +10:00
Ekdohibs
48939df9a5 Escape more strings: formspecs, item descriptions, infotexts...
Also, change the escape character to the more standard \x1b
Thus, it can be used in the future for translation or colored text,
for example.
2016-04-24 03:54:11 +10:00
Xunto
21079cc8eb Fix bug that was leading to oversized tooltips containing multiline text when it have multiple lines 2016-04-23 21:12:53 +10:00
Ekdohibs
2177f3090e Fix mainmenu code downloading the public serverlist twice.
Also, fix a nil error that can happen sometimes in
menu_handle_key_up_down
2016-04-22 23:39:54 +10:00
est31
7a6502a7a5 CONTRIBUTING: disallow signed git commits
They break bzr-git, and bzr-git breaks the Minetest PPAs.
2016-04-22 00:46:07 +02:00
Ekdohibs
c350cfb50b Make logging use a fixed-length buffer to avoid race conditions.
Previously, race conditions occurred inside logging, that caused
segfaults because a thread was trying to use an old pointer that
was freed when the string was reallocated. Using a fixed-length buffer
avoids this, at the cost of cutting too long messages over seveal lines.
2016-04-21 10:15:17 +01:00
paramat
5c32c5e945 Biomes: Make dust fallback 'ignore' to fix y = 63 lighting
The shadow bug at y = 63 was caused by dark air being placed as dust,
when the biome dust was unspecified it was falling back to 'air'
In dustTopNodes only dust == 'ignore' will disable dust placement
2016-04-21 10:15:12 +01:00
paramat
9b437088df Textures: Replace menu background fallback dirt_bg.png with empty sky texture 2016-04-21 10:15:05 +01:00
Auke Kok
a60aa8e226 Fix timer initialization.
This fixes the problem that the first timer tick is an
overrun and causes all timers to expire immediately.

replaces #4003
2016-04-21 10:14:59 +01:00
kilbith
8cf26bb0bb Mainmenu: Code cleaning 2016-04-20 21:31:40 +10:00
kilbith
65db88d24e Mainmenu: Unify favorite servers with main serverlist 2016-04-20 21:31:40 +10:00
paramat
fed5dd3b5d Mgv7: Combine mountain terrain generation with base terrain generation
Previous mountain terrain generation was by necessity placing
stone in air, this was removing air from any overgenerated
structures such as tunnels, dungeons and large caves
Moving it into the base terrain generation loop ensures that
only 'ignore' is replaced

generateRidgeTerrain: only return if node_max.Y < water_level - 16
Previously, if water level was set a few nodes above a mapchunk
border the river channel was only partially excavated
2016-04-20 06:51:20 +01:00