Commit graph

1194 commits

Author SHA1 Message Date
elexis
00e7d49368 Profile Footprint calls that can easily consume 90% of the simtime on a turn ("sunken ship lag").
Differential Revision: https://code.wildfiregames.com/D778
Refs #4713
Reviewed By: Vladislav
This was SVN commit r19973.
2017-08-11 18:08:30 +00:00
elexis
343ec21e75 Update the color of the selection ring, rallypoints and territory outline when the playercolor is changed in atlas.
Merge duplicate Selectable component playercolor code.

Differential Revision: https://code.wildfiregames.com/D687
Fixes #4643
Refs D623
Patch in cooperation with: Stan

This was SVN commit r19965.
2017-08-09 11:19:14 +00:00
fatherbushido
3d0bfc7e1b Forgotten years replacement in 3a3bcca0c5.
This was SVN commit r19962.
2017-08-09 07:11:53 +00:00
fatherbushido
3a3bcca0c5 Refactor the code for cutting a circle into chords for textured line overlay in Selectable component. Don't compute useless arccos and avoid compound rounding errors. Reviewed by Itms.
Differential Revision: https://code.wildfiregames.com/D673
This was SVN commit r19959.
2017-08-08 17:48:44 +00:00
elexis
505a10cef6 Display rallypoints in the playercolor instead of plain blue.
Differential Revision: https://code.wildfiregames.com/D623
Fixes #4618
Patch By: Stan
This was SVN commit r19957.
2017-08-08 12:48:57 +00:00
mimo
37c2f18b9e Add AI engine function for template loading
Partial commit of https://code.wildfiregames.com/D639, taken from
Sandarac patch

Reviewed by mimo

This was SVN commit r19951.
2017-08-07 19:35:43 +00:00
leper
27e5c5b25a Mark a few functions const.
Reviewed By: Itms
Differential Revision: https://code.wildfiregames.com/D499
This was SVN commit r19930.
2017-07-29 23:26:44 +00:00
Itms
d56692d9e1 Rewrite the pathfinder dirtiness information system.
Remove all hacks while keeping most optimizations in memory management.
This fixes incomplete grid updates that could cause OOS on rejoin, fixes
#4596.

Tested by: elexis, ffffffff
Reviewers: leper, wraitii
Differential Revision: https://code.wildfiregames.com/D675
This was SVN commit r19916.
2017-07-14 10:09:32 +00:00
elexis
c67d79d9f3 Recompute water graphics when changing the water level and upon deserialization to fix a graphical (non-simulation) OOS on rejoin.
Differential Revision: https://code.wildfiregames.com/D638
Refs #4596
Contains a fix mentioned by leper.

This was SVN commit r19862.
2017-07-01 04:15:49 +00:00
elexis
cfd08bbf28 Cinema Path GUI hiding and silhouettes fixes.
Let the JS GUI take care of hiding the GUI and silhouettes and remove
the according hardcoding in the engine following 89aef0b6eb.
Thereby fix some bugs (like not having hid the GUI if there was a
message box or different page shown while playing a path) and
fix these two hotkeys broken by 5d49e6c456.

Differential Revision: https://code.wildfiregames.com/D631
Fixes #4633
Reviewed By: Vladislav
This was SVN commit r19797.
2017-06-17 14:17:30 +00:00
elexis
e6dafe9efc Fix a map exploration OOS on rejoin when starting with territory at the map boundaries.
6aeb5c64de forgot to add a LosIsOffWorld check in ExploreTerritories
(aka UpdateTerritoriesLos) and thus marked tiles outside of the world as
explored.
f5e60157bf transformed the bug into a non-simulation desynchronization,
causing rejoined players to see a different score,
  as they excluded off-world tiles when filling the cache in
ResetDerivedData upon rejoin.
4a0673e44e transformed the bug into an actual simulation OOS by
serializing that map exploration percentage based on that cache.

Also tiles at the map border in square maps are not rendered as
expected, so this commit hides refs #4267.

Differential Revision: https://code.wildfiregames.com/D630
Fixes #4598
Proofread by: Itms
Tested By: Imarok
This was SVN commit r19790.
2017-06-16 19:39:30 +00:00
Itms
860b5bbfce Revert an unfortunate early break introduced in 2527aabd5d, patch by Sandarac.
Reviewed By: Itms
Differential Revision: https://code.wildfiregames.com/D641
This was SVN commit r19777.
2017-06-15 17:45:16 +00:00
Itms
2527aabd5d Fix hero selection rings becoming unsaturated when moving. Patch by Sandarac, refs 0a53c5e06a, #2627.
Differential Revision: https://code.wildfiregames.com/D563
This was SVN commit r19732.
2017-06-04 13:04:04 +00:00
elexis
51f62818f7 Fix all broken checks for the absent (random-mapgen+simulation) Seed property in the engine, refs #3965.
Hence display the originally intended useful warnings (instead of the
characterless JS "Script value conversion check failed" warning and
skipping the intended warnings).

This was SVN commit r19718.
2017-06-02 15:07:58 +00:00
elexis
77c4e649af Replace hardcoded copies of a C++ simulation constant in JS used to compute the mapsize with a call to a new getter in the C++ interface.
Differential Revision: https://code.wildfiregames.com/D577
Patch By: Sandarac
This was SVN commit r19699.
2017-05-31 16:43:57 +00:00
leper
a533fff883 Add a -autostart-nonvisual option. Patch by sacha_vrand. Fixes #4577.
This allows automated testing of AIs without any GUI or sound (similar
to non-visual replays).

Differential Revision: https://code.wildfiregames.com/D379
This was SVN commit r19645.
2017-05-23 19:26:33 +00:00
mimo
15e2b42525 New economic tutorial based on triggers, accessible from the "learn to play" button
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D194
This was SVN commit r19599.
2017-05-17 17:33:36 +00:00
leper
51f7502bb1 Don't move temporaries, so possibly allowing for copy elision.
Pointed out by clang's -Wpessimizing-move.

Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D421
This was SVN commit r19559.
2017-05-11 23:24:54 +00:00
leper
bdfe500f98 Draw paths only when cinematics isn't playing. Patch by Vladislav.
Also show the GUI after the cinematics stopped playing in Atlas.

Differential Revision: https://code.wildfiregames.com/D411
This was SVN commit r19533.
2017-05-08 04:02:33 +00:00
elexis
ee5bb1fd61 RangeVisualization component and use it to visualize Aura ranges.
Differential Revision: https://code.wildfiregames.com/D238
Fixes #4349
Patch By: Sandarac
This was SVN commit r19519.
2017-05-06 00:47:21 +00:00
elexis
09e974e1cb Bump year number of files changed this year in the license headers.
This was SVN commit r19503.
2017-05-01 14:28:22 +00:00
elexis
37da3b008a Translate the Out-Of-Sync error message and send it to the JS GUI for convenience and future extension.
Add a hint that multiplayer games with AI are currently not supported.

Differential Revision: https://code.wildfiregames.com/D105
Reviewed By: leper
Refs #3858

This was SVN commit r19491.
2017-05-01 04:55:56 +00:00
leper
234aa36b25 Update the documentation on how to write simulation components.
Mention how to handle const methods (be1a205f91, D75).
Note that parameters are passed as const references (1a66f510d0).
Also remove mention of jsval (which is deprecated).

Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D374
This was SVN commit r19484.
2017-04-30 23:48:54 +00:00
elexis
5a4cbc9261 Move CinemaManager includes forgotton in 5d49e6c456 to the right place, thus fixing the build without precompiled headers.
Refs https://code.wildfiregames.com/D385
Reported by: leper
Fix proposed by: Vladislav
This was SVN commit r19473.
2017-04-29 18:08:06 +00:00
elexis
81c57e8a28 List, add and delete cinematic paths in Atlas.
Doesn't provide a way to add/delete nodes of paths yet.

Differential Revision: https://code.wildfiregames.com/D348
Patch By: Vladislav
This was SVN commit r19427.
2017-04-18 03:30:16 +00:00
wraitii
1ec41f6dd0 Fix crash in dynamic subscriptions when components unsubscribe during deletion.
Discussed with Philip.
Reviewed by fatherbushido
Differential Revision: https://code.wildfiregames.com/D264
This was SVN commit r19424.
2017-04-17 08:00:41 +00:00
fatherbushido
de9e76cbf1 Add a test to the component manager to show a crash in dynamic subscriptions when components unsubscribe during deletion. Reviewed by wraitii.
Differential Revision: https://code.wildfiregames.com/D346
This was SVN commit r19423.
2017-04-17 07:55:44 +00:00
elexis
adf60c7c49 Support cinematic path creation from trigger scripts.
Differential Revision: https://code.wildfiregames.com/D317
Patch By: Vladislav
Refs #3814

This was SVN commit r19422.
2017-04-17 01:42:11 +00:00
elexis
5462f26aba Move CinemaPath class to the simulation helper directory, because it contains predominantly simulation data that is already serialized.
The remaining graphics code should be moved or removed.

Differential Revision: https://code.wildfiregames.com/D324
Patch By: Vladislav
This was SVN commit r19414.
2017-04-14 23:20:49 +00:00
elexis
2e37e6a8d9 Remove redundant path name argument from the CinemaManager AddPath function.
Differential Revision: https://code.wildfiregames.com/D310
Patch By: Vladislav
This was SVN commit r19406.
2017-04-11 01:37:00 +00:00
elexis
e4b4126293 Fix Units demo map following the addition of the special filter templates in D215 / d093f714d7.
Expose the FindAllPlaceableTemplates function to the simulation to
remove the hardcoded directory checks as suggested by fatherbushido.
Add the new special template directory from D176 / cd6c31e76e.
Move the code from XML to JS.

Differential Revision: https://code.wildfiregames.com/D277
Reviewed By: Vladislav
This was SVN commit r19399.
2017-04-09 23:46:31 +00:00
Itms
32c0dc773e Fix memory leak in CCmpPathfinder, patch by Sandarac.
The terrain grid can be renewed without proper deallocation, which
happens at least at the start of a game when MT_TerrainChanged is sent.

Reviewers: wraitii, Itms

Differential Revision: https://code.wildfiregames.com/D247
This was SVN commit r19388.
2017-04-08 15:58:10 +00:00
elexis
7f07237bba Serialize the queue of cinematic paths playing and resume upon deserialization. Thereby fix an OOS on rejoin when a cinematic path is playing.
Move path de/serialization to private helper functions.

Differential Revision: https://code.wildfiregames.com/D299
Patch By: Vladislav
Refs #3814

This was SVN commit r19382.
2017-04-08 00:10:02 +00:00
elexis
5d49e6c456 Move most cinematic path simulation data and control from the graphics class to the simulation component and solve the hash mimatch in non-visual replay.
Move graphics code to smaller helper functions UpdateSessionVisibility,
UpdateSilhouettesVisibility and DrawPaths.
Remove the hotkey TODO code which should be implemented differently.
Mark voids as const.

Differential Revision: https://code.wildfiregames.com/D271
Patch By: Vladislav
This was SVN commit r19375.
2017-04-05 03:59:20 +00:00
Itms
c0708da215 Fix the Mustang template. Add tests for the UnitMotionFlying component.
Patch by bb.
Reviewers: Itms

Differential Revision: https://code.wildfiregames.com/D139
This was SVN commit r19373.
2017-04-03 09:58:01 +00:00
elexis
27f37ccd21 Cleanup the rest of the mess introduced with the NonGaiaEntities functions in 8c7b6dceaa.
Add a test for the GetNonGaiaEntities function of the RangeManager
broken by that commit that was fixed by f3e4e619bc.
Don't call one script function from another, but directly call into the
Selection helper like the others.
Don't make a loop around that RangeManager function for all players but
call the function once for all players.
The pointless virtual keywords were removed by 8827db201a.

Differential Revision: https://code.wildfiregames.com/D166
Reviewed By: leper
This was SVN commit r19344.
2017-03-25 02:42:51 +00:00
leper
b9441a6a8d Ensure m_Territory in cmpTerriotryManager.IsTerritoryBlinking. Fixes #4466.
Patch By: Sandarac
Differential Revision: https://code.wildfiregames.com/D261
This was SVN commit r19343.
2017-03-25 01:43:14 +00:00
leper
e69e10ef5f Small RangeManager cleanup.
Use std::set's logarithmic find instead of a linear loop.
Early return and some whitespace for getParabolicRangeForm.

Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D260
This was SVN commit r19342.
2017-03-25 00:11:08 +00:00
leper
9f50bf3f1e Only dereference cmpWaterManager if it is non-null.
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D259
This was SVN commit r19340.
2017-03-24 21:32:49 +00:00
fatherbushido
9cf84c6800 Fix documentation of non system component.
Summary: -

Test Plan: -

Reviewers: Itms, leper

Reviewed By: leper
Subscribers: Vulcan, O1 C++ Simulation

Differential Revision: https://code.wildfiregames.com/D221
This was SVN commit r19337.
2017-03-24 07:09:28 +00:00
elexis
ff452de1f7 Mark GetAnimationName as const
Differential Revision: https://code.wildfiregames.com/D248
Reviewed By: leper
This was SVN commit r19325.
2017-03-22 23:07:01 +00:00
elexis
d093f714d7 Use XML files instead of hardcoded C++ code in the template manager to universally change template properties at load time.
Patch By: leper
Differential Revision: https://code.wildfiregames.com/D215
Fixes #2951

This was SVN commit r19302.
2017-03-16 19:56:12 +00:00
elexis
c288a91c6d Add a GetAnimationName getter function for the VisualActor component, so that the simulation can not only set an animation but also find out which one is currently being played.
Differential Revision: https://code.wildfiregames.com/D219
Reviewed By: bb
This was SVN commit r19299.
2017-03-15 14:27:51 +00:00
mimo
f3e4e619bc RangeManager returns Gaia entities in GetNonGaiaEntities
refs #4495
Reviewed By: leper, elexis
Differential Revision: https://code.wildfiregames.com/D164
This was SVN commit r19245.
2017-02-26 10:26:35 +00:00
mimo
360ba27865 Cleanup of CCmprangeManager
Summary: Following discussions in https://code.wildfiregames.com/D60 the
use of u8 to store each boolean has been cleanup up. Now only one u8 is
used, thus reducing the size of the struct.

Reviewed By: leper
Differential Revision: https://code.wildfiregames.com/D101
refs #3834

This was SVN commit r19242.
2017-02-24 19:15:54 +00:00
leper
a0a0895a12 Pass some strings and a vector as const refs.
Reviewed By: Imarok
Differential Revision: https://code.wildfiregames.com/D160
This was SVN commit r19240.
2017-02-24 17:02:10 +00:00
leper
5e5b5be656 Improve component cache lookup performance slightly.
We do not need iteration order, and this makes this explicit.

Reviewed By: echotangoecho
Differential Revision: https://code.wildfiregames.com/D82
This was SVN commit r19235.
2017-02-22 19:27:58 +00:00
leper
6ae2db53db Employ some variadic macros to make some of the C++ -> JS function calling code nicer.
Template-ize CallFunctionVoid.
Changes CallFunction parameter order to make template parameter
deduction with
variadic parameters work nicely.

Reviewed By: Itms, wraitii, Yves
Differential Revision: https://code.wildfiregames.com/D77
This was SVN commit r19183.
2017-01-28 23:37:15 +00:00
mimo
c2d0327af9 Implement shared vision at the entity level
Summary:
To fix tickets like #3335, having a shared vision at the entity level is
needed. This patch implements that in CCmpRangeManager, interfaced with
a new JS component VisionSharing to manage the shared entities visions.
As an example of use case (in addition to garrisoning in allied
structure without the sharedLos tech), we can think of bribing enemy
units: there is a part about it in the patch, but this one is very wip
and not intended to be committed but rather for test purposes of the
feature.
So when garrisoning a unit in another player's building, the vision of
the garrisonHolder is shared (part intended for review). In addition,
for tests of the feature, when clicking on the new bribe icon in the
diplomacy window, a random unit of the chosen player is bribed and share
its vision during 15 s.

Test Plan: Garrison a unit in an allied structure without the sharedLos
tech, or test the wip bribe feature from the diplomacy window.

Reviewers: Itms

Reviewed By: Itms
Subscribers: Stan, leper, O11 Templates, wraitii, elexis, fatherbushido,
Itms, Vulcan, O1 C++ Simulation

Differential Revision: https://code.wildfiregames.com/D60
This was SVN commit r19175.
2017-01-26 21:10:46 +00:00
elexis
4f01db4831 Split TurnManager classes into individual files per class. Patch by echotangoecho, fixes #4095.
Remove the "Net" prefix from the non-networked classes.
Use variadic macros and mark the client turnmanager as NONCOPYABLE.

Differential Revision: D16
Reviewed By: leper
This was SVN commit r19165.
2017-01-24 02:04:50 +00:00
leper
be1a205f91 Add support for const methods in components and make those that can be const const.
Reviewed By: Itms
Differential Revision: https://code.wildfiregames.com/D75
This was SVN commit r19156.
2017-01-20 02:25:19 +00:00
elexis
678e082230 Remove the "quit" simulation command and restrict the "set-shading-color" simulation command to AIs,
since they are only useful for AI debugging and counterproductive in
multiplayer mode, refs #3551.

Instead, enable AI developers to exit the game from a new AI API
command,
allowing to batch simulate matches. Refs #2755.

Differential Revision: D65
Reviewed By: leper
Consulted: mimo

This was SVN commit r19155.
2017-01-19 14:45:32 +00:00
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
wraitii
2bae30c454 Fix [19027] by using generic code for conversions and fixing a few other issues. Refs #3403. Reviewed by leper.
Also fix some of the warnings that jenkins showed.

Differential Revision: https://code.wildfiregames.com/D24
This was SVN commit r19115.
2017-01-06 11:14:03 +00:00
Itms
81eb74163e Happy New Year *cough*(Years)*cough*!
Also fix some whitespace.

This was SVN commit r19110.
2017-01-04 21:00:16 +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
Itms
a27dc31b0e Remove some obsolete backref logic from the deserializer. It was introduced in earlier versions of the SpiderMonkey API.
Name some variables more logically in one test.

Fixes #4244

This was SVN commit r18993.
2016-11-24 14:47:49 +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
aa26863d5c Fix an OOS on rejoin caused by ParamNode.cpp using an invalid node cache. Patch by leper, fixes #4316.
Reuse the temple of vesta inheritance from 06bf79b7e8 which was affected
by this bug.

This was SVN commit r18942.
2016-11-15 14:01:15 +00:00
elexis
3008533c8e Add a template manager test that reveals an inheritance error in ParamNode.cpp which can trigger an OOS on rejoin. Patch by leper, refs #4316.
This was SVN commit r18941.
2016-11-15 13:51:29 +00:00
elexis
2bf1dbfd13 An awesome Rejoin-test tool by wraitii and Itms, fixes #4242, refs #3460.
Contrary to the serializationtest, initializes the secondary simstate
only once
before progressively applying updates.
Thus reproducing actual multiplayer rejoining, enabling developers to
analyze OOS reports solely from the replay file of the rejoined and a
non-rejoined client.

This was SVN commit r18940.
2016-11-15 13:26:58 +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
8284cc4302 SpiderMonkey 38 upgrade: 35/35
Some comments for the next SpiderMonkey upgrade. That's all folks, fixes
#3708

This was SVN commit r18689.
2016-09-02 16:55:13 +00:00
Itms
2a33c4476f SpiderMonkey 38 upgrade: 34/35
Use the C++ API for Maps. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1121332

This was SVN commit r18688.
2016-09-02 16:54:00 +00:00
Itms
0cc23c1964 SpiderMonkey 38 upgrade: 33/35
Remove a workaround. Note that this removal is incomplete. Based on
patch by leper.

This was SVN commit r18687.
2016-09-02 16:53:22 +00:00
Itms
9b794593db SpiderMonkey 38 upgrade: 32/35
JS_GetStringCharsAndLength was removed, use
JS_Get{Latin1,TwoByte}StringCharsAndLength instead.

Actually handle strings in both the Latin1 and TwoByte cases since we
need to.
This saves some space when serializing and also when running as they are
stored that way in the vm.
Also handle the error case.

Patch by leper.
For more information:
https://blog.mozilla.org/javascript/2014/07/21/slimmer-and-faster-javascript-strings-in-firefox/
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1037869

This was SVN commit r18686.
2016-09-02 16:51:09 +00:00
Itms
ffd4207c30 SpiderMonkey 38 upgrade: 24/35
Work around upstream API breakage by moving from a define to a const
member and not using the namespace explicitly.

This is caused by https://bugzilla.mozilla.org/show_bug.cgi?id=896116
and this patch by leper was submitted at
https://bugzilla.mozilla.org/show_bug.cgi?id=1236373

This was SVN commit r18678.
2016-09-02 16:40:01 +00:00
Itms
ef6d1c77c8 SpiderMonkey 38 upgrade: 23/35
JS_GetArrayBufferData now takes an AutoCheckCannotGC parameter. Patch by
leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1061288

This was SVN commit r18677.
2016-09-02 16:38:31 +00:00
Itms
2db0fb27ae SpiderMonkey 38 upgrade: 21/35
The naming conventions for typed array types changed. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1021790

This was SVN commit r18675.
2016-09-02 16:36:40 +00:00
Itms
8747b1c098 SpiderMonkey 38 upgrade: 17/35
JS_GetUint*Array now takes an AutoCheckCannotGC parameter. Based on
patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1061288

This was SVN commit r18671.
2016-09-02 16:33:10 +00:00
Itms
ef764d5d64 SpiderMonkey 38 upgrade: 15/35
Temporary workaround dropping of parent parameter from JS_NewObject* by
switching to JS_NewObjectWithGivenProto.

We should just drop support for serializing the parent since upstream is
dropping the parent parameter from all those functions.

Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1136906 and
https://bugzilla.mozilla.org/show_bug.cgi?id=1136345

This was SVN commit r18669.
2016-09-02 16:30:35 +00:00
Itms
c3710c9632 SpiderMonkey 38 upgrade: 14/35
JS_NewObject has no parent or proto arg anymore, use
JS_NewObjectWithGivenProto instead. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1136906
https://bugzilla.mozilla.org/show_bug.cgi?id=1127443 and
https://bugzilla.mozilla.org/show_bug.cgi?id=1136345

This was SVN commit r18668.
2016-09-02 16:29:21 +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
c99ae7ca1c SpiderMonkey 38 upgrade: 12/35
Major update to the JSClass stubs. Based on patch by leper.
https://bugzilla.mozilla.org/show_bug.cgi?id=1103152

This was SVN commit r18666.
2016-09-02 16:26:54 +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
Itms
c7c3ef9f92 SpiderMonkey 38 upgrade: 09/35
Use .toFoo() instead of JSVAL_TO_FOO. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=952650

This was SVN commit r18663.
2016-09-02 16:23:44 +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
6eaf76d653 Actually seed the random number generator used in the simulation. Reviewed by sanderd17, fixes #4127.
This was SVN commit r18604.
2016-08-14 16:28:54 +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
bb1f86f515 Remove duplication of the Hexify function.
Remove the useless extern keyword from function declarations in
ps/Util.h.

Patch by echotangoecho, refs #4095

This was SVN commit r18591.
2016-08-08 12:50:39 +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
72ca6c5f80 Style cleanup by leper, preparing the SpiderMonkey update. Refs #3708
This was SVN commit r18579.
2016-08-02 16:12:11 +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
elexis
4c0f12bce3 Fix autostart replays following a23884d79a by grabbing g_GameAttributes from the simulation instead of the GUI. Patch by Imarok, refs #3143.
Don't remove attribs from the init attributes as that is still used by
the loading screen to show the mapname.

This was SVN commit r18510.
2016-07-12 01:49:48 +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
001c411cc2 Remove a division by a fixed equal to one in NearestNavcell in the short-range pathfinder which was from profiling on VC2013/windows 7 responsible for about 10% of ComputeShortPath.
This was SVN commit r18358.
2016-06-10 22:57:28 +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
elexis
6f744aef88 Simulation context cleanup, refs #3991, #3168.
Save the viewed player in the CGame class.
Add the const keyword back to the SimContext to help find mistakes at
compiletime.

This was SVN commit r18201.
2016-05-19 19:42:07 +00:00
elexis
f4e69b7c07 Cleanup of #3255, fixes #3966.
Don't create an empty oos_logs directory when starting the game.
Rename getDateIndexSubdirectory to createDateIndexSubdirectory.
Add a comment for the breakpoint argument of CreateDirectories.

This was SVN commit r18183.
2016-05-16 00:56:07 +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
Itms
5ac76ecf89 Some style fixes reported by leper.
This was SVN commit r18016.
2016-04-10 16:57:12 +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
Itms
8c436a8a41 Slight improvement of the flood filling algorithm in the hierarchical pathfinder.
Remove some useless check and a useless reverse loop, and add a flag to
prevent redundant checks.

Patch by fsincos, refs #3588

This was SVN commit r18011.
2016-04-09 19:47:09 +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
elexis
d61e315f4d Fix few style issues remarked by leper.
Add a unit (seconds) to the network-timeout warning.
Rename isChatAddressee to parseChatAddressee as it changes the message.
Early return for EnableOOSLog to avoid printing duplicate messages.

This was SVN commit r17895.
2016-03-15 04:37:41 +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
elexis
b155a28698 Immediately set the fog-of-war instead of waiting for session.js to load, refs #3168.
This was SVN commit r17832.
2016-03-06 13:56:07 +00:00
elexis
a32ed75bff Fix a race-condition when two games have been started simultaneously and attempt to create the same replay directory, refs #3255.
Instead of triggering a debug-breakpoint, print a warning to stdout and
succeed in the N'th retry when having started N processes
simultaneously.
Previously the problem had been addressed by using the processID in the
directory name.

This was SVN commit r17776.
2016-02-19 11:22:32 +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
elexis
5998d13442 Use date and sequential ID for replay-directorynames, fixes #3255.
Save replays in userdata (screenshots, savegames)  and create one
subdirectory for every release.

This was SVN commit r17761.
2016-02-15 15:57:23 +00:00
Itms
4ad601a301 Sorry for the surprise fix but that really hurts my eyes :p
This was SVN commit r17748.
2016-02-09 16:12:52 +00:00
elexis
4ac89001f4 Fix compile error for gcc 4.6, refs #3168.
This was SVN commit r17745.
2016-02-08 22:44:23 +00:00
elexis
a2f7d4d82a Show fog of war in observermode, fixes #3168.
This was SVN commit r17735.
2016-02-06 12:56:41 +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
5747619c39 Don't create replays without commands in case of running non-visual replay or an atlas simulation.
Remove trailing whitespace.

This was SVN commit r17689.
2016-01-23 01:02:57 +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
leper
f34dc412b6 Deep freeze simulation commands to prevent accidental updates. Fixes #3647.
This was SVN commit r17673.
2016-01-18 22:24:50 +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
f4898c18d8 SpiderMonkey 38 removes the JS_LookupProperty{,ById} API. Refs #3708.
Use JS_GetProperty{,ById} instead.
Ensure that we break if someone tries to serialize a getter by using
something similar to what we used pre 47a03c3397.
https://bugzilla.mozilla.org/show_bug.cgi?id=1094176

This was SVN commit r17633.
2016-01-11 20:03:33 +00:00
leper
775f856421 Use .assign instead of operator=.
This was SVN commit r17631.
2016-01-11 20:03:28 +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
Itms
629e73a768 Fix a compiler warning.
This was SVN commit r17615.
2016-01-09 09:52:51 +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
leper
b18cd3254c Test FixedVector{2,3}D script conversions, and test calling functions of the prototypes.
Also ENSURE that the given value identifier is actually present in the
cache instead of creating one if it is not.

This was SVN commit r17603.
2016-01-04 21:41:40 +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
leper
3fd4d07ca1 Test \0 in object property names for serializing.
This was SVN commit r17539.
2015-12-22 19:01:18 +00:00
leper
332096e4ed SpiderMonkey 38 removes JS_AllocateArrayBufferContents.
Users required the returned buffer to be passable to free(), so replace
it by malloc().
https://bugzilla.mozilla.org/show_bug.cgi?id=1037358

This was SVN commit r17511.
2015-12-19 02:49:46 +00:00
leper
2239fe338c The jschar typedef is removed in SpiderMonkey 38.
Since it already is char16_t in 31 replace it by that.
https://bugzilla.mozilla.org/show_bug.cgi?id=1063962

This was SVN commit r17506.
2015-12-19 01:29:55 +00:00
leper
69ab2bae5b Some ctors were made explicit in SpiderMonkey 38, so call them where needed.
https://bugzilla.mozilla.org/show_bug.cgi?id=1013663

This was SVN commit r17505.
2015-12-19 01:13:56 +00:00
leper
efda359acc Use new when calling the builtin typed array constructor.
The current code will be forbidden in ES6.

This was SVN commit r17504.
2015-12-19 01:10:13 +00:00
elexis
abce6cb737 Pathfinder optimization, fixes #3541.
Simplify the math of Geometry::TestRayAASquare.

This was SVN commit r17500.
2015-12-18 15:05:33 +00:00
mimo
a74d9be130 make const the new method introduced in 2451872731
This was SVN commit r17425.
2015-12-10 19:23:50 +00:00
mimo
b6dbb2bff0 fix tabs of 2451872731
This was SVN commit r17415.
2015-12-09 20:56:53 +00:00
mimo
2451872731 improve performance of hierarchical pathfinder, refs #3588
This was SVN commit r17413.
2015-12-09 19:56:30 +00:00
mimo
6a73dc2e16 fix multiple (useless) insertion in grid update of hierarchical pathfinder
This was SVN commit r17409.
2015-12-08 22:58:04 +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
elexis
71b0d9c052 Update atlas with the new map_sizes.json format. Refs #3355.
This was SVN commit r17379.
2015-12-04 16:37:30 +00:00
mimo
0a8fc4bb08 improve pathFinder by optimizing the DistanceToSquare computation, refs #3588
This was SVN commit r17350.
2015-12-01 19:01:41 +00:00
elexis
700859b2c3 Move the playerdefaults to the settings directory. Refs #3355
This was SVN commit r17332.
2015-11-30 01:33:59 +00:00
mimo
be9b6fa59c improves performance of hierarchical pathFinder, refs #3588
This was SVN commit r17310.
2015-11-28 13:06:44 +00:00
Itms
229e850dba Fix a compiler warning.
This was SVN commit r17296.
2015-11-20 20:42:45 +00:00
mimo
fc6af83c2a cleanup 5b335442fb
This was SVN commit r17294.
2015-11-20 19:47:08 +00:00
mimo
5b335442fb fix a bug in the HierarchicalPathfinder revealed by changes in 9b0ed97d05, patch by wraitii
This was SVN commit r17293.
2015-11-20 19:45:48 +00:00
mimo
0b2da13dea never edit a patch before commiting !
This was SVN commit r17287.
2015-11-19 22:17:00 +00:00
mimo
9b0ed97d05 fixes and performance improvements in hierarchical pathfinder, fixes #3621
This was SVN commit r17284.
2015-11-19 22:02:25 +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
3760891131 Fix the precedent fix. It turns out the code behaves in much weirder ways than I expected.
This was SVN commit r17255.
2015-11-14 19:03:20 +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
f3b22e51a3 Optimize Geometry::PointIsInSquare, which is used quite often in performance hotspots.
Original patch by mimo. Refs #3588

This was SVN commit r17236.
2015-11-11 20:02:47 +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
mimo
51ec6f4728 improve function RasterizeRectWithClearance, about 40% faster, ref #3588
This was SVN commit r17212.
2015-11-09 21:16:46 +00:00
wraitii
0ba9fa1cc1 Optimize RasterizeRectWithClearance slightly further. Thanks mimo for noticing.
This was SVN commit r17209.
2015-11-08 18:08:49 +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
fe040c695f Change the shape rasterization to not use DistanceToSquare, which often called sqrt. This apparently reduces total turn time by as much as 5% (!)
Refs #3368

This was SVN commit r17207.
2015-11-08 17:24:59 +00:00
wraitii
dd6d09521c Not sure how but I messed up the previous commit.
This was SVN commit r17205.
2015-11-08 16:44:08 +00:00
wraitii
42d0e6d46e Optimize the hierarchical pathfinder's "makeGoalReachable" slightly. Does not affect simulation results.
This was SVN commit r17204.
2015-11-08 16:39:43 +00:00
mimo
cd025b2069 fix typo
This was SVN commit r17203.
2015-11-08 13:09:49 +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
70d5e4e318 fix the INVERTED_CIRCLE and INVERTED_SQUARE PathGoal, fixes #3405
This was SVN commit r17142.
2015-10-18 20:21:20 +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
c0b4e78801 Fixes stream serialization bug on OS X 10.8 and older, which caused instant OOS in multiplayer games, fixes #3108.
Fixes test failures on OS X 10.7 and older, refs #3109

This was SVN commit r17133.
2015-10-15 03:31:30 +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
e0093c8ecc Remove an unused function (it was used by the old pathfinder).
This was SVN commit r17103.
2015-10-04 18:02:16 +00:00
Itms
2505a2ec70 Remove a preprocessor ambiguity, fixes #3480.
This was SVN commit r17101.
2015-10-04 17:21:36 +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
Itms
2132f868b8 Replace the rectangle rasterization algorithm by the original version from Philip's branch.
The current version is flawed (it doesn't handle the partially
obstructed cells as it should).

Refs #3410.

This was SVN commit r17084.
2015-09-27 16:46:26 +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
dcf8e66aca Update the goal serialization for 03d2c5e40b. Fixes #3425.
This was SVN commit r17068.
2015-09-24 17:13:39 +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