Compare commits

479 Commits

Author SHA1 Message Date
scythetwirler 1303b4d39b Fix a couple oversights and address cavalry skirmishers.
This was SVN commit r16409.
2015-03-09 02:05:32 +00:00
historic_bruno 1a4176ebcf Updates OS X icon with multiple sizes and slightly reduced transparency to make it more easily clickable.
Updates OS X bundle build script, disables broken testing, refs #2780

This was SVN commit r16408.
2015-03-09 00:24:15 +00:00
historic_bruno eaa8f89ffc Reverts action-heal cursor from 1d3adefacc, it was modified to indexed color not currently supported by the engine, fixes #3082, refs #1640. Reapplies the transparent color removal, refs #2823.
Deletes unused test-old cursor

This was SVN commit r16407.
2015-03-06 22:01:11 +00:00
leper 206aeaf99f Revert 37da37dbd5. Refs #3072.
This was SVN commit r16406.
2015-03-03 23:56:00 +00:00
historic_bruno c3f62542a4 Expands area for release name slightly, as it was cut off at 1024x768 resolution
This was SVN commit r16404.
2015-03-03 21:37:59 +00:00
scythetwirler 54e806e3c6 Slight ranged cavalry health nerf and cost adjustment for cavalry archer.
This was SVN commit r16402.
2015-03-03 04:12:30 +00:00
leper 2b5de1df93 Do not send VisionRangeChanged messages when deserializing. Fixes #3075.
This was SVN commit r16401.
2015-03-03 01:59:42 +00:00
fabio 7901f4087d Revert 1d3adefacc on unused test-old.png (and optimize with optipng and advdef anyway), apparently imagemagick trick mess it up. It could be eventually be removed if not needed.
Refs #2823.

This was SVN commit r16400.
2015-03-02 10:26:12 +00:00
leper a5db659ce4 Update translations to be included in the release.
This was SVN commit r16399.
2015-03-02 00:10:00 +00:00
historic_bruno 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
scythetwirler e4bf24dc9a Adjusts female citizen attack.
This was SVN commit r16395.
2015-03-01 19:58:06 +00:00
historic_bruno 839264b279 Adds missing GLSL normal definitions to terrain_decal effect (no visible difference on my system but technically correct), refs #2046
This was SVN commit r16394.
2015-03-01 19:33:04 +00:00
scythetwirler 8a2638a8f5 Nerfs bolt shooters, especially against buildings.
This was SVN commit r16392.
2015-02-28 20:56:19 +00:00
JoshuaJB 37da37dbd5 Cleanup post-game summary page again. Fixes #3072
This was SVN commit r16391.
2015-02-28 18:32:50 +00:00
scythetwirler ea2eb2bd57 Removes some outdated techs due to string freeze.
This was SVN commit r16390.
2015-02-28 16:55:28 +00:00
wraitii aab15123f1 I hate myself.
This was SVN commit r16389.
2015-02-28 14:11:21 +00:00
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
fabio b04761f1b8 binaries/data/mods/mod/art/textures/cursors/test.png and binaries/data/mods/public/art/textures/cursors/arrow-default.png were previously a copy of the same file (same md5), during conversion in 1d3adefacc they were indipendently converted and had different md5 (just the date inside the png was different). Use again the same file just to make obvious they are identical.
Refs: #2823.

This was SVN commit r16387.
2015-02-28 08:09:30 +00:00
fabio 1d3adefacc Fixes cursor with dirty transparency.
I used elexis script and also optimized pngs with optipng -o 5 and
advdef -z -4

Thanks elexis for the imagemagick script!

Fixes #2823.

This was SVN commit r16386.
2015-02-27 10:13:24 +00:00
leper 3a25256960 Revert d69ecad481. Refs #3072.
This was SVN commit r16385.
2015-02-25 19:10:10 +00:00
JoshuaJB d69ecad481 Cleanup post-game summary page. Fixes #3072
This was SVN commit r16384.
2015-02-25 14:51:52 +00:00
scythetwirler 72b0f5aaed Increases swordsmen damage slightly to match spear.
This was SVN commit r16383.
2015-02-25 07:33:51 +00:00
historic_bruno 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
historic_bruno 1ac24adde2 Disables some SpiderMonkey-related build warnings with clang
This was SVN commit r16379.
2015-02-22 21:15:47 +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
scythetwirler fc58b52396 Building defense adjustments for health/armor values for organic units.
This was SVN commit r16377.
2015-02-22 18:55:22 +00:00
historic_bruno 18a115e772 Forces using libc++ on OS X, to fix pre-Mavericks build given the game's new C++11 requirements, fixes #3062.
Forces using C++11 in build-osx-libs.sh, for consistency

This was SVN commit r16375.
2015-02-22 01:19:39 +00:00
historic_bruno 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
Ykkrosh 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
scythetwirler 4860957fa6 Adjusts skirmisher cavalry closer to that of their infantry counterpart.
This was SVN commit r16371.
2015-02-21 19:37:06 +00:00
scythetwirler b9cf610562 Makes palisade fort cheaper than defense tower.
This was SVN commit r16370.
2015-02-21 19:08:26 +00:00
mimo cdc9d98e00 do not apply multiple leavefoundation orders, fix #3010
This was SVN commit r16369.
2015-02-21 17:40:59 +00:00
scythetwirler e67379a25f Buffs rams for better durability.
This was SVN commit r16368.
2015-02-21 15:14:04 +00:00
Itms 0817808e9b Check visibility of units before moving the camera to their position, when using selection groups.
Fixes #3065.

This was SVN commit r16367.
2015-02-21 10:53:56 +00:00
leper 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
leper 0da0b062e1 Return the correct projectile id to fix serialization test failure.
This was SVN commit r16363.
2015-02-21 01:41:09 +00:00
scythetwirler 8ecfa6cf7c Nerfs skirmishers slightly.
This was SVN commit r16361.
2015-02-20 15:17:29 +00:00
Itms 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
historic_bruno 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
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
scythetwirler 6b364ad240 Reverts half of 6317e320f2 due to string freeze.
This was SVN commit r16355.
2015-02-18 19:32:08 +00:00
scythetwirler 6317e320f2 Nerfs hero aura and deletes hardcoded health.
This was SVN commit r16354.
2015-02-18 19:30:22 +00:00
mimo 27e4122d44 fix damages on nearby units which, because of wrong argument (3d instead of 2d) was tested on x-y distance instead of x-z, resulting in faraway entities being damaged
This was SVN commit r16353.
2015-02-18 19:20:14 +00:00
historic_bruno 3dbe3a364f Adds "demo" keyword to some unplayable, unfinished maps so they are hidden in game setup, patch by thamlett, refs #2881
This was SVN commit r16352.
2015-02-17 21:26:24 +00:00
historic_bruno 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
historic_bruno 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
mimo 4b921d89da prevent JS warning
This was SVN commit r16348.
2015-02-16 19:40:27 +00:00
mimo 5871c2c16d fix #3058, patch from Stan
This was SVN commit r16347.
2015-02-16 19:02:40 +00:00
Itms 6a12dab20f Some hacks to fix game setup persisting problems, patch by @aBothe.
Fixes #3033, #3034.

The whole gamesetup.js system should be eventually re-factored to remove
those hacks and to improve the robustness of the code: see #3049.

This was SVN commit r16346.
2015-02-16 17:48:27 +00:00
scythetwirler 6f9c5efd76 Nerfs the robustness of ranged siege against melee units.
This was SVN commit r16344.
2015-02-16 15:19:41 +00:00
Itms ba210c4d59 Fix c229b46ac2.
This was SVN commit r16343.
2015-02-16 14:38:13 +00:00
scythetwirler 72ff88880c Buffs walkspeed of pikemen slightly.
This was SVN commit r16341.
2015-02-16 00:26:43 +00:00
Pureon f8bd862512 Updated a few structure icons. Some new tech icons.
This was SVN commit r16340.
2015-02-15 12:32:55 +00:00
Pureon a3374d3164 Icons for palisade wall and palisade fort
This was SVN commit r16339.
2015-02-15 11:17:18 +00:00
Yves 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
scythetwirler f18a6981bb Fixes extraneous attack. Reported by zzippy.
This was SVN commit r16336.
2015-02-14 14:55:32 +00:00
Ykkrosh 49222a4c6a Fix Windows build
This was SVN commit r16334.
2015-02-14 02:22:22 +00:00
Ykkrosh 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
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
scythetwirler bf4b8bfe9c Siege balancing.
This was SVN commit r16331.
2015-02-13 07:05:54 +00:00
Itms 682a944d7e Little code tweak without performance impact
This was SVN commit r16329.
2015-02-12 23:24:48 +00:00
Itms 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
mimo 5725ceda9d Petra: really fix the bug supposed to be fixed in 04fa2dd4ec
This was SVN commit r16327.
2015-02-12 21:04:29 +00:00
leper c049b0ae27 Treat \t as whitespace in config files. Fixes #3050.
This was SVN commit r16326.
2015-02-12 17:31:10 +00:00
leper 1e54289aa8 Only check binaries/data for po/pot files.
This was SVN commit r16324.
2015-02-12 00:25:47 +00:00
scythetwirler 5775485421 Fix a bug that triggered errors when loading Roman champion cavalry.
This was SVN commit r16322.
2015-02-11 22:21:11 +00:00
scythetwirler e407b97d0e Updates pikemen counter bonus to match that of spearmen.
This was SVN commit r16321.
2015-02-11 22:20:29 +00:00
leper 42d96cfde7 ...
This was SVN commit r16320.
2015-02-11 22:06:41 +00:00
mimo b239bcd8b9 protection against JS warning
This was SVN commit r16319.
2015-02-11 20:27:04 +00:00
mimo cd9eeef1b7 force garrisoned units as turrets to have stance standground, fixes #2905
This was SVN commit r16318.
2015-02-11 18:34:06 +00:00
mimo 04fa2dd4ec Petra: more tunings for new ranges and fix a bug in attack preparation
This was SVN commit r16317.
2015-02-11 18:20:30 +00:00
Itms 51a37e6d0f String changes, based on input from Transifex users:
- Fix a typo in the options screen
- Add an indication to Persian heroes dates, that are actually dates of
reign.

This was SVN commit r16316.
2015-02-11 15:08:09 +00:00
wraitii 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
scythetwirler cf30c90732 Nerfs melee cavalry slightly and increases spearman bonus.
This was SVN commit r16313.
2015-02-10 00:37:21 +00:00
mimo a8f726df55 fix #3043 by increasing the minimum distance between civs
This was SVN commit r16312.
2015-02-09 19:21:56 +00:00
Itms cc0c21d46b Update the Survival of the Fittest map description for more clarity. Refs #2817
This was SVN commit r16310.
2015-02-09 18:06:46 +00:00
Ykkrosh 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
leper 26d303d854 Improve mod support of the structree. Patch by s0600204.
Adapt structree for changes from the balancing branch.

This was SVN commit r16308.
2015-02-08 23:07:18 +00:00
mimo 5d447432ec fix previous fix
This was SVN commit r16307.
2015-02-08 23:03:47 +00:00
mimo 1f52d98856 fix game description of unknown_nomad
This was SVN commit r16306.
2015-02-08 22:58:19 +00:00
mimo 1af4a60b7c Petra: some tweaks for new ranges from balance brabnch
This was SVN commit r16305.
2015-02-08 21:32:55 +00:00
scythetwirler c58a2a3c79 Hero balancing.
This was SVN commit r16302.
2015-02-08 20:54:34 +00:00
scythetwirler d09beef3de Allow cavalry spearmen to do a little more hack to better counter siege.
This was SVN commit r16301.
2015-02-08 20:49:24 +00:00
scythetwirler 001179da6e Lessens the range difference between units and adjusts vision accordingly.
This was SVN commit r16300.
2015-02-08 20:12:07 +00:00
JoshuaJB e1f61ea8f8 Fix tab/space issues with 6e37d6698b.
This was SVN commit r16299.
2015-02-08 18:17:56 +00:00
leper 6bdd912146 Fix double-escape in the lobby chat.
This was SVN commit r16298.
2015-02-08 17:37:33 +00:00
leper 75d295b25e Add /allies to chat with mutual allies. Patch by trompetin17. Refs #1767.
This was SVN commit r16297.
2015-02-08 17:37:24 +00:00
leper 92701639f6 Update g_Players on diplomacy changes so the GUI actually knows about them.
This was SVN commit r16296.
2015-02-08 17:37:15 +00:00
leper a11bf075b1 Some text fixes reported by translators.
This was SVN commit r16295.
2015-02-08 15:46:26 +00:00
scythetwirler 1b82389cf8 Reduces cavalry vision and makes palisade fort count as a village structure instead of town.
This was SVN commit r16294.
2015-02-08 15:07:35 +00:00
JoshuaJB 6e37d6698b MessageBox cleanup.
This was SVN commit r16293.
2015-02-08 05:48:33 +00:00
leper f9c95b6953 Do not send gaia stats for rated games.
This was SVN commit r16292.
2015-02-08 01:59:02 +00:00
leper 486094298e Properly escape user chat.
This was SVN commit r16291.
2015-02-08 01:24:23 +00:00
scythetwirler 37912c05ca Increases tower range and nerfs archer accuracy.
This was SVN commit r16290.
2015-02-07 22:53:36 +00:00
mimo f28c3b2392 fix the fix of 9ccd986bde
This was SVN commit r16289.
2015-02-07 22:47:09 +00:00
leper e882479e1a Add tab-completition to game setup screen. Patch by trompetin17.
This was SVN commit r16288.
2015-02-07 21:57:57 +00:00
JoshuaJB 19ec4ced91 Clean up the splashscreen. More concise wording, only modern styling, alignment fixes, larger click/touch targets, and code cleanup.
This was SVN commit r16287.
2015-02-07 19:18:06 +00:00
scythetwirler f56102967f Balance branch merge.
This was SVN commit r16285.
2015-02-07 18:50:36 +00:00
scythetwirler 3c2a450679 Updates splashscreen. Fixes #3025.
This was SVN commit r16284.
2015-02-07 18:30:16 +00:00
scythetwirler 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
Itms 0f98bdb7ee Fix a typo.
This was SVN commit r16282.
2015-02-07 15:51:45 +00:00
Itms 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
Itms 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
mimo dab6836378 modified version of the skirmish/Sicilia map, to feature news in A18: starting without cc and with units garrisoned
This was SVN commit r16279.
2015-02-07 13:15:14 +00:00
mimo 9ccd986bde fix initialization when changing maps, refs #2803
This was SVN commit r16278.
2015-02-07 12:49:00 +00:00
mimo 08827a9d64 fix a typo
This was SVN commit r16277.
2015-02-07 12:44:51 +00:00
leper 932dbc7221 Import s0600204's structree.
Taken from https://github.com/s0600204/0ad-structree-mod with some
improvements from my fork.
On small resolutions some buildings might not be fully visible (see
#3038).

This was SVN commit r16276.
2015-02-07 01:37:05 +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
Itms 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
leper 18a1820d9c Remove stray character.
This was SVN commit r16273.
2015-02-06 16:50:22 +00:00
leper 766d2f833f Fix gather rally points for formations (batches). Patch by stanislas69. Fixes #3037.
Also clean up some whitespace.

This was SVN commit r16272.
2015-02-06 02:11:39 +00:00
leper 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
mimo f0ae351158 read starting tech, disabled tech, ... from map JSON file, refs #1404
This was SVN commit r16270.
2015-02-05 22:29:36 +00:00
leper e12f53c48d Some more gui cleanup.
This was SVN commit r16269.
2015-02-05 17:42:16 +00:00
Itms 94507bf7ee Remove entirely the unit in the Celt outpost. Also clean out the dae model to remove the associated prop point.
Fix by stanislas69, fixes #2876.

This was SVN commit r16268.
2015-02-04 17:39:24 +00:00
Itms bf6323a71f Amend 7020d17886 and also fix observer mode. Fixes #3032.
This was SVN commit r16267.
2015-02-04 09:20:00 +00:00
mimo d5aab3f056 hotkey button should have no effect when button is disabled, fix #3031
This was SVN commit r16266.
2015-02-03 18:22:41 +00:00
mimo 2eff0348c5 remove unused argument
This was SVN commit r16265.
2015-02-03 18:19:14 +00:00
Itms b08941ba8d Add back some data to the basic simulation state, works around 2ef3c0c42e.
Fixes #3016.

This was SVN commit r16264.
2015-02-03 17:35:34 +00:00
leper 0aa7e882b7 More gui cleanup.
This was SVN commit r16263.
2015-02-03 02:37:42 +00:00
leper e1b13dead9 Clean up tooltip code a bit more.
Remove useless tooltip from spart citizen, as the classes should be done
using visible classes.

This was SVN commit r16262.
2015-02-03 02:02:51 +00:00
leper 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
mimo 3ee30f125c update online manual
This was SVN commit r16260.
2015-02-02 21:18:39 +00:00
mimo 0038fb2e1e Petra: small tweaks in defense
This was SVN commit r16259.
2015-02-02 20:52:45 +00:00
JoshuaJB e75498a655 Fix d71161fe4c on WxWidgets 2.8
This was SVN commit r16258.
2015-02-02 20:20:37 +00:00
leper 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
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 3225e564fe Fix 1564a10120, plus code cleanup
This was SVN commit r16254.
2015-02-01 19:04:21 +00:00
mimo e1e5979d73 Petra: garrison siege units when useful
This was SVN commit r16252.
2015-01-30 18:41:33 +00:00
mimo ad4e995bd4 clean 499d41ad80
This was SVN commit r16251.
2015-01-30 18:15:03 +00:00
Itms 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
Itms f52e3ea052 Fix uninitialized variable, fix by trompetin17, fixes #3027.
This was SVN commit r16249.
2015-01-30 17:37:40 +00:00
Itms 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
mimo 7d282f6bb1 Petra: improve late game when resources rely mainly on trade
This was SVN commit r16246.
2015-01-29 21:49:38 +00:00
mimo 499d41ad80 Shift key when deleting a saved game do not need confirmation, addresses #3018
This was SVN commit r16245.
2015-01-29 21:18:48 +00:00
Itms df2e077870 Trailing spaces cleanup, based on patch by trompetin17, refs #1767.
This was SVN commit r16244.
2015-01-29 16:10:03 +00:00
Itms c654be8796 Extend ac8124b332 and avoid /delayload warnings in Windows builds when building Atlas and Collada.
This was SVN commit r16243.
2015-01-29 14:02:58 +00:00
historic_bruno 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
Ykkrosh 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
Itms c599f92875 Big cleanup of the summary page internals, making use of nested tags in the xml and organizing the logic in a more flexible way.
Patch by trompetin17, fixes #2952.

This was SVN commit r16240.
2015-01-27 21:38:05 +00:00
mimo 965a6f3838 update online manual, refs #3018
This was SVN commit r16239.
2015-01-27 18:24:33 +00:00
leper 8af1c907fa Reset victory conditions on map change. Refs #3001.
This was SVN commit r16238.
2015-01-27 17:46:57 +00:00
fabio 0a34e6106d Improve readability printing a single error message.
This was SVN commit r16237.
2015-01-27 09:14:30 +00:00
mimo b38a6e9383 add hotkey for deleting saved games, addresses #3018
This was SVN commit r16236.
2015-01-26 21:05:31 +00:00
Yves c61981793c Fixes some missing replacements of mozjs24 with mozjs31
This has caused the bundled library to be built even if
--with-system-mozjs31 is specified (but actually it has still correctly
used the system library after building the bundled library).
Refs #2462

This was SVN commit r16235.
2015-01-26 18:19:24 +00:00
historic_bruno 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
leper 2eabb799b9 Clear the victory conditions properly. Refs #3001.
This was SVN commit r16232.
2015-01-25 20:52:10 +00:00
Ykkrosh 4473ed5c88 glext_funcs: Support glMapBuffer, glMapBufferRange
This was SVN commit r16231.
2015-01-25 16:36:23 +00:00
Ykkrosh 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
mimo 0423f6cc29 Petra: tweaks the starting strategy for scenarios with lot of units
This was SVN commit r16229.
2015-01-25 11:23:06 +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 4c1903500b Switch to std::shared_ptr and std::weak_ptr.
This was SVN commit r16227.
2015-01-25 03:10:58 +00:00
leper 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
leper 0261d12727 Remove some checks for usupported VS versions (<2013).
This was SVN commit r16225.
2015-01-24 20:37:16 +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
Ykkrosh 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
Gallaecio 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
Ykkrosh ac8124b332 Avoid /delayload warnings in Windows build.
This was SVN commit r16220.
2015-01-24 18:54:47 +00:00
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Yves 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
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 b9e46f386b Disable online reporting of profiler data.
Nobody ever looks at the data, and it takes up a lot of server disk
space. The feature should probably be restored in the future once we've
fixed all the obvious performance problems, since a wider range of data
lets us search for system-dependent issues (e.g. some GL drivers are
particularly slow with particular features), but it's not worthwhile
now.

This was SVN commit r16213.
2015-01-24 14:29:05 +00:00
mimo 236f67d45f Petra: fix defensive garrison by using GarrisonArrowClasses + several small fixes
This was SVN commit r16212.
2015-01-24 13:28:17 +00:00
mimo f1f36232d8 fix limit changer when stating limit = 0
This was SVN commit r16211.
2015-01-24 12:03:31 +00:00
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh 2e01b157d6 Fix build error in GLES configurations
This was SVN commit r16207.
2015-01-23 20:54:14 +00:00
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
mimo a2efd97476 fix js error
This was SVN commit r16201.
2015-01-23 17:34:46 +00:00
historic_bruno adcd9191a6 Updates Windows installer config for 65cc47f6c0
This was SVN commit r16200.
2015-01-23 03:38:02 +00:00
historic_bruno 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
historic_bruno 5fa3318bbf Adds premake build vs2013 workspace, since that's now our only supported version, and removes workspaces for old unsupported versions.
Rebuilds premake win32 binary with VC++ 2013.

This was SVN commit r16195.
2015-01-23 01:46:28 +00:00
Ykkrosh f3f2717c66 Fix tests on 32-bit builds.
This was SVN commit r16193.
2015-01-22 21:13:09 +00:00
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh 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
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 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
Ykkrosh 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
Ykkrosh e9a33b71ae Manually fix the less trivial CLogger format strings.
This was SVN commit r16184.
2015-01-22 20:32:06 +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
Ykkrosh 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
Ykkrosh ca7b890e16 cppformat: Add basic tests for the functionality we use.
This was SVN commit r16181.
2015-01-22 20:28:57 +00:00
Ykkrosh 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
Ykkrosh 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
Ykkrosh 8875ae9cdf cppformat: Fix compatibility with our build system on Windows.
This was SVN commit r16178.
2015-01-22 20:26:58 +00:00
Ykkrosh f16407f6e9 cppformat: Fix -Wundef build warnings from GCC.
This was SVN commit r16177.
2015-01-22 20:26:32 +00:00
Ykkrosh f96593a9f3 Import cppformat v0.11.0
Refs #3011.

This was SVN commit r16176.
2015-01-22 20:25:10 +00:00
Itms f8bfe3eafb Clean up redundancies in templates for the Visibility component, refs #2913
This was SVN commit r16175.
2015-01-22 17:23:25 +00:00
Itms ad1adbe027 Implement the Rotary Mill aura for Celtic factions. Patch by niektb, fixes #2900.
Also remove the placeholder technology and the rotary mill generic
Celtic template, and rename the rotary mill portrait. Refs #2619.

This was SVN commit r16174.
2015-01-22 10:16:26 +00:00
leper 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
Itms b5b9c0f2ae Improve template code style for the Decay component.
This was SVN commit r16171.
2015-01-21 21:45:05 +00:00
Itms b65dcaba48 Prevent observers from using the team chat. Patch by trompetin17, fixes #2879.
This was SVN commit r16170.
2015-01-21 21:18:55 +00:00
leper 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
leper 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
mimo df3222a073 Petra: improve choice of target when attacking, to prevent cases where most units would follow the same target
This was SVN commit r16167.
2015-01-20 18:31:57 +00:00
Itms 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
Ykkrosh 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
Ykkrosh 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
Ykkrosh b74e853144 Fix typo which caused GLES errors
This was SVN commit r16163.
2015-01-19 20:04:46 +00:00
mimo 4554ed676e continue to display research overlay after victory, fixes #2983
This was SVN commit r16161.
2015-01-18 16:55:52 +00:00
Yves 09bbc9c35c Enable C++11 by default.
Don't generate workspaces and remove checks for unsupported compier/IDE
version$

Refs #2669

This was SVN commit r16160.
2015-01-18 13:44:03 +00:00
mimo 10f90fd8cf Petra: fix missing line in 0a5089c841
This was SVN commit r16159.
2015-01-18 10:28: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
historic_bruno 4ca156e2d8 Updates build-osx-libs.sh to use wxWidgets 3.0.2.
Adds patch to fix wxWidgets build on Yosemite (based on
http://trac.wxwidgets.org/changeset/76743), fixes #2924.
Removes patch for previous version of wxWidgets.

This was SVN commit r16155.
2015-01-18 03:31:26 +00:00
mimo 0a5089c841 Petra: prevent melee units to try to attack ships + tweaks on buildings
This was SVN commit r16154.
2015-01-17 17:50:27 +00:00
Yves ba14819191 Use future-proof lib path in build-osx-libs.sh. Patch by trompetin17.
There are symbolic links to the library binaries in the directory
dist/lib. It's better to use these links rather than the location they
point to for the copy command (they point to a different location in
ESR31).

Refs #2462

This was SVN commit r16153.
2015-01-17 14:03:22 +00:00
mimo 993d9c72d3 Petra: various small tweaks
This was SVN commit r16152.
2015-01-17 12:53:33 +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
leper 755ec45a14 Use correct format specifiers. Patch by bog_dan_ro.
This was SVN commit r16148.
2015-01-13 18:37:50 +00:00
mimo 702fb7344e allow maps to handle garrisoned units, fixes #2984
This was SVN commit r16147.
2015-01-13 17:59:55 +00:00
fabio f2d71164e6 Fixes game mode defaulting to Conquest when Endless mode is selected.
Patch by niektb, thanks!

Fixes #3001.

This was SVN commit r16146.
2015-01-13 12:08:54 +00:00
mimo 528ed2d15e prevent error when switching perspective to gaia
This was SVN commit r16145.
2015-01-12 22:03:03 +00:00
mimo e916c7e91f add display of trading goods when multiple selection
This was SVN commit r16144.
2015-01-12 21:39:31 +00:00
mimo 9855717840 Petra fix js warning when building cart super_dock, addresses #2998
This was SVN commit r16143.
2015-01-12 20:47:14 +00:00
mimo 320cfa0bfc Petra: complete the rework of starting game to allow more flexibility (i.e. support of nomad maps)
This was SVN commit r16142.
2015-01-11 22:47:24 +00:00
historic_bruno 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
leper 8fc14655b5 Improve 524a942b52. Refs #2637.
This was SVN commit r16140.
2015-01-11 19:14:03 +00:00
Yves 95fa46304f Don't specify wxwidgets lib names in extern_libs4.lua
It works without specifying them and this way it builds with wxwidgets
2.8 and 3 on Windows

Refs #2891

This was SVN commit r16139.
2015-01-11 17:25:24 +00:00
Gallaecio 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
mimo 873399b294 fix a typo, addresses #2998
This was SVN commit r16136.
2015-01-10 19:41:02 +00:00
mimo 731e3dd13c Petra: continue rework of starting game to allow more game type
This was SVN commit r16135.
2015-01-10 14:34:26 +00:00
leper 77dba7a8bb Remove some duplication in the gui tooltip code.
This was SVN commit r16134.
2015-01-09 17:08:12 +00:00
Itms 539b4d8372 Remove an old, useless and possibly broken call.
This was SVN commit r16133.
2015-01-09 16:59:01 +00:00
Yves c681174fad Adds a notice about a known issue in premake4.lua with the icc compiler
Refs #2994

This was SVN commit r16132.
2015-01-09 12:48:42 +00:00
Itms 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
mimo 006faaeaeb Petra: tunings for 9b79b5b844
This was SVN commit r16128.
2015-01-08 22:01:38 +00:00
leper 0f21151c4b Some gui code cleanup/restructuring.
Moving some tooltip code that only needs templates to common/ to
allow to use that for the structree mod.

This was SVN commit r16127.
2015-01-08 21:37:59 +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 57ecf88ac2 Move some technology template and template information retrieval code
to globalscripts, so that the gui is able to use it without needing the
simulation.

This helps remove code duplication in the structree mod.

This was SVN commit r16125.
2015-01-08 19:55:10 +00:00
leper e8fb23e940 Fix tests broken in bd31f83587.
This was SVN commit r16124.
2015-01-08 19:20:34 +00:00
mimo bdb1145f63 remove some debug printout forgotten in 9b79b5b844
This was SVN commit r16123.
2015-01-07 21:55:21 +00:00
mimo 9b79b5b844 Petra: first step of base management rework needed for nomad maps
This was SVN commit r16122.
2015-01-07 21:40:10 +00:00
mimo bb6003ea0c rename civ specific player template following 4243433f94 convention
This was SVN commit r16121.
2015-01-07 21:18:59 +00:00
leper bd31f83587 Check if components exist before using them.
Remove EntityLimits and TechnologyManager from the gaia player template.

This was SVN commit r16120.
2015-01-07 20:48:36 +00:00
leper 4243433f94 Use a gaia specific player entity.
Fix some code that assumed components exist instead of testing for them.
EntityLimits and TechnologyManager are not needed for gaia and will be
removed in the future.

This was SVN commit r16119.
2015-01-07 20:33:19 +00:00
mimo c6bb3df43a following #2877, civilCentre must be disabled for this kind of scenario
This was SVN commit r16118.
2015-01-07 20:29:01 +00:00
leper 01fb25fdab Fix variable name.
This was SVN commit r16117.
2015-01-07 19:52:33 +00:00
leper a8c85035f8 Ignore gaia in PlayerData when loading maps.
This was SVN commit r16116.
2015-01-06 00:16:06 +00:00
Ykkrosh b36c78b4c4 Fix build warning
This was SVN commit r16115.
2015-01-05 20:05:53 +00:00
LordGood d8b1549883 Seleucid farmstead
This was SVN commit r16114.
2015-01-04 12:46:57 +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 c21514b844 Do not include domestic animals in military selection. Patch by trompetin17. Fixes #2978.
This was SVN commit r16111.
2015-01-03 15:44:28 +00:00
leper dadfcb06d2 Specify icons for base phase techs.
This was SVN commit r16110.
2015-01-03 15:15:55 +00:00
Pureon d13821fa7d Village phase icon
This was SVN commit r16109.
2015-01-03 12:01:21 +00:00
LordGood 0195cdb374 Seleucid storehouse
This was SVN commit r16108.
2015-01-03 04:03:22 +00:00
mimo abb62b0662 fix a typo in petra, thanks to brian
This was SVN commit r16106.
2015-01-02 19:35:35 +00:00
LordGood 21f525c966 Seleucid temple now has fully articulated stairs!
This was SVN commit r16105.
2015-01-02 14:43:07 +00:00
Itms f0d7346b8f Happy New Year! :D
This was SVN commit r16103.
2015-01-02 14:22:23 +00:00
LordGood 5bad08d66b Seleucid civ center placeholder
This was SVN commit r16102.
2015-01-02 13:21:40 +00:00
leper 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
leper 8097eeb8ab Fix RMS library forgotten in the previous commit.
Changes some direct accesses to use the library function.

This was SVN commit r16100.
2015-01-01 23:57:00 +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
mimo 7ac837fb90 allow the removal of entity limits when some requirements are satisfied. This allows to have starting games without cc
This was SVN commit r16097.
2015-01-01 18:28:21 +00:00
LordGood 95e0763ac9 Seleucid temple commit! Minor edits to Sele_struct_2 texture file.
This was SVN commit r16096.
2015-01-01 16:28:32 +00:00
mimo e8d1acfa41 preserve random civ in saved game settings, refs #2963
This was SVN commit r16095.
2014-12-31 15:34:48 +00:00
mimo 802320e753 some petra cleanings
This was SVN commit r16094.
2014-12-31 09:59:47 +00:00
mimo 9329506e0d add support for civ specific player template, see #2877
This was SVN commit r16092.
2014-12-31 09:31:41 +00:00
LordGood f984ba40ee Seleucid house commit
This was SVN commit r16091.
2014-12-31 07:27:07 +00:00
leper 913674a202 Remove useless call.
This was SVN commit r16090.
2014-12-31 00:21:41 +00:00
leper 2c20936ce3 Save map settings. Patch by @aBothe. Fixes #2963.
This was SVN commit r16089.
2014-12-31 00:21:24 +00:00
leper 8f387e0044 Remove code duplication and some cleanup.
This was SVN commit r16088.
2014-12-30 18:21:02 +00:00
leper 992169c3ab Fix indentation in daaddaf433.
This was SVN commit r16087.
2014-12-30 17:27:18 +00:00
mimo 555601fe51 Petra: avoid creating unused entitycollections
This was SVN commit r16085.
2014-12-29 23:56:37 +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 f337905f14 Actually focus the group instead of following it. Patch by trompetin17. Fixes #2972.
This was SVN commit r16083.
2014-12-29 20:40:37 +00:00
LordGood 53023b7efc This was SVN commit r16082. 2014-12-29 19:26:37 +00:00
leper 9a17a96054 Fix warning when following units. Fixes #2971.
This was SVN commit r16081.
2014-12-29 18:56:00 +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
leper f2edd35989 Enable LoadCivData to only load playable civs. Patch taken from s0600204's structree work.
This was SVN commit r16079.
2014-12-29 16:24:42 +00:00
LordGood 8608b0fe89 Seleucid Tower and textures
This was SVN commit r16078.
2014-12-29 12:29:41 +00:00
leper d68a057153 Fix warning.
This was SVN commit r16077.
2014-12-28 16:45:06 +00:00
Itms 0406f62ea0 Fix a typo, reported by t4nk004 on IRC.
This was SVN commit r16076.
2014-12-28 16:35:32 +00:00
Itms 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
mimo 92af594986 Petra: rewrite a stupidly inefficient function spotted by the traceLogger
This was SVN commit r16073.
2014-12-27 18:44:34 +00:00
mimo 0dd6711afa make Petra support passability and territory maps of different resolutions, addresses #2960
This was SVN commit r16072.
2014-12-27 15:23:20 +00:00
Itms 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
Itms dbb4b2c920 Update the Greek Acropolis (4) map description to remove the reference to the old non-skirmish map.
This was SVN commit r16070.
2014-12-26 18:07:10 +00:00
Itms 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
fabio ec9e0dfeed Add missing file in 286112e0aa.
Refs: #2937.

This was SVN commit r16065.
2014-12-25 14:22:15 +00:00
scythetwirler 286112e0aa Fixes #2937. Thanks to Lion_Kanzen and Pureon for making icons.
This was SVN commit r16064.
2014-12-25 05:12:39 +00:00
fabio b2650e08ba Fixes obelisks for player 2 and player 3 that were inverted.
Patch by silure, thanks!

Fixes #2962.

This was SVN commit r16063.
2014-12-24 15:26:45 +00:00
mimo 9684bcd360 add AI support of maps of different dimensions, see #2960
This was SVN commit r16062.
2014-12-23 14:17:52 +00:00
leper 49187dd990 Drop support for AIs that are not using modules.
This was SVN commit r16061.
2014-12-23 01:20:50 +00:00
leper d21cf8f3aa Clarify some comments.
This was SVN commit r16060.
2014-12-23 00:46:00 +00:00
leper 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
leper 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
mimo 4ce667412b Improve performance when looking for new targets.
Tested in combat demo huge where nearly 50% of the replay time is spent
looking for new targets, and GetPreference is called a lot as used to
sort possible targets.
Caching the preferred classes before the second loop, the replay time of
combat demo huge is reduced by about 15%. Replacing the "for each" loops
by "for of" loops gains an additionnal 7%.

This was SVN commit r16057.
2014-12-21 14:30:47 +00:00
leper 96c45eac61 Fix missing escapes.
This was SVN commit r16056.
2014-12-21 02:23:17 +00:00
Yves 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
mimo 01e2a33486 various small improvements in petra (choice of units in start game, ram management and team warnings when new trade route available)
This was SVN commit r16054.
2014-12-19 17:57:24 +00:00
mimo 39f6a8d3cd reshuffle the petra deserialization to prevent it to modify the metadata infos
This was SVN commit r16053.
2014-12-16 21:33:07 +00:00
leper a13cc54fc3 Use correct variable. Fix #2957.
This was SVN commit r16052.
2014-12-16 21:05:24 +00:00
mimo a143c847e2 small fixes for petra
This was SVN commit r16051.
2014-12-14 21:35:24 +00:00
Yves a9c6b7080a Fixes intermittent error messages caused by uninitialized variable
This was SVN commit r16049.
2014-12-14 17:43:40 +00:00
mimo 9b6981465a improve a bit the fix of 639a174388
This was SVN commit r16048.
2014-12-13 21:30:13 +00:00
mimo 639a174388 petra: fix choice of target when enemy resigned + some cleanings
This was SVN commit r16047.
2014-12-13 16:47:37 +00:00
leper 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
mimo a22f30c9b0 Improve AI performances thanks to traceLogger diagnostics. The gain is about 10% of AI time. The patch includes also some code cleanings.
This was SVN commit r16042.
2014-12-12 17:41:10 +00:00
mimo 34855896d0 fix typo in 30fb8d0f57
This was SVN commit r16041.
2014-12-12 07:36:34 +00:00
leper 30fb8d0f57 ResourceGatherer cleanup.
s/var/let/, check if cmpPlayer != null before using it, some whitespace.

This was SVN commit r16039.
2014-12-12 01:11:06 +00:00
leper 92ee34d76f Properly localize tribute messages.
This was SVN commit r16038.
2014-12-12 01:11:04 +00:00
leper 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
Yves 539046f750 Improves performance for the ResourceGatherer component
The tracelogger has shown one of the functions as 4.9% and one as 2.2%
before the patch. After the patch, both functions were below 0.5%. 100%
is the time for all JS code being executed during a non-visual replay,
including GC, overhead for the tracelogger and JIT code compiling.

This was SVN commit r16036.
2014-12-11 23:12:08 +00:00
mimo e435ef2704 several optimisations on the ai, refs #2370
This was SVN commit r16035.
2014-12-11 20:24:33 +00:00
leper 622614de02 Allow nesting repeat tags in the GUI.
This was SVN commit r16034.
2014-12-10 20:10:02 +00:00
Itms 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
mimo 21ecb22432 remove some now empty functions following previous patch
This was SVN commit r16032.
2014-12-09 20:30:27 +00:00
Gallaecio bce404adf2 Fixes the translation of the map size in the rihgt sidebar of the lobby
Fixes #2547

This was SVN commit r16031.
2014-12-09 20:11:16 +00:00
mimo ae7c2f9586 ai: entitycollections switch to maps, see #2370
This was SVN commit r16030.
2014-12-09 19:55:37 +00:00
mimo 36187ea64a petra: allow replacing civ center in game
This was SVN commit r16029.
2014-12-08 18:23:27 +00:00
mimo 6a785f791a additional fix for inefficient EC, thanks to Yves for noticing
This was SVN commit r16028.
2014-12-07 22:19:59 +00:00
mimo 3e09cf4797 improve petra performances, see #2370
This was SVN commit r16027.
2014-12-07 16:36:56 +00:00
mimo 37ae9f4ad2 fix previous tag
This was SVN commit r16026.
2014-12-06 16:13:13 +00:00
mimo 0facb07ca6 petra: changes in farms and tributes management
This was SVN commit r16025.
2014-12-06 14:48:06 +00:00
Itms f80adad667 Fixes some inconsistent line endings and EOL-related SVN properties.
This was SVN commit r16024.
2014-12-06 12:11:42 +00:00
Itms 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
mimo 0df90c5c2b ai common api : use maps for entitycollection lists + cleanings
This was SVN commit r16019.
2014-12-03 20:22:13 +00:00
leper 7e0e566346 Fix typo in include. Refs #2086.
This was SVN commit r16018.
2014-12-03 16:43:51 +00:00
mimo 4931652263 Non-fighting ships should not be agressive by default
This was SVN commit r16017.
2014-12-01 20:58:46 +00:00
mimo 5403c19cf0 petra: internal functions are now serialized
This was SVN commit r16016.
2014-11-30 19:05:39 +00:00
mimo 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
wraitii 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
leper 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
mimo c0092aaca5 petra: some cleanings + (small) timing optimizations
This was SVN commit r16012.
2014-11-29 18:53:17 +00:00
mimo 049312e5a2 various small tunings for petra
This was SVN commit r16011.
2014-11-26 22:01:40 +00:00
sanderd17 89cc0fd0e1 Add support to escape dots (.) by using double dots (..) for aura keys. Fixes #2945 (I think)
This was SVN commit r16010.
2014-11-26 19:59:08 +00:00
leper 1430efa9d6 Properly handle auto-research promotion techs at game start.
This was SVN commit r16009.
2014-11-25 22:47:02 +00:00
mimo 7102f86de3 petra: avoid updating some no-more-used entitycollections
This was SVN commit r16008.
2014-11-25 19:00:17 +00:00
Itms 347ffabaeb Change the way we filter out selected entities when we draw a selection box. Add a hotkey to allow selecting only idle units.
Patch by Rolf Sievers, fixes #2407.

This was SVN commit r16007.
2014-11-24 16:46:05 +00:00
Itms 882c1383e1 Add wall style for Seleucids in the random map scripts. Currently, Hellenic walls are used. Fixes a bug in the Fortress random map.
Patch by FeXoR.

Fixes #2942, refs #2619.

This was SVN commit r16006.
2014-11-24 16:19:17 +00:00
Itms 04343a8407 Fix a comment written too quickly
This was SVN commit r16005.
2014-11-23 21:47:15 +00:00
mimo a7cc670a2d petra: stop (after some time) to try gathering inaccessible resources (i.e. chicken inside buildings in random maps) + some cleanings
This was SVN commit r16004.
2014-11-23 14:48:26 +00:00
leper 5f9c908abb Allow techs to modify the resources that can be dropped of at dropsite. Patch by niektb. Fixes #2629.
This was SVN commit r16003.
2014-11-22 23:21:11 +00:00
leper 87d5d37488 Some source string fixes.
This was SVN commit r16002.
2014-11-22 22:21:54 +00:00
Yves c385a88c88 Remove unused overload of GetSavedGameData
This was SVN commit r16001.
2014-11-22 19:46:24 +00:00
mimo d1cdf8f952 display victory conditions when selecting a map, fixes #2727
This was SVN commit r16000.
2014-11-21 18:30:17 +00:00
mimo 0cc9cfd40c fix a JS error in petra
This was SVN commit r15999.
2014-11-21 17:46:07 +00:00
leper 2734982657 Escape a character.
This was SVN commit r15998.
2014-11-20 22:19:35 +00:00
leper 504e23acb8 Make some things static.
This was SVN commit r15997.
2014-11-20 22:19:33 +00:00
leper 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
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
leper 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
mimo f90841cf78 add a very-easy level for AI, addresses #2899
This was SVN commit r15990.
2014-11-18 21:21:21 +00:00
mimo da1af993f7 petra: better AI recovery after its economy is badly damaged + some fixes
This was SVN commit r15989.
2014-11-18 19:56:23 +00:00
leper 3589aa39b9 Update documentation on how to generate the entity component documentation.
This was SVN commit r15987.
2014-11-18 03:57:21 +00:00
leper 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
leper 73de625089 Also change GameSetup.cpp.
This was SVN commit r15985.
2014-11-18 00:24:29 +00:00
leper 9407dbe45e Remove useless parameter from CFG_GET_VALUE.
This was SVN commit r15984.
2014-11-17 23:29:49 +00:00
mimo 3e4c701ab6 ensure that there are no dupes in buildable list
This was SVN commit r15983.
2014-11-17 23:07:57 +00:00
leper 6695f1a3e8 Remove CParser. Fixes #2589.
This was SVN commit r15981.
2014-11-17 01:04:24 +00:00
leper b995135138 Use an FSM to parse our config files instead of using CParser. Refs #2589.
Properly write config settings with multiple values back to files. Refs
#1810.
Print error messages if we encountered an invalid setting.

This was SVN commit r15980.
2014-11-17 01:03:59 +00:00
alpha123 334f391446 Oxford comma.
(We seem to use it elsewhere in the UI, so be consistent.)

This was SVN commit r15979.
2014-11-16 23:44:40 +00:00
alpha123 cbc49f43e6 The show full games filter in the lobby should be off by default.
This was SVN commit r15978.
2014-11-16 22:40:00 +00:00
alpha123 947abde749 Flip the buttons in the leave game confirmation dialog to the no/yes order to match other dialogs.
Per the Apple Human Interface Guidelines the confirmation button should
be on the right. We do that for all(?) other dialogs, but not this one.

This was SVN commit r15977.
2014-11-16 22:21:57 +00:00
leper caed74df23 Fix line endings.
This was SVN commit r15976.
2014-11-16 22:21:06 +00:00
leper 1b91421e5e Escape special character.
This was SVN commit r15975.
2014-11-16 22:06:18 +00:00
alpha123 30b7a34112 Rename Arcadia 2 to Arcadia, because there doesn't seem to be an Arcadia 1 any more.
This was SVN commit r15974.
2014-11-16 22:03:47 +00:00
mimo f88ee2766e use by default a random seed for the AI to make it less repetitive
This was SVN commit r15973.
2014-11-16 19:53:29 +00:00
leper 94e6e29a34 Properly escape a character and remove a stray tag.
This was SVN commit r15972.
2014-11-16 18:00:02 +00:00
mimo ccb5366e40 fixes #2935
This was SVN commit r15971.
2014-11-16 10:09:20 +00:00
leper 59676dfc84 Update tools/LICENSE.txt
This was SVN commit r15970.
2014-11-16 02:10:31 +00:00
leper df4c07238d Change GUI tag parsing to use a FSM instead of using CParser. Refs #2589.
Parameters now have to be quoted with ".
Supports " in parameters by escaping them with \.
Tag start characters can be included in normal text by escaping them
with \.
Better error handling and a error messages to help with fixing
invalid/malformed strings.

This was SVN commit r15969.
2014-11-16 02:10:28 +00:00
leper d15e2f0cf6 Check for availability of XmppClient.
Move Lobby script function registration to the lobby JS interface.

This was SVN commit r15968.
2014-11-16 02:10:24 +00:00
leper d58189d510 Parse terrain properties without CParser. Refs #2589.
This was SVN commit r15967.
2014-11-16 02:09:02 +00:00
Itms fc1fe174cd Amend the "Reveal All" behavior by always hiding mirages.
This was SVN commit r15966.
2014-11-14 20:29:35 +00:00
Yves 4d89820f1c Fixes build errors on Windows introduced in c813a11427 and 1a0f9b086e.
This was SVN commit r15964.
2014-11-13 22:37:43 +00:00
Itms 8a290b3204 Fix mirages not flushed properly, introduced in 9ad2fc9fac.
This was SVN commit r15963.
2014-11-13 21:04:40 +00:00
mimo 49a31c5de2 prevent events from the first turn after deserialization to be thrown away
This was SVN commit r15962.
2014-11-13 20:21:00 +00:00
Yves c813a11427 Split ScriptRuntime and ScriptInterface code to separate files.
The runtime is becoming more and more important in the JSAPI. As a
result, we also have more functionality on the runtime level and having
the whole ScriptRuntime class hidden in ScriptInterface.cpp doesn't make
sense anymore. ScriptInterface.cpp also has become quite a large file
and pulling out the runtime part makes it a bit smaller.

Refs #2462

This was SVN commit r15961.
2014-11-13 11:19:28 +00:00
leper 1a0f9b086e GUI cleanup.
Remove toTitleCase(). Unify iColorToString() and rgbToGuiColor().
Translate XMPP errors (displayed when connecting).

This was SVN commit r15960.
2014-11-13 01:26:36 +00:00
leper 6e788fb15e Clean up JSON parsing code. Refs #1374.
Fix Engine.ReadJSONFile() which did throw a JS exception that was not
caught. Discovered by s0600204.
Expose Engine.ReadJSONFile() to the gui scripts.

This was SVN commit r15959.
2014-11-13 01:26:22 +00:00
Itms e1c77bb487 Fix tests.
This was SVN commit r15958.
2014-11-12 19:51:28 +00:00
mimo 6556aa8c1e fix petra serialization
This was SVN commit r15957.
2014-11-12 18:44:43 +00:00
Itms 9ad2fc9fac Slightly improve fogging performance by avoiding the constant deletion/re-creation of mirages.
This makes the simulation update faster per entity but also makes the
number of entities greater at a given moment. The performance gain is
positive.

This was SVN commit r15956.
2014-11-12 15:56:45 +00:00
mimo 7130997df9 still more fixes on ai serialization + some cleanings
This was SVN commit r15954.
2014-11-11 22:08:28 +00:00
mimo b596f7a893 additional fixes for petra serialization
This was SVN commit r15953.
2014-11-11 19:02:35 +00:00
mimo 13a71f6ae4 some fixes and cleaning in petra saved game support
This was SVN commit r15952.
2014-11-11 11:07:57 +00:00
mimo 6bab40c139 some bugfixes on ai serialization
This was SVN commit r15951.
2014-11-10 20:22:10 +00:00
mimo e4774066e2 complete the support of saved games by Petra. It is playable now, but still needs cleaning and bug fixes.
This was SVN commit r15950.
2014-11-10 18:35:52 +00:00
mimo c236e8a877 further steps towards saved games support, but still wip
This was SVN commit r15948.
2014-11-10 09:03:03 +00:00
leper e108b162b6 Add hotloading for translation files. Fixes #2915.
This was SVN commit r15947.
2014-11-09 16:58:14 +00:00
Yves 8b9847e007 Replace CScriptValRooted with JS::Heap<T> and custom tracer for CNetClient
Refs #2462

This was SVN commit r15946.
2014-11-09 15:16:00 +00:00
Enrique e1f354024a Persian temple upgrade
This was SVN commit r15945.
2014-11-09 11:30:50 +00:00
Yves 8e2d514228 Exact stack rooting for CParamNode
Refs #2415
Refs #2462

This was SVN commit r15944.
2014-11-09 11:08:53 +00:00
Enrique 9040f8a3d3 Persian stables upgrade
This was SVN commit r15941.
2014-11-08 23:51:33 +00:00
mimo edd9622050 wip petra support of saved games, still incomplete
This was SVN commit r15940.
2014-11-08 19:23:29 +00:00
Itms b5c8646cea Fix actors not retained in FoW after d07d1a17f3.
Refs #2913.

This was SVN commit r15939.
2014-11-08 18:14:45 +00:00
Enrique db2f570ef6 Added several missing files of previous commit
This was SVN commit r15938.
2014-11-08 13:21:10 +00:00
Enrique e3e829c4b1 Upgraded persian fortress variation B.
Upgraded all cypress variations.
Added six tropical shrubs.

This was SVN commit r15937.
2014-11-08 13:07:45 +00:00
leper f4b5054815 Fix valgrind warning about uninitialized variable. Patch by Echelon9. Fixes #2878.
This was SVN commit r15936.
2014-11-08 00:37:42 +00:00
Enrique 2db1f14015 Cart_fortress recentered.
This was SVN commit r15935.
2014-11-07 11:27:59 +00:00
Enrique 259fcdd8ed Roman vesta temple and triumphal arch AO maps.
Added missing actor for persian barracks

This was SVN commit r15934.
2014-11-07 10:56:41 +00:00
leper a4b209bf2c Set text align for options to left, increase the size for labels for boolean options. Fixes #2918.
This was SVN commit r15933.
2014-11-07 01:24:13 +00:00
leper 1d1c086e2a Allow translating some strings in the mod selector. Fixes #2919.
Also change column size so that the gd translation fits. (Verified with
long strings)

This was SVN commit r15932.
2014-11-07 00:57:09 +00:00
Enrique cbc151cb1e Persian barracks upgrade.
This was SVN commit r15931.
2014-11-07 00:29:31 +00:00
Enrique 8200182399 Persian fortress variation upgrade. Second variation upgrade soon.
This was SVN commit r15930.
2014-11-06 11:29:14 +00:00
mimo 6ae21e1ce7 some ai cleaning
This was SVN commit r15929.
2014-11-05 21:03:25 +00:00
leper 7dad37c78f Some cleanup. Fix a comment.
This was SVN commit r15928.
2014-11-05 00:22:14 +00:00
leper 518d2d0c2a Translation fixes.
This was SVN commit r15927.
2014-11-05 00:22:11 +00:00
Itms d07d1a17f3 Add a new Visibility component that will eventually allow scripted components and mods to influence an entity's visibility.
This first commit only refactors code and does not add any new feature.

Refs #2913 (see this ticket for more information about the change)

This was SVN commit r15925.
2014-11-04 20:53:25 +00:00
Enrique 0855c1169b Upgraded persian Civic centre. Added new shrubs. New pers_cc variation in process
This was SVN commit r15924.
2014-11-04 11:45:20 +00:00
Enrique 2cfab37485 Persian market variations upgrade. Added ao/normal/spec and made the stalls conform to the terrain.
This was SVN commit r15923.
2014-11-02 21:58:57 +00:00
mimo 6e30381acd petra: push priority of first market and remove some unnecessary ===
This was SVN commit r15922.
2014-11-02 20:45:57 +00:00
mimo f9d7335e12 simplify the way petra deals with worker
This was SVN commit r15921.
2014-11-02 20:27:13 +00:00
Enrique 7cdbd7a6fd Fixed ao map for the roman short wall segment
This was SVN commit r15920.
2014-11-02 17:00:29 +00:00
Enrique 221d93da91 Upgraded persian buildings:
blacksmith, dock, farmstead, defense tower, wonder

This was SVN commit r15919.
2014-11-01 11:36:01 +00:00
mimo 69c1e4fc52 prevent petra to build siege towers as it does not know how to use them
This was SVN commit r15918.
2014-10-31 17:22:44 +00:00
mimo 772024a10c fix a JS error
This was SVN commit r15917.
2014-10-30 20:16:59 +00:00
Itms f756cab1f8 Update sprintf.js to the latest version 1.0.2 (https://github.com/alexei/sprintf.js).
Update suggested and patch generated by Shane, fixes #2859.

This was SVN commit r15916.
2014-10-29 23:23:11 +00:00
Enrique 5491faffba New unit mesh variations and heads with some example animations and units xmls
This was SVN commit r15915.
2014-10-29 22:48:48 +00:00
historic_bruno 199eb46d86 Fixes GLES build
This was SVN commit r15914.
2014-10-29 02:36:42 +00:00
leper 10d13a991c Use fitplural added in upstream revision 1404284. Refs #2539.
This was SVN commit r15913.
2014-10-28 16:03:19 +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
mimo 2b841f56ae petra: cleaning of the code for dock placement
This was SVN commit r15911.
2014-10-27 19:53:06 +00:00
historic_bruno ff50b0b74c Fixes incorrect input handling in dropdowns and lists, they were manually handling all events, but should only handle certain key presses. Fixes #2885.
Fixes bug where lists/dropdowns could select an invalid index.

This was SVN commit r15909.
2014-10-27 04:37:06 +00:00
leper 570b0374f4 Convert path separator after building the full path.
This was SVN commit r15908.
2014-10-27 03:09:36 +00:00
historic_bruno d06ecc1b89 Fixes some errors in i18n scripts: use ASCII quotes to avoid charset errors in Windows command line, and use function form of print
This was SVN commit r15907.
2014-10-27 02:42:06 +00:00
historic_bruno e2536ae4bc Internationalizes in-game menu text, based on patch by Jaison, fixes #2540.
Fixes inconsistent use of "Settings" to refer to game options dialog

This was SVN commit r15906.
2014-10-27 01:32:11 +00:00
historic_bruno e3e86e2a29 Fixes init of post processing effects, so they can be cleanly enabled/disabled at runtime. Fixes #2890, refs #2672, #2893.
Updates descriptions on options screen and fixes comment in default.cfg
(smoothlos does not require preferglsl)

This was SVN commit r15905.
2014-10-27 00:53:31 +00:00
leper 4a68170aeb Add msgstrs for plural forms to pots.
This was SVN commit r15904.
2014-10-26 17:25:12 +00:00
mimo 466942fc29 fix the choice of target in attacks + start changes in dock placement + some cleanings
This was SVN commit r15903.
2014-10-26 13:10:20 +00:00
historic_bruno b4997dc7c6 Fixes minimap GLES compatibility by making point size a uniform and passing into the shaders
This was SVN commit r15901.
2014-10-26 04:37:26 +00:00
historic_bruno 21b83734f9 Fixes shader type error with some compilers
This was SVN commit r15900.
2014-10-26 01:44:58 +00:00
leper 7f247580b3 Remove outdated bundled transifex client. Fixes #2789.
Anyone wanting to pull updates from transifex should install the client.

This was SVN commit r15896.
2014-10-26 00:28:41 +00:00
leper 23cabedec8 Translate map size of lobby games on the client.
This was SVN commit r15895.
2014-10-26 00:28:38 +00:00
leper ae10d34d99 Switch i18n scripts to use Pology. Fixes #2539.
Still requires a patch to Pology to keep the source file ordering.

This was SVN commit r15894.
2014-10-26 00:28:35 +00:00
leper cf3e42f6fb Make map description end with a full stop.
This was SVN commit r15893.
2014-10-26 00:28:26 +00:00
leper c524542477 Make map description end with a full stop.
This was SVN commit r15892.
2014-10-21 20:03:06 +00:00
mimo b2f9dc305c check that selected units still exist when rebuilding the selection
This was SVN commit r15891.
2014-10-21 16:26:27 +00:00
historic_bruno 6334ee3f8b Reverts 03eaf9b461 due to licensing issues (source/lib is MIT licensed) and replaces with compatible FreeBSD/clang-based solution, patch by pstumpf. Refs #2675
This was SVN commit r15890.
2014-10-18 20:45:11 +00:00
mimo 2a7c3a95f9 improve gui performance, refs #2179 comment 28
This was SVN commit r15889.
2014-10-18 16:37:53 +00:00
scythetwirler c65817829f Adds compatibility for XMPP differences between platforms that can cause case inconsistencies.
This was SVN commit r15888.
2014-10-18 14:28:46 +00:00
historic_bruno d4884a2099 Removes empty valgrind lib directory and linker setting from extern_libs4.lua. Fixes linker warning with Git repos, since empty directories aren't included
This was SVN commit r15887.
2014-10-18 04:59:53 +00:00
historic_bruno 03eaf9b461 Fixes cpuid to work with i386 CPUs and PIE/PIC, based on old GCC cpuid.h source and patch by pstumpf, fixes #2675
This was SVN commit r15886.
2014-10-18 03:07:24 +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
Itms 3c33a8a072 Add back the VS2013 project files to the files generated by update-workspaces.bat on Windows, as Boost libs were updated to 1.56.
Fixes #2271, addresses d672d9625d.

This was SVN commit r15883.
2014-10-17 17:50:53 +00:00
mimo 620399270d various small petra tunings
This was SVN commit r15880.
2014-10-17 17:15:06 +00:00
Itms a29e233fdf Remove another leftover "Counter" string, see also d3351a645f.
Patch by thamlett, fixes #2830

This was SVN commit r15879.
2014-10-17 14:19:32 +00:00
historic_bruno c981dc4e9d Adds missing l10n folder to OS X bundle build script, fixes #2689
This was SVN commit r15878.
2014-10-17 02:59:11 +00:00
mimo ba5685eff3 cleaning of the Petra configuration
This was SVN commit r15877.
2014-10-15 20:52:23 +00:00
Enrique f7a64d4abc Prevents gaul defense_tower_a from showing a unit when not garrisoned. Fixes #2876
This was SVN commit r15876.
2014-10-15 19:08:15 +00:00
Enrique a63328d859 Upgraded persian struct texture missing in previous commit.
This was SVN commit r15875.
2014-10-15 16:20:59 +00:00
leper 18ab827886 Change L10n code to use ps/Singleton, so that we can recreate it.
This allows for adding locales in mods.

This was SVN commit r15874.
2014-10-15 16:04:37 +00:00
leper f5179930f5 Remove leftovers from bundled miniupnpc. Refs #2552.
Fix cleanup of SM24.

This was SVN commit r15873.
2014-10-15 15:34:32 +00:00
Enrique c1575e8f48 Upgraded persian houses and palace with normal and AO.
Upgraded persian textures (diffuse normal and spec) WIP

This was SVN commit r15872.
2014-10-15 13:59:55 +00:00
historic_bruno 776567d9b2 Removes bundled MiniUPnPc source, it is now a required system library on *nix. NOTE: update-workspaces must be run. See the updated BuildInstructions for details.
Adds precompiled MiniUPnPc 1.9 libs for win32, fixes #2552.
Updates build-osx-libs.sh for these changes, including patch to fix
clang symbol visibility (fixed upstream).
Updates LICENSE.txt.
Fixes bug in build-osx-libs.sh where downloaded files might not have the
expected filename.
Fixes problem with building wxWidgets for 32-bit OS X targets,
apparently ARCH is ignored sometimes, but --enable-macosx_arch works.

This was SVN commit r15870.
2014-10-15 03:47:13 +00:00
historic_bruno 227d828b67 Updates Windows version strings for 8.1 and 10 (technical preview)
This was SVN commit r15869.
2014-10-14 21:37:19 +00:00
Itms 78896154fe Change a scope for a bunch of variables in the Attack component. This simple change allows modders to modify the whole attack schema.
Patch by Radagast, fixes #2671

This was SVN commit r15868.
2014-10-14 20:44:17 +00:00
Itms d3351a645f Remove some "Counters/Countered by" tooltips as the hard counters system has been disabled.
Patch by thamlett, fixes #2830

This was SVN commit r15867.
2014-10-14 20:37:15 +00:00
mimo 8ce7c818f5 internationalization of ai chat messages
This was SVN commit r15866.
2014-10-14 19:43:19 +00:00
mimo 1f8cd485d4 fix translation of ai chat messages (allowing for parameters)
This was SVN commit r15865.
2014-10-14 18:58:41 +00:00
leper bb02dcd0e9 Fix broken tests.
This was SVN commit r15864.
2014-10-14 01:25:32 +00:00
mimo 7090334756 fix previous commit
This was SVN commit r15863.
2014-10-13 19:55:12 +00:00
mimo 20a9c9ab62 prevent the AI from using disabled templates
This was SVN commit r15862.
2014-10-13 19:52:03 +00:00
leper 4ecfa25c5e Sync minimal-flags with what Gentoo uses.
This was SVN commit r15861.
2014-10-12 23:40:05 +00:00
leper 4ef63e8673 Change tooltips with incorrect garrison count. Patch by thamlett. Fixes #2748.
This was SVN commit r15860.
2014-10-12 23:15:28 +00:00
mimo affdd9f548 Petra now send (if enough resources) tributes to allies in difficulty
This was SVN commit r15859.
2014-10-12 22:12:15 +00:00
mimo 443158869c let the AIs know when a tribute is sent
This was SVN commit r15858.
2014-10-12 22:00:19 +00:00
Itms 6ec902ec20 Fix a typo in the packaging scripts.
This was SVN commit r15857.
2014-10-12 20:53:13 +00:00
mimo ec8e240e81 redesign of the trading for Petra, should me more efficient and supports naval trading
This was SVN commit r15856.
2014-10-12 20:21:47 +00:00
mimo 5d9029a1d9 stop trying to build when not enough resources, fixes #2835
This was SVN commit r15855.
2014-10-12 20:09:03 +00:00
mimo 7fd407ca1f update correctly the tradeRoute set on market foundations
This was SVN commit r15854.
2014-10-12 19:56:24 +00:00
mimo 3df4799dea enable test on tech for AI
This was SVN commit r15853.
2014-10-12 19:55:15 +00:00
leper 849cbc13ee Fix path in fontbuilder.
This was SVN commit r15852.
2014-10-12 19:27:55 +00:00
leper 46fd718ac1 Initialize some variables. Patch by Echelon9. Fixes #2862.
This was SVN commit r15851.
2014-10-12 19:27:49 +00:00
leper 3c8ef99007 Switch lobby room. Update mod version.
This was SVN commit r15850.
2014-10-12 19:27:42 +00:00
1244 changed files with 26772 additions and 31598 deletions
+6
View File
@@ -51,6 +51,12 @@ in particular, let us know and we can try to clarify it.
/source/lib
MIT
/source/scriptinterface/third_party
MPL 2.0
/source/third_party/cppformat
BSD
/source/third_party/encryption
GPL version 2 (or later)
ISC (pkcs5_pbkdf2.cpp)
+262 -238
View File
@@ -32,6 +32,9 @@ splashscreenversion = 0
; Pause the game on window focus loss (Only applicable to single player mode)
pauseonfocusloss = true
; Persist settings after leaving the game setup screen
persistmatchsettings = true
; Default player name to use in multiplayer
; playername = "anonymous"
@@ -50,6 +53,9 @@ bpp = 0
; Preferred display (for multidisplay setups, only works with SDL 2.0)
display = 0
; Emulate right-click with Ctrl+Click on Mac mice
macmouse = false
; System settings:
; if false, actors won't be rendered but anything entity will be.
@@ -99,7 +105,7 @@ gentangents = false
; Experimental probably-non-working GPU skinning support; requires preferglsl; use at own risk
gpuskinning = false
; Use smooth LOS interpolation; REQUIRES preferglsl=true.
; Use smooth LOS interpolation
smoothlos = false
; Use screen-space postprocessing filters (HDR, bloom, DOF, etc). Incompatible with fixed renderpath.
@@ -119,263 +125,281 @@ materialmgr.PARALLAX_VHQ_DIST.max = 0
; Replace alpha-blending with alpha-testing, for performance experiments
forcealphatest = false
; Opt-in online user reporting system
userreport.url = "http://feedback.wildfiregames.com/report/upload/v1/"
; Colour of the sky (in "r g b" format)
skycolor = "0 0 0"
; GENERAL PREFERENCES:
sound.mastergain = 0.9
sound.musicgain = 0.2
sound.ambientgain = 0.6
sound.actiongain = 0.7
sound.uigain = 0.7
; Camera control settings
view.scroll.speed = 120.0
view.scroll.speed.modifier = 1.05 ; Multiplier for changing scroll speed
view.rotate.x.speed = 1.2
view.rotate.x.min = 28.0
view.rotate.x.max = 60.0
view.rotate.x.default = 35.0
view.rotate.y.speed = 2.0
view.rotate.y.speed.wheel = 0.45
view.rotate.y.default = 0.0
view.rotate.speed.modifier = 1.05 ; Multiplier for changing rotation speed
view.drag.speed = 0.5
view.zoom.speed = 256.0
view.zoom.speed.wheel = 32.0
view.zoom.min = 50.0
view.zoom.max = 200.0
view.zoom.default = 120.0
view.zoom.speed.modifier = 1.05 ; Multiplier for changing zoom speed
view.pos.smoothness = 0.1
view.zoom.smoothness = 0.4
view.rotate.x.smoothness = 0.5
view.rotate.y.smoothness = 0.3
view.near = 2.0 ; Near plane distance
view.far = 4096.0 ; Far plane distance
view.fov = 45.0 ; Field of view (degrees), lower is narrow, higher is wide
view.height.smoothness = 0.5
view.height.min = 16
; How close do we have to be to the actual location in order to jump back to the previous one?
camerajump.threshold = 40
; HOTKEY MAPPINGS:
[hotkey]
; Each one of the specified keys will trigger the action on the left
; for multiple-key combinations, separate keys with '+' and enclose the entire thing
; in doublequotes.
; for multiple-key combinations, separate keys with '+'.
; See keys.txt for the list of key names.
; > SYSTEM SETTINGS
hotkey.exit = "Alt+F4", "Ctrl+Break", "Super+Q" ; Exit to desktop
hotkey.leave = Escape ; End current game or Exit
hotkey.confirm = Return ; Confirm the current command.
hotkey.pause = Pause ; Pause/unpause game
hotkey.screenshot = F2 ; Take PNG screenshot
hotkey.bigscreenshot = "Shift+F2" ; Take large BMP screenshot
hotkey.togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode
hotkey.screenshot.watermark = "Alt+K" ; Toggle product/company watermark for official screenshots
hotkey.wireframe = "Alt+W" ; Toggle wireframe mode
hotkey.silhouettes = "Alt+S" ; Toggle unit silhouettes
hotkey.showsky = "Alt+Z" ; Toggle sky
; > CAMERA SETTINGS
hotkey.camera.reset = "R" ; Reset camera rotation to default.
hotkey.camera.follow = "F" ; Follow the first unit in the selection
hotkey.camera.zoom.in = Plus, Equals, NumPlus ; Zoom camera in (continuous control)
hotkey.camera.zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
hotkey.camera.zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
hotkey.camera.zoom.wheel.out = WheelDown ; Zoom camera out (stepped control)
hotkey.camera.rotate.up = "Ctrl+UpArrow", "Ctrl+W" ; Rotate camera to look upwards
hotkey.camera.rotate.down = "Ctrl+DownArrow", "Ctrl+S" ; Rotate camera to look downwards
hotkey.camera.rotate.cw = "Ctrl+LeftArrow", "Ctrl+A", Q ; Rotate camera clockwise around terrain
hotkey.camera.rotate.ccw = "Ctrl+RightArrow", "Ctrl+D", E ; Rotate camera anticlockwise around terrain
hotkey.camera.rotate.wheel.cw = "Shift+WheelUp", MouseX1 ; Rotate camera clockwise around terrain (stepped control)
hotkey.camera.rotate.wheel.ccw = "Shift+WheelDown", MouseX2 ; Rotate camera anticlockwise around terrain (stepped control)
hotkey.camera.pan = MouseMiddle ; Enable scrolling by moving mouse
hotkey.camera.left = A, LeftArrow ; Scroll or rotate left
hotkey.camera.right = D, RightArrow ; Scroll or rotate right
hotkey.camera.up = W, UpArrow ; Scroll or rotate up/forwards
hotkey.camera.down = S, DownArrow ; Scroll or rotate down/backwards
hotkey.camera.scroll.speed.increase = "Ctrl+Shift+S" ; Increase scroll speed
hotkey.camera.scroll.speed.decrease = "Ctrl+Alt+S" ; Decrease scroll speed
hotkey.camera.rotate.speed.increase = "Ctrl+Shift+R" ; Increase rotation speed
hotkey.camera.rotate.speed.decrease = "Ctrl+Alt+R" ; Decrease rotation speed
hotkey.camera.zoom.speed.increase = "Ctrl+Shift+Z" ; Increase zoom speed
hotkey.camera.zoom.speed.decrease = "Ctrl+Alt+Z" ; Decrease zoom speed
hotkey.camera.jump.1 = F5 ; Jump to position N
hotkey.camera.jump.2 = F6
hotkey.camera.jump.3 = F7
hotkey.camera.jump.4 = F8
;hotkey.camera.jump.5 =
;hotkey.camera.jump.6 =
;hotkey.camera.jump.7 =
;hotkey.camera.jump.8 =
;hotkey.camera.jump.9 =
;hotkey.camera.jump.10 =
hotkey.camera.jump.set.1 = "Ctrl+F5" ; Set jump position N
hotkey.camera.jump.set.2 = "Ctrl+F6"
hotkey.camera.jump.set.3 = "Ctrl+F7"
hotkey.camera.jump.set.4 = "Ctrl+F8"
;hotkey.camera.jump.set.5 =
;hotkey.camera.jump.set.6 =
;hotkey.camera.jump.set.7 =
;hotkey.camera.jump.set.8 =
;hotkey.camera.jump.set.9 =
;hotkey.camera.jump.set.10 =
; > CONSOLE SETTINGS
hotkey.console.toggle = BackQuote, F9 ; Open/close console
exit = "Alt+F4", "Ctrl+Break", "Super+Q" ; Exit to desktop
leave = Escape ; End current game or Exit
confirm = Return ; Confirm the current command.
pause = Pause ; Pause/unpause game
screenshot = F2 ; Take PNG screenshot
bigscreenshot = "Shift+F2" ; Take large BMP screenshot
togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode
screenshot.watermark = "Alt+K" ; Toggle product/company watermark for official screenshots
wireframe = "Alt+W" ; Toggle wireframe mode
silhouettes = "Alt+S" ; Toggle unit silhouettes
showsky = "Alt+Z" ; Toggle sky
; > CLIPBOARD CONTROLS
hotkey.copy = "Ctrl+C" ; Copy to clipboard
hotkey.paste = "Ctrl+V" ; Paste from clipboard
hotkey.cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
copy = "Ctrl+C" ; Copy to clipboard
paste = "Ctrl+V" ; Paste from clipboard
cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
; > ENTITY SELECTION
hotkey.selection.add = Shift ; Add units to selection
hotkey.selection.milonly = Alt ; Add only military units to selection
hotkey.selection.remove = Ctrl ; Remove units from selection
hotkey.selection.cancel = Esc ; Un-select all units and cancel building placement
hotkey.selection.idleworker = Period ; Select next idle worker
hotkey.selection.idlewarrior = ForwardSlash ; Select next idle warrior
hotkey.selection.offscreen = Alt ; Include offscreen units in selection
hotkey.selection.group.select.0 = 0
hotkey.selection.group.save.0 = "Ctrl+0"
hotkey.selection.group.add.0 = "Shift+0"
hotkey.selection.group.select.1 = 1
hotkey.selection.group.save.1 = "Ctrl+1"
hotkey.selection.group.add.1 = "Shift+1"
hotkey.selection.group.select.2 = 2
hotkey.selection.group.save.2 = "Ctrl+2"
hotkey.selection.group.add.2 = "Shift+2"
hotkey.selection.group.select.3 = 3
hotkey.selection.group.save.3 = "Ctrl+3"
hotkey.selection.group.add.3 = "Shift+3"
hotkey.selection.group.select.4 = 4
hotkey.selection.group.save.4 = "Ctrl+4"
hotkey.selection.group.add.4 = "Shift+4"
hotkey.selection.group.select.5 = 5
hotkey.selection.group.save.5 = "Ctrl+5"
hotkey.selection.group.add.5 = "Shift+5"
hotkey.selection.group.select.6 = 6
hotkey.selection.group.save.6 = "Ctrl+6"
hotkey.selection.group.add.6 = "Shift+6"
hotkey.selection.group.select.7 = 7
hotkey.selection.group.save.7 = "Ctrl+7"
hotkey.selection.group.add.7 = "Shift+7"
hotkey.selection.group.select.8 = 8
hotkey.selection.group.save.8 = "Ctrl+8"
hotkey.selection.group.add.8 = "Shift+8"
hotkey.selection.group.select.9 = 9
hotkey.selection.group.save.9 = "Ctrl+9"
hotkey.selection.group.add.9 = "Shift+9"
; > SESSION CONTROLS
hotkey.session.kill = Delete ; Destroy selected units
hotkey.session.stop = "H" ; Stop the current action
hotkey.session.attack = "Ctrl+Alt" ; Modifier to force attack instead of another action
hotkey.session.attackmove = Ctrl ; Modifier to attackmove when clicking on a point
hotkey.session.attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point (should contain the attackmove keys)
hotkey.session.garrison = Ctrl ; Modifier to garrison when clicking on building
hotkey.session.autorallypoint = Ctrl ; Modifier to set the rally point on the building itself
hotkey.session.guard = "G" ; Modifier to escort/guard when clicking on unit/building
hotkey.session.queue = Shift ; Modifier to queue unit orders instead of replacing
hotkey.session.batchtrain = Shift ; Modifier to train units in batches
hotkey.session.massbarter = Shift ; Modifier to barter bunch of resources
hotkey.session.masstribute = Shift ; Modifier to tribute bunch of resources
hotkey.session.fulltradeswap = Shift ; Modifier to put the desired trade resource to 100%
hotkey.session.unloadtype = Shift ; Modifier to unload all units of type
hotkey.session.deselectgroup = Ctrl ; Modifier to deselect units when clicking group icon, instead of selecting
hotkey.session.rotate.cw = RightBracket ; Rotate building placement preview clockwise
hotkey.session.rotate.ccw = LeftBracket ; Rotate building placement preview anticlockwise
hotkey.timewarp.fastforward = Space ; If timewarp mode enabled, speed up the game
hotkey.timewarp.rewind = Backspace ; If timewarp mode enabled, go back to earlier point in the game
; > UNIT TRAINING
hotkey.session.queueunit.1 = "Z" ; add first unit type to queue
hotkey.session.queueunit.2 = "X" ; add second unit type to queue
hotkey.session.queueunit.3 = "C" ; add third unit type to queue
hotkey.session.queueunit.4 = "V" ; add fourth unit type to queue
hotkey.session.queueunit.5 = "B" ; add fivth unit type to queue
hotkey.session.queueunit.6 = "N" ; add sixth unit type to queue
hotkey.session.queueunit.7 = "M" ; add seventh unit type to queue
hotkey.session.queueunit.8 = Comma ; add eighth unit type to queue
; > CONSOLE SETTINGS
console.toggle = BackQuote, F9 ; Open/close console
; > OVERLAY KEYS
hotkey.fps.toggle = "Alt+F" ; Toggle frame counter
hotkey.realtime.toggle = "Alt+T" ; Toggle current display of computer time
hotkey.session.devcommands.toggle = "Alt+D" ; Toggle developer commands panel
hotkey.session.gui.toggle = "Alt+G" ; Toggle visibility of session GUI
hotkey.menu.toggle = "F10" ; Toggle in-game menu
hotkey.timeelapsedcounter.toggle = "F12" ; Toggle time elapsed counter
hotkey.session.showstatusbars = Tab ; Toggle display of status bars
hotkey.session.highlightguarding = PgDn ; Toggle highlight of guarding units
hotkey.session.highlightguarded = PgUp ; Toggle highlight of guarded units
fps.toggle = "Alt+F" ; Toggle frame counter
realtime.toggle = "Alt+T" ; Toggle current display of computer time
session.devcommands.toggle = "Alt+D" ; Toggle developer commands panel
session.gui.toggle = "Alt+G" ; Toggle visibility of session GUI
menu.toggle = "F10" ; Toggle in-game menu
timeelapsedcounter.toggle = "F12" ; Toggle time elapsed counter
session.showstatusbars = Tab ; Toggle display of status bars
session.highlightguarding = PgDn ; Toggle highlight of guarding units
session.highlightguarded = PgUp ; Toggle highlight of guarded units
; > HOTKEYS ONLY
hotkey.chat = Return ; Toggle chat window
hotkey.teamchat = "T" ; Toggle chat window in team chat mode
; > GUI TEXTBOX HOTKEYS
hotkey.text.delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor
hotkey.text.delete.right = "Ctrl+Del" ; Delete word to the right of cursor
hotkey.text.move.left = "Ctrl+LeftArrow" ; Move cursor to start of word to the left of cursor
hotkey.text.move.right = "Ctrl+RightArrow" ; Move cursor to start of word to the right of cursor
; > PROFILER
hotkey.profile.toggle = "F11" ; Enable/disable real-time profiler
hotkey.profile.save = "Shift+F11" ; Save current profiler data to logs/profile.txt
hotkey.profile2.toggle = "Ctrl+F11" ; Enable/disable HTTP/GPU modes for new profiler
profiler2.autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
profiler2.script.enable = false ; Enable Javascript profiling. Needs to be set before startup and can't be changed later. (default off for performance)
profiler2.gpu.arb.enable = true ; Allow GL_ARB_timer_query timing mode when available
profiler2.gpu.ext.enable = true ; Allow GL_EXT_timer_query timing mode when available
profiler2.gpu.intel.enable = true ; Allow GL_INTEL_performance_queries timing mode when available
; Developer options
jsdebugger.enable = false ; Enable Javascript debugging. The Debugger is currently broken and can't be enabled until the SpiderMonkey upgrade is done and the debugger is updated for the new API.
tinygettext.debug = false ; Enable Tinygettext debugging information. If true, Tinygettext prints error messages each time that a translation for an English string is not found.
chat = Return ; Toggle chat window
teamchat = "T" ; Toggle chat window in team chat mode
; > QUICKSAVE
hotkey.quicksave = "Shift+F5"
hotkey.quickload = "Shift+F8"
quicksave = "Shift+F5"
quickload = "Shift+F8"
; EXPERIMENTAL: joystick/gamepad settings
joystick.enable = false
joystick.deadzone = 8192
joystick.camera.pan.x = 0
joystick.camera.pan.y = 1
joystick.camera.rotate.x = 3
joystick.camera.rotate.y = 2
joystick.camera.zoom.in = 5
joystick.camera.zoom.out = 4
[hotkey.camera]
reset = "R" ; Reset camera rotation to default.
follow = "F" ; Follow the first unit in the selection
zoom.in = Plus, Equals, NumPlus ; Zoom camera in (continuous control)
zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
zoom.wheel.out = WheelDown ; Zoom camera out (stepped control)
rotate.up = "Ctrl+UpArrow", "Ctrl+W" ; Rotate camera to look upwards
rotate.down = "Ctrl+DownArrow", "Ctrl+S" ; Rotate camera to look downwards
rotate.cw = "Ctrl+LeftArrow", "Ctrl+A", Q ; Rotate camera clockwise around terrain
rotate.ccw = "Ctrl+RightArrow", "Ctrl+D", E ; Rotate camera anticlockwise around terrain
rotate.wheel.cw = "Shift+WheelUp", MouseX1 ; Rotate camera clockwise around terrain (stepped control)
rotate.wheel.ccw = "Shift+WheelDown", MouseX2 ; Rotate camera anticlockwise around terrain (stepped control)
pan = MouseMiddle ; Enable scrolling by moving mouse
left = A, LeftArrow ; Scroll or rotate left
right = D, RightArrow ; Scroll or rotate right
up = W, UpArrow ; Scroll or rotate up/forwards
down = S, DownArrow ; Scroll or rotate down/backwards
scroll.speed.increase = "Ctrl+Shift+S" ; Increase scroll speed
scroll.speed.decrease = "Ctrl+Alt+S" ; Decrease scroll speed
rotate.speed.increase = "Ctrl+Shift+R" ; Increase rotation speed
rotate.speed.decrease = "Ctrl+Alt+R" ; Decrease rotation speed
zoom.speed.increase = "Ctrl+Shift+Z" ; Increase zoom speed
zoom.speed.decrease = "Ctrl+Alt+Z" ; Decrease zoom speed
; SESSION GUI SETTINGS
gui.session.timeelapsedcounter = false ; Show the game duration in the top right corner
gui.session.attacknotificationmessage = true ; Show attack notification messages
gui.session.minimap.pingduration = 50.0 ; The duration for which an entity will be pinged after an attack notification
gui.session.minimap.blinkduration = 1.7 ; The blink duration while pinging
[hotkey.camera.jump]
1 = F5 ; Jump to position N
2 = F6
3 = F7
4 = F8
;5 =
;6 =
;7 =
;8 =
;9 =
;10 =
[hotkey.camera.jump.set]
1 = "Ctrl+F5" ; Set jump position N
2 = "Ctrl+F6"
3 = "Ctrl+F7"
4 = "Ctrl+F8"
;5 =
;6 =
;7 =
;8 =
;9 =
;10 =
; GENERAL GUI SETTINGS
gui.cursorblinkrate = 0.5 ; Cursor blink rate in seconds (0.0 to disable blinking)
[hotkey.profile]
toggle = "F11" ; Enable/disable real-time profiler
save = "Shift+F11" ; Save current profiler data to logs/profile.txt
[hotkey.profile2]
toggle = "Ctrl+F11" ; Enable/disable HTTP/GPU modes for new profiler
; Multiplayer lobby preferences
lobby.server = "lobby.wildfiregames.com" ; Address of lobby server
lobby.xpartamupp = "wfgbot17" ; Name of the server-side xmpp client that manage games
lobby.chattimestamp = false ; Show time chat message was posted
lobby.room = "arena17" ; Default MUC room to join
lobby.history = 0 ; Number of past messages to display on join
[hotkey.selection]
add = Shift ; Add units to selection
milonly = Alt ; Add only military units to selection
idleonly = "I" ; Select only idle units
remove = Ctrl ; Remove units from selection
cancel = Esc ; Un-select all units and cancel building placement
idleworker = Period ; Select next idle worker
idlewarrior = ForwardSlash ; Select next idle warrior
offscreen = Alt ; Include offscreen units in selection
[hotkey.selection.group.add]
0 = "Shift+0"
1 = "Shift+1"
2 = "Shift+2"
3 = "Shift+3"
4 = "Shift+4"
5 = "Shift+5"
6 = "Shift+6"
7 = "Shift+7"
8 = "Shift+8"
9 = "Shift+9"
[hotkey.selection.group.save]
0 = "Ctrl+0"
1 = "Ctrl+1"
2 = "Ctrl+2"
3 = "Ctrl+3"
4 = "Ctrl+4"
5 = "Ctrl+5"
6 = "Ctrl+6"
7 = "Ctrl+7"
8 = "Ctrl+8"
9 = "Ctrl+9"
[hotkey.selection.group.select]
0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
7 = 7
8 = 8
9 = 9
; Overlay Preferences
overlay.fps = "false" ; Show frames per second in top right corner
overlay.realtime = "false" ; Show current system time in top right corner
[hotkey.session]
kill = Delete ; Destroy selected units
stop = "H" ; Stop the current action
attack = "Ctrl+Alt" ; Modifier to force attack instead of another action
attackmove = Ctrl ; Modifier to attackmove when clicking on a point
attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point (should contain the attackmove keys)
garrison = Ctrl ; Modifier to garrison when clicking on building
autorallypoint = Ctrl ; Modifier to set the rally point on the building itself
guard = "G" ; Modifier to escort/guard when clicking on unit/building
queue = Shift ; Modifier to queue unit orders instead of replacing
batchtrain = Shift ; Modifier to train units in batches
massbarter = Shift ; Modifier to barter bunch of resources
masstribute = Shift ; Modifier to tribute bunch of resources
fulltradeswap = Shift ; Modifier to put the desired trade resource to 100%
unloadtype = Shift ; Modifier to unload all units of type
deselectgroup = Ctrl ; Modifier to deselect units when clicking group icon, instead of selecting
rotate.cw = RightBracket ; Rotate building placement preview clockwise
rotate.ccw = LeftBracket ; Rotate building placement preview anticlockwise
; MOD SETTINGS
mod.enabledmods = "mod public"
[hotkey.session.savedgames]
delete = Delete ; Delete the selected saved game asking confirmation
noConfirmation = Shift ; Do not ask confirmation when deleting a game
[hotkey.session.queueunit] ; > UNIT TRAINING
1 = "Z" ; add first unit type to queue
2 = "X" ; add second unit type to queue
3 = "C" ; add third unit type to queue
4 = "V" ; add fourth unit type to queue
5 = "B" ; add fivth unit type to queue
6 = "N" ; add sixth unit type to queue
7 = "M" ; add seventh unit type to queue
8 = Comma ; add eighth unit type to queue
[hotkey.session.timewarp]
fastforward = Space ; If timewarp mode enabled, speed up the game
rewind = Backspace ; If timewarp mode enabled, go back to earlier point in the game
[hotkey.text] ; > GUI TEXTBOX HOTKEYS
delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor
delete.right = "Ctrl+Del" ; Delete word to the right of cursor
move.left = "Ctrl+LeftArrow" ; Move cursor to start of word to the left of cursor
move.right = "Ctrl+RightArrow" ; Move cursor to start of word to the right of cursor
[gui]
cursorblinkrate = 0.5 ; Cursor blink rate in seconds (0.0 to disable blinking)
scale = 1.0 ; GUI scaling factor, for improved compatibility with 4K displays
[gui.session]
attacknotificationmessage = true ; Show attack notification messages
camerajump.threshold = 40 ; How close do we have to be to the actual location in order to jump back to the previous one?
timeelapsedcounter = false ; Show the game duration in the top right corner
[gui.session.minimap]
blinkduration = 1.7 ; The blink duration while pinging
pingduration = 50.0 ; The duration for which an entity will be pinged after an attack notification
[joystick] ; EXPERIMENTAL: joystick/gamepad settings
enable = false
deadzone = 8192
[joystick.camera]
pan.x = 0
pan.y = 1
rotate.x = 3
rotate.y = 2
zoom.in = 5
zoom.out = 4
[jsdebugger]
; The Debugger is currently broken and can't be enabled until the SpiderMonkey upgrade is done and the debugger is updated for the new API.
enable = false ; Enable Javascript debugging.
[lobby]
chattimestamp = false ; Show time chat message was posted
history = 0 ; Number of past messages to display on join
room = "arena18" ; Default MUC room to join
server = "lobby.wildfiregames.com" ; Address of lobby server
xpartamupp = "wfgbot18" ; Name of the server-side xmpp client that manage games
[mod]
enabledmods = "mod public"
[overlay]
fps = "false" ; Show frames per second in top right corner
realtime = "false" ; Show current system time in top right corner
[profiler2]
autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
script.enable = false ; Enable Javascript profiling. Needs to be set before startup and can't be changed later. (default off for performance)
gpu.arb.enable = true ; Allow GL_ARB_timer_query timing mode when available
gpu.ext.enable = true ; Allow GL_EXT_timer_query timing mode when available
gpu.intel.enable = true ; Allow GL_INTEL_performance_queries timing mode when available
[sound]
mastergain = 0.9
musicgain = 0.2
ambientgain = 0.6
actiongain = 0.7
uigain = 0.7
[tinygettext]
debug = false ; Print error messages each time a translation for an English string is not found.
[userreport] ; Opt-in online user reporting system
url = "http://feedback.wildfiregames.com/report/upload/v1/"
[view] ; Camera control settings
scroll.speed = 120.0
scroll.speed.modifier = 1.05 ; Multiplier for changing scroll speed
rotate.x.speed = 1.2
rotate.x.min = 28.0
rotate.x.max = 60.0
rotate.x.default = 35.0
rotate.y.speed = 2.0
rotate.y.speed.wheel = 0.45
rotate.y.default = 0.0
rotate.speed.modifier = 1.05 ; Multiplier for changing rotation speed
drag.speed = 0.5
zoom.speed = 256.0
zoom.speed.wheel = 32.0
zoom.min = 50.0
zoom.max = 200.0
zoom.default = 120.0
zoom.speed.modifier = 1.05 ; Multiplier for changing zoom speed
pos.smoothness = 0.1
zoom.smoothness = 0.4
rotate.x.smoothness = 0.5
rotate.y.smoothness = 0.3
near = 2.0 ; Near plane distance
far = 4096.0 ; Far plane distance
fov = 45.0 ; Field of view (degrees), lower is narrow, higher is wide
height.smoothness = 0.5
height.min = 16
+1
View File
@@ -12,6 +12,7 @@
"excludeMasks": ["third_party/**", "tools/**"]
},
"options": {
"format": "c-format",
"keywords": {
"Translate": [1],
"TranslatePlural": [1, 2],
Binary file not shown.
+201 -158
View File
@@ -1,183 +1,226 @@
/**
sprintf() for JavaScript 0.7-beta1
http://www.diveintojavascript.com/projects/javascript-sprintf
sprintf() for JavaScript v1.0.2
https://github.com/alexei/sprintf.js
Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] com>
Copyright (c) 2007-2013, Alexandru Marasteanu <hello [at) alexei (dot] ro>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of sprintf() for JavaScript nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of this software nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Changelog:
2010.09.06 - 0.7-beta1
- features: vsprintf, support for named placeholders
- enhancements: format cache, reduced global namespace pollution
2010.05.22 - 0.6:
- reverted to 0.4 and fixed the bug regarding the sign of the number 0
Note:
Thanks to Raphael Pigulla <raph (at] n3rd [dot) org> (http://www.n3rd.org/)
who warned me about a bug in 0.5, I discovered that the last update was
a regress. I appologize for that.
2010.05.09 - 0.5:
- bug fix: 0 is now preceeded with a + sign
- bug fix: the sign was not at the right position on padded results (Kamal Abdali)
- switched from GPL to BSD license
2007.10.21 - 0.4:
- unit test and patch (David Baird)
2007.09.17 - 0.3:
- bug fix: no longer throws exception on empty paramenters (Hans Pufal)
2007.09.11 - 0.2:
- feature: added argument swapping
2007.04.03 - 0.1:
- initial release
**/
var sprintf = (function() {
function get_type(variable) {
return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
}
function str_repeat(input, multiplier) {
for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
return output.join('');
}
(function(window) {
var re = {
not_string: /[^s]/,
number: /[dief]/,
text: /^[^\x25]+/,
modulo: /^\x25{2}/,
placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fiosuxX])/,
key: /^([a-z_][a-z_\d]*)/i,
key_access: /^\.([a-z_][a-z_\d]*)/i,
index_access: /^\[(\d+)\]/,
sign: /^[\+\-]/
}
var str_format = function() {
if (!str_format.cache.hasOwnProperty(arguments[0])) {
str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
}
return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
};
function sprintf() {
var key = arguments[0], cache = sprintf.cache
if (!(cache[key] && cache.hasOwnProperty(key))) {
cache[key] = sprintf.parse(key)
}
return sprintf.format.call(null, cache[key], arguments)
}
str_format.format = function(parse_tree, argv) {
var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
for (i = 0; i < tree_length; i++) {
node_type = get_type(parse_tree[i]);
if (node_type === 'string') {
output.push(parse_tree[i]);
}
else if (node_type === 'array') {
match = parse_tree[i]; // convenience purposes only
if (match[2]) { // keyword argument
arg = argv[cursor];
for (k = 0; k < match[2].length; k++) {
if (!arg.hasOwnProperty(match[2][k])) {
throw(new Error('[sprintf] property "' + match[2][k] + '" does not exist.'));
}
arg = arg[match[2][k]];
}
}
else if (match[1]) { // positional argument (explicit)
arg = argv[match[1]];
}
else { // positional argument (implicit)
arg = argv[cursor++];
}
sprintf.format = function(parse_tree, argv) {
var cursor = 1, tree_length = parse_tree.length, node_type = "", arg, output = [], i, k, match, pad, pad_character, pad_length, is_positive = true, sign = ""
for (i = 0; i < tree_length; i++) {
node_type = get_type(parse_tree[i])
if (node_type === "string") {
output[output.length] = parse_tree[i]
}
else if (node_type === "array") {
match = parse_tree[i] // convenience purposes only
if (match[2]) { // keyword argument
arg = argv[cursor]
for (k = 0; k < match[2].length; k++) {
if (!arg.hasOwnProperty(match[2][k])) {
throw new Error(sprintf("[sprintf] property '%s' does not exist", match[2][k]))
}
arg = arg[match[2][k]]
}
}
else if (match[1]) { // positional argument (explicit)
arg = argv[match[1]]
}
else { // positional argument (implicit)
arg = argv[cursor++]
}
if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
throw(new Error('[sprintf] expecting number but found ' + get_type(arg) + '.'));
}
switch (match[8]) {
case 'b': arg = arg.toString(2); break;
case 'c': arg = String.fromCharCode(arg); break;
case 'd': arg = parseInt(arg, 10); break;
case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
case 'o': arg = arg.toString(8); break;
case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
case 'u': arg = Math.abs(arg); break;
case 'x': arg = arg.toString(16); break;
case 'X': arg = arg.toString(16).toUpperCase(); break;
}
arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
pad_length = match[6] - String(arg).length;
pad = match[6] ? str_repeat(pad_character, pad_length) : '';
output.push(match[5] ? arg + pad : pad + arg);
}
}
return output.join('');
};
if (get_type(arg) == "function") {
arg = arg()
}
str_format.cache = {};
if (re.not_string.test(match[8]) && (get_type(arg) != "number" && isNaN(arg))) {
throw new TypeError(sprintf("[sprintf] expecting number but found %s", get_type(arg)))
}
str_format.parse = function(fmt) {
var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
while (_fmt) {
if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
parse_tree.push(match[0]);
}
else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
parse_tree.push('%');
}
else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
if (match[2]) {
arg_names |= 1;
var field_list = [], replacement_field = match[2], field_match = [];
if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
field_list.push(field_match[1]);
while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
field_list.push(field_match[1]);
}
else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
field_list.push(field_match[1]);
}
else {
throw(new Error('[sprintf] huh?'));
}
}
}
else {
throw(new Error('[sprintf] huh?'));
}
match[2] = field_list;
}
else {
arg_names |= 2;
}
if (arg_names === 3) {
throw(new Error('[sprintf] mixing positional and named placeholders is not (yet) supported'));
}
parse_tree.push(match);
}
else {
throw(new Error('[sprintf] No placeholder found in the ' + _fmt + ' format string. Maybe you used an incorrect syntax for your placeholder?'));
}
_fmt = _fmt.substring(match[0].length);
}
return parse_tree;
};
if (re.number.test(match[8])) {
is_positive = arg >= 0
}
return str_format;
})();
switch (match[8]) {
case "b":
arg = arg.toString(2)
break
case "c":
arg = String.fromCharCode(arg)
break
case "d":
case "i":
arg = parseInt(arg, 10)
break
case "e":
arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential()
break
case "f":
arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg)
break
case "o":
arg = arg.toString(8)
break
case "s":
arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg)
break
case "u":
arg = arg >>> 0
break
case "x":
arg = arg.toString(16)
break
case "X":
arg = arg.toString(16).toUpperCase()
break
}
if (re.number.test(match[8]) && (!is_positive || match[3])) {
sign = is_positive ? "+" : "-"
arg = arg.toString().replace(re.sign, "")
}
else {
sign = ""
}
pad_character = match[4] ? match[4] === "0" ? "0" : match[4].charAt(1) : " "
pad_length = match[6] - (sign + arg).length
pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : "") : ""
output[output.length] = match[5] ? sign + arg + pad : (pad_character === "0" ? sign + pad + arg : pad + sign + arg)
}
}
return output.join("")
}
var vsprintf = function(fmt, argv) {
argv.unshift(fmt);
return sprintf.apply(null, argv);
};
sprintf.cache = {}
sprintf.parse = function(fmt) {
var _fmt = fmt, match = [], parse_tree = [], arg_names = 0
while (_fmt) {
if ((match = re.text.exec(_fmt)) !== null) {
parse_tree[parse_tree.length] = match[0]
}
else if ((match = re.modulo.exec(_fmt)) !== null) {
parse_tree[parse_tree.length] = "%"
}
else if ((match = re.placeholder.exec(_fmt)) !== null) {
if (match[2]) {
arg_names |= 1
var field_list = [], replacement_field = match[2], field_match = []
if ((field_match = re.key.exec(replacement_field)) !== null) {
field_list[field_list.length] = field_match[1]
while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") {
if ((field_match = re.key_access.exec(replacement_field)) !== null) {
field_list[field_list.length] = field_match[1]
}
else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
field_list[field_list.length] = field_match[1]
}
else {
throw new SyntaxError("[sprintf] failed to parse named argument key")
}
}
}
else {
throw new SyntaxError("[sprintf] failed to parse named argument key")
}
match[2] = field_list
}
else {
arg_names |= 2
}
if (arg_names === 3) {
throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported")
}
parse_tree[parse_tree.length] = match
}
else {
throw new SyntaxError("[sprintf] unexpected placeholder")
}
_fmt = _fmt.substring(match[0].length)
}
return parse_tree
}
var vsprintf = function(fmt, argv, _argv) {
_argv = (argv || []).slice(0)
_argv.splice(0, 0, fmt)
return sprintf.apply(null, _argv)
}
/**
* helpers
*/
function get_type(variable) {
return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase()
}
function str_repeat(input, multiplier) {
return Array(multiplier + 1).join(input)
}
/**
* export to either browser or node.js
*/
if (typeof exports !== "undefined") {
exports.sprintf = sprintf
exports.vsprintf = vsprintf
}
else {
window.sprintf = sprintf
window.vsprintf = vsprintf
if (typeof define === "function" && define.amd) {
define(function() {
return {
sprintf: sprintf,
vsprintf: vsprintf
}
})
}
}
})(typeof window === "undefined" ? this : window);
@@ -1,177 +0,0 @@
/*
DESCRIPTION : Functions to manipulate objects with a 'list' property
(used to handle the items in list, dropdown, etc.)
NOTES : To ensure the selection is properly updated, it is important to
use these functions and not manually access the list.
*/
// ====================================================================
// Remove the item at the given index (pos) from the given list object (objectName).
function removeItem(objectName, pos)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("removeItem(): " + objectName + " not found.");
return;
}
var list = Engine.GetGUIObjectByName(objectName).list;
var selected = Engine.GetGUIObjectByName(objectName).selected;
list.splice(pos, 1);
Engine.GetGUIObjectByName(objectName).list = list;
// It's important that we update the selection *after*
// we've committed the changes to the list.
// Update the selected so the same element remains selected.
if (selected == pos)
Engine.GetGUIObjectByName(objectName).selected = -1;
else if (selected > pos)
Engine.GetGUIObjectByName(objectName).selected = selected - 1;
}
// ====================================================================
// Add the item at the given index (pos) to the given list object (objectName) with the given value (value).
function addItem(objectName, pos, value)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("addItem(): " + objectName + " not found.");
return;
}
var list = Engine.GetGUIObjectByName(objectName).list;
var selected = Engine.GetGUIObjectByName(objectName).selected;
list.splice(pos, 0, value);
Engine.GetGUIObjectByName(objectName).list = list;
// It's important that we update the selection *after*
// we've committed the changes to the list.
// Update the selected so the same element remains selected.
if (selected >= pos)
Engine.GetGUIObjectByName(objectName).selected = selected + 1;
}
// ====================================================================
// Adds an element to the end of the list
function pushItem(objectName, value)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("pushItem(): " + objectName + " not found.");
return;
}
var list = Engine.GetGUIObjectByName(objectName).list;
list.push(value);
Engine.GetGUIObjectByName(objectName).list = list;
// Point to the new item.
Engine.GetGUIObjectByName(objectName).selected = getNumItems(objectName)-1;
}
// ====================================================================
// Removes the last element
function popItem(objectName)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("popItem(): " + objectName + " not found.");
return;
}
var selected = Engine.GetGUIObjectByName(objectName).selected;
removeItem(objectName, getNumItems(objectName)-1);
if (selected == getNumItems(objectName)-1)
Engine.GetGUIObjectByName(objectName).selected = -1;
}
// ====================================================================
// Retrieves the number of elements in the list
function getNumItems(objectName)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("getNumItems(): " + objectName + " not found.");
return 0;
}
var list = Engine.GetGUIObjectByName(objectName).list;
return list.length;
}
// ====================================================================
// Retrieves the value of the item at 'pos'
function getItemValue(objectName, pos)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("getItemValue(): " + objectName + " not found.");
return "";
}
var list = Engine.GetGUIObjectByName(objectName).list;
return list[pos];
}
// ====================================================================
// Retrieves the value of the currently selected item
function getCurrItemValue(objectName)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("getCurrItemValue(): " + objectName + " not found.");
return "";
}
if (Engine.GetGUIObjectByName(objectName).selected == -1)
return "";
var list = Engine.GetGUIObjectByName(objectName).list;
return list[Engine.GetGUIObjectByName(objectName).selected];
}
// ====================================================================
// Sets current item to a given string (which must be one of those
// already in the list).
function setCurrItemValue(objectName, string)
{
if (Engine.GetGUIObjectByName(objectName) == null)
{
warn("setCurrItemValue(): " + objectName + " not found.");
return -1;
}
if (Engine.GetGUIObjectByName(objectName).selected == -1)
return -1; // Return -1 if nothing selected.
var list = Engine.GetGUIObjectByName(objectName).list;
// Seek through list.
for (var ctr = 0; ctr < list.length; ctr++)
{
// If we have found the string in the list,
if (list[ctr] == string)
{
// Point selected to this item.
Engine.GetGUIObjectByName(objectName).selected = ctr;
return ctr; // Return position of item.
}
}
// Return -2 if failed to find value in list.
warn("Requested string '" + string + "' not found in " + objectName + "'s list.");
return -2;
}
// ====================================================================
+6 -7
View File
@@ -329,21 +329,20 @@ function closePage()
Engine.SwitchGuiPage("page_pregame.xml", {});
}
/**
* Moves an item in the list @p objectName up or down depending on the value of @p up.
*/
function moveCurrItem(objectName, up)
{
// reuse the check for null and if something is selected.
if (getCurrItemValue(objectName) == "")
var obj = Engine.GetGUIObjectByName(objectName);
if (!obj)
return;
var idx = Engine.GetGUIObjectByName(objectName).selected;
var idx = obj.selected;
if (idx === -1)
return;
var num = getNumItems(objectName);
var num = obj.list.length;
var idx2 = idx + (up ? -1 : 1);
if (idx2 < 0 || idx2 >= num)
return;
@@ -353,8 +352,8 @@ function moveCurrItem(objectName, up)
g_modsEnabled[idx2] = tmp;
// Selected object reached the new position.
Engine.GetGUIObjectByName(objectName).list = g_modsEnabled;
Engine.GetGUIObjectByName(objectName).selected = idx2;
obj.list = g_modsEnabled;
obj.selected = idx2;
generateModsList('modsEnabledList', g_modsEnabled);
}
+6 -7
View File
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/common/functions_utility_list.js"/>
<script file="gui/modmod/modmod.js"/>
<object name="modmod" type="image" style="ModernWindow" size="0 0 100% 100%">
@@ -56,7 +55,7 @@
<!-- Sort by -->
<object name="sortingWrapper" size="100%-400 74 100% 98">
<object type="text" size="0 0 75 100%" text_align="left" textcolor="white">
Sorting:
<translatableAttribute id="caption">Sorting:</translatableAttribute>
</object>
<object name="sortBy"
type="dropdown"
@@ -68,7 +67,7 @@
</object>
<!-- Checkboxes -->
<object type="text" size="75% 100%-24 100% 100%" text_align="left" textcolor="white">
Descending.
<translatableAttribute id="caption">Descending.</translatableAttribute>
</object>
<object name="isOrderDescending"
type="checkbox"
@@ -93,10 +92,10 @@
<def id="name" color="100 100 200" width="10%">
<translatableAttribute id="heading">Name</translatableAttribute>
</def>
<def id="modVersion" color="128 128 128" width="5%">
<def id="modVersion" color="128 128 128" width="7%">
<translatableAttribute id="heading">Version</translatableAttribute>
</def>
<def id="modFolderName" color="100 100 200" width="15%">
<def id="modFolderName" color="100 100 200" width="13%">
<translatableAttribute id="heading">(Folder)</translatableAttribute>
</def>
<def id="modLabel" color="0 60 0" width="18%">
@@ -134,10 +133,10 @@
<def id="name" color="100 100 200" width="10%">
<translatableAttribute id="heading">Name</translatableAttribute>
</def>
<def id="modVersion" color="128 128 128" width="5%">
<def id="modVersion" color="128 128 128" width="7%">
<translatableAttribute id="heading">Version</translatableAttribute>
</def>
<def id="modFolderName" color="100 100 200" width="15%">
<def id="modFolderName" color="100 100 200" width="13%">
<translatableAttribute id="heading">(Folder)</translatableAttribute>
</def>
<def id="modLabel" color="0 60 0" width="18%">
@@ -11,6 +11,7 @@
"gui/modmod/**.js"
],
"options": {
"format": "javascript-format",
"keywords": {
"translate": [1],
"translatePlural": [1, 2],
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress branches large">
<mesh>gaia/tree_cypress_large_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress branches med">
<mesh>gaia/tree_cypress_med_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress skinny branches ">
<mesh>gaia/tree_cypress_skinny_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress small branches ">
<mesh>gaia/tree_cypress_sm_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress tall branches ">
<mesh>gaia/tree_cypress_tall_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="cypress tall branches ">
<mesh>gaia/tree_cypress_xlarge_branches.dae</mesh>
<textures>
<texture file="gaia/tree_cypress.png" name="baseTex"/>
<texture file="gaia/tree_cypress_norm.png" name="normTex"/>
<texture file="gaia/tree_cypress_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_wind.xml</material>
</actor>
@@ -4,27 +4,57 @@
<group>
<variant frequency="1" name="Cypress Tree (Small)">
<mesh>gaia/tree_cypress_sm.dae</mesh>
<textures><texture file="gaia/prop_tree_cypess.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_sm_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/prop_tree_cypess.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="Cypress Tree (Medium)">
<mesh>gaia/tree_cypress_med.dae</mesh>
<textures><texture file="gaia/prop_tree_cypess_b.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_med_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/prop_tree_cypess_b.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="Cypress Tree (Large)">
<mesh>gaia/tree_cypress_large.dae</mesh>
<textures><texture file="gaia/prop_tree_cypess_c.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_large_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/prop_tree_cypess_c.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="Cypress Tree (XLarge)">
<mesh>gaia/tree_cypress_xlarge.dae</mesh>
<textures><texture file="gaia/prop_tree_cypess_b.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_xlarge_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/prop_tree_cypess_b.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="2" name="Cypress Tree (Skinny)">
<mesh>gaia/tree_cypress_skinny.dae</mesh>
<textures><texture file="gaia/tree_cypress_a.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_skinny_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/tree_cypress_a.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="Cypress Tree (Tall)">
<mesh>gaia/tree_cypress_tall.dae</mesh>
<textures><texture file="gaia/tree_cypress_a.dds" name="baseTex"/></textures>
<props>
<prop actor="flora/trees/cypress_tall_branches.xml" attachpoint="root"/>
</props>
<textures>
<texture file="gaia/tree_cypress_a.dds" name="baseTex"/>
</textures>
</variant>
</group>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_fanpalm.dae</mesh>
<textures>
<texture file="gaia/shrub_fanpalm.png" name="baseTex"/>
<texture file="gaia/shrub_fanpalm_norm.png" name="normTex"/>
<texture file="gaia/shrub_fanpalm_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_spikes.dae</mesh>
<textures>
<texture file="gaia/shrub_spikes.png" name="baseTex"/>
<texture file="gaia/shrub_spikes_norm.png" name="normTex"/>
<texture file="gaia/shrub_spikes_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_palm.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_palm.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_palm_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_palm_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_tropic_plant_a.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_a.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_a_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_a_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_tropic_plant_b.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_b.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_b_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_b_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="shrub spikes">
<mesh>gaia/shrub_tropic_plant_flower.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_a.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_a_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_a_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -14,10 +14,14 @@
<group>
<variant>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans.xml</material>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="base">
<mesh>props/pers_barracks_shields.dae</mesh>
<props>
<prop actor="props/units/shields/hele_round_back.xml" attachpoint="root"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="shield-pers-aspis-1">
<textures><texture file="props/shield/pers_aspis_1.png" name="baseTex"/></textures>
</variant>
<variant frequency="1" name="shield-pers-aspis-2">
<textures><texture file="props/shield/pers_aspis_2.png" name="baseTex"/></textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="pers civic plants a">
<mesh>props/pers_civic_shrub_a.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_a.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_a_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_a_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="pers civic plants b">
<mesh>props/pers_civic_shrub_b.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_b.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_b_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_b_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="pers civic plants c">
<mesh>props/pers_civic_shrub_c.dae</mesh>
<textures>
<texture file="gaia/shrub_tropic_palm.png" name="baseTex"/>
<texture file="gaia/shrub_tropic_palm_norm.png" name="normTex"/>
<texture file="gaia/shrub_tropic_palm_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="pers civic plants d">
<mesh>props/pers_civic_shrub_d.dae</mesh>
<textures>
<texture file="gaia/shrub_spikes.png" name="baseTex"/>
<texture file="gaia/shrub_spikes_norm.png" name="normTex"/>
<texture file="gaia/shrub_spikes_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian farmstead cart">
<mesh>props/pers_farmstead_cart.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_farmstead.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian farmstead cart">
<mesh>props/pers_farmstead_cart_big.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_farmstead.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<mesh>props/pers_fortress_props.dae</mesh>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
</variant>
</group>
<material>basic_trans.xml</material>
</actor>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<mesh>props/pers_fortress_b_props.dae</mesh>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
</variant>
</group>
<material>basic_trans.xml</material>
</actor>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<mesh>props/pers_fortress_b_paintings.dae</mesh>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="base">
<mesh>props/pers_fortress_b_shields.dae</mesh>
<props>
<prop actor="props/units/shields/hele_round_back.xml" attachpoint="root"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="shield-pers-aspis-1">
<textures>
<texture file="props/shield/pers_aspis_1.png" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="shield-pers-aspis-2">
<textures><texture file="props/shield/pers_aspis_2.png" name="baseTex"/></textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<mesh>props/pers_fortress_paintings.dae</mesh>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="base">
<mesh>props/pers_fortress_shields.dae</mesh>
<props>
<prop actor="props/units/shields/hele_round_back.xml" attachpoint="root"/>
</props>
</variant>
</group>
<group>
<variant frequency="1" name="shield-pers-aspis-1">
<textures><texture file="props/shield/pers_aspis_1.png" name="baseTex"/></textures>
</variant>
<variant frequency="1" name="shield-pers-aspis-2">
<textures><texture file="props/shield/pers_aspis_2.png" name="baseTex"/></textures>
</variant>
</group>
<material>playercolor_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>props/pers_house_a_plants.dae</mesh>
<textures>
<texture file="props/structs_nature.png" name="baseTex"/>
<texture file="props/structs_nature_norm.png" name="normTex"/>
<texture file="props/structs_nature_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>props/pers_house_c_plants.dae</mesh>
<textures>
<texture file="props/structs_nature.png" name="baseTex"/>
<texture file="props/structs_nature_norm.png" name="normTex"/>
<texture file="props/structs_nature_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>props/pers_house_d_plants.dae</mesh>
<textures>
<texture file="props/structs_nature.png" name="baseTex"/>
<texture file="props/structs_nature_norm.png" name="normTex"/>
<texture file="props/structs_nature_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall1.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall2.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall3.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall4.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall5.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall6.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_A stall">
<mesh>props/pers_market_a_stall7.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall1.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall2.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall3.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall4.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall5.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall6.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="persian market_B stall">
<mesh>props/pers_market_b_stall7.dae</mesh>
</variant>
</group>
<group>
<variant>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -6,10 +6,14 @@
<group>
<variant frequency="1" name="Base">
<mesh>props/pers_temple_lions.dae</mesh>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>basic_trans.xml</material>
<material>basic_trans_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant name="pediment">
<mesh>props/sele_temple_pediment.dae</mesh>
<textures>
<texture file="structural/hele_struct.dds" name="baseTex"/>
<texture file="structural/hele_struct_norm.png" name="normTex"/>
<texture file="structural/hele_struct_spec.png" name="specTex"/>
<texture file="structural/ao/sele_temple_pediment.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>props/new/dude_head.dae</mesh>
<textures><texture file="props/head/celt_verc.dds" name="baseTex"/></textures>
</variant>
</group>
</actor>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant>
<mesh>props/new/head_female_c.dae</mesh>
<textures><texture file="props/head/kart_fem_a_cin.dds" name="baseTex"/></textures>
</variant>
</group>
</actor>
@@ -11,7 +11,6 @@
<prop actor="props/structures/gauls/outpost_windows.xml" attachpoint="root"/>
<prop actor="props/structures/gauls/outpost_door.xml" attachpoint="root"/>
<prop actor="props/structures/gauls/outpost_shields.xml" attachpoint="root"/>
<prop actor="units/celts/infantry_javelinist_e.xml" attachpoint="gar01"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
</props>
@@ -7,6 +7,7 @@
<props>
<prop actor="props/structures/decals/dirt_4x4.xml" attachpoint="root"/>
<prop actor="props/structures/persians/barracks.xml" attachpoint="root"/>
<prop actor="props/structures/persians/barracks_shields.xml" attachpoint="root"/>
<prop actor="props/units/shields/pers_taka_a.xml" attachpoint="shieldright"/>
<prop actor="props/units/shields/pers_pelta_a.xml" attachpoint="shieldleft"/>
<prop actor="props/units/shields/pers_tower.xml" attachpoint="entranceshield"/>
@@ -14,7 +15,12 @@
<prop actor="props/units/shields/pers_round_kardakes.xml" attachpoint="shieldtop"/>
<prop actor="props/units/shields/pers_round_kardakes.xml" attachpoint="shieldoutside"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_barracks.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -35,5 +41,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -18,10 +18,12 @@
<prop actor="props/structures/decals/dirt_4x4.xml" attachpoint="root"/>
</props>
<textures>
<texture file="structural/pers_struct.dds" name="baseTex"/>
<texture file="structural/ao/pers_blacksmith.png" name="aoTex"/>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_blacksmith.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -7,6 +7,10 @@
<props>
<prop actor="props/structures/persians/civil_centre_a.xml" attachpoint="root"/>
<prop actor="props/structures/persians/civil_centre_b.xml" attachpoint="root"/>
<prop actor="props/structures/persians/civil_centre_shrubs_a.xml" attachpoint="root"/>
<prop actor="props/structures/persians/civil_centre_shrubs_b.xml" attachpoint="root"/>
<prop actor="props/structures/persians/civil_centre_shrubs_c.xml" attachpoint="root"/>
<prop actor="props/structures/persians/civil_centre_shrubs_d.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
<prop actor="props/units/shields/pers_tower.xml" attachpoint="shielda"/>
@@ -14,8 +18,10 @@
<prop actor="props/units/shields/pers_round_kardakes.xml" attachpoint="shieldc"/>
</props>
<textures>
<texture file="structural/pers_struct.dds" name="baseTex"/>
<texture file="structural/ao/pers_civic.png" name="aoTex"/>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_civic_b.png" name="aoTex"/>
</textures>
</variant>
</group>
@@ -40,5 +46,5 @@
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -5,10 +5,12 @@
<variant frequency="100" name="Base">
<mesh>structural/pers_dock.dae</mesh>
<textures>
<texture file="structural/pers_struct.dds" name="baseTex"/>
<texture file="structural/ao/pers_dock.png" name="aoTex"/>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_dock.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -7,8 +7,15 @@
<props>
<prop actor="props/structures/decals/dirt_3x3.xml" attachpoint="root"/>
<prop actor="props/structures/decals/farmstead_mud.xml" attachpoint="root"/>
<prop actor="props/structures/persians/farmstead_cart.xml" attachpoint="cart" minheight="-20" maxheight="20"/>
<prop actor="props/structures/persians/farmstead_cart_big.xml" attachpoint="cartbig" minheight="-20" maxheight="20"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_farmstead.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -23,5 +30,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -5,25 +5,34 @@
<variant frequency="1" name="Persian_Fortress_A">
<mesh>structural/pers_fortress.dae</mesh>
<props>
<prop actor="props/structures/persians/fortress.xml" attachpoint="root"/>
<prop actor="props/structures/persians/fortress_paintings.xml" attachpoint="root"/>
<prop actor="props/structures/persians/fortress_shields.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
<prop actor="props/structures/decals/dirt_5x5.xml" attachpoint="root"/>
</props>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_fortress.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="Persian_Fortress_B">
<mesh>structural/pers_fortress_b.dae</mesh>
<props>
<prop actor="props/structures/persians/fortress_b.xml" attachpoint="root"/>
<prop actor="props/structures/persians/fortress_b_shields.xml" attachpoint="root"/>
<prop actor="props/structures/persians/fortress_b_paintings.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
<prop actor="props/structures/decals/dirt_5x5.xml" attachpoint="root"/>
</props>
</variant>
</group>
<group>
<variant>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_fortress_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -42,5 +51,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -32,10 +32,12 @@
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures>
<texture file="structural/pers_struct.dds" name="baseTex"/>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_gardens_ao.png" name="aoTex"/>
</textures>
</variant>
</group>
<material>player_trans_ao.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -6,29 +6,52 @@
<mesh>structural/pers_house_a.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_small.xml" attachpoint="root"/>
<prop actor="props/structures/persians/house_a_plants.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_house_a.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="House B">
<mesh>structural/pers_house_b.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_small.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_house_b.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="House C">
<mesh>structural/pers_house_c.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_small.xml" attachpoint="root"/>
<prop actor="props/structures/persians/house_c_plants.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_house_c.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="House D">
<mesh>structural/pers_house_d.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_small.xml" attachpoint="root"/>
<prop actor="props/structures/persians/house_d_plants.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_house_d.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -42,5 +65,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -6,15 +6,49 @@
<props>
<prop actor="props/structures/decals/dirt_5x5.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Bazaar A">
<mesh>structural/pers_market_a.dae</mesh>
<props>
<prop actor="props/structures/persians/market_a_stall1.xml" attachpoint="stall1" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall2.xml" attachpoint="stall2" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall3.xml" attachpoint="stall3" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall4.xml" attachpoint="stall4" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall5.xml" attachpoint="stall5" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall6.xml" attachpoint="stall6" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_a_stall7.xml" attachpoint="stall7" minheight="-20" maxheight="2"/>
</props>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_a.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="Bazaar B">
<mesh>structural/pers_market_b.dae</mesh>
<props>
<prop actor="props/structures/persians/market_b_stall1.xml" attachpoint="stall1" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall2.xml" attachpoint="stall2" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall3.xml" attachpoint="stall3" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall4.xml" attachpoint="stall4" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall5.xml" attachpoint="stall5" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall6.xml" attachpoint="stall6" minheight="-20" maxheight="2"/>
<prop actor="props/structures/persians/market_b_stall7.xml" attachpoint="stall7" minheight="-20" maxheight="2"/>
</props>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_market_b.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -28,5 +62,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -5,7 +5,9 @@
<variant frequency="100" name="palace">
<mesh>structural/pers_palace.dae</mesh>
<textures>
<texture file="structural/pers_struct.dds" name="baseTex"/>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_palace.png" name="aoTex"/>
</textures>
</variant>
@@ -20,5 +22,5 @@
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -11,18 +11,28 @@
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_defense_tower.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="scouttowerb">
<animations>
<animation event="0.5" load="0" name="attack_ranged" speed="100"/>
</animations>
<mesh>structural/pers_scout_tower_b.dae</mesh>
<mesh>structural/pers_scout_tower_a.dae</mesh>
<props>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_defense_tower.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -41,5 +51,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -11,7 +11,12 @@
<prop actor="props/structures/persians/stable_horse_b.xml" attachpoint="horseb" minheight="-20" maxheight="1.7"/>
<prop actor="props/structures/persians/stable_horse_c.xml" attachpoint="horsec" minheight="-20" maxheight="1.7"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_stables.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -32,5 +37,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -7,7 +7,12 @@
<props>
<prop actor="props/structures/persians/temple.xml" attachpoint="root"/>
</props>
<textures><texture file="structural/pers_struct.dds" name="baseTex"/></textures>
<textures>
<texture file="structural/pers_struct.png" name="baseTex"/>
<texture file="structural/pers_struct_norm.png" name="normTex"/>
<texture file="structural/pers_struct_spec.png" name="specTex"/>
<texture file="structural/ao/pers_temple.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
@@ -27,5 +32,5 @@
</props>
</variant>
</group>
<material>player_trans.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -9,9 +9,10 @@
<prop actor="particle/smoke_small_light.xml" attachpoint="smoke"/>
</props>
<textures>
<texture file="structural/rome_struct.png" name="baseTex"/>
<texture file="structural/rome_struct_norm.png" name="normTex"/>
<texture file="structural/rome_struct_spec.png" name="specTex"/>
<texture file="structural/rome_struct.png" name="baseTex"/>
<texture file="structural/rome_struct_norm.png" name="normTex"/>
<texture file="structural/rome_struct_spec.png" name="specTex"/>
<texture file="structural/ao/rome_vesta.png" name="aoTex"/>
</textures>
</variant>
</group>
@@ -30,5 +31,5 @@
</props>
</variant>
</group>
<material>player_trans_parallax_spec.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -8,6 +8,7 @@
<texture file="structural/rome_struct_arch.dds" name="baseTex"/>
<texture file="structural/rome_struct_arch_norm.png" name="normTex"/>
<texture file="structural/rome_struct_arch_spec.png" name="specTex"/>
<texture file="structural/ao/rome_arch.png" name="aoTex"/>
</textures>
</variant>
</group>
@@ -21,5 +22,5 @@
</props>
</variant>
</group>
<material>player_trans_parallax_spec.xml</material>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -1,52 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<animations>
<animation event="0.5" load="0.0" name="attack_ranged" speed="100"/>
</animations>
<mesh>structural/mace_cc_struct.dae</mesh>
<props>
<prop actor="props/structures/macedonians/civic_centre_decor.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_nature.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_trees.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_props_a.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_struct_b.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_shields.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_tiles.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures>
<texture file="structural/sele_struct.dds" name="baseTex"/>
<texture file="structural/hele_struct_norm.png" name="normTex"/>
<texture file="structural/hele_struct_spec.png" name="specTex"/>
<texture file="structural/ao/mace_civic_centre.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_hele.xml" attachpoint="garrisoned"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_decor.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_props_a.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_trees.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_struct_b.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_tiles.xml" attachpoint="root"/>
<prop actor="props/structures/macedonians/civic_centre_shields.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans.xml</material>
</actor>
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<animations>
<animation event="0.5" load="0.0" name="attack_ranged" speed="100"/>
</animations>
<mesh>structural/sele_civ_center.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_6x6.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
<prop actor="flora/trees/palm_cretan_date_short.xml" attachpoint="bush" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/palm_cretan_date_short.xml" attachpoint="bush_1" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/palm_cretan_date.xml" attachpoint="bush_2" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/palm_cretan_date.xml" attachpoint="bush_3" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_4" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_5" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_6" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_7" maxheight="20" minheight="-20"/>
<prop actor=""/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
<texture file="structural/Sele_struct_2.png" name="normTex"/>
<texture file="structural/Sele_struct_2.png" name="specTex"/>
<texture file="structural/ao/sele_civic_center.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_seleucids.xml" attachpoint="garrisoned"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_small.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<mesh>structural/sele_farmstead.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_3x3.xml" attachpoint="root"/>
<prop actor="props/structures/decals/hele_corral_mud.xml" attachpoint="root"/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
<texture file="structural/hele_struct_norm.png" name="normTex"/>
<texture file="structural/hele_struct_spec.png" name="specTex"/>
<texture file="structural/ao/sele_farmstead.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned"/>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_small.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_med.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_small_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<props>
<prop actor="props/structures/decals/dirt_3x3.xml" attachpoint="root"/>
<prop actor="props/flora/bush.xml" attachpoint="bush"/>
<prop actor="props/flora/bush.xml" attachpoint="bush_1"/>
<prop actor="props/flora/bush.xml" attachpoint="bush_2"/>
<prop actor="props/flora/bush.xml" attachpoint="bush_3"/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
<texture file="structural/hele_struct_norm.png" name="normTex"/>
<texture file="structural/hele_struct_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="aa">
<mesh>structural/sele_house_a.dae</mesh>
<textures>
<texture file="structural/ao/sele_house_a.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="bb">
<mesh>structural/sele_house_b.dae</mesh>
<textures>
<texture file="structural/ao/sele_house_b.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="cc">
<mesh>structural/sele_house_c.dae</mesh>
<textures>
<texture file="structural/ao/sele_house_c.png" name="aoTex"/>
</textures>
</variant>
<variant frequency="1" name="dd">
<mesh>structural/sele_house_d.dae</mesh>
<textures>
<texture file="structural/ao/sele_house_d.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned"/>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<animations>
<animation event="0.5" load="0.0" name="attack_ranged" speed="100"/>
</animations>
<mesh>structural/sele_tower.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_1x1.xml" attachpoint="root"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="loaded-projectile"/>
<prop actor="props/units/weapons/arrow_front.xml" attachpoint="projectile"/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
<texture file="structural/Sele_struct_2.png" name="normTex"/>
<texture file="structural/Sele_struct_2.png" name="specTex"/>
<texture file="structural/ao/sele_tower.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_hele.xml" attachpoint="garrisoned"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_small.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<mesh>structural/sele_storehouse.dae</mesh>
<props>
<prop actor="props/structures/decals/dirt_3x3.xml" attachpoint="root"/>
<prop actor="props/structures/decals/hele_corral_mud.xml" attachpoint="root"/>
<prop actor="props/special/eyecandy/blocks_sandstone_pile.xml" attachpoint="bush" maxheight="20" minheight="-20"/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
<texture file="structural/hele_struct_norm.png" name="normTex"/>
<texture file="structural/hele_struct_spec.png" name="specTex"/>
<texture file="structural/ao/sele_storehouse.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned"/>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_small.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_med.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_small_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Seleucid_Civic_Centre">
<props>
<prop actor="props/structures/decals/dirt_4x6.xml" attachpoint="root"/>
<prop actor="props/structures/seleucids/temple pediment.xml" attachpoint="root" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_1" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_2" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_3" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_4" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_5" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_6" maxheight="20" minheight="-20"/>
<prop actor="flora/trees/mediterranean_cypress.xml" attachpoint="bush_7" maxheight="20" minheight="-20"/>
</props>
<textures>
<texture file="structural/Sele_struct_2.png" name="baseTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="aa">
<mesh>structural/sele_temple.dae</mesh>
<textures>
<texture file="structural/ao/sele_temple.png" name="aoTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="100" name="Idle"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_seleucids.xml" attachpoint="garrisoned"/>
</props>
</variant>
<variant name="death">
<props>
<prop attachpoint="garrisoned"/>
<prop actor="particle/destruction_smoke_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large.xml" attachpoint="root"/>
<prop actor="particle/destruction_dust_large_gray.xml" attachpoint="root"/>
</props>
</variant>
</group>
<material>player_trans_ao.xml</material>
</actor>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/new/inf_shield_idle.dae" name="Idle" speed="100"/>
</animations>
<mesh>skeletal/new/armor/m_tunic_short.dae</mesh>
<props>
<prop actor="props/units/heads/head_newhead.xml" attachpoint="head"/>
<prop actor="props/units/weapons/gladus.xml" attachpoint="weapon_R"/>
<prop actor="props/units/shields/rome_scutum_e.xml" attachpoint="shield"/>
</props>
<textures>
<texture file="skeletal/rome_isw_e.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>player_trans.xml</material>
</actor>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/new/inf_sarissa_rest.dae" name="Idle" speed="100"/>
</animations>
<mesh>skeletal/new/armor/m_tunic_short.dae</mesh>
<props>
<prop actor="props/units/heads/head_newhead.xml" attachpoint="head"/>
<prop actor="props/units/weapons/sarissa.xml" attachpoint="weapon_R"/>
<prop actor="props/units/shields/mace_pez_elite.xml" attachpoint="shield_arm"/>
</props>
<textures>
<texture file="skeletal/hele_pezhetairoi_2.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>player_trans.xml</material>
</actor>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/new/inf_arch_idle.dae" name="Idle" speed="100"/>
</animations>
<mesh>skeletal/new/armor/m_pants_tunic_long.dae</mesh>
<props>
<prop actor="props/units/heads/head_newhead.xml" attachpoint="head"/>
<prop actor="props/units/weapons/bow_recurve.xml" attachpoint="weapon_bow"/>
<prop actor="props/units/quiver_hip.xml" attachpoint="sheath_L"/>
<prop actor="props/units/weapons/arrow_back.xml" attachpoint="projectile"/>
<prop actor="props/units/shields/pers_pelta_a_b_reverse.xml" attachpoint="back"/>
</props>
<textures>
<texture file="skeletal/pers_iar_e_1.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>player_trans.xml</material>
</actor>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant frequency="1" name="Base">
<animations>
<animation file="biped/new/fem_idle_long.dae" name="Idle" speed="100"/>
<animation file="biped/new/fem_idle_short.dae" name="Idle" speed="100"/>
</animations>
<mesh>skeletal/new/f_dress.dae</mesh>
<props>
<prop actor="props/units/heads/new/head_female_test.xml" attachpoint="head"/>
</props>
<textures>
<texture file="skeletal/hele_fem_d.dds" name="baseTex"/>
</textures>
</variant>
</group>
<material>player_trans.xml</material>
</actor>
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More