216 Commits

Author SHA1 Message Date
Ykkrosh 6f9da85d9f Improve performance of full state hash computation, by skipping script components that are known to have no data.
Switch to much quicker (and less comprehensive) per-turn hashing in
multiplayer games.

This was SVN commit r9036.
2011-03-05 22:30:32 +00:00
Ykkrosh 18cdbd9eab Increase tile-based pathfinder maximum search range, so it's at least enough to reach from one side of Acropolis to the other
This was SVN commit r9026.
2011-03-05 14:38:08 +00:00
Ykkrosh e608d9269a Load entity templates for the AI via the progressive loader.
Display message while loading the map list for the setup screen.

This was SVN commit r9019.
2011-03-05 01:56:59 +00:00
Ykkrosh bec4c6437b Make non-combat units flee when under melee attack, and not attack enemies automatically.
Fixes #703.

This was SVN commit r9010.
2011-03-04 14:36:41 +00:00
Ykkrosh 2ef1b9a867 Make projectiles that miss their target continue until hitting the terrain.
Fixes #706.

This was SVN commit r9008.
2011-03-04 00:43:48 +00:00
Ykkrosh 16a4eb36dd Various minor optimisations.
Enable SpiderMonkey method JIT in Release mode.
Add Engine.ProfileStart/Engine.ProfileStop functions for scripts.
Fix AI to clone initial entity data and shared metadata.

This was SVN commit r9003.
2011-03-03 00:16:14 +00:00
Ykkrosh dbc6d27411 Optimise obstruction grid updates in the common case when terrain hasn't changed
This was SVN commit r9001.
2011-02-28 01:24:12 +00:00
Ykkrosh 794584ea11 Optimise tile-based pathfinder, particularly for large maps.
This was SVN commit r9000.
2011-02-28 00:35:53 +00:00
janwas d805ef356e FileExists -> VfsFileExists (see next commit)
scriptInterface: fix bool cast warning

This was SVN commit r8984.
2011-02-25 16:30:55 +00:00
Ykkrosh f4f36af852 Block new buildings being placed on top of existing not-yet-started foundations. Fixes #740.
This was SVN commit r8980.
2011-02-24 21:49:24 +00:00
Ykkrosh f6c1d98c9a Fix #739 (test failures).
Use JSON in debug serializer output unless it fails due to e.g. cyclic
values, in which case use toSource.
Disable file stats code by default, since its output isn't used.

This was SVN commit r8975.
2011-02-24 00:32:38 +00:00
Ykkrosh b24396740c Disable XML validation when loading templates for AI, to save startup time
This was SVN commit r8959.
2011-02-20 20:45:39 +00:00
Ykkrosh 6ba12dd2ff Pretty-print JS values in debug serializer
This was SVN commit r8958.
2011-02-20 20:44:36 +00:00
Ykkrosh 720bb3c87d Remove unnecessary rooting
This was SVN commit r8957.
2011-02-20 20:44:13 +00:00
janwas 1b1230ca3e wgl compile fix: add types required by new wglext.h
wutsname fix (noticed by Philip from hwdetect information, thanks!):
uname.release wasn't always set.
BinarySerializer.h: warning fix

This was SVN commit r8940.
2011-02-19 18:00:09 +00:00
Ykkrosh f3372bf11d Add some rough performance reporting.
Make the profiler converge a bit faster.

This was SVN commit r8939.
2011-02-19 03:14:37 +00:00
Ykkrosh 3e13c300cc Fix non-PCH build error
This was SVN commit r8938.
2011-02-19 00:46:14 +00:00
Ykkrosh 1c7e33b528 Remove a load of implicit CStr type conversions, since they're error-prone and can cause silent data loss.
Handle most CStr8/CStrW conversions via UTF-8 instead of effectively
assuming Latin-1.
Return UTF-8 strings from Xeromyces API.

This was SVN commit r8929.
2011-02-17 20:08:20 +00:00
Ykkrosh 9b25df5958 Fix #591 (Disable sounds for units in FoW/SoD), based on patch from Bogi
This was SVN commit r8910.
2011-02-11 23:02:19 +00:00
Ykkrosh b73c544f2a Fix warning
This was SVN commit r8903.
2011-02-10 22:55:41 +00:00
Ykkrosh b8925fbbc9 # Support AI construction of buildings.
Pass terrain passability data to AI scripts.
Expand pathfinder passability data to 16 bits per tile, to allow more
classes.
Support 16-bit ints in serializer.
Partially support JS typed arrays.
Allow foundations to be placed on top of units (fixes #499).
Stop farms and fishes blocking movement (fixes #534).
Add obstruction flags to allow finer control over what they block.
Associate entity IDs with obstruction shapes, to allow finding colliding
entities.
Support moving to the edge of a target entity with inactive obstruction.
Support foundation entities in AI.
Support playing as non-hele civs.

This was SVN commit r8899.
2011-02-10 16:06:28 +00:00
Ykkrosh 57e5bb878a Initial terrible AI player scripts.
This was SVN commit r8891.
2011-02-05 20:35:34 +00:00
Ykkrosh caad072347 Expand pathfinder boundaries to stop units disappearing off the edge of the visible map.
This was SVN commit r8887.
2011-02-03 19:40:41 +00:00
Ykkrosh 02e7eb69ff # Add solid black sides to the map, to hide underwater terrain.
This was SVN commit r8886.
2011-02-03 14:36:54 +00:00
Ykkrosh fe21c5e023 # Rewrite fog-of-war rendering.
Disable shadows when only 2 TMUs available.
Clean up some other rendering code.

This was SVN commit r8882.
2011-02-03 01:12:24 +00:00
Ykkrosh c3b734775b Simplify component interface: remove explicit context parameter, use GetSimContext() instead.
This was SVN commit r8867.
2011-01-16 14:08:38 +00:00
Ykkrosh f39f279132 Add AI script code to provide a cleaner API around the engine interface.
Handle AIProxy entirely through scripts.
Support structured clones of script values.
Improve performance.
Support multiple script contexts sharing a runtime.
Use a separate context per AI player.

This was SVN commit r8866.
2011-01-15 23:35:20 +00:00
Ykkrosh dd501b2a5a # Add initial basic player AI framework.
Support direct access to serializer streams, so serializers can be
nested.
Make component script "this.template" read-only.
Stop globally-subscribed component scripts receiving messages posted to
local components, to reduce out-of-sync risks.
Move pathfinder data out of entity template directory.
Fix GuiInterface deserialization.

This was SVN commit r8865.
2011-01-12 12:29:00 +00:00
Ykkrosh d8cd31d4b6 Add probably-unnecessary script serialization test.
This was SVN commit r8862.
2011-01-12 12:13:11 +00:00
Ykkrosh aaef1b0d74 Add script for generating mostly-useless component interaction graphs.
Fix some components to use more standard syntax.

This was SVN commit r8857.
2011-01-07 20:31:48 +00:00
evanssthomas 5e3049f6b2 BuildLimits. Needs some configuration changes to work
This was SVN commit r8836.
2010-12-11 23:19:17 +00:00
janwas ba2a9d7af3 improvements from work: [update-workspaces required]
- split precompiled.h into several headers (simplifies reuse)
- enable additional warnings not in W4
- split ErrorReaction into ErrorReactionInternal - clarifies which
values can actually be returned by debug_DisplayError
- wsdl: slightly safer HDC usage via CS_OWNDC, avoid dipping into DC
cache via ValidateRect instead of BeginPaint; remove unused thread
create
- StdDeserializer - wasn't including byte_order => BYTE_ORDER was
undefined
- wsysdep: clean up error dialog message handling

This was SVN commit r8828.
2010-12-09 11:16:21 +00:00
Ykkrosh f04c2561b7 Various resource shuttling improvements. Fixes #672.
This was SVN commit r8811.
2010-12-08 16:12:04 +00:00
Ykkrosh 0b0b11d2e0 Fix occasional assertion failure in time warp mode
This was SVN commit r8810.
2010-12-08 16:09:53 +00:00
Ykkrosh 6b4478209b Fix accidental use of hard-coded constant.
Don't bother recomputing terrain speeds multiple times per turn.

This was SVN commit r8753.
2010-11-30 14:48:04 +00:00
Ykkrosh ab186c2b16 Update UnitMotion logic, to partially simplify it.
Do all pathfinding asynchronously.
Recalculate paths when the target has moved.
Fix vertex pathfinder start point heuristic, to avoid finding
zero-length paths.
When units fail to reach a resource to gather, look for another resource
of the same type.

This was SVN commit r8751.
2010-11-30 12:31:54 +00:00
Ykkrosh 3b405efc6b Increase serializer reserved buffer space to cope with huge maps.
This was SVN commit r8748.
2010-11-30 12:24:46 +00:00
Ykkrosh f378a63d94 Add some tests for UnitAI.
Fix said tests for UnitAI.
Hopefully fix #647 too.
Document HFSM interface a bit.
Add Engine.DumpSimState() console command for debugging.

This was SVN commit r8681.
2010-11-22 20:12:04 +00:00
fcxSanya e4d356c3bf Map exploration counter for summary screen
This was SVN commit r8679.
2010-11-21 19:42:26 +00:00
Ykkrosh bd3bd084c0 Support new SpiderMonkey API.
wposix: Define int8_t compatibly with SpiderMonkey.
Remove unused camera, lightenv JS interfaces.
Remove most of vector JS interface.
Remove some of the redundant JS string conversion functions.
Remove unneeded vmem, _lodBias functions.
Clean up some formatting.

This was SVN commit r8629.
2010-11-16 23:00:52 +00:00
Ykkrosh 9c521ceb3b Add minimum range to range queries
This was SVN commit r8627.
2010-11-16 20:43:15 +00:00
Ykkrosh 13d2e44ff5 Run GC frequently in the simulation script context, to keep memory usage down
This was SVN commit r8622.
2010-11-15 15:03:40 +00:00
Ykkrosh 816c810791 Windows fix
This was SVN commit r8614.
2010-11-15 00:48:34 +00:00
Ykkrosh 4a1bc8e11a Optimise LOS visibility updates
This was SVN commit r8613.
2010-11-15 00:36:15 +00:00
Ykkrosh 4100a13e0a # Add resource shuttling.
Add resource-carrying animations/props to an actor for testing.
Warn more quietly about invalid cursor names.

This was SVN commit r8589.
2010-11-13 19:15:29 +00:00
Ykkrosh 644b9aedea # Add double-click and triple-click selection modes, based on patch by Christoph and evans.
Fixes #515.

This was SVN commit r8544.
2010-11-07 00:12:55 +00:00
Ykkrosh 5d764f1435 Run network server in a separate thread, to minimise latency.
Make some parts of logger and console thread-safe.
Simplify console: remove special commands; remove prefix for script
commands.
Remove LOG_ONCE, to simplify logger.
Change some code to use the new logger interface.
Fix OOS when revealing map.
Clean up some formatting.

This was SVN commit r8511.
2010-10-31 22:00:28 +00:00
Ykkrosh 1840bb3507 Stop units walking outside the edges of circular maps.
Switch the GUI between square/circular minimap automatically.

This was SVN commit r8500.
2010-10-30 18:25:34 +00:00
Ykkrosh 10c5dbcba4 Fix Atlas and autostart.
Fix non-POD in varargs.
Remove misleading max_players config variable (the engine doesn't care
about it, all the limits are hard-coded).
Remove civ-center-based player civ initialisation hack.
Add dummy player_defaults.json.
Clean up formatting a bit.

This was SVN commit r8498.
2010-10-30 13:27:23 +00:00
historic_bruno 9ee44bd9b8 Game setup changes, including showing name, civ, team, and some options loaded from the scenarios. Civ data added. Civ info window to preview civs. Icon tooltips. Support for random map implementation. Fixes #590.
This was SVN commit r8494.
2010-10-30 04:02:42 +00:00