Commit graph

467 commits

Author SHA1 Message Date
Ykkrosh
4f6f0b7baf Fix tests, and warnings, and non-PCH build
This was SVN commit r10801.
2011-12-23 13:01:29 +00:00
Ykkrosh
c989f52c46 Use heap-based queue in pathfinder to improve worst-case performance (in exchange for terrible VS2008 debug-mode performance)
This was SVN commit r10790.
2011-12-22 16:58:03 +00:00
Ykkrosh
6399ec0cd2 # Partial support for saved games with AI.
Support cancelling loads while inside a loader callback.
Fix use of ArchiveReader/Writer since their API changed.
Improve error-detection in deserializer to avoid crashes.
Report deserializer errors to users.
Expand load-error message box to fit message about invalid saved games.

This was SVN commit r10787.
2011-12-22 14:04:32 +00:00
vts
292ed1d9e0 Allocated rally point flag entity on-demand instead of at initialization time. Fixes #1042.
This was SVN commit r10722.
2011-12-13 14:14:41 +00:00
vts
6156fa7c9a Changed default idle animation speed to 1 so that waypoint flags will animate properly
This was SVN commit r10712.
2011-12-11 13:35:51 +00:00
vts
46a09ced71 Fixed some compilation warnings
This was SVN commit r10710.
2011-12-11 02:11:05 +00:00
vts
db864f10c3 Rendering marker lines between buildings and rally points
Added command button to focus on rally point
(implements #524)

This was SVN commit r10704.
2011-12-10 07:07:04 +00:00
vts
fbb0e3995f Added prop point axes markers to Atlas' Actor Viewer panel
This was SVN commit r10703.
2011-12-10 05:11:25 +00:00
vts
1c19e905b1 Added prop points to Atlas' Actor Viewer
This was SVN commit r10696.
2011-12-09 10:49:08 +00:00
Ykkrosh
4da8bf001f Add pathfinders to new profiler
This was SVN commit r10633.
2011-11-29 20:29:50 +00:00
janwas
301854702c add support for removing individual files from VFS and a mechanism for automatically doing so (add filename.extension.DELETED to the same directory/archive), as discussed in meeting.
refactor: split up Invalidate into RemoveFile+RepopulateDirectory
GameSetup: fix: ensure the first mod always overrides game files,
irrespective of timestamp.

This was SVN commit r10610.
2011-11-26 18:37:53 +00:00
vts
85186c98b2 Better selection boxes. Closes #914, #295, #810.
This was SVN commit r10593.
2011-11-25 06:36:13 +00:00
fcxSanya
8cbab40137 Barter. Closes #23.
This was SVN commit r10588.
2011-11-24 15:43:32 +00:00
historic_bruno
8d977e4818 Allows building in fog of war. Fixes #958.
This was SVN commit r10584.
2011-11-24 00:58:34 +00:00
Ykkrosh
2878102ed7 Avoid some code duplication
This was SVN commit r10583.
2011-11-23 21:26:14 +00:00
Ykkrosh
ab88151ed0 Fix uninitialised value
This was SVN commit r10582.
2011-11-23 21:24:41 +00:00
Ykkrosh
f66a3e726f Avoid overflow identified by /RTCc warning
This was SVN commit r10537.
2011-11-14 22:22:38 +00:00
Ykkrosh
fbff0aa98d Fix printf argument types
This was SVN commit r10529.
2011-11-13 18:31:06 +00:00
Ykkrosh
f0f81827f3 Fix build with old GCCs
This was SVN commit r10522.
2011-11-13 01:04:40 +00:00
Ykkrosh
cfb79c3062 # Add GPU performance profiling support.
Add some profiler region attributes.
Render events in profile visualiser.
Change profiler from GPL to MIT.

This was SVN commit r10492.
2011-11-09 13:09:01 +00:00
Ykkrosh
09a02c96d5 Add initial code annotations for the new profiling tool
This was SVN commit r10466.
2011-11-04 01:35:50 +00:00
Ykkrosh
21c6141cdc Preserve player colours and animations when serializing models
This was SVN commit r10453.
2011-10-29 15:30:46 +00:00
Ykkrosh
23ae535a1e Minor enhancements to serialization test mode
This was SVN commit r10449.
2011-10-28 13:18:16 +00:00
Ykkrosh
f31a8f7181 Fix warning
This was SVN commit r10448.
2011-10-28 13:16:53 +00:00
Ykkrosh
959b5a505c Fix bug in incremental LOS computation
This was SVN commit r10446.
2011-10-28 13:15:33 +00:00
Ykkrosh
d57bb00ece Fix sparse array serialization
This was SVN commit r10442.
2011-10-27 20:56:32 +00:00
Ykkrosh
a739b8f309 Fix some saved-game OOS errors
This was SVN commit r10441.
2011-10-27 20:12:00 +00:00
Ykkrosh
4c561dc3f9 Improve debugging of binary serialization
This was SVN commit r10440.
2011-10-27 20:10:53 +00:00
Ykkrosh
18e595a5a6 Fix OOS-log paths to work on Windows
This was SVN commit r10434.
2011-10-27 14:17:39 +00:00
Ykkrosh
29e4f633f1 Add initial serialization test mode.
Reduce some dependencies on CSimulation2 to provide more flexibility.

This was SVN commit r10426.
2011-10-24 14:31:05 +00:00
Ykkrosh
0f3119e36a Fix deserialization of actor components
This was SVN commit r10425.
2011-10-24 12:24:04 +00:00
Ykkrosh
f4ed019c46 Avoid hypotf
This was SVN commit r10421.
2011-10-23 12:27:34 +00:00
janwas
8af8326563 replace old pool_allocator/RawPoolAllocator with ProxyAllocator that draws upon the new-style Arena (more efficient, avoids slow VirtualAlloc)
This was SVN commit r10410.
2011-10-16 10:37:21 +00:00
historic_bruno
1c081135ad Adds territory map to AI GameState, based on patch from quantumstate. Fixes #969.
Updates testbot and Jubot to support basic build restrictions.

This was SVN commit r10408.
2011-10-16 02:55:58 +00:00
Ykkrosh
cb7a4f8b1a Hopefully fix replay mode
This was SVN commit r10175.
2011-09-02 23:47:26 +00:00
historic_bruno
27e5581d27 Fixes Atlas player panel getting out of sync with simulation. Fixes #927.
Fixes object panel not being notified of map loading.
Fixes bug where opening a new map before using the player panel
prevented default player data being displayed for new players.
Fixes wxGTK 2.8 bug: wxChoicebook control doesn't update the choice
control when adding/removing pages.
Notifies player that deleting player in Atlas will delete all their
objects (and gives them the option).
Changes DeleteObject to DeleteObjects to support multiple selections.
Implements undo for map resize (experimental).
Removes annoying debug message from attempted undo of map settings.
Tweaks a few Atlas UI controls.

This was SVN commit r10064.
2011-08-22 21:45:39 +00:00
historic_bruno
730a89152c Fixes typecast performance warning in MSVC.
This was SVN commit r10045.
2011-08-21 00:09:28 +00:00
Ykkrosh
49af1880f8 Fix tests
This was SVN commit r10035.
2011-08-18 21:12:15 +00:00
Ykkrosh
308cb26dd4 # Health decay for buildings not in a civ center's territory.
This was SVN commit r10034.
2011-08-18 20:28:53 +00:00
historic_bruno
7bd2f1c925 Temp fix for autobuild: VC2008 doesn't define hypotf.
This was SVN commit r10021.
2011-08-17 04:34:20 +00:00
Ykkrosh
609f1643d5 Fix -Wconversion warnings in simulation code.
Cast to smaller integer types explicitly.
Generally avoid platform-dependent types (size_t) in simulation code.
Use float versions of math.h functions, not double.

This was SVN commit r10017.
2011-08-16 11:18:32 +00:00
historic_bruno
1b8471da1f Changes shore definition to distance on land (all water included) for better dock placement.
Updates build passability classes.
Fixes tile expansion in CheckBuildingPlacement (don't use FromFloat).
Changes dock rotation snapping to search outward.

This was SVN commit r10007.
2011-08-14 23:36:13 +00:00
historic_bruno
f378e2e651 Implements building restrictions (by terrain, territory, category, and distance). See #41. Fixes #804, #287.
Implements build limits. See #687.
Implements autorotation for dock placement.
Fixes unit spawning to consider terrain passability. See #893.
Adds new passability criteria based on distance from shore.
Updates build restrictions on some templates.
Changes unit spawning search to 4 tiles away from foundation.
Changes garrison/training spawn failure to nicer UI notification.

This was SVN commit r9970.
2011-08-06 08:11:05 +00:00
janwas
22191bfcc6 Windows fix (smaller type conversion)
This was SVN commit r9960.
2011-08-04 15:31:01 +00:00
Ykkrosh
6aeb5c64de # Remove SoD inside territories.
Fix some serialisation issues.

This was SVN commit r9951.
2011-08-01 21:25:12 +00:00
Ykkrosh
9430de3d85 Support TerrainChanged messages in scripts, and report use of unsupported messages
This was SVN commit r9950.
2011-08-01 21:01:06 +00:00
Ykkrosh
8fee3d8ef8 # New territory border rendering.
Add textured line overlay rendering.
Change terrain height calculations to be triangulation-dependent for
improved accuracy.
Add triangulation-dependent terrain normal function.
Support separate S/T wrap modes for textures.
Rename CVector2D_Maths since it no longer conflicts with simulation
CVector2D.
Coalesce freed chunks in vertex buffers, to avoid excessive
fragmentation.
Add some things to help debug vertex buffer allocation a little.

This was SVN commit r9929.
2011-07-30 00:56:45 +00:00
Ykkrosh
955f94976e # New dynamic territories design
This was SVN commit r9906.
2011-07-24 11:42:35 +00:00
Ykkrosh
f9d7c1246d # Initial support for territories
This was SVN commit r9889.
2011-07-20 19:48:06 +00:00
Ykkrosh
2f0bd8d8b0 Upgrade to SpiderMonkey 1.8.5 (fixes #734)
This was SVN commit r9852.
2011-07-16 23:24:14 +00:00
Ykkrosh
b6d04004b6 Avoid errors when using planes in formations, by not allowing them to join formations
This was SVN commit r9776.
2011-07-07 17:05:22 +00:00
Ykkrosh
996a32125c Add per-player LOS-reveal flag.
Reveal LOS for Gaia and AI players (fixes #879).
Use player_id_t slightly more consistently in interfaces.

This was SVN commit r9720.
2011-06-28 23:24:42 +00:00
Chakakhan
293adad0ba Fix #829 - Stuck units bug
This was SVN commit r9713.
2011-06-28 07:27:03 +00:00
Chakakhan
df2e499efc Post code review version - previous commit was pre code review version.
This was SVN commit r9666.
2011-06-26 07:47:03 +00:00
Chakakhan
2aedf48304 #788 Eliminate delay in path finding (and therefore moving)
This was SVN commit r9665.
2011-06-26 07:03:08 +00:00
Ykkrosh
92fcb737cd Attempt minor improvements to stances code (see #865).
Don't chase units that are no longer visible, beyond where they were
last seen (fixes #595).

This was SVN commit r9657.
2011-06-24 12:35:15 +00:00
Badmadblacksad
71a6775b92 Stances draft, refs #865
This was SVN commit r9631.
2011-06-17 22:13:39 +00:00
historic_bruno
3be43ede41 Adds rotation to starting camera (currently unused)
This was SVN commit r9623.
2011-06-16 21:21:33 +00:00
historic_bruno
3e4d74480d Adds AI control to Atlas player panel
Adds camera control to Atlas player panel
Changes map reader to handle per-player starting camera position. See
#55
Adds entity name filter to Atlas object panel
Fixes bug in Atlas map settings (caused crash when object panel was not
loaded)

This was SVN commit r9617.
2011-06-13 23:32:41 +00:00
historic_bruno
0c803f99e8 This was SVN commit r9609. 2011-06-09 23:47:20 +00:00
Ykkrosh
2c58b07223 # Add experimental fighter planes.
This was SVN commit r9605.
2011-06-09 19:44:40 +00:00
Badmadblacksad
24cca252e3 Ranged units always face their targets when attacking. fixes #831
This was SVN commit r9595.
2011-06-06 22:08:26 +00:00
Ykkrosh
dc2035efc9 Move Atlas map settings from JS to C++.
Replace New dialog box with separate tools for resizing maps and
replacing terrain textures, to provide more power and to simplify the
problem of initialising map settings.
Fix engine to cope with dynamic map resizing.
Add JSON support to AtObj, to let C++ interact with JSON more easily.

This was SVN commit r9566.
2011-05-29 15:02:02 +00:00
janwas
34186dd017 refactor file interface. requires workspace update
- separate file_system_util into vfs functions (-> vfs/vfs_util) and
file_system (avoids ugly fs_util namespace prefix)
- get rid of non-portable O_BINARY_NP etc. flags
- use standard O_WRONLY etc. flags instead of LIO_WRITE; but avoid the
need for specifying O_CREAT|O_TRUNC
- only open files for aio when O_DIRECT is specified (which 0ad does
not) - avoids wasting time and security issues
- return file descriptor directly instead of via output param
- waio: safer FCB mechanism that avoids mixing descriptors between lowio
and aio

This was SVN commit r9550.
2011-05-25 10:39:13 +00:00
Ykkrosh
1075e206f7 Fix some format string errors
This was SVN commit r9534.
2011-05-18 19:10:36 +00:00
Ykkrosh
edd8ef2bf2 Fix units in formation blocking construction and not moving out of the way (see #779).
Make non-movement-blocking buildings (e.g. farms) not require units to
move out of the way.

This was SVN commit r9510.
2011-05-13 20:32:41 +00:00
Ykkrosh
1420a229ff Fix various position-related errors with garrisoned units.
Fix some formatting consistency.

This was SVN commit r9494.
2011-05-09 02:02:00 +00:00
Ykkrosh
cd7abda9f1 Handle triple-click selections a bit more efficiently
This was SVN commit r9467.
2011-05-06 22:22:56 +00:00
Ykkrosh
b2bf04c5ae Reduce projectile decay time
This was SVN commit r9466.
2011-05-06 21:53:33 +00:00
Ykkrosh
e90470020b Try to make the pathfinder less likely to get stuck
This was SVN commit r9465.
2011-05-06 21:52:15 +00:00
janwas
f608b44d1d fix self-test and map load on Windows (avoid mixing dir separators).
add more specific error codes (used at work)

This was SVN commit r9462.
2011-05-06 18:45:30 +00:00
historic_bruno
a8c087d46b Missing files
This was SVN commit r9451.
2011-05-05 20:07:51 +00:00
historic_bruno
508f56d2dd Fixes bug in triple-click unit selection for units without a SelectionGroupName defined. In this case, triple-click will behave the same as double-click.
This was SVN commit r9444.
2011-05-05 02:06:53 +00:00
historic_bruno
26de01cdd1 Adjusts unit selection behavior to account for ranks. Triple-click now selects units regardless of their rank.
Adds modifier hotkey to select units offscreen.
Fixes #826.

This was SVN commit r9443.
2011-05-05 01:27:49 +00:00
historic_bruno
fffcdbbf21 Balances random map resources.
Attempts to avoid "invalid argument" errors in typed arrays by forcing
them to integer (see #658).
Removes script preloading from map generator (VFS is thread-safe now)
Removes thread checking from ScriptInterface file loading functions.
Adjusts starting entities in civ data.

This was SVN commit r9435.
2011-05-04 21:24:25 +00:00
janwas
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
janwas
0720025073 cleanup
reduce dependency on PCH. move KiB constants to alignment, ARRAY_SIZE to
code_annotation.h.
move glext_funcs.h to external_libraries/glext_funcs.h, move part of
ogl.h to external_libraries/opengl.h
remove unused saturating arithmetic functions

This was SVN commit r9363.
2011-04-30 13:22:46 +00:00
janwas
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
janwas
2374caac3e major refactor of file/io and alignment code. requires update-workspaces
. completely rewrite waio - use IOCP, add several hardcore
optimizations. now outperforms the
  AS SSD and ATTO benchmarks when writing
. refactor file interface - use LIO_READ instead of 'r', allow access to
file descriptor.
. completely rewrite the IO wrapper. now much more simple, less CPU
overhead, adds
  support for pre-issue/post-completion hooks and preallocation.
  io::Run defaults to simple synchronous IO; use io::Parameters to get
asynchronous.
. add alignment.h with constants and Align() function template (more
efficient than
  round_up for compile-time constants)
. add UniqueRange - similar to C++0x unique_ptr (emulated for C++03),
plus a
  built-in size. avoids expensive thread-safe reference counting in
shared_ptr.

cleanup:
- move fat_time functions into archive_zip
- remove no longer needed io_align and block_cache
- reduce dependencies in sysdep/compiler (move parts to
code_annotation.h)
- move IOCP into separate file (reused by waio)

This was SVN commit r9350.
2011-04-29 19:10:34 +00:00
Ykkrosh
8af82baf67 # Minor particle system fixes.
Support emitters that are fully running as soon as the game starts.
Fix particle clumping when moving from off-screen to on-screen, by
computing updates more incrementally.
Fix overzealous culling of models with particle emitters.
Add particles to renderer stats.

This was SVN commit r9345.
2011-04-29 12:26:31 +00:00
Ykkrosh
4e74798585 Be more robust to visibility checks outside the map. Fixes #765.
This was SVN commit r9333.
2011-04-27 21:03:08 +00:00
Ykkrosh
6d946cc58d Fix badly-named variable
This was SVN commit r9285.
2011-04-20 00:02:59 +00:00
historic_bruno
ad6f305359 Integrates random maps with Atlas. Fixes #460.
Adds various map controls to Atlas.
Adds New Map dialog to Atlas.
Removes a few references to old simulation header files.

This was SVN commit r9247.
2011-04-14 04:01:59 +00:00
Ykkrosh
8f6fda9626 Deallocate expired projectiles properly
This was SVN commit r9205.
2011-04-08 00:11:27 +00:00
Ykkrosh
a122f55bde Avoid hardcoding the actor entity template details.
This was SVN commit r9183.
2011-04-06 21:01:00 +00:00
Ykkrosh
3fb9d9e5f6 Fix tests
This was SVN commit r9178.
2011-04-06 00:53:35 +00:00
Ykkrosh
d03559f2c9 Add dust particles on under-construction buildings, varying based on number of active builders.
This was SVN commit r9175.
2011-04-06 00:11:40 +00:00
Ykkrosh
29dd635d3b Fix decals and LOS texture in Actor Viewer, by slightly reducing use of globals.
Fix particles in Actor Viewer.
Expand terrain in Actor Viewer.
Change background to black so it blends with the LOS texture more
nicely.

This was SVN commit r9172.
2011-04-05 20:32:03 +00:00
Ykkrosh
823e63a93b # Initial version of new particle system.
This was SVN commit r9151.
2011-04-03 19:15:15 +00:00
Ykkrosh
1a072a3f37 Use a predictable RNG seed for random actor variations, so they are consistent between runs of the game.
This was SVN commit r9143.
2011-04-02 12:51:42 +00:00
Ykkrosh
97c934ad1c Apply unit shading colour in shader renderpath.
Don't adjust the shading colour of units in FoW (the shading comes from
the LOS texture instead).

This was SVN commit r9142.
2011-04-02 12:04:19 +00:00
Ykkrosh
d295dacb9b # Add new renderer mode based on GL_ARB_fragment_program.
Change lighting model for new maps to allow better overbrightness.
Cache player colours instead of loading from scripts every time the
renderer wants them.

This was SVN commit r9123.
2011-03-26 20:17:21 +00:00
janwas
588bfa11bf remove unnecessary utf8 includes
This was SVN commit r9110.
2011-03-23 16:32:44 +00:00
janwas
dcd192cb60 refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of
strings/paths; allows safe+easy join via operator/ and convenient
case-insensitive comparison via operator==, avoids NativePathFromString,
similar to boost::filesystem)
- NativePath -> OsPath
- add hash and To/FromJSVal for Path
- add TS_ASSERT_PATH_EQUALS
- replace _wfopen_s with sys_OpenFile
- remove obsolete SortFiles/Directories

This was SVN commit r9107.
2011-03-23 13:36:20 +00:00
historic_bruno
f618605477 Changes default random map sizes.
Tweaks random map resources.
Adds support for circular maps to rmgen library.
Various fixes in map generator.
On Miletus map, change player 2 civ, as Romans are not fully implemented
(fixes #758)

This was SVN commit r9104.
2011-03-23 08:12:04 +00:00
Ykkrosh
c0a105432e Use path types and conversions more consistently.
This was SVN commit r9094.
2011-03-21 22:59:00 +00:00
janwas
c3405e6f50 path improvements/fixes:
- replace more std::wstring with Native or VfsPath; wstring_from_utf8 ->
NativePathFromString
- replace sequences of Join(Path(), Basename+extension) with
ChangeExtension in wsdl, CacheLoader
- add Path::IsDirectory to replace .empty() / path_is_dir_sep(.back()).
also changed behavior to reflect the fact that "" is the VFS root
_directory_
- Path::Join now allows 2 identical path types (e.g. VfsPath) or one
char* literal (prevents inadvertently introducing non-safe characters).
to convert from wstring or wchar_t, use an explicit ctor (e.g.
VfsPath(wchar_t_string))

This was SVN commit r9091.
2011-03-21 19:54:08 +00:00
janwas
6d25329412 # towards locale-independent pathnames on Linux
c.f.
http://www.wildfiregames.com/forum/index.php?showtopic=14541&st=0&p=217250&#entry217250
and 2011-03-19 meeting

This was SVN commit r9090.
2011-03-21 17:53:13 +00:00
Ykkrosh
25524dc99f Fix tests
This was SVN commit r9080.
2011-03-18 19:35:31 +00:00
Ykkrosh
d805e764c5 # Render unit silhouettes when behind buildings.
Fixes #144.
Start using stencil buffer.
Simplify materials a little.

This was SVN commit r9076.
2011-03-18 16:57:54 +00:00
Ykkrosh
d24c93237c # Initial version of terrain decal textures.
Rejig CModel to support non-mesh-based props.
Avoid redundant recomputation for non-moving CRenderableObjects.

This was SVN commit r9055.
2011-03-13 19:22:05 +00:00
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
Ykkrosh
02aa8499ed Partial experimental version of circular maps
This was SVN commit r8470.
2010-10-25 21:59:52 +00:00
Ykkrosh
bcc5c87045 Fix bandbox selection of out-of-world entities
This was SVN commit r8450.
2010-10-23 21:48:18 +00:00
Ykkrosh
e13196e7a2 Fix serialization of most components
This was SVN commit r8449.
2010-10-23 19:59:40 +00:00
Ykkrosh
c0a7a36f7a Use JSFastNative API in more places, for improved compatibility with future SpiderMonkey versions.
Remove some unnecessary script-exposed functions, and move some more
into the Engine namespace.

This was SVN commit r8428.
2010-10-21 19:54:59 +00:00
Ykkrosh
ab6702ffaa Fix typo in comment
This was SVN commit r8326.
2010-10-10 19:14:22 +00:00
Ykkrosh
7b82173bad Avoid potential integer overflow in pathfinder
This was SVN commit r8298.
2010-10-06 23:50:07 +00:00
Ykkrosh
de673be78a Fix likely cause of "unexpected PathResult" warnings
This was SVN commit r8297.
2010-10-06 22:17:34 +00:00
Ykkrosh
f2e96f3f3c Reduce brightness of fogged objects.
This was SVN commit r8273.
2010-10-04 17:35:13 +00:00
Ykkrosh
ab77ec40e4 Fix highlighting of obstructed building placement previews.
Prevent building in non-visible areas.
Fixes #594.

This was SVN commit r8272.
2010-10-04 17:34:33 +00:00
Ykkrosh
795be260be Improve docs
This was SVN commit r8268.
2010-10-04 11:38:43 +00:00
Ykkrosh
aa32677784 Restore highlighting of units on hover.
Optimise overlay code a bit.

This was SVN commit r8253.
2010-10-03 16:48:52 +00:00
Ykkrosh
9a0db9713e Add resource supply status bars.
Change bar size for buildings.
Only highlight one entity on mouse hover, and only if it's not a unit.
Display status bars on foundations.

This was SVN commit r8249.
2010-10-03 00:30:43 +00:00
Ykkrosh
7ea522a484 # Add on-screen health bars
This was SVN commit r8241.
2010-10-02 12:41:29 +00:00
Ykkrosh
fcedcae052 # Add victory/defeat conditions, based on patch from fcxSanya.
Fixes #565.

This was SVN commit r8234.
2010-10-01 20:51:21 +00:00
Ykkrosh
82691683cb Fix #56 (add unit-following camera mode (press 'F')), based on patch from markelov.
Remove obsolete IsNewSimulation function.

This was SVN commit r8190.
2010-09-26 23:05:25 +00:00
Ykkrosh
85deca90e4 Fix projectiles in FoW
This was SVN commit r8163.
2010-09-23 13:09:35 +00:00
Ykkrosh
e1082e5adb Fix warnings
This was SVN commit r8162.
2010-09-23 12:54:16 +00:00
Ykkrosh
924d1219a7 # Add fog-of-war.
Move Vision component to C++, for more efficient FoW processing.
Disable FoW on demo maps.

This was SVN commit r8160.
2010-09-23 12:13:13 +00:00
Ykkrosh
3d8d354a18 # Optimise spatial queries.
This was SVN commit r8136.
2010-09-19 18:08:56 +00:00
Ykkrosh
8a98102195 Fix serialize/deserialize API asymmetry.
Add serialization support to more components.

This was SVN commit r8122.
2010-09-17 17:53:26 +00:00
Ykkrosh
a29bb003f2 Fix warning message in replays
This was SVN commit r8121.
2010-09-17 17:50:43 +00:00
Ykkrosh
db047e5bee Cache message JS conversions, to make broadcasts faster
This was SVN commit r8120.
2010-09-17 17:49:39 +00:00
janwas
2e7436434d warning fixes: mostly size_t vs. specialized API type and other type conversion.
added player_id_t typedef and INVALID_PLAYER, use that instead of -1.
also added sanity checks to cpu.cpp to ensure ARCH_* is correct (see
http://www.wildfiregames.com/forum/index.php?showtopic=13327&hl=)
and further predefined macros to arch.h just to be sure.

This was SVN commit r8079.
2010-09-05 09:38:30 +00:00
Ykkrosh
1fb90357b2 Fix build error
This was SVN commit r8059.
2010-09-03 10:09:41 +00:00
Ykkrosh
2b57f4f998 # Initial support for formation movement.
Support asynchronous path queries.
Allow escaping when stuck in impassable terrain tiles.
Split Update message in multiple phases, to cope with ordering
requirements.
Support automatic walk/run animation switching.

This was SVN commit r8058.
2010-09-03 09:55:14 +00:00
Ykkrosh
b712efac07 Optimise vertex pathfinder (typically ~6x faster).
This was SVN commit r8056.
2010-09-03 09:44:41 +00:00
Ykkrosh
188a3cab12 Split pathfinder into multiple files, to make it more manageable.
This was SVN commit r8055.
2010-09-03 09:32:12 +00:00
Ykkrosh
28ee4fdb5d Fix template error when creating foundations
This was SVN commit r8023.
2010-08-22 10:09:01 +00:00
Ykkrosh
4e1b6d08f4 Fix lithobolos size and projectile.
Fix projectiles launching from actors with no ammo prop.
Fix default camera location on maps with no civ centers.
Avoid units getting stuck on the edges of buildings.

This was SVN commit r7950.
2010-08-14 22:11:32 +00:00
Ykkrosh
6c7b82130c # Redesigned the camera control system.
Add shift+wheel (and Q/E, and ctrl+arrows, and ctrl+WASD) to rotate the
camera.
Restrict the rotation and zoom to narrow ranges. (Constraints can be
disabled in the dev overlay).
Smooth the movement and rotation.
Fix some stupid whitespace.
Fix some const correctness.

This was SVN commit r7930.
2010-08-13 13:26:29 +00:00
Ykkrosh
e6c3f1c482 # Use more sound effects
This was SVN commit r7891.
2010-08-10 01:25:24 +00:00
Ykkrosh
2ef4371798 Fix build error in tests
This was SVN commit r7885.
2010-08-09 09:25:13 +00:00
Ykkrosh
c728aa972c Support the <float/> property in actors
This was SVN commit r7883.
2010-08-09 01:28:13 +00:00
Ykkrosh
e64d115d7c # Change selection circles to match the player colour
This was SVN commit r7880.
2010-08-08 17:28:51 +00:00
Ykkrosh
07615310f2 # Add rally points for newly-trained units, based on patch from evans.
Fixes #521.

This was SVN commit r7849.
2010-08-05 10:20:47 +00:00
Ykkrosh
65bcedb9fc Load map descriptions from their XML file.
Add basic hold-fire stance, and use it for some test maps.
Add JSON data container to map XML files, to simplify the interaction
between scripts and maps.
Fix fixed-point printing so it roundtrips safely through map files.
Fix camera startup positions in old-format maps.

This was SVN commit r7844.
2010-08-04 21:15:41 +00:00
Ykkrosh
b292a32505 Add JS memory usage to profiler.
Add dumpHeaps() console function for debugging JS memory usage.
Increase default JS heap size.
Make call-time profile table appear first when toggling.
Remove some unused script functions.

This was SVN commit r7842.
2010-08-02 19:23:58 +00:00
Ykkrosh
41ad5bd965 # Add corpse decay and building collapse.
Make 'delete' command kill the unit instead of destroying it.
Make projectiles vanish after a timeout.
Fix projectile landing positions with low framerates.

This was SVN commit r7837.
2010-08-01 17:38:01 +00:00
Ykkrosh
423b31c130 Fix units trying to move outside themselves when ordered to their current location.
Remove redundant comparisons in pathfinder.
Simplify range query result ordering.
Avoid throwing exception on script errors in debug serializer.

This was SVN commit r7828.
2010-07-31 21:22:39 +00:00
Ykkrosh
3124b55cc0 Warning fixes
This was SVN commit r7821.
2010-07-29 21:04:07 +00:00
Ykkrosh
0cd0a1f584 # Add auto-attacking of nearby enemies.
Add general range-detection code.
Avoid unnecessarily computing 3D entity positions.

This was SVN commit r7817.
2010-07-29 20:39:23 +00:00
Ykkrosh
1706363bab Fix #423 (Switch from CppDoc to Doxygen), based on patch from anr.
Also delete some unused declarations, and rename is_playing to
snd_is_playing.

This was SVN commit r7813.
2010-07-29 15:55:41 +00:00
Ykkrosh
ee20d0c2cb Fix compile error
This was SVN commit r7807.
2010-07-25 17:03:07 +00:00
Ykkrosh
96a73bb580 Discourage units from walking outside the map.
Improve pathfinder performance by avoiding unnecessary grid
recalculations.

This was SVN commit r7806.
2010-07-25 14:11:21 +00:00
Ykkrosh
07d21e6a2b Fix #497 (Make square unit outlines match the ground better), based on patch from evans
This was SVN commit r7788.
2010-07-22 20:52:25 +00:00
Ykkrosh
4471d37ca5 Fix script caching of inherited templates.
This was SVN commit r7773.
2010-07-21 16:04:17 +00:00
Ykkrosh
bd2fd6c713 Extend animal AI to all animals.
This was SVN commit r7771.
2010-07-20 08:45:09 +00:00
Ykkrosh
e19146cf25 # Added AI for chickens.
Add scripted HFSM system.
Add very basic animal AI.
Support script-only message types.
Add shift+D hotkey to toggle dev command panel.

This was SVN commit r7763.
2010-07-18 15:19:49 +00:00
Ykkrosh
8c1deecdbe C++0x compatibility (fix narrowing conversions in initialisers; avoid ambiguity with std::next)
This was SVN commit r7739.
2010-07-11 22:40:17 +00:00