wraitii
b3b47c1718
Avoid recreating the dirtiness grid every turn by swapping. Significantly reduces the number of allocations, and slight speedup (particularly on larger maps). Reviewed by Leper.
...
Differential Revision: https://code.wildfiregames.com/D70
This was SVN commit r19149.
2017-01-17 07:24:41 +00:00
wraitii
0a6a42321d
Improve cache efficiency of CcmpPathfinder::UpdateGrid substantially. On very large maps, this can be a very substantial improvement (I have measured up to 30ms)
...
This was SVN commit r19146.
2017-01-16 10:41:35 +00:00
wraitii
ad76352cef
Prevent the AI manager from copying the pathfindinder dirtiness grid every turn.
...
Review by Itms
Differential Revision: https://code.wildfiregames.com/D25
This was SVN commit r19145.
2017-01-16 08:38:31 +00:00
leper
3a85d0b3fa
Remove unused parameter from template loading code
...
Templates should be the same for all players, techs can be used to
provide
different lists of templates if that is needed.
Reviewed By: Itms
Differential Revision: https://code.wildfiregames.com/D25
This was SVN commit r19142.
2017-01-15 18:41:53 +00:00
Itms
490a3a27f6
Fix the cache directory appearing during tests.
...
Summary: Refs #4419 .
Test Plan: When running tests, make sure nothing is created.
Reviewers: leper
Reviewed By: leper
Subscribers: leper, Vulcan
Differential Revision: https://code.wildfiregames.com/D1
This was SVN commit r19062.
2016-12-25 22:03:30 +00:00
wraitii
40fd373c83
Revert [19043]
...
This was SVN commit r19054.
2016-12-21 12:36:41 +00:00
wraitii
8e8da9aee4
Fix a bug introduced by a fix of a bug introduced by a fix of a bug (x100) in the vertex pathfinder. Revealed by automated tests on another branch of mine. Revert back to pre-new pathfinder behavior of not returning paths in some cases, since that is most likely less broken than now - but probably still a little broken.
...
This was SVN commit r19043.
2016-12-18 10:02:36 +00:00
wraitii
9288837472
Fix misleading indentation warning on gcc, introduced by [19024]. Reported by elexis. Fixes #3785
...
This was SVN commit r19041.
2016-12-13 13:34:31 +00:00
wraitii
e7e5631135
Better fix to #3785 . Fixes #3785
...
This was SVN commit r19024.
2016-12-06 23:25:26 +00:00
Itms
6ae374dbee
Fix the update of shared dirty visibility masks when changing diplomacy.
...
The previous code worked in case new mutual allies were added, but, when
some were removed, it was suboptimal in terms of performance and it made
some units visible in the FoW.
Fixes #4266
This was SVN commit r18994.
2016-11-24 14:57:09 +00:00
elexis
417c84870c
Actually remove trailing tabs from source/.
...
This was SVN commit r18991.
2016-11-23 14:09:58 +00:00
elexis
6149dd3841
Actually remove trailing whitespace for non-header files as well.
...
This was SVN commit r18989.
2016-11-23 13:02:58 +00:00
elexis
944ba16eb4
End source files with a newline.
...
This was SVN commit r18988.
2016-11-23 11:27:54 +00:00
elexis
b18f74da44
Remove trailing whitespace and whitespace in empty lines of source/ except source/third_party/.
...
This was SVN commit r18987.
2016-11-23 11:18:37 +00:00
elexis
2ec3f3ebaa
Add parenthesis suggested by gcc 5.4 following 3e59ac76ee, refs #4278 .
...
This was SVN commit r18924.
2016-11-12 16:07:23 +00:00
mimo
3e59ac76ee
fix UnitMotion when inside the obstruction, refs #4278
...
This was SVN commit r18921.
2016-11-11 13:14:30 +00:00
elexis
4898e94c81
Remove unneeded braces and whitespace in empty lines.
...
This was SVN commit r18882.
2016-10-28 16:11:59 +00:00
elexis
5a384f4eaf
Fix an OOS on rejoin when a ptolemian lighthouse revealing the shoreline was built prior. Patch by Itms and wraitii, fixes #4277 .
...
Serialize the mapsize in the pathfinder and the reveal shoreline flag in
the range manager.
Reload the rangemanager data after other components have been
deserialized.
Use the SerializeCommon pattern in the pathfinder to avoid code
duplication.
Move the shoreline logic from the Vision component to the range manager.
Remove unused interface mocks from the rangemanager test following
b05879e151 .
This was SVN commit r18879.
2016-10-28 15:34:24 +00:00
wraitii
7f8f820e35
Fix an oversight in d8c11434a8/18823, fixes #4270 .
...
This was SVN commit r18835.
2016-10-16 20:17:31 +00:00
elexis
0991c22026
Take vision range techs into account on ownership change (capturing or defeat). Solves an OOS, reviewed by wraitii, fixes #4279 , refs #3989 .
...
This was SVN commit r18833.
2016-10-15 18:22:10 +00:00
Itms
9c2404e40e
Some tweaks in order to fix the non-graphical test modes (serialization test, etc.), and possible future non-visual players like headless game servers.
...
The internal data of the component, which is serialized, should not
depend on the presence of a visual Unit.
Also remove a misleading comment about a simple initialization code.
Refs #4270
This was SVN commit r18824.
2016-10-10 10:56:13 +00:00
Itms
ef7486c5d3
Fix a number of things in cmpVisualActor:
...
* Rewrite the Update function, add more details and information in
comments, and properly serialize everything that function needs.
* Fix the broken deserialization code by using a sane helper function.
* Fix the `SelectMovementAnimation` function.
Fixes #4270 .
This was SVN commit r18823.
2016-10-10 10:49:49 +00:00
Itms
d8c11434a8
Save the animation sync offset, for consistency's sake.
...
Refs #4270
This was SVN commit r18822.
2016-10-10 10:41:36 +00:00
Itms
79b37bd4dc
Improve style and whitespace in CCmpVisualActor.
...
Refs #4270
This was SVN commit r18821.
2016-10-10 10:37:58 +00:00
Itms
0030f6ad2b
In CCmpVisualActor, m_Unit is not initialized when running without graphics, so we must check that pointer everytime. Also make one call consistent with the rest of the file.
...
Fixes #4238 , refs #3952
This was SVN commit r18812.
2016-10-08 08:49:35 +00:00
Itms
636da605bb
Following e757fb84d5: also regenerate the JS values for AI maps upon deserialization.
...
Fixes #4247 , refs #4191
This was SVN commit r18797.
2016-10-01 12:29:44 +00:00
Itms
58704fa140
Remove a function relying on systems that are not optimized at all. This function is not actually used by Petra.
...
If it is needed at some point, this map should be handled and updated
the same way as the passability map and territory map are.
Refs #4191
This was SVN commit r18760.
2016-09-24 15:21:20 +00:00
Itms
e757fb84d5
More clever map updates for the AI.
...
This patch fixes frequent memory issues by removing several dummy
allocations and a lot of memory footwork.
Fixes #4191
This was SVN commit r18759.
2016-09-24 15:16:55 +00:00
Itms
caef42084d
Add missing JSAutoRequest calls. (hopefully all of them have been spotted now)
...
Patch by echotangoecho, refs #4053
This was SVN commit r18730.
2016-09-18 09:34:45 +00:00
Itms
8d15411abf
SpiderMonkey 38 upgrade: 13/35
...
Update JS_NewObject to JS_NewPlainObject, with new parameters. Patch by
leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1136906 and
https://bugzilla.mozilla.org/show_bug.cgi?id=1125356
This was SVN commit r18667.
2016-09-02 16:28:17 +00:00
Itms
b01300c222
SpiderMonkey 38 upgrade: 11/35
...
Renamed JS_CallHeapFooTracer to JS_CallFooTracer. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1052388
This was SVN commit r18665.
2016-09-02 16:25:42 +00:00
Itms
761abd587e
SpiderMonkey 38 upgrade: 10/35
...
Use operator= instead of .set(). Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1128110
This was SVN commit r18664.
2016-09-02 16:24:46 +00:00
leper
014a6d621b
Keep mounting the cache directory in tests. Fixes oversight in 493990f472.
...
This was SVN commit r18623.
2016-08-22 01:00:23 +00:00
leper
9998592542
Remove unused variable.
...
This was SVN commit r18620.
2016-08-21 20:35:08 +00:00
elexis
416049e4b4
Remove charge attack from the templates which isn't implemented nor designed yet. Patch by fatherbushido, fixes #4139 .
...
Remove the unused "recharge" attack timer which was introduced in
b21e798243 but should have been removed with 4e5c5e2d8f .
This was SVN commit r18599.
2016-08-11 14:35:50 +00:00
Itms
e3cdb2253d
Fix calls to CXeromyces::Terminate in the main loop to fix several possible memory leaks.
...
Make init/shutdown order consistent in some places.
This was SVN commit r18589.
2016-08-08 08:32:57 +00:00
Itms
4e87fef3da
The old debug API has been removed in SpiderMonkey 38, so remove profiler1 script profiling.
...
Patch by leper, refs #3708
See also https://bugzilla.mozilla.org/show_bug.cgi?id=1069694
This was SVN commit r18580.
2016-08-02 16:58:30 +00:00
Itms
493990f472
Fix engine tests when no mods are present, by making the pathfinder tests consistent with the rest of the tests.
...
This was SVN commit r18577.
2016-08-02 15:38:39 +00:00
Itms
ec2e2a84a4
Fix and improve 001c411cc2.
...
This was SVN commit r18489.
2016-07-05 20:23:12 +00:00
wraitii
898ab5229b
Change profiling calls to get a better view of what is actually slow and what is not.
...
This was SVN commit r18438.
2016-06-25 13:12:35 +00:00
wraitii
9e526614be
Accidentally left a change from #4056 in in 7c21a0cf8e.
...
This was SVN commit r18418.
2016-06-21 11:13:00 +00:00
wraitii
7c21a0cf8e
Header cleanup: profile.h is no longer unnecessarily included in scriptinterface.h but rather in the required .cpp files
...
This was SVN commit r18417.
2016-06-21 10:33:11 +00:00
wraitii
41bc367bd1
Messed up 01603708de
...
This was SVN commit r18350.
2016-06-09 17:45:50 +00:00
wraitii
01603708de
Reuse vectors in the short-range pathfinder, making SplitAAEdges much faster and reducing memory fragmentation substantially. Refs #3588
...
This was SVN commit r18349.
2016-06-09 17:38:59 +00:00
wraitii
d1cc3dcb80
Re-use the same vector for the range manager spatial subdivision queries to cut down on allocations and memory fragmentation. Refs #4045
...
This was SVN commit r18344.
2016-06-08 17:06:58 +00:00
sanderd17
83af69286d
Allow simulation to set the actor variant selection, and use it for the garrison flag. Fixes #3952 Refs #2679 , #3983
...
This was SVN commit r18266.
2016-05-30 14:07:48 +00:00
sanderd17
1a8f5f3490
Move rallypoint waypoints smoothly with moving targets
...
This was SVN commit r18259.
2016-05-29 12:49:32 +00:00
sanderd17
77224548bf
Use references instead of copies
...
This was SVN commit r18130.
2016-05-02 19:03:19 +00:00
sanderd17
4ea49f374a
Disable serialization of the AI when no AI players are present. Disable serialization of cached AI templates overall. Improve serialization of repetitive vectors and templatenames. Refs #3834
...
This was SVN commit r18121.
2016-05-02 09:26:07 +00:00
sanderd17
ef3794f90a
Fix serialisationtest by serializing the territory trigger event, and sending the message only once.
...
This was SVN commit r18102.
2016-04-27 18:37:27 +00:00
sanderd17
f24523dc8f
Rename TechnologyTemplateManager to DataTemplateManager in order to reflect its new function. Fixes #3909 . Disable serialisation of technology templates. Refs #3834
...
This was SVN commit r18100.
2016-04-27 08:25:47 +00:00
Itms
c856bc296d
Slight improvement to the short range pathfinder. Patch by fsincos, refs #3925
...
This was SVN commit r18090.
2016-04-24 14:35:31 +00:00
sanderd17
df3c3c35b2
Cleanup cinema code. Fix some issues with resetting of times. Patch by Vladislav. Refs #3814
...
This was SVN commit r18041.
2016-04-17 15:43:29 +00:00
sanderd17
f8e986d057
Fix territory not being updated when diplomacy changes. Fixes #3891
...
This was SVN commit r18012.
2016-04-09 19:57:34 +00:00
sanderd17
6471a54c9f
Refactor GetEntityCollisions to make it clear what the function actually does since the new pathfinder
...
This was SVN commit r17992.
2016-04-06 17:36:47 +00:00
mimo
0863f20722
cleanup
...
This was SVN commit r17898.
2016-03-15 18:27:17 +00:00
Itms
a4a1bcab94
Remove the now useless UnitMotion planning, and cleanup of CCmpUnitMotion.cpp (unused variables, whitespace). Fixes #3790 .
...
This should have a noticeable impact on performance (in the good way!)
Thanks mimo for noticing something was off with the planning system!
This was SVN commit r17866.
2016-03-12 13:44:51 +00:00
mimo
6289251b3b
Improve unitMotion in the final step before reaching the target,
...
which decreases the proportion of units going back and forth around the
target
This was SVN commit r17769.
2016-02-17 19:00:34 +00:00
mimo
4584a81656
be less restrictive with fix for #3785
...
This was SVN commit r17768.
2016-02-17 18:31:01 +00:00
mimo
41d7e64271
prevent short pathfinder to go into impassable region, fixes #3785
...
This was SVN commit r17765.
2016-02-15 21:24:27 +00:00
mimo
a9376eeebb
update goal before pathing when moving target refs #3472 and improve unitMotion overlay
...
This was SVN commit r17764.
2016-02-15 19:30:17 +00:00
elexis
c3ac6cf7fc
Save target-nodes (lookAt-coordinates) for cinematic-camera paths. Patch by Vladislav, refs #3301 .
...
This was SVN commit r17763.
2016-02-15 17:18:59 +00:00
Yves
1a66f510d0
Use const T& for parameters of some types in script-exposed native functions
...
Using references matches the C++ coding style better and should improve
performance a bit in theory. It avoids 2 copies of T in case of the
functions registered with RegisterFunction (mainy used in the GUI). It
should also avoid one or two copies in case of
DEFINE_INTERFACE_METHOD_X, which is used in the simulation, but I
haven't bothered to count it there exactly.
It is now predefined which types have to be passed by const reference
and which are passed by value. Note that references can't be used as
out-parameters (to return multiple values to JS). This hasn't worked
before either and probably never will.
This was SVN commit r17696.
2016-01-23 15:17:56 +00:00
elexis
b5cb62ffa2
Remove error messages from the CinemaManager, since not having a GameView is expected in non-visual replay. Patch by Vladislav, refs #3301 .
...
This was SVN commit r17682.
2016-01-21 13:07:52 +00:00
elexis
8827db201a
Remove the virtual keyword since this is a helper-function not used by the interface. Refs #3215 .
...
This was SVN commit r17663.
2016-01-18 03:41:00 +00:00
leper
fb92761c92
Use explicit types instead of auto.
...
This was SVN commit r17642.
2016-01-13 00:42:55 +00:00
leper
27fab6bf1e
Constify Spatial.h a bit.
...
While there don't check for null when delete-ing since that is a no-op,
use the proper type instead of auto, always swap when removing a single
element (instead of comparing .size() to 1), and clean up includes.
foobar
This was SVN commit r17641.
2016-01-13 00:20:22 +00:00
leper
d08044c8ad
JS_DumpHeap is removed in SpiderMonkey 38, since we have nothing using it remove it. Refs #3708 .
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1105069
https://bugzilla.mozilla.org/show_bug.cgi?id=1122842
This was SVN commit r17630.
2016-01-11 20:03:09 +00:00
elexis
8c7b6dceaa
Show status-bars of all players to observers, fixes #3215 .
...
This was SVN commit r17623.
2016-01-10 16:47:57 +00:00
elexis
8859f33b38
Rename PickFriendlyEntitiesOnScreen to PickPlayerEntitiesOnScreen.
...
Rename PickFriendlyEntitiesInRect to PickPlayerEntitiesInRect.
Rename PickSimilarFriendlyEntities to PickSimilarPlayerEntities.
Add comment.
Refs #3215 .
This was SVN commit r17622.
2016-01-10 14:47:09 +00:00
elexis
1cc1ba2b17
Fix non-visual replaymode. Refs #3301 (cinematic camera). Patch by Vladislav. Bug reported by eternaf.
...
This was SVN commit r17606.
2016-01-06 21:40:59 +00:00
Yves
89aef0b6eb
Cinematic camera core functionality. Patch by Vladislav Belov.
...
Based on existing code that was still around from an old(not working)
implementation.
Supports basic control from trigger scirpts (queue, start and stop
camera paths) and works in multiplayer.
This was SVN commit r17594.
2016-01-03 12:41:04 +00:00
elexis
036f985017
Add missing semicolons.
...
Update timestamp.
This was SVN commit r17591.
2016-01-02 18:12:02 +00:00
mimo
371a41c216
seems that line was missing, with the result that garrisoned units sent a TerritoryPositionChanged message each turn
...
This was SVN commit r17586.
2016-01-01 17:45:53 +00:00
mimo
36c08193ba
optimizes range queries, fixes #3717
...
This was SVN commit r17573.
2015-12-30 13:44:51 +00:00
mimo
543472b77b
Optimization of isBoxVisible + cleanup, fixes #3712
...
This was SVN commit r17561.
2015-12-28 16:27:31 +00:00
mimo
82c215de49
prevent thousands of calls per turn of calculeTerritories which would exit immediately
...
This was SVN commit r17560.
2015-12-28 16:23:06 +00:00
scythetwirler
987a7028bd
Implements relative templates. Fixes #2936 . Thanks to leper, wraitii, historicbruno and everyone else that helped.
...
This was SVN commit r17386.
2015-12-05 17:02:25 +00:00
Itms
229e850dba
Fix a compiler warning.
...
This was SVN commit r17296.
2015-11-20 20:42:45 +00:00
wraitii
9e35f7d68b
The over-rasterization of obstructions introduced in [17161] could in very rare cases lead to an OOS in the passability grid. Fixes #3612 .
...
This was SVN commit r17278.
2015-11-16 22:03:10 +00:00
wraitii
f1f0fa1f8f
Fix a typo. Thanks stan for noticing.
...
This was SVN commit r17260.
2015-11-14 21:46:05 +00:00
wraitii
e7fb75a680
Initialize new variables correctly.
...
This was SVN commit r17247.
2015-11-12 23:07:54 +00:00
wraitii
e9271025dc
Forgot to serialize a new unitMotion variable, resulting in OOS on rejoin.
...
This was SVN commit r17245.
2015-11-12 20:57:50 +00:00
wraitii
3febc387d5
Styling fixes.
...
This was SVN commit r17241.
2015-11-12 17:23:50 +00:00
wraitii
913545aa41
Mark several CFixedVector2D as const and passed by reference in Geometry and a few other places. Mark some functions (that probably already were) inline.
...
Also make sure we don't include Geometry.h where it's not necessary.
This was SVN commit r17238.
2015-11-11 20:50:02 +00:00
wraitii
a138bed96b
Fix an issue where units did not notice other moving units with my latest commits.
...
This was SVN commit r17234.
2015-11-11 19:06:07 +00:00
wraitii
cc199c4cca
Fix a critical typo in the last commit and a debug message left in accidentally. Thanks fabio.
...
This was SVN commit r17232.
2015-11-11 13:55:36 +00:00
wraitii
06cb37ff74
Add PlanNextStep back to the unitMotion, in a completely different version. This basically anticipates where we'll probably move next, and checks if static units might block us. Makes paths look slightly better.
...
This was SVN commit r17229.
2015-11-11 13:29:06 +00:00
wraitii
607955489d
Check if units are in the world in UnitRenderer::PickAllEntitiesAtPoint. Probably fixes #3587 , though I'm not sure as it proved unreproducible.
...
This was SVN commit r17228.
2015-11-11 13:27:13 +00:00
wraitii
3b13fb7608
Improve unitMotion behavior. When a unit's path is obstructed, it will now try shortpathing around an increasingly large search range, to optimize behavior in trivial cases where it just needs to go around a unit.
...
Also stop trying too hard when we are close to the destination and our
only order is to move there.
This should result in a slight optimization of the behavior, as well as
slightly more sanity overall.
This was SVN commit r17226.
2015-11-11 12:49:24 +00:00
wraitii
3ddd72c1a4
Fix a rare case where units might get stuck around other idle entities, and clarify a related comment.
...
Refs #3471
This was SVN commit r17225.
2015-11-11 12:28:38 +00:00
wraitii
c42160ec10
Fix an issue where units could not go around large obstructions when short-pathing as it ran in the search-space "walls", reported by gamebot. Fixes #3593 .
...
This is also a very slight optimization.
This was SVN commit r17224.
2015-11-11 12:23:11 +00:00
Itms
2f6f0bd477
Serialize everything that is needed by UpdateVisibilityData instead of assuming everything as dirty.
...
Fixes #3271 .
This was SVN commit r17223.
2015-11-11 12:15:57 +00:00
wraitii
d3ff090ce7
Fix an OOS issue where, on ownership change, units affected by speed-modifying technologies did not update their speed.
...
This was SVN commit r17215.
2015-11-10 23:31:06 +00:00
wraitii
313d324fac
Fix some cases of unit "dancing". Thanks to Elexis for nagging me.
...
This was SVN commit r17208.
2015-11-08 17:55:23 +00:00
wraitii
c319ff062d
Partial fix to a formation "gliding" issue, unsure so far what is causing this.
...
This was SVN commit r17198.
2015-11-07 17:36:31 +00:00
wraitii
3163c9d4a2
Fix a rare issue with the short-range pathfinder where units took odd paths when the target was beyond the search zone.
...
This was SVN commit r17197.
2015-11-07 14:33:55 +00:00
wraitii
2d7074e8d6
Fix unused variables left behind.
...
This was SVN commit r17194.
2015-11-06 20:42:12 +00:00
wraitii
596025df71
Fix a bug in [17163] that could get units with a large passability class stuck.
...
This was SVN commit r17192.
2015-11-06 20:33:13 +00:00
wraitii
e26b59c917
Changes to unitMotion.
...
Make sure we do not treat as circles entities that we really should
treat as squares (such as trees). This fixes an issue reported by Stan.
Make sure we never forget about our destination if we are blocked by
unit obstructions. This makes sure that units in a group but not in
formation will not be blocked by the other units, and probably makes the
general behavior more sane. Helps following [17166]
Refs #3505 , #3471 , #3376
This was SVN commit r17191.
2015-11-06 20:09:18 +00:00
wraitii
9efd79e240
Fix an issue where square diagonals were incorrectly handled when checking the distance to the target. Fixes #3577 properly. Patch by mimo.
...
Decrease fishing ship gathering range in consequence (revert [17178]).
This was SVN commit r17190.
2015-11-06 19:56:52 +00:00
wraitii
1ed3761859
Fix style issues and redundant code in [17161] and [17163].
...
This was SVN commit r17189.
2015-11-06 19:48:08 +00:00
scythetwirler
2126b53b9d
Fixes interpolation of flying objects.
...
This was SVN commit r17187.
2015-11-06 16:56:39 +00:00
mimo
83bba7bdfc
revert e0771b98dd which was based on misunderstanding of the algo, and fix the inverted_circle case, refs #3577
...
This was SVN commit r17184.
2015-11-05 19:22:04 +00:00
wraitii
f91478c730
Fix an oversight in the obstruction manager that lead to possibly the most insidious OOS error we've seen so far.
...
Fixes #3292 .
This was SVN commit r17176.
2015-11-04 18:51:47 +00:00
JoshuaJB
e527a5c321
Fix #3525 and #3399 by recalculating territories on request to GetTerritoryPercentage. Patch by elexis
...
This was SVN commit r17171.
2015-11-02 07:32:43 +00:00
mimo
d9e9345be2
fix some indentation of 6e05a00929
...
This was SVN commit r17164.
2015-11-01 16:47:53 +00:00
wraitii
357203a90f
Pathfinding changes: unit-unit collisions now allow for some overlap, so units can get closer to each other, which I found improved pathfinding considerably.
...
Also fix a potential issue I noticed in some cases, though that
particular fix implies scrapping waypoints, so if units seem to get
lost, please report so and I'll revert those changes.
I can't find any way to get units stuck with this patch.
This was SVN commit r17163.
2015-11-01 13:38:48 +00:00
wraitii
14038d4cd8
Fix more pathfinding issues.
...
Change the way the long-range pathfinder rasterisation works slightly so
that we have a better compatibility with the short-range pathfinder.
Should fix the "stuck units" issues, though I am not sure so I am not
marking them as fixed so far. Refs #3471 , #3505 , and possibly #3292 .
Caveat: I am now using clearance of 0.8 for "default" class, which might
have side-effects: please report anything weird.
Also fix leftover style issues.
This was SVN commit r17161.
2015-11-01 07:28:43 +00:00
wraitii
6acfec0f44
Fix a logic error in the hierarchical pathfinder that resulted in it not updating all passability classes correctly. Fixes #3538 , refs #3292 (it fixes one of the cases, but not the examples).
...
Also features style fixes, thanks leper for noticing.
This was SVN commit r17158.
2015-10-31 20:47:47 +00:00
mimo
4d804cf26b
fix typo in 6e05a00929
...
This was SVN commit r17155.
2015-10-31 13:42:14 +00:00
mimo
6e05a00929
fix obstruction of target entity not taken into account in short pathfinder, closes #3539
...
This was SVN commit r17154.
2015-10-31 13:37:34 +00:00
wraitii
8494e36aa8
Revert the logic change in 9da482ead4. This commit removed the checks in UnitMotion against structures, which should have been fine except the short-range pathfinder and the long-range pathfinder are not entirely compatible (check out #3532 for details). This behavior was probably slightly optimized, but it was too clever for its own good in the current state of the pathfinder, might be reintroduced later.
...
This resulted in ALL "units inside obstructions" issues.
Thanks to elexis for the testing.
Fixes #3532 , #3450 .
Refs #3538 (still OOSes), #3410 (unitmotion remains buggy for
formations, but this is only aesthethic.)
Probably affects #3471 and #3505 , but those are not fixed.
This was SVN commit r17152.
2015-10-31 08:43:31 +00:00
mimo
e0771b98dd
fix switch between square or circle approximation in UnitMotion, refs #3539
...
This was SVN commit r17145.
2015-10-26 22:59:26 +00:00
mimo
f4cb822d9d
do the circle approximation also in INVERTED goals in UnitMotion, refs #3405
...
This was SVN commit r17143.
2015-10-18 20:23:02 +00:00
mimo
82590753d7
fix a moved function, fixes #3531
...
This was SVN commit r17137.
2015-10-16 17:14:39 +00:00
historic_bruno
4043c56518
Fixes global init order bug that caused OOS between OS X and other platforms, fixes #3499 . May improve pathfinding behavior in some cases, please test!
...
This was SVN commit r17132.
2015-10-15 02:51:12 +00:00
mimo
b0f267b61c
fix typo in UnitMotion, fixes #3474
...
This was SVN commit r17124.
2015-10-11 11:00:11 +00:00
sanderd17
f5348c6dd6
Introduce less rounding errors in the falloff to allow a more precise territory calculation. Fixes #3334 . Based on code by elexis.
...
This was SVN commit r17122.
2015-10-11 09:01:50 +00:00
historic_bruno
02628b8902
Removes unused pathfinder consts, patch by stanislas69. Fixes #3500
...
This was SVN commit r17115.
2015-10-10 06:48:42 +00:00
Itms
cfe4a2e568
Fix a cause of serialization problems. Fixes #3450 .
...
This was SVN commit r17097.
2015-10-03 11:02:12 +00:00
Itms
bb997f6cae
Fix previous commit.
...
This was SVN commit r17096.
2015-10-03 10:32:30 +00:00
Itms
d60940ac59
Code improvements and style fixes.
...
This was SVN commit r17095.
2015-10-03 08:27:19 +00:00
Itms
dc69aed954
Remove some old and unused code.
...
This was SVN commit r17094.
2015-10-02 18:27:10 +00:00
mimo
a7e0dc1534
update attack and heal range queries, patch by leper, fixes #3080
...
This was SVN commit r17082.
2015-09-27 12:23:40 +00:00
Itms
b77ad821c2
Reenable formations and fix/improve the communication between UnitAI and UnitMotion. With the new pathfinder some path requests can be completed instantaneously, so UnitAI has to handle MoveStarted messages even in the IDLE state.
...
Please note that this commit makes #3410 really visible. Formation
members might pass through buildings.
Refs #3410 , #3337 .
This was SVN commit r17028.
2015-09-17 16:31:23 +00:00
Itms
ae6475fcc0
Fix a typo, patch by godlikeldh.
...
This typo didn't have any influence since dirty unit shapes are usually
discarded during the rasterization (they don't block long-range
pathfinding). Switching the order of a check in RasterizeHelper prevents
performance problems to a really small extent.
This was SVN commit r17014.
2015-09-13 10:18:37 +00:00
Itms
03d2c5e40b
Support inverted goals with the long-range pathfinder. This allows units to flee and should fix problems with ranged units too close to their targets. Fixes #3405 , refs #3372 .
...
Now that units flee it's necessary to fix the unit chasing: this commit
reintroduces some code from 298115f4c5 that disappeared with the
committing of the new pathfinder. Refs #1537 .
Also includes some style improvements to the UnitMotion code.
This was SVN commit r17013.
2015-09-13 09:33:09 +00:00
leper
fc051d94cc
Add check for non-passable (likely water-only) maps to territory percentage calculation.
...
Patch by s0600204. Fixes #3407 .
This was SVN commit r17002.
2015-09-11 02:16:21 +00:00
Itms
9da482ead4
Based on previous experimental changes, major update to the unit motion.
...
With this change, units will not check their movement against all
obstructions when moving: terrain and static obstructions are assumed to
be handled by the long-range pathfinder.
However, when static obstructions are changed, the paths have to be
invalidated. In order to minimize the performance impact, units will
check for obstructions when they move after a passability change. If
they collide with something, they will recompute a path that will take
into account the new passability map.
Also includes some code cleanup. This patch should not change
performance a lot: the lower number of checks should give a small
performance improvement while using the message broadcasting system
should hurt it a bit.
Fixes #3376 , #3337 , #1914 .
This was SVN commit r16998.
2015-09-10 18:12:13 +00:00
leper
5a685b84ca
Recompute the cost grid in the TerritoryManager when needed. Patch by s0600204. Fixes #3399 , #3400 .
...
This was SVN commit r16990.
2015-09-06 22:35:38 +00:00
Itms
448b8248cf
Revert my experimental changes from the previous days. Hopefully I can design something that doesn't introduce a ton of new issues. Refs #3376
...
This was SVN commit r16986.
2015-09-05 18:20:08 +00:00
Itms
1d89d05956
Don't try to short-path to non-point goals, because the algorithm won't deal with connectivity. Fixes another bug reported in #3363 .
...
This was SVN commit r16985.
2015-09-04 20:43:05 +00:00
Itms
3005637370
Make a compromise between f240374b28 and f134ac63bb by making the filtering of pathfinding-blocking shapes conditional.
...
Those shapes need to be taken into account when computing a short path,
but they need to be discarded when checking movements or they will
create long/short inconsistencies.
This was SVN commit r16981.
2015-09-03 20:09:25 +00:00
Itms
8dde1cda94
Style cleanup, and remove a wrong TODO.
...
This was SVN commit r16974.
2015-09-02 17:40:31 +00:00
Itms
f134ac63bb
Revert most of f240374b28 which was actually bad. It caused units to get stuck because the obstructions won't block the same paths when rasterized on the grid and when directly tested for collisions.
...
As a general rule, pathfinding-blocking shapes should not be tested
against for movements. Only the passability grid should be considered.
As the algorithm which tests paths on this grid was fixed in 1c9ea56800 ,
it can be safely used.
Fixes #3376 .
This was SVN commit r16971.
2015-09-02 15:50:16 +00:00
Itms
f47cb2c711
Fix the OOS reported by elexis in #3335 , and clean some whitespace and style.
...
The list of modified entities was thrown out on global visibility
updates (those happen on rejoin) but only in-world entities were
actually updated then, causing problems with garrisoning.
Now the list of modified entities can happen to be large, so replace the
hacky check for infinite loops by a real check.
This was SVN commit r16962.
2015-08-30 17:42:10 +00:00
leper
8217fa1a0e
Warn about range queries that can never return any results.
...
This was SVN commit r16951.
2015-08-29 22:49:49 +00:00
Itms
8e70140ec2
Handle properly static shapes that overlap the edge of the map (likely to happen with square maps).
...
This should fix #3364 .
This was SVN commit r16944.
2015-08-28 11:38:14 +00:00
Itms
d129ae3cd8
Fix a special situation where map control percentage wasn't computed properly.
...
Also improve the code and fix a typo.
Based on patch by s0600204, fixes #3378 .
This was SVN commit r16941.
2015-08-27 16:26:32 +00:00
Itms
a63b7a0126
Add ability to query the map control percentage, and use this value in the summary screen. Patch by s0600204, fixes #3321
...
This was SVN commit r16933.
2015-08-23 17:44:37 +00:00
leper
8bfe16cac8
Use in-place construction.
...
This was SVN commit r16894.
2015-07-29 23:44:17 +00:00
leper
c5eb9b7bb7
Range-based for for VfsPath loops.
...
This was SVN commit r16893.
2015-07-29 23:44:12 +00:00
Itms
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
Itms
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
Itms
8fc4ecaa6b
Fix previous commit, stupid typo...
...
This was SVN commit r16859.
2015-07-15 16:57:23 +00:00
Itms
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
Itms
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
Itms
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
Itms
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