Commit Graph

114 Commits

Author SHA1 Message Date
Ykkrosh 754e76e4a1 Fix non-PCH build
This was SVN commit r15401.
2014-06-19 23:36:09 +00:00
Ykkrosh d936bde74a Dynamic message subscriptions.
Allow components to individually subscribe/unsubscribe to messages,
instead of statically subscribing the entire component type. Use this
for most Interpolate/RenderSubmit messages, to avoid the performance
cost of passing those messages to a large number of components that will
just ignore them anyway.

On Azure Coast this reduces total time per frame by about 30% on a
CPU-bound system.

This was SVN commit r15400.
2014-06-19 23:20:12 +00:00
sanderd17 b4f3b503f2 code style cleanup
This was SVN commit r15273.
2014-06-02 15:48:37 +00:00
sanderd17 a500826ae4 Since the VFS logs the missing files now, there's no reason to crash on it.
This was SVN commit r15272.
2014-06-02 15:41:41 +00:00
Ykkrosh 1882f28504 New unit renderer.
Instead of each CCmpVisualActor rendering itself individually, collect
all the units in a single CCmpUnitRenderer. This avoids the overhead of
doing Interpolate/RenderSubmit calls every frame for every object in the
world. It also allows more efficient culling.

CCmpUnitRenderer knows the positions of each object at the start and end
of each turn, and computes the bounding sphere of the object along that
path. That allows quick culling without recomputing the precise
interpolated transform every frame. (In the future it could be improved
much more.)

Clarify and clean up the sending of PositionChanged messages, and add
new InterpolatedPositionChanged.

Remove the forceFloating parameter from GetInterpolatedTransform, since
it doesn't fit the new design. Replace it with a (non-synchronised) flag
in CCmpPosition.

Move construction progress from CCmpVisualActor to CCmpPosition, so that
it consistently affects all position/transform computation.

Refs #2337.

This was SVN commit r15265.
2014-06-01 18:24:50 +00:00
Ykkrosh d117d96d22 Simplify component deserialization.
Deserialize SYSTEM_ENTITY before any other entities. This makes it safe
for Deserialize() methods to access system components (mirroring how
Init() can already access system components).

Add a Deserialized message, sent after all entities have been
deserialized, to help with some other sequencing problems.

This was SVN commit r15264.
2014-06-01 18:14:09 +00:00
sanderd17 7ff5fbda2b Allow system components to be registered on the scripting side (so mods can make their own system components).
This was SVN commit r15157.
2014-05-18 13:44:08 +00:00
sanderd17 b7f6c00c2b Mark all components as global variables and allow to re-register existing components to update their schema and/or message receiving methods.
This allows for components to be extended in other files, so mods don't
have to overwrite entire components.
Fixes #2517. Thanks to Rada for helping on this
(also fix some tests broken in the previous commit)

This was SVN commit r15150.
2014-05-18 08:20:02 +00:00
Yves e9e05f4efc Second (main) commit for the SpiderMonkey upgrade.
This commit contains all the required changes to our source files and
build scripts (hopefully).
A next commit will remove the old stuff of SpiderMonkey 1.8.5.

Spcial thanks to:
 - H4writer who helped a lot mainly with the performance issues we
had/have, but also with other problems or questions.
 - Leper for the review.
 - Historic_bruno for implementing the build scripts on Mac OS X and
testing on the Mac.
 - The people from the #jsapi channel and from
mozilla.dev.tech.js-engine who answered a lot of questions and helped
solving problems.
 - All the other people who helped

Refs #1886
Fixes #2442
Fixes #2416

This was SVN commit r14877.
2014-03-28 20:26:32 +00:00
sanderd17 f3714a7075 Fix invalid count for entityMaps
Improve error reporting on failed deserializations
Fixes #2328

This was SVN commit r14806.
2014-03-05 14:58:17 +00:00
wraitii 02860690eb fix unused parameter warning.
This was SVN commit r14789.
2014-02-26 19:16:44 +00:00
wraitii 3f78042f45 Fix tests and C++11 build.
This was SVN commit r14788.
2014-02-26 19:08:03 +00:00
Yves 4b1297b328 Removes g_ScriptingHost and implements global to compartment 1 to 1 relation.
Each GUI Page gets its own compartment and all ScriptInterfaces in the
same thread should now use the same JS Runtime.
This is required for the SpiderMonkey upgrade.
Check the ticket for details.

Closes #2241
Refs #1886
Refs #1966

This was SVN commit r14496.
2014-01-04 10:14:53 +00:00
historic_bruno b1c081e36d Set svn:eol-style=native, fix some inconsistent line endings
This was SVN commit r14299.
2013-12-06 00:42:50 +00:00
RedFox 5d9b2b95b0 Ticket #2127 - Performance and style improvements in scriptinterface.
No real behavior changes, only code maintenance.

Fixed signed/unsigned mismatch in EntityMap.h

This was SVN commit r13865.
2013-09-16 19:10:06 +00:00
RedFox 1b6a5fa802 This was SVN commit r13861. 2013-09-15 21:37:05 +00:00
RedFox 9694eec8b8 As per ticket #1707. Some minor improvements to spatial subdivision. Makes way for future changes in RangeManager.
Right now merely improves memory usage.

This was SVN commit r13854.
2013-09-15 14:03:53 +00:00
Ykkrosh 05422ad545 Avoid slightly-expensive QueryInterface() calls
Add CEntityHandle which wraps an entity_id_t and also has a pointer to a
per-entity array of IComponents. QueryInterface/CmpPtr on a handle just
involve a couple of pointer dereferences instead of a map lookup.

This requires sizeof(void*) per registered interface type per entity,
which is currently ~0.5KB per entity, which shouldn't be a problem.

This was SVN commit r13825.
2013-09-11 20:41:53 +00:00
stwf b1bd61938e add file notification to Mac ticket 514, also change name of class FileInfo to CFileInfo to ease Mac development
This was SVN commit r13821.
2013-09-10 14:17:04 +00:00
sanderd17 d037d97d55 disable querying of local entities with a component. Avoids OOS problems. Patch thanks to historicbruno. Fixes #2119
This was SVN commit r13820.
2013-09-10 12:27:59 +00:00
leper 53a5781c66 Increase simulation script runtime size again. Refs #1436, #1966 and #2035.
This was SVN commit r13794.
2013-09-01 23:29:21 +00:00
historic_bruno 7ff167e7de Removes more unused variables, based on patch by Markus, refs #1852.
Adds TODOs to use POT textures in fancy water rendering.

This was SVN commit r13663.
2013-08-15 18:25:32 +00:00
historic_bruno 1712b0f42d Increases simulation script runtime to 32 MB to reduce OOM errors, refs #1436, #1966, #2035
This was SVN commit r13659.
2013-08-15 05:15:54 +00:00
alpha123 8c74df2acd Give an elevation advantage to ranged units. Patch by sanderd17. Fix #1960.
This was SVN commit r13626.
2013-08-03 19:20:20 +00:00
historic_bruno 39c0498811 Changes terrain anchoring to use faster CalcExactNormal instead of CalcNormalFixed, refs #1988, #2039
This was SVN commit r13571.
2013-07-17 05:42:16 +00:00
historic_bruno d2b0d25457 Fixes macro redefinition of FACILITY_VISUALCPP in VC2012 (it's defined in winerror.h).
Removes obsolete hack for old Boost and VC2005 (broke VC2005 build with
modern Boost).

This was SVN commit r13433.
2013-05-28 01:14:41 +00:00
historic_bruno 31be9cd0de Adds building previews that rise during construction, fixes #1174, refs #21.
Adds scaffold support for foundations, includes two examples for 3x3 and
4x4, fixes #1581.
Extends CmpVisualActor and CUnit to support random variant seeds.
Fixes bug in actor hotloading.
Fixes serialization failure caused by destroying entities in OnDestroy
handlers.

This was SVN commit r13143.
2013-02-03 02:08:20 +00:00
quantumstate 3653fe5d3a Added support for putting technologies in folders. Fixes #1462.
This was SVN commit r12440.
2012-08-15 22:25:25 +00:00
historic_bruno 99d04e93bb Implements global tech modification function. Fixes #1358, refs #1520.
Applies tech modifications to template data returned by GuiInterface.
Extends engine to load arbitrary global scripts, separates this from RNG
replacement. Refs #1193.
Loads global scripts for most script contexts for consistency.
Adds simulation tests for global scripts.

This was SVN commit r12056.
2012-07-03 02:16:45 +00:00
vts 490182ddd0 Wall placement. Closes #786.
This was SVN commit r11760.
2012-05-05 19:22:22 +00:00
historic_bruno 32d2927449 Adds UTF-8 support for JavaScript files.
This was SVN commit r11750.
2012-05-04 21:48:46 +00:00
leper 58836c624a Read formations from civ JSON files. Fixes #1234, #601.
This was SVN commit r11735.
2012-05-03 23:32:10 +00:00
vts 34fc883317 Pretty unit selection overlay rings. Fixes #824.
This was SVN commit r11623.
2012-04-22 04:04:02 +00:00
quantumstate 755e407aeb Technologies. Refs #3. Full unlocking technology implementation. Only unit gathering rates can be modified currently because the patch was big enough already.
This was SVN commit r11584.
2012-04-20 17:21:04 +00:00
leper c56f96040e Implement healing. Fixes #999.
This was SVN commit r11536.
2012-04-17 20:22:13 +00:00
vts d7128572ae Removed logger output for XML token node tests
This was SVN commit r11360.
2012-03-17 23:03:02 +00:00
vts 2207786c05 Missed a bit of indentation in previous commit
This was SVN commit r11343.
2012-03-15 22:58:25 +00:00
vts 31da0a746b Fixes crash when removing non-existent tokens from XML 'token' nodes
This was SVN commit r11342.
2012-03-15 22:57:08 +00:00
historic_bruno b7e848de23 Avoid unused parameter warnings due to safe bool operators.
This was SVN commit r11142.
2012-02-25 06:24:24 +00:00
Ykkrosh 5a4aa790ad Fix spelling and whitespace and add rationale
This was SVN commit r11088.
2012-02-17 14:34:44 +00:00
historic_bruno 08bd07ddd6 Adds safe bool operator to ICmpPtr, replacing the null() method, based on patch by leper. Also changes bool operator in AtSmartPtr to safe bool. Fixes #1077.
Changes some CmpPtr variable names for consistency.

This was SVN commit r11036.
2012-02-08 02:46:15 +00:00
Ykkrosh 6399ec0cd2 # Partial support for saved games with AI.
Support cancelling loads while inside a loader callback.
Fix use of ArchiveReader/Writer since their API changed.
Improve error-detection in deserializer to avoid crashes.
Report deserializer errors to users.
Expand load-error message box to fit message about invalid saved games.

This was SVN commit r10787.
2011-12-22 14:04:32 +00:00
Ykkrosh a739b8f309 Fix some saved-game OOS errors
This was SVN commit r10441.
2011-10-27 20:12:00 +00:00
Ykkrosh 29e4f633f1 Add initial serialization test mode.
Reduce some dependencies on CSimulation2 to provide more flexibility.

This was SVN commit r10426.
2011-10-24 14:31:05 +00:00
Ykkrosh 49af1880f8 Fix tests
This was SVN commit r10035.
2011-08-18 21:12:15 +00:00
Ykkrosh 609f1643d5 Fix -Wconversion warnings in simulation code.
Cast to smaller integer types explicitly.
Generally avoid platform-dependent types (size_t) in simulation code.
Use float versions of math.h functions, not double.

This was SVN commit r10017.
2011-08-16 11:18:32 +00:00
Ykkrosh 2f0bd8d8b0 Upgrade to SpiderMonkey 1.8.5 (fixes #734)
This was SVN commit r9852.
2011-07-16 23:24:14 +00:00
Ykkrosh b6d04004b6 Avoid errors when using planes in formations, by not allowing them to join formations
This was SVN commit r9776.
2011-07-07 17:05:22 +00:00
janwas 4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
Ykkrosh 3fb9d9e5f6 Fix tests
This was SVN commit r9178.
2011-04-06 00:53:35 +00:00