Commit Graph

13652 Commits

Author SHA1 Message Date
28bdd8540f Quite a lot of stack rooting related changes.
Changes GetProperty, SetProperty and HasProperty and a few other
functions to take handles. The conversions to CScriptVal or
CScriptValRooted at some places should be removed in the future. I've
done that to avoid an even larger patch.

Refs #2415
Refs #2462

This was SVN commit r15568.
2014-07-26 22:33:16 +00:00
e818b08344 Better support for SpiderMonkey rooted types in the ScriptInterface.
* Adds additional overloads/specializations which are required when
passing JS::Handle<T>/JS::MutableHandle<T> types to different functions.
* Replaces GetPropertyJS with a GetProperty specialization.
* Allows us to avoid the implementation of ToJSVal specializations for
JS::Value and JS::HandleValue. Such conversions should only happen if
there's no way around it and if you are aware of it.
* Adds test to make sure that all potentially required specializations
with custom implementations are instantiated. This should help prevent
introducing bugs in temporarily unused code.

Refs #2415

This was SVN commit r15567.
2014-07-26 20:31:29 +00:00
30f7837c44 Should be workaround for issue #2684
This was SVN commit r15566.
2014-07-26 17:12:45 +00:00
9cd75067bc Workaround for issue #2486
This was SVN commit r15565.
2014-07-26 17:09:49 +00:00
ea708e14bf Some changes on the VisibilityUpdate message system, aimed at correcting recent OOS problems.
I still experience troubles with serialization tests but I played a few
games without OOS. At least these changes will help us to debug more
efficiently the remaining problems.

Fixes initialization of visibility data and update order for LoS-related
systems (territory borders, etc).
Also removes a C-like array and fixes a player ID shifting.

Refs #599

This was SVN commit r15563.
2014-07-26 16:02:18 +00:00
e3888448c4 Removes rooting test.
Rooting works different now and the CScriptVal types are going to be
removed. We will need rooting tests again, but they will have to work
completely different than this test implementation.

Refs #2415

This was SVN commit r15562.
2014-07-26 14:07:56 +00:00
f41d4fa48e Fixes compartment mismatch introduced in a5ebd8dafd.
Also modifies some related functions to use SpiderMonkey stack rooting
types instead of CScriptValRooted.

Refs #2415

This was SVN commit r15561.
2014-07-26 10:58:24 +00:00
5c3f1b6dba fix previous commit
This was SVN commit r15560.
2014-07-25 21:24:05 +00:00
074cf06803 Petra: deals more efficiently with naval transport
This was SVN commit r15559.
2014-07-25 18:16:33 +00:00
05de9def0b Remove unused --with-system-enet option (see 6bec648833) from premake.
Sort options in premake.

This was SVN commit r15558.
2014-07-25 13:50:59 +00:00
f017922910 Update system icons to the newer logo and add higher resolution images to the ico/icns sets. (the OS X icon might need to be checked as I had to use an online converter to get that.)
This was SVN commit r15557.
2014-07-24 23:12:46 +00:00
7c82e59ce5 Replace or remove uses of Engine.Console_Write. Patch by Adrian Fatol. Fixes #2141.
Cleans up list utility functions a bit.
Removes Engine.Console_Write.

This was SVN commit r15556.
2014-07-24 21:27:24 +00:00
4278e93b97 Petra: improve AI behaviour in scenarios without building possibility
This was SVN commit r15555.
2014-07-24 21:26:53 +00:00
f8cbef8379 fix previous commit
This was SVN commit r15554.
2014-07-24 21:05:16 +00:00
c5929ca7d5 make tooltip agree with buildrestrictions
This was SVN commit r15553.
2014-07-24 20:59:25 +00:00
a574ca2e8f Petra: improve use of garrisoning for defense + some cleanings
This was SVN commit r15552.
2014-07-23 17:57:32 +00:00
2eb12c13ec give war ships at dock for carthage, for better balance of naval maps
This was SVN commit r15551.
2014-07-23 17:18:22 +00:00
600e0a4081 Fix an oversight in CcmpPosition from the turret changes. Reported on IRC by Falsevision.
This was SVN commit r15550.
2014-07-23 13:02:42 +00:00
a5ebd8dafd Load trigger scripts in serialization test mode.
This was SVN commit r15549.
2014-07-22 23:30:27 +00:00
bfe1e9f182 fix #2603
This was SVN commit r15548.
2014-07-22 21:23:25 +00:00
a7b18d02bf Add serialization test support for replays.
This was SVN commit r15547.
2014-07-22 19:41:49 +00:00
b41289807a fix a rare JS warning
This was SVN commit r15546.
2014-07-22 18:20:47 +00:00
68121f387c Don't cache (and serialise) all technology templates multiple times. It's still cached once in the TechnologyTemplateManager.
This was SVN commit r15545.
2014-07-22 16:18:37 +00:00
9d505f2fd1 fixes petra javascript warnings
This was SVN commit r15543.
2014-07-21 16:19:59 +00:00
a9048fa43d Adds support for passing JS::HandleValue to SetProperty and CallFunctionVoid without using ugly casing.
Also includes one little "demo-usecase", but additional code will be
changed to use that in future commits.

Refs #2415
Refs #2462

This was SVN commit r15542.
2014-07-20 19:45:18 +00:00
31f9ca9ebf Implements CallFunction with JS::MutableHandle<T> return type.
Changes the CallFunction implementation to use macros because otherwise
we'd have to write twice as many functions manually.
Adapts GetSavedGameData to use the new function template. Additional
callers will be changed in future commits.

Refs #2415
Refs #2462

This was SVN commit r15541.
2014-07-20 15:08:28 +00:00
3782857333 Petra: small fixes + reformat debug outputs
This was SVN commit r15540.
2014-07-19 16:17:09 +00:00
1d35d22a7b let the AI know when a building is decaying
This was SVN commit r15539.
2014-07-17 19:56:54 +00:00
e1d4c10f13 Recompute the number of LoS tiles whenever these tiles are reset (especially when loading serialized data).
Also add a verification about LoS tiles in the tests.

Fixes #2678
Refs #599

This was SVN commit r15538.
2014-07-17 19:08:06 +00:00
98281689f2 Petra: fix a rare bug where the AI would never attack + some attack tunings
This was SVN commit r15537.
2014-07-17 17:04:13 +00:00
de9ae66326 Petra: improve support for wonder games
This was SVN commit r15535.
2014-07-15 19:07:11 +00:00
52f4cda439 Changes ToJSVal to take JS::MutableHandleValue instead of JS::Value&.
JS::MutableHandleValue is similar to JS::HandleValue, but the whole
JS::Value it points to can be replaced.
This change is needed for support of exact stack rooting and moving GC.
Contains a few other trivial API adjustments and style improvements too.

Refs #2462
Refs #2415

This was SVN commit r15534.
2014-07-14 19:52:35 +00:00
17634d7507 Move the minimap to only use the shader pipeline. Should make it OpenGL ES compatible (untested).
This was SVN commit r15533.
2014-07-14 17:15:22 +00:00
47426b2dad Per scythetwirler's suggestion, add some tables on my template analyzer script to compare units to their parent template.
This was SVN commit r15532.
2014-07-14 16:25:39 +00:00
09e04cb741 Adds missing request (fixes tests in debug mode).
This was SVN commit r15530.
2014-07-13 22:08:29 +00:00
882f3406e3 Syncs _test.sim required simulation data with public mod, copies RelaxNG schemas for future use
This was SVN commit r15528.
2014-07-13 21:29:30 +00:00
a47dda7d66 Disables MSVC CRT deprecation warnings when building Atlas w/ wxWidgets 3.0
This was SVN commit r15527.
2014-07-13 21:19:30 +00:00
a82d32bd3c Fixes MSVC warning C4189: 'componentManager' : local variable is initialized but not referenced (Script_RegisterComponentType_Common is a static member function, so an instance of CComponentManager isn't needed)
This was SVN commit r15526.
2014-07-13 20:38:34 +00:00
7b15b526ac Fixes tests.
Changes direct access of EndGameManager.gameType to getter function, by
convention

This was SVN commit r15525.
2014-07-13 19:45:44 +00:00
1b5ab8142e Makes custom JS objects compatible with SpiderMonkey ESR31.
In v24 you called JS_InitClass and passed in a definition of JSNative
functions. Later you could call JS_NewObject with this class and the
object would get a prototype with the specified JSNative functions.
In ESR31 you now have to explicitly store the prototype object returned
by JS_InitClass and pass it as prototype argument to JS_NewObject to
achieve the same.
This change modifies our existing ScriptInterface implementation for
custom object types a bit and uses it at places where the JSAPI was used
directly before.

Refs #2462

This was SVN commit r15524.
2014-07-13 15:31:48 +00:00
f4949c82ff Fix how the template analyzer scripts takes walkspeed into account to some extent for ranged units, add a new script to create a RM to check balance using triggers, and add a readme file to try and explain the outputs and parameters better.
This was SVN commit r15523.
2014-07-13 14:22:32 +00:00
0cf5f57a68 Update of the template analyzer tool with more parameters and probably a more accurate representation of civs (with the right settings).
This was SVN commit r15522.
2014-07-13 10:20:35 +00:00
83d37f7857 Re-allow placing skirmish entities in Atlas. Refs #1696
This was SVN commit r15521.
2014-07-13 09:35:00 +00:00
7531a417e5 Fix re-garrisoning on visible garrison points after killing the units on that spot. Issue found by Stan.
This was SVN commit r15520.
2014-07-12 21:38:10 +00:00
eebc2f07bb Move some trees to accessible locations. Issue found by willsmith182.
This was SVN commit r15519.
2014-07-12 20:08:43 +00:00
5a3f07b3d9 Forgot to use excnObj in db9c20e0a9. Also roots an additional jsval.
This was SVN commit r15518.
2014-07-12 19:46:12 +00:00
db9c20e0a9 Changes FromJSVal to take a JS::HandleValue instead of JS::Value.
JS::HandleValue is basically a wrapper around a JS::Value that is safe
for exact stack rooting and moving GC.
I've tried to keep this changeset rather small and isolated and
therefore create additional JS::Rooted<T> values at some places where
the function should eventually directly take a JS::Handle<T>.
The functions "CallFunction" and "CallFunctionVoid" put their arguments
inside a JS::AutoValueVector because this will be passed directly to
"CallFunction_" with ESR31.

Refs #2462
Refs #2415

This was SVN commit r15517.
2014-07-12 19:08:39 +00:00
cfa59fc4e1 Changes our JSNative functions to use JS::CallReceiver/JS::CallArgs.
This is the new way for working with arguments in JSNative functions.
JS_THIS_VALUE, JS_ARGV, JS_SET_RVAL and direct access to vp or argc are
deprecated and will probably be removed in future versions of
SpiderMonkey.
CallArgs also takes care of proper rooting and you can get the values as
Handles or MutableHandles. The interface changes a little bit for ESR
31, but commiting this now still makes it easier and the changes shout
be straigtforward (search and replace more or less).

Refs #2462
Refs #2415

This was SVN commit r15516.
2014-07-12 16:55:09 +00:00
7a1b92bffc Update my "Template Analyzer" script to have output about civ too. Try to guess if they are balanced against each other.
This was SVN commit r15515.
2014-07-12 16:08:35 +00:00
319cf16b5a Small cleanup, including a correction in the templates documentation, and the removal of residues from the culling changes.
This was SVN commit r15514.
2014-07-12 16:03:37 +00:00