Commit Graph

5419 Commits

Author SHA1 Message Date
754e76e4a1 Fix non-PCH build
This was SVN commit r15401.
2014-06-19 23:36:09 +00:00
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
b8078deea8 Splitted the PO and POT files
Fixes #2494

This was SVN commit r15397.
2014-06-19 18:45:11 +00:00
f1379a77b5 Fix build for wxWidgets version 2.8.10 and older.
This was SVN commit r15383.
2014-06-17 19:32:33 +00:00
7d265cec80 Add copy-paste (CTRL+C/V) to Atlas. Patch by trompetin17. Fixes #96
This was SVN commit r15381.
2014-06-17 13:14:25 +00:00
02fd235bbd Make hotkeys and top panel fully moddable by splitting up the xml file. Allow entire directories to be loaded via an 'include' to provide extra moddability (modders don't have to edit any files, they can just add new ones).
This was SVN commit r15380.
2014-06-17 13:03:55 +00:00
2c9939ac74 Adds Relax NG Compact syntax grammars for most of the XML formats in the engine.
Adds converted Relax NG XML grammars for each (Note: don't edit these
directly, modify the compact syntax .rnc files instead, then use a
conversion tool http://relaxng.org/#conversion to generate the .rng
files).
Adds Perl script to validate the XML files using the new grammars

This was SVN commit r15377.
2014-06-17 03:31:40 +00:00
190f3b0ce1 Exclude .git dirs when adding subfolders to the VFS.
This was SVN commit r15373.
2014-06-15 17:06:24 +00:00
f115759901 Handle mods specified on the command line when using the archive builder.
This was SVN commit r15372.
2014-06-15 16:43:08 +00:00
e12d4b880a Add XMB file format version to the XMB files and check it when loading a file.
This was SVN commit r15358.
2014-06-14 23:41:33 +00:00
b469983c58 Fix for 89f5e7b260. Refs #2622
This was SVN commit r15353.
2014-06-14 16:12:41 +00:00
85e2e72eb7 Fix TestHeaderless failure on GCC 4.9.
Once 'delete' is called on an object, that object no longer exists, and
accessing its member variables is undefined behaviour. GCC 4.9's
optimiser recognises this, and eliminates any writes to member variables
inside the destructor, since it knows they cannot legally be read later.

BoundaryTagManager relied on ~FreedBlock resetting its memory to 0, so
this optimisation broke it. Replace the placement new/delete with plain
non-magic Setup/Reset functions, to avoid the optimisation.

Fixes #2481.

This was SVN commit r15334.
2014-06-11 19:50:38 +00:00
548f50b071 Give gaia back it's vision.
This was SVN commit r15332.
2014-06-11 18:20:02 +00:00
89f5e7b260 Improve gui moddability by allowing to load an entire directory of scripts at once, and being able to split up big gui XML files. Fixes #2622
This was SVN commit r15330.
2014-06-11 17:14:35 +00:00
cb9d0733ef Changes XMB format to store UTF-8 strings and removes pointless UTF-16 conversions, refs #204, #244.
Bumps XMB version to 2.

This was SVN commit r15309.
2014-06-08 03:23:37 +00:00
567917bf41 Give RMS access to the simulation templates. Fixes #1589. Patch by Itms.
This was SVN commit r15306.
2014-06-07 12:12:53 +00:00
53ea269af0 Add the ability to specify a log level when using dlopen and change it to normal for Atlas.
This way we do not have two error messages when starting Atlas, but the
dynamic Atlas lib is not available.
Patch by Gallaecio. Fixes #1540.

This was SVN commit r15301.
2014-06-05 17:07:04 +00:00
fd8ffb506b Remove commented out code and add licence headers to COList.cpp/.h.
This was SVN commit r15300.
2014-06-05 14:33:44 +00:00
d5b4dbcb71 Retain corpses in FoW. Patch by Itms. Fixes #1366.
This was SVN commit r15289.
2014-06-04 22:13:47 +00:00
b09a702c60 Recompute rally point lines when the rally point is set on a moving unit.
Does not account for setting rally points on units that can move into
the FoW/SoD.
Recalculates paths even if the rally points are not displayed.
Refactors UpdateMarkers() to remove some indentation levels.
Based on patch by Itms. Fixes #1257.

This was SVN commit r15288.
2014-06-04 22:07:58 +00:00
c07d394999 Fix GCC build of 2c14d94559. Refs #2589
This was SVN commit r15279.
2014-06-04 03:03:58 +00:00
2c14d94559 Replace usage of CParser for CColor.
Switches format to use integers only.
Adds logging if the string is invalid.
Refs #2589.

This was SVN commit r15278.
2014-06-04 00:58:05 +00:00
db39d742f0 Fix units falling off the edge of the world.
I guess changes to the map loading sequence caused the TerrainChanged
message to be sent before the map was switched from square to circular
instead of after. The pathfinder didn't notice the switch, so it
continued treating the map as if it were square, allowing units to walk
into the permanent map-corner SOD and vanish, and allowing territories
to expand into the SOD.

Tell the pathfinder explicitly when the map shape changes, so it can
discard its cached data correctly.

This was SVN commit r15277.
2014-06-03 22:35:40 +00:00
4f6afbc0bf Fix non-PCH build.
This was SVN commit r15274.
2014-06-02 20:06:27 +00:00
b4f3b503f2 code style cleanup
This was SVN commit r15273.
2014-06-02 15:48:37 +00:00
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
a63ed4e4c4 Fixes rare crash in sound manager, due to worker thread dereferencing global pointer before it had been assigned. Fixes #2333, refs #2387, #2317.
Fixes potential infinite loop if worker thread was running but not
enabled.
Fixes apparent bug in fading sound smoothness.
Cleans up worker class slightly.
Cleans up weird and inconsistent whitespace.

This was SVN commit r15269.
2014-06-02 02:09:58 +00:00
c17bf75cbb Fix bad merge.
This was SVN commit r15268.
2014-06-01 19:06:58 +00:00
fb0b4572ab Fix Valgrind complaint about delete vs delete[].
This was SVN commit r15267.
2014-06-01 18:46:14 +00:00
e6b8339103 Minor optimisation for non-animated units.
This was SVN commit r15266.
2014-06-01 18:25:20 +00:00
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
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
b30a9a6384 Remove m_NeedInitialXZRotation - not needed after changes to map loading order.
This was SVN commit r15263.
2014-06-01 18:10:00 +00:00
ceb3c3d366 MapReader: Load terrain before entities.
This allows component Init functions to make use of the terrain
immediately, instead of delaying some computations until the first
frame.

This was SVN commit r15262.
2014-06-01 18:08:11 +00:00
fe3315376c Add BoundingSphere, SOverlaySphere.
BoundingSphere is similar to a bounding box, but more spherical.

SOverlaySphere is useful for visualising BoundingSphere (it's quite
inefficient and should only be used for debug functionality).

Normalise the camera frustum clipping planes, so that IsSphereVisible
gives the correct result.

This was SVN commit r15261.
2014-06-01 18:05:46 +00:00
6f11097c00 Allow the CLI to load skirmish maps. From now on, the directory must be included in the map path to load any maps (see the readme). Patch by Teiresias. Fixes #2572
This was SVN commit r15257.
2014-06-01 08:18:46 +00:00
59c9ae670f Stop VFS from causing a crash when the AI player isn't found. Patch by Itms. Fixes #2558
This was SVN commit r15254.
2014-05-31 14:55:09 +00:00
e2aa24fc9a Clean up the turret interface a bit + fix serialisation for turrets
This was SVN commit r15250.
2014-05-31 11:35:07 +00:00
cfec28e553 Add the Engine code for turrets + use them to get units on walls. The scripted TurretHolder isn't included due to lack of usability for now. Refs #2577
This was SVN commit r15246.
2014-05-30 14:46:06 +00:00
a0913cbc75 Fix the interpolation changes from the previous commit, as they weren't smooth
This was SVN commit r15232.
2014-05-26 17:12:05 +00:00
85a1f880ab Fix compatibility with LLVM libc++ (used on OS X).
libc++ vector asserts that allocator::value_type is correct, so we have
to pass in the correct types.

This was SVN commit r15231.
2014-05-26 16:48:28 +00:00
5ae9f678b0 Clean up position height methods + add new. Now we have the ability to losslessly read and write positions to entities from the scripts.
This was SVN commit r15230.
2014-05-26 16:23:46 +00:00
c3a0ac43bf Broadcast TerrainChanged message, so CCmpSelectable can actually see it.
This was SVN commit r15229.
2014-05-26 15:44:35 +00:00
4ca40116ed Fix building selection rings not being recomputed when the terrain or water under them is changed.
This was SVN commit r15228.
2014-05-26 13:45:49 +00:00
1871daab0d Fix pathfinding and territories not being recomputed when water height changes.
This was SVN commit r15227.
2014-05-26 13:45:10 +00:00
41f62cd3ff Add WaterChanged message, for things that need to be recomputed when the water height changes.
This was SVN commit r15226.
2014-05-26 13:44:24 +00:00
6407b593d6 Make displayFrustum controllable from scripts.
This was SVN commit r15225.
2014-05-26 13:42:32 +00:00
1936abad98 Remove length limits on script output in console.
This was SVN commit r15224.
2014-05-26 13:39:45 +00:00
e79adae921 Attempt to work around LOS texture alignment bug.
For unknown reasons, sometimes glTexSubImage2D acts as if
GL_UNPACK_ALIGNMENT = 2 or 4, instead of 1. This causes the odd-sized
array uploaded for the LOS texture to be interpreted incorrectly, and
the LOS texture gets rendered very incorrectly.

Pad the array to a multiple of 4 in all cases, so that
GL_UNPACK_ALIGNMENT shouldn't affect it.

Hopefully fixes #2594.

This was SVN commit r15216.
2014-05-25 13:30:39 +00:00
072e4a614e Bump lobby version string.
This was SVN commit r15214.
2014-05-25 03:21:32 +00:00