36c6b50944
Revert emplace for associative containers. Fixes #3366 .
...
GCC < 4.8.0 does not support emplace for those.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44436 .
This was SVN commit r16922.
2015-08-19 03:32:47 +00:00
1c9ea56800
Fix the CheckLineMovement algorithm. Added some comments and a test to avoid problems.
...
This addresses some "stuck units" cases.
This was SVN commit r16918.
2015-08-13 16:21:39 +00:00
01de76f4be
Code improvements for the hierarchical pathfinder: cache hits and variable initialization.
...
This was SVN commit r16917.
2015-08-11 15:21:11 +00:00
28ef270571
Enhance the MakeGoalReachable algorithm to handle better non-point goals.
...
Fixes #3363 , #3297 .
This was SVN commit r16915.
2015-08-11 09:47:08 +00:00
8bfe16cac8
Use in-place construction.
...
This was SVN commit r16894.
2015-07-29 23:44:17 +00:00
c5eb9b7bb7
Range-based for for VfsPath loops.
...
This was SVN commit r16893.
2015-07-29 23:44:12 +00:00
da48c8c26f
Some const refs and one const function.
...
This was SVN commit r16882.
2015-07-27 01:08:25 +00:00
f240374b28
Fix a number of short/long range pathfinder inconsistencies revealed by 128a603287
.
...
This was SVN commit r16869.
2015-07-18 12:33:40 +00:00
128a603287
Use the terrain-only grid for terrain edges in the short pathfinder algorithm. This grid is updated on each terrain change, whereas the passability grid is updated once a turn. This caused OOS on rejoin, fixes #3292 .
...
However, using the terrain-only grid reveals one discrepancy between the
short pathfinder (which uses unit radii) and the long one (which uses
unit clearances). So I implemented the change proposed by sanderd17 in
#3294 , which is removing unit radius and using only the pathfinder
clearance. Refs #3294
Now some tweaking has to be done in the templates, so that units get a
passability class suited to their apparent size. In the meantime the
unit motion is quite bugged.
This was SVN commit r16867.
2015-07-18 08:37:49 +00:00
8fc4ecaa6b
Fix previous commit, stupid typo...
...
This was SVN commit r16859.
2015-07-15 16:57:23 +00:00
b58f8ab969
Serialize the activation flag of the scripted Visibility component.
...
Currently only preview entities are affected, and they are not
serialized, but it could break a lot of things in the future.
This was SVN commit r16858.
2015-07-15 16:55:05 +00:00
39d93ea17c
Change the handling of modified entities in the visibility update.
...
The game has to deal with situations such as: the visibility of an
entity changes, a mirage is created for it -> the mirage visibility is
updated -> the entity visibility is updated back.
All of this process now happens in the same turn, and all updates are
guaranteed to be performed. This fixes a source of serialization errors
and rejoin OOSes.
Fixes #3107
This was SVN commit r16857.
2015-07-15 16:46:59 +00:00
9f1b85d562
Remove a useless global terrain update when modifying environment settings in Atlas.
...
Also make sure that the settings are updated in the game view in a
non-hacky way.
This was SVN commit r16855.
2015-07-14 17:08:02 +00:00
0c45e3b5d0
Correctly compute the masks for shared visibility updates. The old code was working only because of luck when shared vision was always reciprocal.
...
Refs #2055 , fixes #3327
This was SVN commit r16842.
2015-07-11 16:45:09 +00:00
aa78c1be66
Make the connectivity grid generation algorithm of the hierarchical pathfinder a bit less stupid.
...
This was SVN commit r16834.
2015-07-05 20:32:52 +00:00
11c9471ad6
Change back the long pathfinder to take into account non-pathfinding classes, but only when reloading, to avoid impacting the performance.
...
Also make the GetPassabilityClasses functions use references instead of
wild allocations. Use a reference when passing pass classes to the AI
worker.
This was SVN commit r16833.
2015-07-05 19:14:52 +00:00
0e4e3754e9
Update the passability grid properly when changing the map shape or the water height. Also include a fix for a possible bad memory access.
...
This was SVN commit r16832.
2015-07-04 21:25:57 +00:00
3018359576
Improve a little bit Atlas performance when modifying terrain elevation.
...
This was SVN commit r16827.
2015-07-01 19:13:56 +00:00
30e5f032d8
Adapt Atlas to the new pathfinder. Fixes #3298
...
This was SVN commit r16824.
2015-06-29 19:59:41 +00:00
e1a34eb4ea
Handle (de)serialization of the AI pathfinder.
...
This was SVN commit r16815.
2015-06-24 20:24:58 +00:00
0b7343dccc
Preserve the dirtiness informations of the passability grid at deserialization for proper AI updates.
...
Refs #3310
This was SVN commit r16814.
2015-06-24 20:15:06 +00:00
152d39d8a6
Fix save/load games, and use the new code to enhance the tests.
...
This was SVN commit r16812.
2015-06-23 20:39:11 +00:00
c5814ef76c
Fixes tests adding system components without using the SYSTEM_ENTITY id - this caused assertion failures in debug builds
...
This was SVN commit r16803.
2015-06-21 19:22:12 +00:00
ae4dfe294d
Actually state the file instead of the directory in some error messages.
...
This was SVN commit r16802.
2015-06-21 18:46:33 +00:00
1830c6346b
Revert most of 989f164500
, and add a comment to prevent people from making the same mistake.
...
This code used to make units with the pass class "ship-small" blocked
nearly everywhere.
This was SVN commit r16794.
2015-06-18 19:54:30 +00:00
9701a85554
Fix a possible problem with grid updates. Refs #3296 .
...
This was SVN commit r16791.
2015-06-18 16:31:38 +00:00
989f164500
Make the terrain analysis slightly more efficient for pathfinding passability classes, and fix a mistake introduced in 1709353e2c
.
...
This was SVN commit r16787.
2015-06-17 20:48:41 +00:00
155c6e6ccd
Properly initialize the AI pathfinder, and clean whitespace.
...
This was SVN commit r16786.
2015-06-17 20:35:23 +00:00
1709353e2c
Changes the general behavior of non-pathfinding passability classes, in order to make the handling of foundation obstructions less difficult. This will allow the AI to be fixed, as reported in #3295 .
...
Also some cleanup and comments updates.
Refs #3295 .
This was SVN commit r16784.
2015-06-17 20:19:53 +00:00
c8a5708654
Fix tests.
...
This was SVN commit r16777.
2015-06-15 19:48:42 +00:00
473b282265
Refactor the grid update code. Should give a significant performance boost to the simulation update.
...
Also fixes some bad code that could lead to hidden bugs.
Fixes #3296 , thanks elexis for testing ;)
This was SVN commit r16764.
2015-06-14 19:22:07 +00:00
d676b047a0
Move ~LongPathfinder after the declaration of LongOverlay.
...
Also improve the style.
This was SVN commit r16762.
2015-06-13 21:02:01 +00:00
6581796103
New long-range pathfinder.
...
Based on Philip's work located at
http://git.wildfiregames.com/gitweb/?p=0ad.git;a=shortlog;h=refs/heads/projects/philip/pathfinder
Includes code by wraitii, sanderd17 and kanetaka.
An updated version of docs/pathfinder.pdf describing the changes in
detail will be committed ASAP.
Running update-workspaces is needed after this change.
Fixes #1756 .
Fixes #930 , #1259 , #2908 , #2960 , #3097
Refs #1200 , #1914 , #1942 , #2568 , #2132 , #2563
This was SVN commit r16751.
2015-06-12 18:58:24 +00:00
a18fbd12ec
XML validation. Based on patch by historic_bruno. Refs #245 .
...
This was SVN commit r16733.
2015-06-07 21:56:52 +00:00
14bfbbf9d4
Allow sprites to have color multiplication, which allows player-colored bars. Patch by Vladislav. Fixes #3233
...
This was SVN commit r16715.
2015-06-04 12:16:52 +00:00
f6f4f83784
Fixes instant multiplayer crash on OS X Lion (10.7). libc++ had a bug where it set eofbit on reading the last character in a stringstream, we compare gcount with the expected length as a workaround to detect real eofs. Fixes #3109 .
...
This was SVN commit r16714.
2015-06-04 05:11:47 +00:00
6506bc20cb
Fixes #3238 , SetGlobal 'TriggerHelper' called multiple times
...
This was SVN commit r16713.
2015-06-03 20:34:59 +00:00
b738772d65
Fix typo
...
This was SVN commit r16696.
2015-05-29 19:51:48 +00:00
e68ef21334
Don't decay when connected to connected allied territory, and also allow the decay script to determine which parts of the territory should blink
...
This was SVN commit r16692.
2015-05-29 07:02:16 +00:00
4ccc9130ba
Add missing include.
...
This was SVN commit r16683.
2015-05-26 15:40:04 +00:00
60f784900a
Fix the territory influence weight to fit into an u16 number. (no idea why the buildings have so many different weights though).
...
This was SVN commit r16682.
2015-05-26 14:25:23 +00:00
0054486dba
Implement methods to find the neighbour of a certain territory, and use it for territory decay. Fixes #3204
...
This was SVN commit r16676.
2015-05-25 14:17:45 +00:00
c93c1c92eb
Replace std::auto_ptr uses by std::unique_ptr since the former is deprecated.
...
This was SVN commit r16674.
2015-05-25 01:23:27 +00:00
8b4b8431e3
Small cleanup, based on a change from one of Philip's old patches
...
This was SVN commit r16653.
2015-05-16 09:39:27 +00:00
a39aa76e62
These temporary roots aren't needed anymore with SpiderMonkey 31
...
This was SVN commit r16647.
2015-05-10 09:01:39 +00:00
399daeddbf
prevent loading of templates in AIManager when no AIs, fixes #3101
...
This was SVN commit r16633.
2015-05-07 19:09:39 +00:00
642500b49e
Make the Ptolemaic lighthouse reveal the shore on the entire map.
...
Fixes #3174
This was SVN commit r16628.
2015-05-06 18:47:02 +00:00
b8a20c958c
Do not serialize properties for Sets. Serialization tests for Map and Set.
...
This was SVN commit r16620.
2015-05-04 01:41:09 +00:00
a9afa61a7b
Serialization support for ES6 Sets.
...
This was SVN commit r16608.
2015-05-01 23:04:28 +00:00
a0cf780e1e
Amend 5c84c3e9e5
...
This was SVN commit r16547.
2015-04-16 13:17:58 +00:00