1
0
forked from mirrors/0ad

576 Commits

Author SHA1 Message Date
wraitii 2d7d5b446d Fix Atlas so that changing water type will actually change water type.
Fix the water shader so that object reflections are more visible. Looks
better.

This was SVN commit r16388.
2015-02-28 13:50:52 +00:00
historic_bruno 8bf1fe1437 Disables water in actor viewer, as a temporary workaround for the "red water" bug, see #2692 for proper fix
This was SVN commit r16378.
2015-02-22 19:49:06 +00:00
historic_bruno d644845ae5 Fixes Atlas on Linux with SDL2 by reordering OpenGL init, based on patch by yashi, fixes #2847
This was SVN commit r16356.
2015-02-20 05:46:24 +00:00
Ykkrosh e06a7b37d8 Convert debug_printf to take UTF-8 strings instead of wchar_t.
This fixes the problem where passing a non-ASCII string to
debug_printf(L"%hs", s) caused vswprintf_s to fail on Linux (because it
doesn't know what encoding the char* is meant to have). Now debug
messages will remain as UTF-8 until they reach the OS.

Fixes #3021.

This was SVN commit r16332.
2015-02-14 01:45:13 +00:00
Itms f6903393bd Add various rotation modes for multiple object selections (individual rotation, global rotation with or without individual rotation).
Patch by trompetin17, fixes #1213

This was SVN commit r16275.
2015-02-06 22:23:50 +00:00
JoshuaJB e75498a655 Fix d71161fe4c on WxWidgets 2.8
This was SVN commit r16258.
2015-02-02 20:20:37 +00:00
Itms d71161fe4c Add a list of selected entities, grouped by template.
Patch by trompetin17, fixes #1392

This was SVN commit r16255.
2015-02-01 21:23:06 +00:00
Itms f52e3ea052 Fix uninitialized variable, fix by trompetin17, fixes #3027.
This was SVN commit r16249.
2015-01-30 17:37:40 +00:00
leper 123bab6793 Replace use of safe bool by explicit bool operator.
This was SVN commit r16228.
2015-01-25 03:11:24 +00:00
leper fc902df07c Remove checks for unsupported GCC versions (<4.6).
This was SVN commit r16224.
2015-01-24 20:37:07 +00:00
Yves c02a7e1a7b SpiderMonkey 31 upgrade
This upgrade also introduces exact stack rooting (see to the wiki:
JSRootingGuide) and fixes problems with moving GC. This allows us to
enable generational garbage collection (GGC).
Measurements a few months ago have shown a performance improvement of a
non-visual replay of around 13.5%. This probably varies quite a bit, but
it should be somewhere between 5-20%. Memory usage has also been
improved. Check the forum thread for details.

Thanks to everyone from the team who helped with this directly or
indirectly (review, finding and fixing issues, the required C++11
upgrade, the new autobuilder etc.)! Also thanks to the SpiderMonkey
developers who helped on the #jsapi channel or elsewhere!

Fixes #2462, #2415, #2428, #2684, #1374
Refs #2973, #2669

This was SVN commit r16214.
2015-01-24 14:46:52 +00:00
Ykkrosh e02d7ad949 Automatically replace %hs/%ls with %s in CLogger format strings.
Everything is char* now, so we don't need to mess around with different
string types.

Done with:

  ag -ls 'LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR)' source | xargs perl
-pi -e'1 while
s/(LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR).*)%[hl]s/$1%s/g'

This was SVN commit r16187.
2015-01-22 20:36:24 +00:00
Ykkrosh 49e2ecea63 Automatically convert all CLogger format strings from wchar_t* to char*.
Done with:

  ag -ls 'LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR)' source | xargs sed
-i 's/LOG\(MESSAGE\|MESSAGERENDER\|WARNING\|ERROR\)(L/LOG\1(/g'

This was SVN commit r16183.
2015-01-22 20:31:30 +00:00
Yves a72d490759 Fix Atlas compile problems with C++11 and clang. Thanks to trompetin17 for investigating this.
Refs #2669

This was SVN commit r16158.
2015-01-18 09:48:41 +00:00
historic_bruno 840c8215b6 Fixes build error 'no viable conversion' on OS X with clang, libc++ and c++11, refs #2462.
Removes explicit use of _Unwrap(), prefer deference operator * instead

This was SVN commit r16157.
2015-01-18 06:36:15 +00:00
historic_bruno 8976fb7646 Fixes MSVC warning C4100 unreferenced formal parameter
This was SVN commit r16156.
2015-01-18 06:26:00 +00:00
Itms 02a50fce62 Notify map makers when they are placing obstructed entities (overlapping other ones or placed outside the borders of the map). Patch by trompetin17
Fix #1163, refs #2829.

This was SVN commit r16149.
2015-01-14 09:11:11 +00:00
Itms 57033850a8 Check for unsaved changes in Atlas. Patch by trompetin17, fixes #2819.
This was SVN commit r16126.
2015-01-08 21:29:27 +00:00
leper 045fea23aa Properly adjust Atlas for the init changes.
This was SVN commit r16112.
2015-01-03 17:42:42 +00:00
leper a472944689 Clean up LoadPlayerSettings.
Include gaia to make iteration easier.
Add TemplateExists() to the TemplateLoader. Refs #2877.

This was SVN commit r16099.
2015-01-01 23:10:24 +00:00
Yves 8e30410109 Improve PickEntitiesAtPoint
First, do a ray intersection test with the bounding-sphere for all
entities on the map and then check the more detailed selection shape for
the remaining candidates. Do checks that require component lookups after
the ray intersection tests because these are relatively expensive.
The old method for figuring out which entities are below the mouse
cursor was incorrect because it does a 2D check to filter out the first
candidates which can lead to incorrect results with lower camera angles
and high buildings or buildings with a large footprint. Such problems
were avoided with quite a large radius for this 2D test and resulted in
a large number of candiate entities after this first test (200-500).
Also rename PickEntitiesAtPoint to PickEntityAtPoint and make it return
only one (the closest) match.

I've tested performance with the tracelogger by starting a map and then
moving the mouse in circles for one minute. The results were relatively
stable. I've compared the total time percentage of input.js:836, which
spends nearly all of the time in PickEntityAtPoint.
Ardennes Forest - Normal size:       Original: 41.46%    Patched: 31.6%
Ardennes Forest - Giant size:        Original: 40.59%    Patched: 51.55%

As we see, it's faster on normal map sizes but slower on giant maps with
a lot of entities.
This approach can be further improved with some kind of spatial
subdivision for the culling (like an octree), which would help the unit
renderer too. This way it should be possible to make it faster (and
still correct) on all map sizes and with a large total numbers of
entities.

This was SVN commit r16098.
2015-01-01 23:05:26 +00:00
leper 992169c3ab Fix indentation in daaddaf433.
This was SVN commit r16087.
2014-12-30 17:27:18 +00:00
Itms daaddaf433 Stop music in Atlas when reloading a map, patch by trompetin17, fixes #1712.
This was SVN commit r16084.
2014-12-29 21:01:54 +00:00
leper 354bd8b088 Only delete/create players until the needed number is reached. Patch by trompetin17. Fixes #1953.
Previously we removed all players and created them anew. This caused
issues in Atlas,
as some components were recreated, but did not get informed about
already existing
entities (eg cmpTechnologyManager). By only creating/deleting players
until we obtain
the new number of players we do not have this issue.

This was SVN commit r16080.
2014-12-29 17:33:39 +00:00
Itms 8a66a732c7 Add "Copy" and "Paste" entries to the Atlas "Edit" menu. Patch by stilz_, fixes #2642.
This was SVN commit r15994.
2014-11-20 20:52:32 +00:00
historic_bruno 7f1fd01174 Moves some includes out of Renderer.h to slightly optimize compilation
This was SVN commit r15912.
2014-10-28 03:57:22 +00:00
historic_bruno 1631b8de14 Fixes Atlas error when using the map open/save dialog on Linux, based on patch by njm, fixes #2858
This was SVN commit r15885.
2014-10-18 01:53:06 +00:00
historic_bruno 5200ea0365 Fixes starting Atlas from in-game on OS X, patch by trompetin17, refs #2427
This was SVN commit r15821.
2014-09-28 07:03:51 +00:00
historic_bruno 0caab0429f Fixes Reset Water Data button position in Atlas, fixes #2820
This was SVN commit r15815.
2014-09-27 02:42:42 +00:00
leper 29effb5089 Build fixes and improvements for BSDs. Fixes #2804.
This was SVN commit r15793.
2014-09-24 14:11:13 +00:00
historic_bruno 9592c59704 Fixes crash in Atlas color picker tool, noticeable with wxWidgets 3.0. Colors returned by wxColourData::GetCustomColour aren't always valid, so we have to test them with IsOk() before accessing them. Fixes #2805
This was SVN commit r15782.
2014-09-21 21:25:51 +00:00
historic_bruno d62e3729d5 Improves SDL2 support, includes patch by yashi and fabio, refs #2041:
* Adds SDL color cursor implementation
* Adds config option for choosing preferred display in multimonitor
setup
* Uses text input API to better handle CJK input
* Fixes various hotkey and input bugs

SDL 1.2 is still the default and recommended, to test experimental SDL2
support, pass the --sdl2 flag to update-workspaces

This was SVN commit r15767.
2014-09-20 12:12:35 +00:00
historic_bruno 60d92b643d Fixes some unused variables in Atlas
This was SVN commit r15746.
2014-09-13 19:34:04 +00:00
historic_bruno 70d81040cb Fixes Atlas copy/paste not copying actor seeds, patch by trompetin17, fixes #2791
This was SVN commit r15742.
2014-09-13 16:53:43 +00:00
Itms a8189f89e5 Stop music when resetting the simulation test mode in Atlas.
Patch by trompetin17, fixes #1712

This was SVN commit r15734.
2014-09-12 21:38:10 +00:00
historic_bruno 9c683af1e4 Fixes undefined property reference in Atlas after generating random map.
Fixes crash after failed random map generation in Atlas

This was SVN commit r15719.
2014-09-08 03:48:24 +00:00
leper be2f0e69fc Make the modmod standalone.
Mount public in case we are starting Atlas and no mods are specified in
the config.
If users remove all mods and save this to the config and try to start
Atlas it will
crash, as it cannot find some needed files.

This was SVN commit r15678.
2014-08-25 16:38:54 +00:00
leper 523d220ac5 Add engine support to load mods from config and restart into mods.
Restructure mod mounting code a bit to make it reusable, and use it for
replays. Fixes #2703.

This was SVN commit r15676.
2014-08-25 16:02:40 +00:00
Yves e41f010f91 Fixes crash when loading maps in Atlas.
The ScriptInterface pointer can be NULL there, so using it without
checking is not safe.
This fixes the problem by continuing with the exact stack rooting
changes, which makes the temporary solution unnecessary.

Fixes #2707
Refs #2415

This was SVN commit r15611.
2014-08-04 20:14:17 +00:00
Yves a2bd44b23a Exact stack rooting for JSON related ScriptInterface functions.
Refs #2415
Refs #2462

This was SVN commit r15603.
2014-08-02 22:21:50 +00:00
Yves 2be86ef79e Fix crash when starting Atlas (introduced in 28bdd8540f).
This was SVN commit r15573.
2014-07-27 18:38:31 +00:00
Yves 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
historic_bruno 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
wraitii 326290463e Further WIP water improvements. Add 3 different textures for different looks. Update some oasis maps for that. Streamline water settings (some removed, some added). Update Atlas for those (needs to be tested). Fix an issue with HQ water effects.
Please report any issue and/or crash. Those will get fixed in commits to
come. Refs #48.

This was SVN commit r15484.
2014-07-03 20:07:15 +00:00
sanderd17 c339928c6f Disallow placing some special entities in Atlas. Fixes #1696. Patch by trompetin17
This was SVN commit r15467.
2014-06-30 10:20:20 +00:00
leper b4fc393f18 Change camera rotation in Atlas to be the same as in the game. Refs #1066.
This was SVN commit r15466.
2014-06-29 21:30:51 +00:00
historic_bruno 600e8bd226 Fixes MSVC warning about uninitialized playerId in Atlas entity pasting code (using 0 as a sensible default value), refs #96
This was SVN commit r15415.
2014-06-22 22:19:02 +00:00
sanderd17 f1379a77b5 Fix build for wxWidgets version 2.8.10 and older.
This was SVN commit r15383.
2014-06-17 19:32:33 +00:00
sanderd17 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
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