1
0
forked from mirrors/0ad
Commit Graph

119 Commits

Author SHA1 Message Date
bb a1ddf6114a Allow units to be positioned with freehand placement
Patch By: OptimusShepard
Comments By and Agreed With: elexis
Comments By: Imarok
Differential Revision: D1021
fixes #4791

This was SVN commit r21378.
2018-02-25 22:17:19 +00:00
s0600204 c8fda40b02 Implement an in-game Template Details Viewer
Right-click on icons of units, structures, technologies, flora, fauna,
etc. and view additional details.


Reviewed By: elexis
Fixes: #3212
Differential Revision: https://code.wildfiregames.com/D297
This was SVN commit r21310.
2018-02-21 21:39:00 +00:00
elexis 6319647795 Implement JS random map library counterpart to 2180862d40 and 204b04f2d4, refs #4816, #5018.
Refactors the heightmap and terrainmap copying code from 33e3e6c2ab and
the bicubic interpolation code from 64b1da0ddf / 93aefe0787 which were
unused since f5375cbcb9.

This was SVN commit r21133.
2018-02-07 02:08:20 +00:00
elexis f63cc9a1d2 Static Vector2D min and max.
This was SVN commit r21129.
2018-02-06 22:52:53 +00:00
elexis 23820c5713 Static equality test for vectors.
This was SVN commit r21106.
2018-02-02 20:13:31 +00:00
s0600204 db1ec0f7f7 Add a couple of string manipulation functions to globalscripts.
(And use them where appropriate.)

This was SVN commit r21101.
2018-02-02 01:37:39 +00:00
elexis 30fe33bb0b Add another Vector2D rotation test (illustrating the most common rmgen rotation transformation).
TS_ASSERT_EQUALS_APPROX must not silently pass if epsilon wasn't given.
Sort Vector2D.rotate summands by component rather than saving one
character.

This was SVN commit r21062.
2018-01-29 09:51:20 +00:00
elexis de3c50adf0 Floor operation on vectors.
Useful to get the coordinates of a tile of an entity position for
instance.

This was SVN commit r21024.
2018-01-27 01:38:23 +00:00
elexis 442c9848b8 Merge all playerX and playerZ arrays into one array of Vector2D items.
This way random map scripts can do vector math and pass the result to
library functions that do further vector math on them and leave shorter
code, refs #4845.
Pass tilegrid coordinates rather than percent numbers to the playerbase
functions too, refs #4939.
Some more mapCenter calls, refs #4854.

This was SVN commit r20882.
2018-01-16 04:39:31 +00:00
elexis 36400458bf Add randomAngle helper function to abbreviate calls.
This was SVN commit r20874.
2018-01-15 14:20:57 +00:00
s0600204 f6b5488a24 Move unravelPhases function from structree to globalscripts for use in AI init.
Reviewed By: mimo
Differential Revision: https://code.wildfiregames.com/D1183
This was SVN commit r20750.
2018-01-02 06:38:09 +00:00
elexis c90d72deb5 Replace DataTemplateManager simulation component with a globalscript, refs #4868.
Removes the serialization of JSON files, shrinking savegame files and
rejoin states sent across the network, refs #3834, #4239, #3909,
f24523dc8f.
Removes the AI C++ code to read JSON files from e33d4a52e9 since the AI
can now use the globalscript.
Allows the AI to read Aura templates and removal of GUIInterface code to
improve performance.
Serialization of the JSON objects in other simulation components was
removed in 9c0e37f2c0 / D1109, a6f14f5631 / D1130.

Serialization removal planned by sanderd17
AI part proofread by mimo
Simulation part proofread by bb
Discussed with Itms on irc

Differential Revision: https://code.wildfiregames.com/D1108
This was SVN commit r20737.
2017-12-31 01:02:21 +00:00
elexis fd08061ab6 Allow Vectors to be rounded.
For instance useful when working with location vectors on arrays, such
as terrain generation in random map scripts, refs #4845.

This was SVN commit r20723.
2017-12-29 15:37:16 +00:00
elexis 774a049cdd Vector cleanup.
Improve some of the comments mentioned by fatherbushido in b3dbcc457b.
Rename avg to average and test it.
Inline constructor defaults.
Don't use array functions nor for...of loops here to maximize the
performance, refs c751500907.

This was SVN commit r20706.
2017-12-28 01:54:56 +00:00
elexis 58b2e2baf4 JS file listing cleanup, refs #4868.
Add global filelisting helper.
Remove getXMLFileList and getJSONFileList from the unsorted
gui/common/functions_utility.js.
Make hidden maps prefix more transparent.
Remove hardcoded magic numbers that are string lengths.
Shorten loading screen code and separate pathnames from code.

Differential Revision: https://code.wildfiregames.com/D1107
Reviewed By: bb
This was SVN commit r20692.
2017-12-26 22:44:37 +00:00
bb 3eef53b124 Fix missing i's in 1ca585ccf2
Spotted By: s0600402
Noticed in review by fatherbushido, but didn't came into patch by
Grugnas, and later forgotten to yell about again by bb when accepting.

This was SVN commit r20643.
2017-12-11 15:23:34 +00:00
s0600204 7aae697bc5 Remove civ-specific hardcoding in rmgen wall-placement script.
Original Patch By: FeXoR
Reviewed By: FeXoR
Commented On By: elexis
Refs #2944
Differential Revision: https://code.wildfiregames.com/D900
This was SVN commit r20625.
2017-12-10 03:12:54 +00:00
elexis 32981e6f5e Allow the AI to read JSON simulation files and use the Resources prototype from 52f311da2b for the AI directly.
Removes the workaround copy of the resources JSON each turn in
GetSimulationState.

Refs #3934, #4868
Differential Revision: https://code.wildfiregames.com/D1119
Reviewed By: mimo
This was SVN commit r20600.
2017-12-06 20:26:01 +00:00
elexis 7fda43d14e Expose the same file listing function to JS GUI, simulation and rmgen, refs #4868.
Removes the workaround and limitations of globalscripts Resources
(52f311da2b) and loadCivFiles (89055ef858), allowing them to actually
become actually global.
Rename to ListDirectoryFiles as proposed by wraitii.

Differential Revision: https://code.wildfiregames.com/D1103
Reviewed By: s0600204
Proofread by: echotangoecho
Comments by: wraitii
Relevant discussions with leper in #4868, D1062

This was SVN commit r20586.
2017-12-04 23:46:55 +00:00
elexis 0cfe9ab153 Expose the same ReadJSONFile function to simulation, GUI and rmgen.
This way globalscripts/ can use the same code in all contexts, all paths
are absolute and only one function name is needed.
Remove ReadCivJSONFile which is redundant with this function as well.
Restrict read access of rmgen/ to rmgen/ and simulation/, refs
4275a8a33c, 89055ef858.

Refs #4868
Differential Revision: https://code.wildfiregames.com/D1085
Reviewed By: wraitii
Partial agreement with leper

This was SVN commit r20576.
2017-12-03 23:02:27 +00:00
elexis 89055ef858 Delete GetCivData from MapGeneratorWorker.cpp which is redundant with the ReadJSONFile from 871ed04521.
Unify civ file loading from gui/common/functions_civinfo.js and
rmgen/library.js in globalscripts/Templates.js.
Delete the two forgotton headers in 4275a8a33c.

Refs #4868, #4804, D900.
Differential Revision: https://code.wildfiregames.com/D1062
Discussed with: leper

This was SVN commit r20528.
2017-11-26 13:30:57 +00:00
elexis 8ee2a8aca2 Add Vector2D angleTo and Vector3D horizAngleTo function.
Use it to illustrate the building placement preview rotation and
focusing of attacked units.

Split from D1037
Patch By: temple
This was SVN commit r20496.
2017-11-21 16:17:30 +00:00
elexis eb96b61954 Add rotateAround Vector2D function.
Remove the rmgen rotateCoordinates helper function from 4256744e26 and
clean the implementation of that commit, refs #4845, #4804.
Deepfreeze mapCenter vector from 5256d8497e used here to prevent
accidental overwrites with the mutating Vector2D functions, refs #4854.

This was SVN commit r20468.
2017-11-17 00:10:29 +00:00
elexis a2f7dba96c Move simulation test for approximate equality from e18598cd62 to the test setup, so that it can be reused.
Remove unneeded helper variable from e18598cd62 as intended by
7778a7b436 by using the set method.

This was SVN commit r20467.
2017-11-16 23:54:38 +00:00
elexis db1d94bad0 Further clarify geometric meaning of the river painting in a9b963c3a5 and e596ef6011.
Refer to the normalized river vector instead of the river vector divided
by the length of the river.
Rename mag to magnitude.

This was SVN commit r20435.
2017-11-10 17:17:59 +00:00
elexis b3dbcc457b Add Vector3D crossproduct and Vector2D perpendicular function.
Describe geometric features of the two cross- and dot-product functions.

This was SVN commit r20428.
2017-11-09 19:04:39 +00:00
elexis c7fee7f04f Remove wrong tension comment from a482f7bc1e and mention that this functon can compute a cardinal spline.
Keep the Catmull-Rom spline comment as ambiguous as the definitions we
found.

Differential Revision: https://code.wildfiregames.com/D1003
Reviewed By: fatherbushido
This was SVN commit r20394.
2017-11-01 16:02:08 +00:00
mimo 502ebdbe42 Adapt trade gain normalization to map size (increased on small maps and decreased on large maps), and slow down the increase of the gain at very large distances.
Reviewed By: Grugnas
Differential Revision: https://code.wildfiregames.com/D879
This was SVN commit r20391.
2017-10-31 17:52:08 +00:00
elexis a482f7bc1e Extend the cubicInterpolation function to consume a tension argument allowing to modulate the smoothness of the interpolation.
Thereby unify the chordal Catmull-Rom spline interpolation of the
ClumpPlacer (C++ bd53b14f58, JS 0e0ed94926),
the copy of that in the PathPlacer (bc805bd357, refs #892) and
the centripetal Catmull-Rom spline of the bicubicInterpolation function
from 93aefe0787, refs #4218
and don't claim the latter to be a uniform Catmull-Rom spline.

Reviewed in part by fatherbushido, discussed in 93aefe0787.

This was SVN commit r20383.
2017-10-30 20:43:01 +00:00
elexis 6590f301c2 Add Math.square to compute the square of a number without the need to repeat the term, without using the slower Math.pow.
Start unifying the euclidian distance functions instead of adding yet
another helper function to the random map script library after this
diff.

Differential Revision: https://code.wildfiregames.com/D969
Math.square accepted by mimo
Includes changes proposed by bb, fatherbushido

This was SVN commit r20328.
2017-10-22 20:46:41 +00:00
mimo 3c2f5ca5a6 rework a bit D964
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D967
This was SVN commit r20323.
2017-10-21 19:05:52 +00:00
mimo 23893415d1 Unify trade gain computation between simulation and ai
Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D964
This was SVN commit r20320.
2017-10-21 08:40:11 +00:00
elexis e18598cd62 Fix Vector.js rotate oversight in 7778a7b436 (this.x may not be modified before reading again and sin/cos should not be computed twice).
Extend the tests of rotate in 99494251a1 to reveal the bug.
Add non-static clone functions for vectors (as the static ones were
incorrectly removed in e95f4e9744).
Math.pow performance is investigated separately, refs P85.

Checks and balances by mimo, leper, FeXoR and fatherbushido

This was SVN commit r20272.
2017-10-08 15:25:21 +00:00
elexis 7778a7b436 Readability improvements of globalscripts vector.js.
In compareLength, use Math.sign to replace a ternary + isNaN check.
In distanceToSquared, Use Math.pow(distance, 2) to avoid repetition of
the distance, inline its value to remove the then unneeded variables.

This was SVN commit r20263.
2017-10-06 18:20:57 +00:00
leper 725aa8a686 Move damage types definition to a new helper similar to how resources are handled.
This should make adding new damage types a little easier, however such
an
extension would still need changes to the AI, and to all templates that
have Armour, Attack, or DeathDamage.

Reviewed By: elexis
Differential Revision: https://code.wildfiregames.com/D866
This was SVN commit r20203.
2017-09-18 16:33:56 +00:00
bb 0353b9ff49 Change comment for the MatchesClassList function so we can use it for other things aswell
Useful for f.e. required techs and attack types

Reviewed By: leper
Differential Revision: https://code.wildfiregames.com/D869
This was SVN commit r20188.
2017-09-15 16:07:04 +00:00
elexis e95f4e9744 Unify deepcopy and clone.
Delete clone globalscripts function introduced by 9f47ed536d.
Rename the better supported deepcopy function to clone.
Delete unused Vector2D and Vector3D clone prototype functions that can
just use clone if needed.

Differential Revision: https://code.wildfiregames.com/D870
Reviewed By: leper
This was SVN commit r20125.
2017-09-06 20:58:27 +00:00
elexis 9cb0a60d73 Deepfreeze Aura, Technology and Resource Templates, Simulation states, GameAttributes and few other JS objects.
This reveals unintentional modifications to these objects which would
most often imply hidden bugs.

Differential Revision: https://code.wildfiregames.com/D829
Fixes #4257
Refs #3647

This was SVN commit r20100.
2017-09-03 16:37:09 +00:00
bb 1ca585ccf2 Allow BuildRestrictions Min Max Distance to be modified by auras/technologies
Patch By: Grugnas
Differential Revision: https://code.wildfiregames.com/D276
This was SVN commit r20079.
2017-08-30 13:02:13 +00:00
fatherbushido 523ae47ee2 Splash damage on death. When an entity dies, it can do a splash damage. Fire ship and fire raiser templates provided as example. Fix #1910.
Patch by Mate-86.
Advices from leper.
Reviewed by fatherbushido.
Differential Revision: https://code.wildfiregames.com/D451
This was SVN commit r19950.
2017-08-07 12:38:57 +00:00
elexis 00173a6e13 Group starting positions of players by team on the new random map sripts in Alpha 20 and 21, making them much more playable.
Use stronghold starting position style with 33% instead of 50%
probability.

Differential Revision: https://code.wildfiregames.com/D664
Reviewed but not accepted by: bb (everything) and fatherbushido (Heaps
permutations)
Catch: This must become more efficient if the playercount will be
greater than 8, refs #4004.

This was SVN commit r19840.
2017-06-28 17:09:21 +00:00
s0600204 f38c0c3876 Fix df89091c48 not handling upgradeable units correctly.
Tested By: wowgetoffyourcellphone
Refs: #4079
Differential Revision: https://code.wildfiregames.com/D517
This was SVN commit r19711.
2017-06-01 18:28:49 +00:00
s0600204 df89091c48 Show entity upgrades in the Structure Tree
Reviewed By: bb
Trac Tickets: #4079
Differential Revision: https://code.wildfiregames.com/D92
This was SVN commit r19600.
2017-05-17 18:41:23 +00:00
fatherbushido 11f90549c7 Add missing roundings for garrisoned arrows tooltips. Reviewed by elexis.
Differential Revision: https://code.wildfiregames.com/D470
This was SVN commit r19551.
2017-05-10 13:04:35 +00:00
fatherbushido 228ba51d5c Aura Range tooltip. Reviewed by elexis.
Differential Revision: https://code.wildfiregames.com/D458
This was SVN commit r19544.
2017-05-09 12:55:56 +00:00
fatherbushido 17aa212c93 Clean a bit auras gui info parsing
Summary: (Title is clumsy)

Test Plan:
Check for example auras tooltip:
structree
entity tooltip
construction panel
wall tooltip too

Reviewers: elexis

Reviewed By: elexis
Subscribers: Vulcan

Differential Revision: https://code.wildfiregames.com/D447
This was SVN commit r19526.
2017-05-07 18:38:41 +00:00
elexis a227a7f45b Remove optional arguments from randFloat, since the function can be called from the simulation and that should explicitly specify arguments if the defaults aren't entirely self-evident.
Make a lot of calls easier to read.

Differential Revision: https://code.wildfiregames.com/D372
Patch By: bb
Refs #4326 D121

This was SVN commit r19464.
2017-04-27 14:57:21 +00:00
wraitii d15b35357e Show effects of game-start tech modifications in Structure Tree.
This also refactors code so that external callers will have an easier
time getting a template value as modified by technologies.

Patch by s0600204.

Reviewed by bb and wraitii.
Differential Revision: https://code.wildfiregames.com/D154
This was SVN commit r19410.
2017-04-11 14:36:30 +00:00
elexis 2aae9eaaf1 Resource Trickle tooltip.
Add early return to hide loot tooltip if there is no loot (for mods).

Differential Revision: https://code.wildfiregames.com/D292
Reviewed By: fatherbushido
Fixes #4118

This was SVN commit r19387.
2017-04-08 06:45:22 +00:00
elexis da2b89583a Replace many deprecated randInt calls with randBool.
Add optional probability to randBool to receive true and use where
applicable.

Patch By: bb
Differential Revision: https://code.wildfiregames.com/D235
Refs #4326 D121

This was SVN commit r19355.
2017-03-28 04:28:55 +00:00