1
0
forked from 0ad/0ad
Commit Graph

5957 Commits

Author SHA1 Message Date
c93c1c92eb Replace std::auto_ptr uses by std::unique_ptr since the former is deprecated.
This was SVN commit r16674.
2015-05-25 01:23:27 +00:00
8b4b8431e3 Small cleanup, based on a change from one of Philip's old patches
This was SVN commit r16653.
2015-05-16 09:39:27 +00:00
a39aa76e62 These temporary roots aren't needed anymore with SpiderMonkey 31
This was SVN commit r16647.
2015-05-10 09:01:39 +00:00
399daeddbf prevent loading of templates in AIManager when no AIs, fixes #3101
This was SVN commit r16633.
2015-05-07 19:09:39 +00:00
8e44687ae3 Properly fix #3223.
The previous commit destroyed the context while it was still in use.

This was SVN commit r16631.
2015-05-06 20:28:28 +00:00
642500b49e Make the Ptolemaic lighthouse reveal the shore on the entire map.
Fixes #3174

This was SVN commit r16628.
2015-05-06 18:47:02 +00:00
4db041e3c6 Stop leaking g_ScriptStatsTable in replay mode. Fixes #3223.
This was SVN commit r16627.
2015-05-05 22:34:41 +00:00
7f606250f8 Fix build failure on GCC 4.6.
This was SVN commit r16623.
2015-05-04 19:37:25 +00:00
b8a20c958c Do not serialize properties for Sets. Serialization tests for Map and Set.
This was SVN commit r16620.
2015-05-04 01:41:09 +00:00
0a44d24c96 Flip the overlay sprites face around to show the non-mirrored side. Now sprites are rendered correctly (which should have happened in d4794b5474).
This was SVN commit r16617.
2015-05-03 15:55:17 +00:00
7a70c475df Improve rejoin messages. Patch by elexis. Fixes #1949.
This was SVN commit r16614.
2015-05-03 02:06:17 +00:00
a9afa61a7b Serialization support for ES6 Sets.
This was SVN commit r16608.
2015-05-01 23:04:28 +00:00
e758701da5 Include missing header.
This was SVN commit r16595.
2015-04-29 15:54:08 +00:00
7d953ff0a7 Fix compiler warning.
This was SVN commit r16594.
2015-04-29 00:07:48 +00:00
487d6a1afc When using SDL2 recommend a >= 2.0.2 version to avoid incurring in possible bugs with older versions.
This was SVN commit r16585.
2015-04-27 07:56:34 +00:00
bda45f6526 Clarify the XpartaMuPP readme. Fixes #3163.
Also converts it to markdown.

This was SVN commit r16567.
2015-04-22 23:43:59 +00:00
535d612e06 Small fixes.
This was SVN commit r16552.
2015-04-20 14:51:06 +00:00
a0cf780e1e Amend 5c84c3e9e5
This was SVN commit r16547.
2015-04-16 13:17:58 +00:00
2042e6b2d4 Added TriggerScripts Reload(Hotloading) when you change the file and save
This was SVN commit r16546.
2015-04-16 04:30:51 +00:00
5c84c3e9e5 Some entities (like birds) can have negative positions without being marked as out-of-world.
Refs #2430

This was SVN commit r16544.
2015-04-15 12:19:47 +00:00
120ff2c60c Fix the structure tree a second time, this should also work on Windows.
This was SVN commit r16542.
2015-04-15 09:10:05 +00:00
6aa99d762f Add a new spatial subdivision, based on an old patch by wraitii.
This subdivision is faster but less precise, so range queries get more
entities and are a bit slower (up to 1ms approx.), but the overall gain
on a simulation update is always positive and can reach 10ms per frame.

For now, this new subdivision is only used by the range manager,
integrating it in the obstruction manager might be sensible.

Refs #2430

This was SVN commit r16540.
2015-04-14 21:33:43 +00:00
a980d8fdfc Fix structure tree by allowing undefined templates in the productionqueue
This was SVN commit r16537.
2015-04-14 18:45:02 +00:00
b6bcfdbb2e Fixes missing newlines in debug_printf, patch by elexis, fixes #3056
This was SVN commit r16534.
2015-04-12 19:38:31 +00:00
01673b4c58 Add the -ooslog support for replays. Refs #3169, see also a7b18d02bf.
This was SVN commit r16531.
2015-04-11 18:12:35 +00:00
cf527707da Revert "Improve ARRAY_SIZE." (7afaacda19).
constexpr and noexcept are only supported by VS November 2013 CTP.

This was SVN commit r16508.
2015-04-06 21:24:53 +00:00
f2c76cc75d Fix a number of issues related to historical messages and initial join in the multiplayer lobby. Fixes #3156
This was SVN commit r16507.
2015-04-06 19:33:37 +00:00
7afaacda19 Improve ARRAY_SIZE.
This was SVN commit r16499.
2015-04-05 16:50:26 +00:00
a6a2914882 Fix error when you paste entities over another entity and you try to rotate at the same time while pressing alt/shift key
This was SVN commit r16497.
2015-04-04 21:45:11 +00:00
0e2c30c7d2 Reduce the strength of the elevation brushes in Atlas.
This was SVN commit r16488.
2015-04-02 13:43:47 +00:00
4e763ef26e Move civ JSON files to simulation/data. Patch by MattDoerksen. Fixes #2562.
This was SVN commit r16485.
2015-04-01 23:48:33 +00:00
41863d6ae2 Explicitly cast to unsigned to fix a warning.
This was SVN commit r16483.
2015-04-01 23:48:23 +00:00
96410ee9a4 Fix heightmap rectangle. Take the water plain height as the base plane, instead of a hardcoded value.
This was SVN commit r16482.
2015-04-01 14:17:18 +00:00
ebb57aa516 Fix tests by enlarging the precision bumped in 7ed45213a9
This was SVN commit r16479.
2015-03-31 16:56:09 +00:00
7ed45213a9 Allow heightmaps to be 8 times as high by lessening precisions. Includes conversion script and modified standard maps. Bump the map version number. Fixes #3112
This was SVN commit r16478.
2015-03-31 16:48:31 +00:00
c73c9370ee Update tinygettext. Fixes #2522.
Updates to upstream changeset f71a8e5e84bffadd61ac93768b332262989844fd,
with some additions
that will be submitted upstream (without the addition of precompiled.h
and win32 dirent).

This was SVN commit r16462.
2015-03-24 17:47:08 +00:00
dec4552ffe Removes special handling of fullscreen toggle on OS X w/ SDL 1.2, which is no longer used
This was SVN commit r16453.
2015-03-21 21:01:01 +00:00
89107d1406 Fixes grayscale PNG handling, there is no need to convert them all to RGB and 4741e896c4 broke special font texture handling. Instead, only grayscale with alpha PNGs will be converted to RGBA (they fail to load otherwise).
Removes warning about converting grayscale textures, refs #1640.

This was SVN commit r16449.
2015-03-19 03:04:01 +00:00
4741e896c4 Improves handling of PNG textures based on GdkPixbuf's setup_png_transformations. The PNG decoder should now support grayscale, RGB or indexed color; bit depth up to 16; and interlacing. Fixes #1640, refs #2823, #3082
This was SVN commit r16439.
2015-03-16 02:28:00 +00:00
b1c4e29ac8 Fixes inconsistencies in spelling of colour/color by preferring "color" (only wxWidgets remains with some API that requires "colour"), fixes #1029.
NOTE: requires update-workspaces and may require correction of some
modded actors/scenarios

This was SVN commit r16438.
2015-03-15 23:59:48 +00:00
99cb4b42fd Deletes old autobuilder files.
Deletes old dds_analyse.pl script.
Updates tools LICENSE.txt

This was SVN commit r16435.
2015-03-15 22:18:02 +00:00
333c4401b9 Deletes obsolete entity converter tool.
Deletes unmaintained contributors.txt list, see forum topic for more
useful list: http://wildfiregames.com/forum/index.php?showtopic=15542

This was SVN commit r16434.
2015-03-15 21:38:43 +00:00
caf89fa04e Rename ps/Overlay(.h|.cpp) to ps/Shapes(.h|.cpp), fixes a TODO located in graphics/Overlay.h.
The file name did not match the content.

Also little cleanup of some unnecessary includes.

This was SVN commit r16431.
2015-03-15 18:06:32 +00:00
618fe81814 Check when loading an actor that it defines all the texture samplers required by its material. Print out a readable error otherwise. Fixes #1613 (note that this does not check for unnecessary samplers as that is non-trivial and does not lead to graphical glitches).
Also add a shortcut for some defines to clean-up material files slightly
and make the link between sampler and shader more explicit.

This was SVN commit r16427.
2015-03-15 11:37:26 +00:00
e41ec77eb6 Remove unused file.
This was SVN commit r16417.
2015-03-15 04:16:31 +00:00
3c093ef741 Update lobby room.
This was SVN commit r16412.
2015-03-15 04:15:45 +00:00
2b5de1df93 Do not send VisionRangeChanged messages when deserializing. Fixes #3075.
This was SVN commit r16401.
2015-03-03 01:59:42 +00:00
a5db659ce4 Update translations to be included in the release.
This was SVN commit r16399.
2015-03-02 00:10:00 +00:00
607bbcc2f1 Fixes invisible particles (clouds, dust storms) due to incorrect bounds calculations on the emitters, fixes #2643.
Makes the emitters a little more efficient by only setting
position/rotation when their transform changes.

This was SVN commit r16397.
2015-03-01 23:58:53 +00:00
aab15123f1 I hate myself.
This was SVN commit r16389.
2015-02-28 14:11:21 +00:00
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
7ce48dda69 Adds macmouse config option, this enables SDL2's Ctrl+Click emulation of right-clicking on OS X. NOTE: enabling this option will affect game hotkeys (e.g. garrisoning), so they should be reassigned to something like Super in that case
This was SVN commit r16380.
2015-02-22 21:24:27 +00:00
1ac24adde2 Disables some SpiderMonkey-related build warnings with clang
This was SVN commit r16379.
2015-02-22 21:15:47 +00:00
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
7fe9eb956f Fixes error in SMBIOS::InitStructures by not warning on invalid header size, fixes #2985
This was SVN commit r16374.
2015-02-22 00:42:11 +00:00
21f3be7df5 Always select a texture unit before calling glEnable(GL_TEXTURE_2D).
Without this, some code will enable (and set other parameters for)
whatever random texture unit the previous stage had selected. This can
break any fixed-function rendering, since either it will not have
enabled the correct texture unit, or its correct setup will be
interfered with by another texture unit that shouldn't be enabled. (This
doesn't affect ARB/GLSL shader rendering, since they don't care about
the enabled state, but the GUI (and some debug things) are still FFP in
the default ARB mode.)

Fixes #2833 (in which the fancy water shader selected texture units 5/6,
which then got enabled, and remained enabled forever).

This was SVN commit r16372.
2015-02-21 21:40:10 +00:00
f8ff206169 Recreate some tech modified values upon deserialization. Fixes #3055.
Also check for some possible null pointers.

This was SVN commit r16364.
2015-02-21 01:41:24 +00:00
0da0b062e1 Return the correct projectile id to fix serialization test failure.
This was SVN commit r16363.
2015-02-21 01:41:09 +00:00
00da480b83 Trigger a global visibility update after shared LoS changes. Fixes the entities of new mutual allies not visible.
Also add some player-dependent logic to avoid performance bottlenecks.

This was SVN commit r16359.
2015-02-20 14:35:19 +00:00
e48e330db7 Sets SDL2 as default and only build option on Windows.
Removes remnants of WSDL. Refs #2041

This was SVN commit r16357.
2015-02-20 05:52:18 +00:00
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
a5e940430f Suppresses libpng warning "iCCP: known incorrect sRGB profile" by manually handling warning messages (errors still use default handler), fixes #2184
This was SVN commit r16350.
2015-02-17 10:50:19 +00:00
70219ab61f Fixes GLSL terrain decal flicker by initializing normal vectors, fixes #2064
This was SVN commit r16349.
2015-02-17 08:13:24 +00:00
ba210c4d59 Fix c229b46ac2.
This was SVN commit r16343.
2015-02-16 14:38:13 +00:00
c229b46ac2 Move visibility component activation check to C++. Patch by Itms.
This improves performance quite a lot because it avoids a huge number of
calls from C++ to JS. Check the ticket for performance measurements.
Refs #2913

This was SVN commit r16337.
2015-02-14 17:13:50 +00:00
49222a4c6a Fix Windows build
This was SVN commit r16334.
2015-02-14 02:22:22 +00:00
bb9de80dd4 Convert CConsole to take UTF-8 strings.
This avoids vswprintf failures when printing non-ASCII char* strings
from CLogger into the console.

Also convert ScriptInterface::ToString to return UTF-8, to avoid some
utf8_from_wstring calls.

Also remove some unused and redundant CConsole functions.

This was SVN commit r16333.
2015-02-14 01:49:34 +00:00
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
682a944d7e Little code tweak without performance impact
This was SVN commit r16329.
2015-02-12 23:24:48 +00:00
bd7b07cc80 Make the visibility cache a bit more clever, by making LoS tiles as dirty separately for each player.
It is necessary to rely on shared los masks, else some visibility
updates will be missing.

Refs #2913, see this ticket for a performance graph.

This was SVN commit r16328.
2015-02-12 23:22:29 +00:00
c049b0ae27 Treat \t as whitespace in config files. Fixes #3050.
This was SVN commit r16326.
2015-02-12 17:31:10 +00:00
1e54289aa8 Only check binaries/data for po/pot files.
This was SVN commit r16324.
2015-02-12 00:25:47 +00:00
143e199d45 Add a new function to update the water renderer textures when resizing the renderer window. Patch by pendingchaos.
This fixes #2692 though the same issue might appear in some other cases
(possibly Atlas) and those will have to be checked.

This was SVN commit r16315.
2015-02-10 19:41:29 +00:00
bb99c42aa5 Increase max VBO size back to 4MB.
Some meshes (e.g. pers_gardens_struct with gentangents enabled) have
>32K vertexes, and won't fit in a 2MB VBO. 0ef6c7555e had reduced them
from 4MB to 2MB. So just make the VBOs bigger again, and try not to
worry about the waste of memory.

Fixes #3026, #3042.

This was SVN commit r16309.
2015-02-08 23:39:02 +00:00
f9c95b6953 Do not send gaia stats for rated games.
This was SVN commit r16292.
2015-02-08 01:59:02 +00:00
5e7b55996c Fixes build with libmozjs-31-dev package from Ubuntu PPA. Fixes #3039.
This was SVN commit r16283.
2015-02-07 18:28:44 +00:00
da0f33f137 Reduce drastically the number of mirages by making fogging conditional: entities will be miraged only if their health/resource amount is modified, or if they have a non-gaia owner.
Fixes the animals hidden in the FoW, and adds the missing status bars
for mirages.

Also small cleanup of the code.

Refs #2913

This was SVN commit r16281.
2015-02-07 15:48:32 +00:00
b66465de73 Improve code clarity after 0a53c5e06a by removing a fall-through.
Also fix the indentation to follow the coding conventions.

This was SVN commit r16280.
2015-02-07 15:38:22 +00:00
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
0a53c5e06a Fix hero selection ring not cleared when the unit goes out of the world (when garrisoning for instance).
Patch by trompetin17, fixes #2627.

This was SVN commit r16274.
2015-02-06 20:47:31 +00:00
846fdc1ed8 Provide explicit spezializations of hash_value for CTexturePtr and CTextureProperties. Fixes #3036.
This was SVN commit r16271.
2015-02-06 02:03:20 +00:00
bf6323a71f Amend 7020d17886 and also fix observer mode. Fixes #3032.
This was SVN commit r16267.
2015-02-04 09:20:00 +00:00
53b335f5ae Improve auto-completition of nick names and add it to the in-game chat. Patch by trompetin17. Refs #1767.
This was SVN commit r16261.
2015-02-02 23:44:06 +00:00
e75498a655 Fix d71161fe4c on WxWidgets 2.8
This was SVN commit r16258.
2015-02-02 20:20:37 +00:00
ec7c8f2d65 Move gain config setting retrieval to the sound manager. Fixes #3030.
Also clean up the sound manager a bit.

This was SVN commit r16257.
2015-02-02 13:44:06 +00:00
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
3225e564fe Fix 1564a10120, plus code cleanup
This was SVN commit r16254.
2015-02-01 19:04:21 +00:00
7020d17886 Fix Gaia perspective, in which one could only see entities with a dirty visibility cache.
This was SVN commit r16250.
2015-01-30 18:08:16 +00:00
f52e3ea052 Fix uninitialized variable, fix by trompetin17, fixes #3027.
This was SVN commit r16249.
2015-01-30 17:37:40 +00:00
1564a10120 Move back the computation of most of the visibilities from JS to engine, to improve performance.
Also fix the remaining TODO left by #958, as a use case of the scripted
Visibility component.

Refs #2913, #958.

This was SVN commit r16248.
2015-01-30 15:28:06 +00:00
df2e077870 Trailing spaces cleanup, based on patch by trompetin17, refs #1767.
This was SVN commit r16244.
2015-01-29 16:10:03 +00:00
6a70e3a62f Updates checkrefs.pl to support mod mod and GUI XML change
This was SVN commit r16242.
2015-01-28 03:26:39 +00:00
0ef6c7555e Optimise VBO updates.
Some drivers (at least the Intel drivers on Windows) are slow at
incrementally updating a VBO with hundreds of calls to glBufferSubData
every frame. Performance is significantly better if you use
glBufferData(NULL) to tell it to discard all the previous contents, and
then re-upload all the data at once.

Update CVertexBuffer so that GL_DYNAMIC_DRAW/GL_STREAM_DRAW buffers are
handled with the new mechanism. This requires the caller to hold onto
the backing store so it can be re-uploaded when necessary, and needs a
bit more signalling to indicate exactly what needs uploading.

I see an improvement from roughly 60 to 75 fps on Intel HD Graphics
3000, Windows, 1024x768, Siwa Oasis.

This was SVN commit r16241.
2015-01-28 00:48:00 +00:00
0a34e6106d Improve readability printing a single error message.
This was SVN commit r16237.
2015-01-27 09:14:30 +00:00
ee08dff5ad Updates Windows installer config, making the SM debug dll exclusion more generic
This was SVN commit r16234.
2015-01-26 05:01:53 +00:00
4473ed5c88 glext_funcs: Support glMapBuffer, glMapBufferRange
This was SVN commit r16231.
2015-01-25 16:36:23 +00:00
a8499e89eb Pad vertex data to power-of-two sizes.
This reduces the total number of different vertex sizes in the system,
allowing more data to share a single CVertexBuffer, therefore reducing
the amount of wasted space in each CVertexBuffer and reducing VRAM
usage.

This was SVN commit r16230.
2015-01-25 15:38:51 +00:00
123bab6793 Replace use of safe bool by explicit bool operator.
This was SVN commit r16228.
2015-01-25 03:11:24 +00:00
4c1903500b Switch to std::shared_ptr and std::weak_ptr.
This was SVN commit r16227.
2015-01-25 03:10:58 +00:00
0843100d11 Remove partial emulation of some C++11 features for older compilers.
This was SVN commit r16226.
2015-01-24 20:37:18 +00:00
0261d12727 Remove some checks for usupported VS versions (<2013).
This was SVN commit r16225.
2015-01-24 20:37:16 +00:00
fc902df07c Remove checks for unsupported GCC versions (<4.6).
This was SVN commit r16224.
2015-01-24 20:37:07 +00:00
59503b9ae9 Add basic support for GUI scaling factor, to help with high-res displays (e.g. 4K monitors and 1080p tablets).
Use the config setting "gui.scale = 0.5" to make the GUI bigger.

This was SVN commit r16223.
2015-01-24 20:06:37 +00:00
c976366590 Added a script for i18n maintenance tasks
The script updates the local repository, regenerates the POT files,
downloads the
latest PO files, reverts any change that Pology determines as not
meaningful, and
adds the modified files to the local VCS.

The script does not actually perform the final commit, that is left for
the user.

Ref #2492

This was SVN commit r16222.
2015-01-24 19:57:44 +00:00
67956f969e Make ARRAY_SIZE(pointer) complain in GCC, not just in MSVC.
The ArraySizeDeducer trick has worked since at least GCC 4.4, so it's
fine to rely on it now.

This was SVN commit r16218.
2015-01-24 17:35:25 +00:00
de25e536c3 Update NONCOPYABLE to use C++11 "=delete".
This gives slightly better error messages.

This was SVN commit r16217.
2015-01-24 17:33:49 +00:00
3ce38e536e Update cassert to use C++11 static_assert.
This gives clearer error messages, and simplifies the code.

This was SVN commit r16216.
2015-01-24 17:29:19 +00:00
15e8637b67 Fix build with Visual Studio
I've reverted this workaround before the SM31 commit because I thought
it's only a problem with VS2010. Actually VS2013 still doesn't support
C++11 well enough and still requires the workaround.

Refs #2669, #2462

This was SVN commit r16215.
2015-01-24 16:33:27 +00:00
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
8f0ace2658 Make Android %ls/%hs workaround work on secure_crt as well as wsecure_crt.
Refs #2996.

This was SVN commit r16210.
2015-01-24 00:22:12 +00:00
4d4ddb5978 Add workaround for Android libc++ swprintf bug.
Based on patch by BogDan. Refs #2996.

This was SVN commit r16209.
2015-01-24 00:20:15 +00:00
8ca674d461 cppformat: Fix Android build.
The NDK only exposes the BSD-style strerror_r, not the GNU-style, so
select the appropriate code path.

This was SVN commit r16208.
2015-01-23 21:15:48 +00:00
2e01b157d6 Fix build error in GLES configurations
This was SVN commit r16207.
2015-01-23 20:54:14 +00:00
c9dee72667 GLES doesn't have glDisable(GL_TEXTURE_2D).
Patch by BogDan. Refs #2996.

This was SVN commit r16206.
2015-01-23 20:40:02 +00:00
8a39ea5543 Avoid misaligned pointer dereferences, which can fail on ARM.
Based on patch by BogDan. Refs #2996.

This was SVN commit r16205.
2015-01-23 20:39:40 +00:00
c9c80a9d94 SDL_SetWindowGammaRamp fails on Android, so don't bother using it.
Based on patch by BogDan. Refs #2996.

This was SVN commit r16204.
2015-01-23 20:39:02 +00:00
ad3e330861 Workaround for limitations of Android's vswprintf implementation.
Based on patch by BogDan. Refs #2996.

This was SVN commit r16203.
2015-01-23 20:38:13 +00:00
b64ff8d09a Remove Android hack to autoload a map.
Patch by BogDan. Refs #2996.

This was SVN commit r16202.
2015-01-23 20:36:52 +00:00
adcd9191a6 Updates Windows installer config for 65cc47f6c0
This was SVN commit r16200.
2015-01-23 03:38:02 +00:00
65cc47f6c0 Deletes unused bundled MSVC runtime libs for old 2005 and 2008 versions.
Removes VC80 manifest info.

This was SVN commit r16199.
2015-01-23 03:21:48 +00:00
f3f2717c66 Fix tests on 32-bit builds.
This was SVN commit r16193.
2015-01-22 21:13:09 +00:00
f350a24c73 Disable "assignment operator could not be generated" warning globally on Windows, since it's never useful.
This was SVN commit r16192.
2015-01-22 21:09:33 +00:00
d7926eb612 Add basic tests for %s/%hs/%ls in sprintf_s, swprintf_s.
This was SVN commit r16191.
2015-01-22 20:39:53 +00:00
ef2a358f87 Remove sys_vswprintf.
The implementation on Windows was gross. The only user was CLogger,
which no longer uses it.

Also fix vswprintf_s to handle truncated output correctly (by returning
"") on Linux, now that CLogger is no longer relying on the buggy
behaviour.

This was SVN commit r16190.
2015-01-22 20:39:28 +00:00
afa492f473 Preprocessor: Avoid using "%.*hs" in log format string, since cppformat doesn't support it.
This was SVN commit r16189.
2015-01-22 20:38:16 +00:00
568c415d0a Convert wchar_t*/wstring arguments to UTF-8 strings in CLogger messages.
This was SVN commit r16188.
2015-01-22 20:37:38 +00:00
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
38a8e2e0d6 Automatically convert most path.string().c_str() to path.string8()
Done with:

  ag -l 'LOG.*string\(\).c_str\(\)' source | xargs perl -pi -e'1 while
s/(LOG.*string)\(\)\.c_str\(\)/${1}8()/g'

This was SVN commit r16186.
2015-01-22 20:35:17 +00:00
b90bc147c9 Add Path::string8 (which returns a UTF-8 encoded std::string).
This saves the hassle of writing utf8_from_wstring(path.string()) in
places like log messages, and can be extended to better handle
non-ISO-8859-1 paths on Linux.

This was SVN commit r16185.
2015-01-22 20:33:11 +00:00
e9a33b71ae Manually fix the less trivial CLogger format strings.
This was SVN commit r16184.
2015-01-22 20:32:06 +00:00
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
dcf5a2667f CLogger: Use cppformat instead of sys_vswprintf.
sys_vswprintf relies on platform-specific printf implementations, which
vary widely between platforms (in handling of truncation, return values,
use of %s/%S/%hs/%ls for mixing char and wchar_t strings, etc) and are
therefore a pain.

Use cppformat's fmt::sprintf instead, which has very similar syntax to
sprintf but is more C++ish and is portable.

Also, wchar_t is stupid, so use char* strings (which are expected to be
UTF-8) in CLogger. This creates a bit of a pain with changing all
callers to convert to char* strings, but that's their fault for not
using UTF-8 already.

Refs #3011.

This was SVN commit r16182.
2015-01-22 20:30:05 +00:00
ca7b890e16 cppformat: Add basic tests for the functionality we use.
This was SVN commit r16181.
2015-01-22 20:28:57 +00:00
47b9a043b2 cppformat: Permit NULL arguments for %s.
Throwing exception on NULL is a bit extreme, and unhelpful when it
happens in rarely-tested error paths. Printing "(null)" is safer and
provides compatibility with glibc sprintf.

This was SVN commit r16180.
2015-01-22 20:27:58 +00:00
9c8798b592 cppformat: Remove support for CUSTOM types.
These cause a lot of type-safety trouble - unsupported types passed into
fmt::sprintf (like CStr or enums) will be accepted at compile time, but
trigger an exception at runtime. Remove them, so we'll get either an
implicit conversion to a supported type, or a compile-time error.

This was SVN commit r16179.
2015-01-22 20:27:34 +00:00
8875ae9cdf cppformat: Fix compatibility with our build system on Windows.
This was SVN commit r16178.
2015-01-22 20:26:58 +00:00
f16407f6e9 cppformat: Fix -Wundef build warnings from GCC.
This was SVN commit r16177.
2015-01-22 20:26:32 +00:00
f96593a9f3 Import cppformat v0.11.0
Refs #3011.

This was SVN commit r16176.
2015-01-22 20:25:10 +00:00
1857c33602 Remove use of __attribute__ that breaks the Windows build. Refs #2522.
This was SVN commit r16172.
2015-01-21 22:37:25 +00:00
b5b9c0f2ae Improve template code style for the Decay component.
This was SVN commit r16171.
2015-01-21 21:45:05 +00:00
76120d888b Add some tinygettext changes from SuperTuxKart. Refs #2522.
Move some data to RO. Pass some parameters as references.
Taken from https://github.com/Grumbel/tinygettext/issues/3.

This was SVN commit r16169.
2015-01-21 21:17:45 +00:00
aeb18239c3 Update tinygettext to upstream commit ca0f3ff640. Refs #2522.
Keeps our addition of precompiled.h (fd3d335265), win32/dirent,
4c9d99ff68, de6823d23f, and 8fc14655b5.

This was SVN commit r16168.
2015-01-21 20:37:37 +00:00
852cd11305 Improve the performance of the GetLosVisibility function by using the cache (currently used for mirages only) whenever possible.
This was SVN commit r16166.
2015-01-20 16:29:50 +00:00
7a48606471 GLES compatibility for particle shader
This needs to use the model-view matrix, not model-view-projection (the
transform uniform), else the axes won't be unit vectors and the particle
sizes will be wrong. But GLES doesn't have the pre-defined matrices, so
pass it in explicitly.

This was SVN commit r16165.
2015-01-19 21:44:53 +00:00
e1e163b3f7 Improve ogl_WarnIfError() to report the file/line where the error was detected
This was SVN commit r16164.
2015-01-19 20:06:16 +00:00
b74e853144 Fix typo which caused GLES errors
This was SVN commit r16163.
2015-01-19 20:04:46 +00:00
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
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
8976fb7646 Fixes MSVC warning C4100 unreferenced formal parameter
This was SVN commit r16156.
2015-01-18 06:26:00 +00:00
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
755ec45a14 Use correct format specifiers. Patch by bog_dan_ro.
This was SVN commit r16148.
2015-01-13 18:37:50 +00:00
851d3d964a Fixes MSVC build warnings about unhanded cases in switch statement (C4062) and missing parameter in macro (C4003)
This was SVN commit r16141.
2015-01-11 21:37:53 +00:00
8fc14655b5 Improve 524a942b52. Refs #2637.
This was SVN commit r16140.
2015-01-11 19:14:03 +00:00
524a942b52 Only print add_translation warning when translations do not match
FIXES 2637

This was SVN commit r16138.
2015-01-11 14:08:01 +00:00
5cf2086a33 Fix the initial exploration of territories, which shouldn't be performed in Atlas.
Also clean up the code a bit.

Fixes #2969

This was SVN commit r16129.
2015-01-08 22:36:13 +00:00
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
b36c78b4c4 Fix build warning
This was SVN commit r16115.
2015-01-05 20:05:53 +00:00
045fea23aa Properly adjust Atlas for the init changes.
This was SVN commit r16112.
2015-01-03 17:42:42 +00:00
f0d7346b8f Happy New Year! :D
This was SVN commit r16103.
2015-01-02 14:22:23 +00:00
8441a3f8d6 Fix compilation failure with GCC and C++98/03.
Local types shall not be used as a template argument. So move it
to a higher scope. This restriction was lifted in C++11, so we
might want to change this back when we switch to that.

This was SVN commit r16101.
2015-01-01 23:57:04 +00:00
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
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
9329506e0d add support for civ specific player template, see #2877
This was SVN commit r16092.
2014-12-31 09:31:41 +00:00
913674a202 Remove useless call.
This was SVN commit r16090.
2014-12-31 00:21:41 +00:00
2c20936ce3 Save map settings. Patch by @aBothe. Fixes #2963.
This was SVN commit r16089.
2014-12-31 00:21:24 +00:00
8f387e0044 Remove code duplication and some cleanup.
This was SVN commit r16088.
2014-12-30 18:21:02 +00:00
992169c3ab Fix indentation in daaddaf433.
This was SVN commit r16087.
2014-12-30 17:27:18 +00:00
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
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
d68a057153 Fix warning.
This was SVN commit r16077.
2014-12-28 16:45:06 +00:00
4c12440868 Give access to the templates to the GUI. This will be useful for eventually displaying factions specificities in main menus.
This was SVN commit r16075.
2014-12-28 16:21:07 +00:00
2ef3c0c42e Compute the actual percentage of map explored by the team in the summary screen.
Fixes #2587.

This was SVN commit r16071.
2014-12-26 19:13:40 +00:00
1e17cbe33c Use the range manager to pick entities when drawing a selection box during a game. This allows for a significant performance improvement.
Fixes #2961, patch by @aBothe.

This was SVN commit r16068.
2014-12-26 13:07:49 +00:00
49187dd990 Drop support for AIs that are not using modules.
This was SVN commit r16061.
2014-12-23 01:20:50 +00:00
d21cf8f3aa Clarify some comments.
This was SVN commit r16060.
2014-12-23 00:46:00 +00:00
ce0c1e4302 Report names of components or interfaces in case of error when registering those.
This was SVN commit r16059.
2014-12-23 00:29:14 +00:00
efce88b97b Call setlocale(3) on BSDs so that we can log unicode strings. Patch by Teiresias. Fixes #1142.
This was SVN commit r16058.
2014-12-22 00:23:07 +00:00
71ba68e3a3 Fix performance problem with unnecessary global message subscription
On my ESR31 branch, I've made two measurements with different replays
(both around 15000 turns).
In the first, I got around 3% performance improvement and in the second
about 7.5%. It mainly depends on how often aura changes related to the
female citizen aura happen.

This was SVN commit r16055.
2014-12-21 01:44:00 +00:00
a9c6b7080a Fixes intermittent error messages caused by uninitialized variable
This was SVN commit r16049.
2014-12-14 17:43:40 +00:00
add113a2a1 Remove duplicated layers of unescaping which required multiple escapes in some places.
This was SVN commit r16043.
2014-12-13 01:08:29 +00:00
eb8a6c9427 Explictly use GMT when displaying a localized time that is not a date. Patch by lafferjm. Fixes #2938.
Also make some parameters const references.

This was SVN commit r16037.
2014-12-12 01:11:00 +00:00
622614de02 Allow nesting repeat tags in the GUI.
This was SVN commit r16034.
2014-12-10 20:10:02 +00:00
fd93e4ae74 Remove testing of some special templates. We need to find a good way to generate template subsets, refs #2951.
This fixes the tests fail introduced in b05879e151.

This was SVN commit r16033.
2014-12-09 23:20:31 +00:00
f80adad667 Fixes some inconsistent line endings and EOL-related SVN properties.
This was SVN commit r16024.
2014-12-06 12:11:42 +00:00
b05879e151 Move template items GetRetainInFog and AlwaysVisible from Vision to Visibility.
Refs #2913

This was SVN commit r16022.
2014-12-05 18:33:59 +00:00
7e0e566346 Fix typo in include. Refs #2086.
This was SVN commit r16018.
2014-12-03 16:43:51 +00:00
3c45599be5 fix default ai difficulty when using autostart, was easy since f90841cf78
This was SVN commit r16015.
2014-11-30 16:35:32 +00:00
1cc19e9176 Specify that my templatesanalyzer tool is distributed under the MIT license. Thanks to leper for noticing that it was currently unspecified.
This was SVN commit r16014.
2014-11-30 16:28:04 +00:00
759a6701f6 Fix test build.
The parser that extracts the methods to call does not care about
defines.

This was SVN commit r16013.
2014-11-29 21:26:01 +00:00
1430efa9d6 Properly handle auto-research promotion techs at game start.
This was SVN commit r16009.
2014-11-25 22:47:02 +00:00
87d5d37488 Some source string fixes.
This was SVN commit r16002.
2014-11-22 22:21:54 +00:00
c385a88c88 Remove unused overload of GetSavedGameData
This was SVN commit r16001.
2014-11-22 19:46:24 +00:00
504e23acb8 Make some things static.
This was SVN commit r15997.
2014-11-20 22:19:33 +00:00
335ac3d0cb Query /proc for the executable path on Linux. Patch by starslayer. Refs #2086.
Factor out unix_ExecutablePathname() which is used by BSDs and Linux (as
a fallback).

This was SVN commit r15996.
2014-11-20 22:19:21 +00:00
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
1abd5669c9 Replace spaces in source file paths with non-breaking spaces. Refs #2539.
This way our map file paths are not split due to word wrapping in the po
files.

This was SVN commit r15993.
2014-11-19 23:10:51 +00:00
f90841cf78 add a very-easy level for AI, addresses #2899
This was SVN commit r15990.
2014-11-18 21:21:21 +00:00
3589aa39b9 Update documentation on how to generate the entity component documentation.
This was SVN commit r15987.
2014-11-18 03:57:21 +00:00
afecbf02f3 Extend the config parser to support ini-style config files. Refs #1810.
Config settings in a section are stored as "sectionname.setting"
internally.
Do not write section headers when writing config files as we would need
to write
settings without a dot first or ignore them. This can be changed once
all settings
belong to a section.

This was SVN commit r15986.
2014-11-18 03:57:07 +00:00
73de625089 Also change GameSetup.cpp.
This was SVN commit r15985.
2014-11-18 00:24:29 +00:00