Commit Graph

705 Commits

Author SHA1 Message Date
186224612c Fixes tests by checking CConfigDB is initialized before using CFG_GET_USER_VAL
This was SVN commit r12946.
2012-12-05 18:27:42 +00:00
a923cdd139 Fix serialization failure.
This was SVN commit r12941.
2012-12-04 16:59:08 +00:00
eb4805d73d Adds command-line and config options for OOS log and serialization test modes: -ooslog and -serializationtest
This was SVN commit r12930.
2012-12-03 20:06:58 +00:00
5806ed94e1 Fix bug with gather-near-position.
Use the max range for attacking.

This was SVN commit r12915.
2012-12-02 17:25:23 +00:00
081c846ff1 Network synchronise the projectile id to prevent out of sync errors. Fixes #1681
This was SVN commit r12865.
2012-11-20 23:46:23 +00:00
76676b1e38 Fix a non-fatal GL error, fix me forgetting to commit a file, remove the "3D" waviness setting as it was mostly redundant with HQ.
This was SVN commit r12822.
2012-11-05 12:14:04 +00:00
bc1efba1dc Moves water rendering update to CCmpWaterManager and uses sim time instead of real time. Fixes water not animating in Atlas and incorrectly animating while the game is paused.
This was SVN commit r12758.
2012-10-15 19:36:04 +00:00
1fb7889539 Postproc manager
This was SVN commit r12755.
2012-10-15 10:34:23 +00:00
772c10801c Fixes missing Atlas selection rings for decorative actors
This was SVN commit r12716.
2012-09-28 19:16:32 +00:00
e72b603cce Implements Vision/Range tech modification
This was SVN commit r12707.
2012-09-24 22:27:32 +00:00
0a0a49eb09 Explicitly store whether whether a unit is moving, as formation members don't finish moving as normal.
This was SVN commit r12624.
2012-09-04 03:57:22 +00:00
d805c87249 Send messages when formation members hit fail to find a path or are obstructed.
This was SVN commit r12613.
2012-09-03 02:59:15 +00:00
38ea080d25 Increase the AI's js runtime size to 32 MB for the time being.
This was SVN commit r12594.
2012-09-02 01:50:16 +00:00
89c8bccbde Sound system patch by stwf:
Fixes sound system to work with archives (use VFS files instead of
POSIX), fixes #1604.
Improves error handling and logging, refs #1594.
Allows sound to be disabled with -nosound/-quickstart runtime options or
--without-audio build option, fixes #1609, #1614.
Experimentally increases default buffer size to help prevent sound
stoppages.

This was SVN commit r12566.
2012-08-31 19:08:41 +00:00
9fcb7cc738 Fixed formations so switching formation in-place doesn't leave entities in FORMATIONMEMBER.WALKING and short walk orders bring units into proper formation.
This was SVN commit r12563.
2012-08-31 08:20:36 +00:00
7e382fc26f CCmpUnitMotion::MoveToPointRange should ignore unit radius, so it correctly returns false when called repeatedly for large units.
This was SVN commit r12511.
2012-08-22 06:13:23 +00:00
66012e2e2c Destroy dying 'remain' entities and replace them with visually-identical resources. Fixes #1600.
This was SVN commit r12486.
2012-08-20 01:38:39 +00:00
3653fe5d3a Added support for putting technologies in folders. Fixes #1462.
This was SVN commit r12440.
2012-08-15 22:25:25 +00:00
011ba8255e New sound system implementation by stwf, refs #1223, #961.
Enables audio on OS X, refs #685, #931.
Fixes music not playing after a game, refs #946.

This was SVN commit r12428.
2012-08-15 00:10:44 +00:00
613f845095 Improve gate closing behaviour when locked or with no allies nearby. Fixes #1551.
This was SVN commit r12337.
2012-08-09 19:06:01 +00:00
791752c7a4 Added a 'quiet' version of SetOwner() that doesn't send a message, to allow faux-atomic batch ownership changes.
This was SVN commit r12315.
2012-08-08 05:18:20 +00:00
648e68e49c smooth LOS
This was SVN commit r12304.
2012-08-06 22:38:42 +00:00
c0f522fd20 Use upper camel case for member variables
This was SVN commit r12298.
2012-08-06 16:46:54 +00:00
2c642fc68e Uninitialized variable was causing nondeterministic weirdness in Atlas.
This was SVN commit r12275.
2012-08-04 16:56:09 +00:00
be31d3a9e7 Added a function for finding colliding entities with identical control groups. Refs #1529.
This was SVN commit r12269.
2012-08-03 16:36:40 +00:00
692795e56e Added engine-side obstruction group sanitizing, saving, and loading. Refs #1566
This was SVN commit r12258.
2012-08-01 21:38:13 +00:00
3c0bd23108 Slightly speed up actor rendering; have selectables properly handle fog of war, etc. Refs #1365.
This was SVN commit r12241.
2012-07-30 21:06:54 +00:00
4264166acf Detect when units aren't in the world and hide their selection rings. Based on patch by dvangennip. Refs #1365.
This was SVN commit r12239.
2012-07-30 04:45:33 +00:00
2c8adb1aea Adds support for Boost.Filesystem v3, the only option in Boost 1.50. Fixes #1527. Refs #1360
This was SVN commit r12229.
2012-07-29 23:04:22 +00:00
89399e08e6 Implements always visible hero selection rings, based on patch by Deiz/F00. Fixes #1365
This was SVN commit r12148.
2012-07-19 04:45:01 +00:00
51b9fa6186 Uses xml attributes instead of elements for obstructions shapes.
This was SVN commit r12093.
2012-07-12 20:00:38 +00:00
2c5933912c Gates. Adds UI buttons, replaces wall section with a gate, defines and create obstruction shapes, detects friendly units and eventually disable door's "block movement" flag, allows us to lock / unlock the door by disabling "block pathfinding" flag. Needs icons, play sound, animations. Fixes #1385, refs #619.
This was SVN commit r12081.
2012-07-08 16:25:33 +00:00
99d04e93bb Implements global tech modification function. Fixes #1358, refs #1520.
Applies tech modifications to template data returned by GuiInterface.
Extends engine to load arbitrary global scripts, separates this from RNG
replacement. Refs #1193.
Loads global scripts for most script contexts for consistency.
Adds simulation tests for global scripts.

This was SVN commit r12056.
2012-07-03 02:16:45 +00:00
ebe5b66ba3 Fix test failure caused by f660f834bf.
This was SVN commit r12014.
2012-06-24 21:03:46 +00:00
vts
f660f834bf Added default, arbitrary-sized Footprint component to actor entities. Makes their selection outlines show up in Atlas. Fixes #1477.
This was SVN commit r11997.
2012-06-23 21:12:51 +00:00
8dc36bed4e Fixes error in actor viewer caused by 962da61f12. Fixes #1499
This was SVN commit r11973.
2012-06-14 22:47:57 +00:00
637c09b204 Add support for OpenBSD. Fixes #1463.
Backport os_getversion from premake4.4-beta4 and extend it to support
POSIX-compilant systems.
Add some missing newlines at the end of file as these cause warnings on
OpenBSD.
Update the config paths.

This was SVN commit r11970.
2012-06-13 20:43:56 +00:00
4ac52a3c47 Fixes bug in percentage map explored calculation. Refs #1334
This was SVN commit r11957.
2012-06-09 23:04:27 +00:00
2243f699fc Fix test failure.
Fix entity placement on Phoenician Levant.

This was SVN commit r11951.
2012-06-08 19:17:31 +00:00
962da61f12 Adds shared LOS for allied players, based on patch by Deiz/F00. Fixes #1334.
This was SVN commit r11949.
2012-06-08 04:41:39 +00:00
vts
6b50a660b9 Added elapsed real time (as opposed to elapsed simulation time) to MT_Interpolate messages. Fixes leftover TODO from #824. Refs #824.
This was SVN commit r11944.
2012-06-06 19:37:03 +00:00
137b6dd338 Queued orders for rally points. Fixes #1053 and #1211.
This was SVN commit r11909.
2012-05-24 18:25:31 +00:00
c4d6019599 Add garrison order sound and remove the old garrison sound.
Fix some map errors, tabs in templates and update docs.

This was SVN commit r11891.
2012-05-20 15:44:57 +00:00
f72d820cd4 Added randomized arrow positions with hit detection when the missile lands and splash damage. Fixes #18.
This was SVN commit r11886.
2012-05-19 23:07:41 +00:00
vts
d67d2e2370 Updated some documentation in CmpObstructionManager
This was SVN commit r11766.
2012-05-05 23:10:25 +00:00
vts
490182ddd0 Wall placement. Closes #786.
This was SVN commit r11760.
2012-05-05 19:22:22 +00:00
32d2927449 Adds UTF-8 support for JavaScript files.
This was SVN commit r11750.
2012-05-04 21:48:46 +00:00
da4c1c8f2b Fixes handling of UTF-8 encoded JSON files (stripping BOM if necessary). Fixes #1375.
This was SVN commit r11739.
2012-05-04 03:46:05 +00:00
58836c624a Read formations from civ JSON files. Fixes #1234, #601.
This was SVN commit r11735.
2012-05-03 23:32:10 +00:00
6f06d7e69e ...
This was SVN commit r11714.
2012-05-01 23:01:40 +00:00
9173f3c81f This was SVN commit r11713. 2012-05-01 22:54:02 +00:00
030771907e This was SVN commit r11712. 2012-05-01 22:52:24 +00:00
fc47098743 Implements TerritoryInfluence/Radius tech modification. Adds C++ interface for TechnologyManager. Renames its message to MT_TechnologyModification defined in TypeList.h. Refs #1357.
This was SVN commit r11711.
2012-05-01 22:44:27 +00:00
vts
61fad4a2b5 Fixed strange selection ring fadeout on unit deselection in Atlas
This was SVN commit r11634.
2012-04-22 17:49:43 +00:00
vts
34fc883317 Pretty unit selection overlay rings. Fixes #824.
This was SVN commit r11623.
2012-04-22 04:04:02 +00:00
4c372aa6d8 Remove some unused component setters
This was SVN commit r11602.
2012-04-21 13:12:36 +00:00
755e407aeb Technologies. Refs #3. Full unlocking technology implementation. Only unit gathering rates can be modified currently because the patch was big enough already.
This was SVN commit r11584.
2012-04-20 17:21:04 +00:00
54fb33841e Fix some issues.
This was SVN commit r11537.
2012-04-17 20:44:18 +00:00
c56f96040e Implement healing. Fixes #999.
This was SVN commit r11536.
2012-04-17 20:22:13 +00:00
f3617822e0 Make AlwaysVisible objects always visible in shader mode. Fixes #908.
This was SVN commit r11454.
2012-04-08 16:36:23 +00:00
vts
8680c6ce06 Delete rally point marker entity when entity is destroyed. Fixes #1254.
This was SVN commit r11409.
2012-03-28 23:09:05 +00:00
d0fc32af4c Fix failure in replay mode
This was SVN commit r11402.
2012-03-26 22:11:30 +00:00
vts
d7128572ae Removed logger output for XML token node tests
This was SVN commit r11360.
2012-03-17 23:03:02 +00:00
vts
2207786c05 Missed a bit of indentation in previous commit
This was SVN commit r11343.
2012-03-15 22:58:25 +00:00
vts
31da0a746b Fixes crash when removing non-existent tokens from XML 'token' nodes
This was SVN commit r11342.
2012-03-15 22:57:08 +00:00
c393732939 Adds slightly more helpful error message when failing to validate an entity template.
This was SVN commit r11273.
2012-03-08 05:13:35 +00:00
vts
3c677ee425 Prevent unnecessary work, especially on maps with many actors
This was SVN commit r11267.
2012-03-07 19:54:54 +00:00
26efdaf216 Try to improve ambiguous bit descriptions
This was SVN commit r11249.
2012-03-05 16:09:47 +00:00
7fa6afac37 Corrects some Doxygen comments and adds a few others of interest.
This was SVN commit r11209.
2012-03-01 03:55:05 +00:00
a01e1cd46a Fixes incorrect use of jschar (broke Linux builds)
This was SVN commit r11207.
2012-02-29 23:41:23 +00:00
366cd7f15a Fixes broken selections in saved games (CmpSelectable needed to call Init on deserialization).
Adds function name to log output when serializer fails on functions, to
aid in debugging.

This was SVN commit r11199.
2012-02-28 22:12:30 +00:00
vts
b8e8602e39 Fixed test failure in test_CmpTemplateManager.h after atlas selection improvement
This was SVN commit r11182.
2012-02-27 19:10:49 +00:00
7d9e98b00e Adds multiple entity selection to Atlas (including move/delete). Fixes #678.
Makes all actors selectable in Atlas and gives them selection rings (an
EditorOnly flag is used in the template for Atlas-only selectables).
Adds player colors to Atlas selection rings.
Fixes decal selection by falling back to old-style AABBs. Refs #1032.
Replaces UnitManager selections with EntitySelection helpers.
Adds DrawOverlays to Atlas views, for Atlas-specific rendering.
Fixes bug where selection rings conflicted with Move/rotate tool in
Atlas simulation test.

This was SVN commit r11177.
2012-02-27 05:32:35 +00:00
b7e848de23 Avoid unused parameter warnings due to safe bool operators.
This was SVN commit r11142.
2012-02-25 06:24:24 +00:00
vts
590228804e Fixed rally line attachment point for circular buildings (refs #1172)
This was SVN commit r11106.
2012-02-20 00:13:46 +00:00
5a4aa790ad Fix spelling and whitespace and add rationale
This was SVN commit r11088.
2012-02-17 14:34:44 +00:00
vts
4f5a02acc4 Changes CCmpProjectileManager's culling to use recursive world bounds. Fixes instantly-disappearing smoke trails on projectiles going off-screen.
This was SVN commit r11062.
2012-02-13 20:06:57 +00:00
08bd07ddd6 Adds safe bool operator to ICmpPtr, replacing the null() method, based on patch by leper. Also changes bool operator in AtSmartPtr to safe bool. Fixes #1077.
Changes some CmpPtr variable names for consistency.

This was SVN commit r11036.
2012-02-08 02:46:15 +00:00
275e5b9620 Fixes signed/unsigned comparison warnings in GCC.
This was SVN commit r11014.
2012-02-04 06:17:17 +00:00
fc27a5c0ea More FreeBSD build fixes.
Fixes some warnings about files that don't end with newline.

This was SVN commit r10991.
2012-01-30 06:21:11 +00:00
vts
91652bdf6e Implemented nested territory boundaries. Fixes #918.
Fixed out of bounds memory access in Atlas due to always using global
terrain in TerrainOverlay
Fixed wrong player ID calculation in TerritoryOverlay

This was SVN commit r10929.
2012-01-18 21:22:58 +00:00
ce67dfd333 Rename CELL_SIZE to TERRAIN_TILE_SIZE, to free up the term "cell" for other concepts.
This was SVN commit r10902.
2012-01-12 12:51:10 +00:00
6f2eec3c2e Fix warnings
This was SVN commit r10867.
2012-01-04 13:19:38 +00:00
fa37c9b441 Reverted some of bad commit (10853) because I hit the wrong button
This was SVN commit r10854.
2012-01-02 22:15:21 +00:00
a4e1f3c292 This was SVN commit r10853. 2012-01-02 21:46:09 +00:00
0ec4242962 Detect and fix printf signedness errors. Fixes #1086, #1087.
This was SVN commit r10846.
2012-01-01 16:43:10 +00:00
c4bb67a1ca Fix #1064 (use ++it instead of it++ for consistency), based on patch by Echelon9
This was SVN commit r10822.
2011-12-29 01:17:03 +00:00
1f38526444 Fix test failures on Windows
This was SVN commit r10802.
2011-12-23 13:37:11 +00:00
4f6f0b7baf Fix tests, and warnings, and non-PCH build
This was SVN commit r10801.
2011-12-23 13:01:29 +00:00
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
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
4da8bf001f Add pathfinders to new profiler
This was SVN commit r10633.
2011-11-29 20:29:50 +00:00
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
8cbab40137 Barter. Closes #23.
This was SVN commit r10588.
2011-11-24 15:43:32 +00:00
8d977e4818 Allows building in fog of war. Fixes #958.
This was SVN commit r10584.
2011-11-24 00:58:34 +00:00
2878102ed7 Avoid some code duplication
This was SVN commit r10583.
2011-11-23 21:26:14 +00:00
ab88151ed0 Fix uninitialised value
This was SVN commit r10582.
2011-11-23 21:24:41 +00:00
f66a3e726f Avoid overflow identified by /RTCc warning
This was SVN commit r10537.
2011-11-14 22:22:38 +00:00
fbff0aa98d Fix printf argument types
This was SVN commit r10529.
2011-11-13 18:31:06 +00:00
f0f81827f3 Fix build with old GCCs
This was SVN commit r10522.
2011-11-13 01:04:40 +00:00
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
09a02c96d5 Add initial code annotations for the new profiling tool
This was SVN commit r10466.
2011-11-04 01:35:50 +00:00
21c6141cdc Preserve player colours and animations when serializing models
This was SVN commit r10453.
2011-10-29 15:30:46 +00:00
23ae535a1e Minor enhancements to serialization test mode
This was SVN commit r10449.
2011-10-28 13:18:16 +00:00
f31a8f7181 Fix warning
This was SVN commit r10448.
2011-10-28 13:16:53 +00:00
959b5a505c Fix bug in incremental LOS computation
This was SVN commit r10446.
2011-10-28 13:15:33 +00:00
d57bb00ece Fix sparse array serialization
This was SVN commit r10442.
2011-10-27 20:56:32 +00:00
a739b8f309 Fix some saved-game OOS errors
This was SVN commit r10441.
2011-10-27 20:12:00 +00:00
4c561dc3f9 Improve debugging of binary serialization
This was SVN commit r10440.
2011-10-27 20:10:53 +00:00
18e595a5a6 Fix OOS-log paths to work on Windows
This was SVN commit r10434.
2011-10-27 14:17:39 +00:00
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
0f3119e36a Fix deserialization of actor components
This was SVN commit r10425.
2011-10-24 12:24:04 +00:00
f4ed019c46 Avoid hypotf
This was SVN commit r10421.
2011-10-23 12:27:34 +00:00
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
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
cb7a4f8b1a Hopefully fix replay mode
This was SVN commit r10175.
2011-09-02 23:47:26 +00:00
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
730a89152c Fixes typecast performance warning in MSVC.
This was SVN commit r10045.
2011-08-21 00:09:28 +00:00
49af1880f8 Fix tests
This was SVN commit r10035.
2011-08-18 21:12:15 +00:00
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
7bd2f1c925 Temp fix for autobuild: VC2008 doesn't define hypotf.
This was SVN commit r10021.
2011-08-17 04:34:20 +00:00
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
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
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
22191bfcc6 Windows fix (smaller type conversion)
This was SVN commit r9960.
2011-08-04 15:31:01 +00:00
6aeb5c64de # Remove SoD inside territories.
Fix some serialisation issues.

This was SVN commit r9951.
2011-08-01 21:25:12 +00:00
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
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
955f94976e # New dynamic territories design
This was SVN commit r9906.
2011-07-24 11:42:35 +00:00
f9d7c1246d # Initial support for territories
This was SVN commit r9889.
2011-07-20 19:48:06 +00:00
2f0bd8d8b0 Upgrade to SpiderMonkey 1.8.5 (fixes #734)
This was SVN commit r9852.
2011-07-16 23:24:14 +00:00
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
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
293adad0ba Fix #829 - Stuck units bug
This was SVN commit r9713.
2011-06-28 07:27:03 +00:00
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
2aedf48304 #788 Eliminate delay in path finding (and therefore moving)
This was SVN commit r9665.
2011-06-26 07:03:08 +00:00
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
71a6775b92 Stances draft, refs #865
This was SVN commit r9631.
2011-06-17 22:13:39 +00:00
3be43ede41 Adds rotation to starting camera (currently unused)
This was SVN commit r9623.
2011-06-16 21:21:33 +00:00
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
0c803f99e8 This was SVN commit r9609. 2011-06-09 23:47:20 +00:00
2c58b07223 # Add experimental fighter planes.
This was SVN commit r9605.
2011-06-09 19:44:40 +00:00
24cca252e3 Ranged units always face their targets when attacking. fixes #831
This was SVN commit r9595.
2011-06-06 22:08:26 +00:00
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
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
1075e206f7 Fix some format string errors
This was SVN commit r9534.
2011-05-18 19:10:36 +00:00
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
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
cd7abda9f1 Handle triple-click selections a bit more efficiently
This was SVN commit r9467.
2011-05-06 22:22:56 +00:00
b2bf04c5ae Reduce projectile decay time
This was SVN commit r9466.
2011-05-06 21:53:33 +00:00
e90470020b Try to make the pathfinder less likely to get stuck
This was SVN commit r9465.
2011-05-06 21:52:15 +00:00
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
a8c087d46b Missing files
This was SVN commit r9451.
2011-05-05 20:07:51 +00:00
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
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
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
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
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
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
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
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
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
6d946cc58d Fix badly-named variable
This was SVN commit r9285.
2011-04-20 00:02:59 +00:00
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
8f6fda9626 Deallocate expired projectiles properly
This was SVN commit r9205.
2011-04-08 00:11:27 +00:00
a122f55bde Avoid hardcoding the actor entity template details.
This was SVN commit r9183.
2011-04-06 21:01:00 +00:00
3fb9d9e5f6 Fix tests
This was SVN commit r9178.
2011-04-06 00:53:35 +00:00
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
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
823e63a93b # Initial version of new particle system.
This was SVN commit r9151.
2011-04-03 19:15:15 +00:00
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
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
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
588bfa11bf remove unnecessary utf8 includes
This was SVN commit r9110.
2011-03-23 16:32:44 +00:00
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
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
c0a105432e Use path types and conversions more consistently.
This was SVN commit r9094.
2011-03-21 22:59:00 +00:00
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
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
25524dc99f Fix tests
This was SVN commit r9080.
2011-03-18 19:35:31 +00:00
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
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
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
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
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
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
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
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
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
794584ea11 Optimise tile-based pathfinder, particularly for large maps.
This was SVN commit r9000.
2011-02-28 00:35:53 +00:00
d805ef356e FileExists -> VfsFileExists (see next commit)
scriptInterface: fix bool cast warning

This was SVN commit r8984.
2011-02-25 16:30:55 +00:00
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
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
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
6ba12dd2ff Pretty-print JS values in debug serializer
This was SVN commit r8958.
2011-02-20 20:44:36 +00:00
720bb3c87d Remove unnecessary rooting
This was SVN commit r8957.
2011-02-20 20:44:13 +00:00
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
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
3e13c300cc Fix non-PCH build error
This was SVN commit r8938.
2011-02-19 00:46:14 +00:00
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
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
b73c544f2a Fix warning
This was SVN commit r8903.
2011-02-10 22:55:41 +00:00
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
57e5bb878a Initial terrible AI player scripts.
This was SVN commit r8891.
2011-02-05 20:35:34 +00:00
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
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
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
c3b734775b Simplify component interface: remove explicit context parameter, use GetSimContext() instead.
This was SVN commit r8867.
2011-01-16 14:08:38 +00:00
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
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
d8cd31d4b6 Add probably-unnecessary script serialization test.
This was SVN commit r8862.
2011-01-12 12:13:11 +00:00
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
5e3049f6b2 BuildLimits. Needs some configuration changes to work
This was SVN commit r8836.
2010-12-11 23:19:17 +00:00
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
f04c2561b7 Various resource shuttling improvements. Fixes #672.
This was SVN commit r8811.
2010-12-08 16:12:04 +00:00
0b0b11d2e0 Fix occasional assertion failure in time warp mode
This was SVN commit r8810.
2010-12-08 16:09:53 +00:00
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
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
3b405efc6b Increase serializer reserved buffer space to cope with huge maps.
This was SVN commit r8748.
2010-11-30 12:24:46 +00:00
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
e4d356c3bf Map exploration counter for summary screen
This was SVN commit r8679.
2010-11-21 19:42:26 +00:00
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
9c521ceb3b Add minimum range to range queries
This was SVN commit r8627.
2010-11-16 20:43:15 +00:00
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
816c810791 Windows fix
This was SVN commit r8614.
2010-11-15 00:48:34 +00:00
4a1bc8e11a Optimise LOS visibility updates
This was SVN commit r8613.
2010-11-15 00:36:15 +00:00
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
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
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
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
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
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
02aa8499ed Partial experimental version of circular maps
This was SVN commit r8470.
2010-10-25 21:59:52 +00:00
bcc5c87045 Fix bandbox selection of out-of-world entities
This was SVN commit r8450.
2010-10-23 21:48:18 +00:00
e13196e7a2 Fix serialization of most components
This was SVN commit r8449.
2010-10-23 19:59:40 +00:00
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
ab6702ffaa Fix typo in comment
This was SVN commit r8326.
2010-10-10 19:14:22 +00:00
7b82173bad Avoid potential integer overflow in pathfinder
This was SVN commit r8298.
2010-10-06 23:50:07 +00:00
de673be78a Fix likely cause of "unexpected PathResult" warnings
This was SVN commit r8297.
2010-10-06 22:17:34 +00:00
f2e96f3f3c Reduce brightness of fogged objects.
This was SVN commit r8273.
2010-10-04 17:35:13 +00:00
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
795be260be Improve docs
This was SVN commit r8268.
2010-10-04 11:38:43 +00:00
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
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
7ea522a484 # Add on-screen health bars
This was SVN commit r8241.
2010-10-02 12:41:29 +00:00
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
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
85deca90e4 Fix projectiles in FoW
This was SVN commit r8163.
2010-09-23 13:09:35 +00:00
e1082e5adb Fix warnings
This was SVN commit r8162.
2010-09-23 12:54:16 +00:00
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
3d8d354a18 # Optimise spatial queries.
This was SVN commit r8136.
2010-09-19 18:08:56 +00:00
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
a29bb003f2 Fix warning message in replays
This was SVN commit r8121.
2010-09-17 17:50:43 +00:00
db047e5bee Cache message JS conversions, to make broadcasts faster
This was SVN commit r8120.
2010-09-17 17:49:39 +00:00
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
1fb90357b2 Fix build error
This was SVN commit r8059.
2010-09-03 10:09:41 +00:00
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
b712efac07 Optimise vertex pathfinder (typically ~6x faster).
This was SVN commit r8056.
2010-09-03 09:44:41 +00:00
188a3cab12 Split pathfinder into multiple files, to make it more manageable.
This was SVN commit r8055.
2010-09-03 09:32:12 +00:00
28ee4fdb5d Fix template error when creating foundations
This was SVN commit r8023.
2010-08-22 10:09:01 +00:00
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
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
e6c3f1c482 # Use more sound effects
This was SVN commit r7891.
2010-08-10 01:25:24 +00:00
2ef4371798 Fix build error in tests
This was SVN commit r7885.
2010-08-09 09:25:13 +00:00
c728aa972c Support the <float/> property in actors
This was SVN commit r7883.
2010-08-09 01:28:13 +00:00
e64d115d7c # Change selection circles to match the player colour
This was SVN commit r7880.
2010-08-08 17:28:51 +00:00
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
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
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
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
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
3124b55cc0 Warning fixes
This was SVN commit r7821.
2010-07-29 21:04:07 +00:00
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
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
ee20d0c2cb Fix compile error
This was SVN commit r7807.
2010-07-25 17:03:07 +00:00
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
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
4471d37ca5 Fix script caching of inherited templates.
This was SVN commit r7773.
2010-07-21 16:04:17 +00:00
bd2fd6c713 Extend animal AI to all animals.
This was SVN commit r7771.
2010-07-20 08:45:09 +00:00
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
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
a46612d51e GCC 4.0 build fix
This was SVN commit r7703.
2010-07-06 10:43:06 +00:00
65f4f2f0f2 Fix houses increasing pop limit before construction has finished
This was SVN commit r7698.
2010-07-05 18:28:19 +00:00
586ba51e4a Fix lossy fixed<->jsval conversion.
(Hopefully this will really fix the OOS errors.)

This was SVN commit r7692.
2010-07-04 19:47:31 +00:00
dff694f0f0 Fix units spawning on top of each other.
Add type-safety to prevent that kind of bug happening again.

This was SVN commit r7691.
2010-07-04 17:19:38 +00:00
f6081101e7 Use more precision in debug serialization, to help debugging of OOS errors
This was SVN commit r7689.
2010-07-04 17:03:45 +00:00
d2cf6ceb88 less global variables: make most uses of g_VFS explicit (required for another app that has two VFSes), g_yres is no longer required by cursor module
This was SVN commit r7686.
2010-07-04 10:15:53 +00:00
df86f4d27b Fix tokenisation to ignore multiple spaces
This was SVN commit r7676.
2010-07-03 15:21:50 +00:00
c57575df3e Set each player's default camera location to their civ center.
This was SVN commit r7672.
2010-07-03 13:15:57 +00:00
0560e1c970 Fix warning
This was SVN commit r7669.
2010-07-03 10:48:44 +00:00
272c2865b0 windows build fix: more boost headers were required, and string.hpp doesn't include join.hpp
This was SVN commit r7668.
2010-07-03 09:35:43 +00:00
5bc3c4b751 Fix inheritance of construction/training lists.
This was SVN commit r7667.
2010-07-03 01:23:23 +00:00
1c0536bf08 # Refactored the networking code, and redesigned the game setup screen.
Major updates to most network classes.
Simplify CNetServer so it doesn't duplicate any client behaviour; all
players now run CNetClient.
Remove most player/slot management from networking code.
Wait for all players to finish loading before starting the simulation.
Remove CGameAttributes; attributes are now just a JS object.
Remove CPlayer; they are now just simulation entities.
Handle player colours via simulation system.
Add a default map for Atlas, so it always has something to load.
Move network documentation to Doxygen.
Remove lots of now-unused code.

This was SVN commit r7653.
2010-06-30 21:41:04 +00:00
1edb23e7a4 Fix script serializer to cope with spliced array enumeration quirk
This was SVN commit r7637.
2010-06-27 11:57:00 +00:00
23c92b7fe3 Fix actor viewer animation offsetting.
Fix attack animation drifts.

This was SVN commit r7612.
2010-06-05 22:23:28 +00:00
d3048906cb # Unit animation improvements.
Animate props much more sensibly.
Move ammo code out of CUnit.
Move animation logic out of CModel.
Launch projectiles from the correct location.
Use entity's speeds and sounds in actor viewer.
Add -nosound option to disable audio, and allow audio by default in
Atlas.
Remove some obsolete options.

This was SVN commit r7609.
2010-06-05 00:49:14 +00:00
310f3466a8 # Hotloading of actor XML files.
Stop ignoring actor XML animation speeds.
Add decentralised registration of hotloaders.
Move player ID storage into CModel, to simplify CUnit.
Remove obsolete unit ID allocation code.
Remove some material junk.

This was SVN commit r7605.
2010-06-03 01:29:43 +00:00
11a20e1bcf # Handle terrain passability and movement costs in pathfinder.
Simplify terrain code (remove Handle indirection).
Delete unused terrain properties.

This was SVN commit r7590.
2010-05-27 23:31:03 +00:00
828400d82e # Support floating units in new simulation system.
Fix rendering of underwater lines.
Fix rendering of unit selection outlines in Atlas.
Remove some obsolete hotkeys.

This was SVN commit r7589.
2010-05-27 23:23:53 +00:00
ff17691d4f Add STL-compatible pool allocator.
Use pool allocator in serialization code.

This was SVN commit r7584.
2010-05-25 19:24:14 +00:00
1e40c8c776 MSVC warning fixes
This was SVN commit r7583.
2010-05-25 19:12:00 +00:00
01bec7a454 Convert serialization code to use less virtuals and allow more inlining.
This was SVN commit r7582.
2010-05-25 19:01:30 +00:00
5ce9acc263 MSVC warning fixes
This was SVN commit r7580.
2010-05-25 18:44:33 +00:00
47a03c3397 Replace JS_Enumerate with manual enumeration, to avoid its memory allocations.
Use LookupProperty to avoid having to check for getters.
Add a quicker method of rooting many script values.

This was SVN commit r7579.
2010-05-25 18:24:12 +00:00
121d1ead20 Avoid some redundant HasProperty calls.
This was SVN commit r7578.
2010-05-25 18:18:32 +00:00
6fdb947ff0 Convert CCmpTemplateManager to use ASCII strings internally, to save memory and serialisation cost.
This was SVN commit r7577.
2010-05-25 18:17:12 +00:00
a9963dee56 Serialize JS strings as UTF-16(ish), to avoid the cost of UTF-8 conversion.
This was SVN commit r7576.
2010-05-25 18:07:41 +00:00
fd1f864cde Avoid unreliable float conversions when loading old maps.
Use debug_printf in performance test, to work better on Windows.

This was SVN commit r7575.
2010-05-25 17:55:41 +00:00
64a610baab Add some code for rough testing of state hashing performance.
Simplify the code needed for tests based on real maps.

This was SVN commit r7574.
2010-05-25 17:28:26 +00:00
be4e355ef3 VC2005 build fix
This was SVN commit r7572.
2010-05-22 23:12:12 +00:00
5c3a59234c Fix OOS errors when placing buildings.
Allow script components to supply custom serialization objects.

This was SVN commit r7571.
2010-05-22 23:02:07 +00:00
0fa4bc9b21 Add some (disabled) code to help debug OOS
This was SVN commit r7569.
2010-05-22 16:58:08 +00:00
4e661a205d Serialize RNG state
This was SVN commit r7564.
2010-05-22 01:32:11 +00:00
386f322b1c Make Math.random() more deterministic
This was SVN commit r7563.
2010-05-22 00:38:33 +00:00
cf85004f61 Windows build fixes.
Remove unused function.

This was SVN commit r7557.
2010-05-20 20:05:38 +00:00
56bb858802 # Delete a lot of obsolete simulation code.
This was SVN commit r7555.
2010-05-20 18:09:23 +00:00
c684c211a2 # Basic experimental multiplayer integration with new simulation system.
Add new turn manager that should be more correct and potentially more
efficient.
Remove evil CNetServer/CNetClient multiple inheritance of CTurnManager.
Add multiplayer autostart.
Various minor cleanups.

This was SVN commit r7551.
2010-05-20 00:59:01 +00:00
cdcee291cf Convert all remaining entity template data to new file format.
Add dummy component implementations for new data.
Partly support multiple weapons for a single unit.

This was SVN commit r7547.
2010-05-15 21:07:52 +00:00
ae08adc55d # Fix possible GC crash bugs
This was SVN commit r7546.
2010-05-15 11:21:40 +00:00
434248167b Fix warnings in tests
This was SVN commit r7535.
2010-05-10 09:52:35 +00:00
037770a2a3 Fix use of 'undefined' sound group on death.
Warn about implicit script/native type conversions.

This was SVN commit r7527.
2010-05-09 13:56:06 +00:00
dc53d739b8 Make tests clean up after themselves
This was SVN commit r7508.
2010-05-07 17:50:38 +00:00
93c30810c8 Fix tests. Tidy up some old files.
This was SVN commit r7507.
2010-05-07 16:32:33 +00:00
40f2cfd809 Skip component script tests when the mods/public/ directory is unavailable (see #490).
Report errors ealier when test data directories are missing.

This was SVN commit r7506.
2010-05-07 15:59:23 +00:00
d0599f4c7a Share component template scripts to save some memory.
This was SVN commit r7504.
2010-05-07 00:24:22 +00:00
fe53bce3b1 Rewrite the clone-object-between-JS-contexts code (for GUI<->simulation interface) to be more efficient.
Delete unnecessary unused incomplete profiler scripting support.
Clean up some JSAPI code to use newer features.
Display simulation script functions in the profiler.

This was SVN commit r7503.
2010-05-05 22:36:35 +00:00
04018773fd Fix fixed overflow when pathfinding across smallish maps
This was SVN commit r7500.
2010-05-03 19:12:42 +00:00
646c218b2e Reduce the likelihood of units getting stuck when walking
This was SVN commit r7499.
2010-05-03 16:46:14 +00:00
f33706bf8b Switch everything to 15.16-bit precision fixeds, to allow more accurate unit vectors and angles.
This was SVN commit r7497.
2010-05-02 20:32:37 +00:00
d485ecafdc Optimise pathfinder tile storage a bit (improves speed by maybe 10%).
Increase the maximum search tile limit (reduces worst-case speed by
lots).

This was SVN commit r7495.
2010-05-02 20:14:09 +00:00
e140aa7baf Avoid running the old simulation code in the background when it's not needed.
Optimise GUI updates to only occur when necessary.
Switch to more peaceful music after starting the game.

This was SVN commit r7492.
2010-05-01 16:20:58 +00:00
4fe991074f Expose Footprint::GetShape and TemplateManager::FindAllTemplates to scripts.
Make CSimContext accessible to all component code, so they don't all
have to save their own copies of it.

This was SVN commit r7490.
2010-05-01 09:48:39 +00:00
cfae58928f # New unit movement system, which does a far better job of approaching targets and avoiding obstacles.
Add short-range vertex-based pathfinder.
Integrate new pathfinder into unit motion code.
Change obstruction system to get rid of circles, and differentiate
structures from units.
Make PositionChanged messages synchronous.
Try to prevent some accidental float->int conversions.

This was SVN commit r7484.
2010-04-29 23:36:05 +00:00
5daac34ef9 Support startup scripts in map files, for testing.
Support CDATA sections when writing XML.

This was SVN commit r7483.
2010-04-29 23:22:18 +00:00
f4ad5906c9 # Display units on the minimap
This was SVN commit r7480.
2010-04-23 18:36:48 +00:00
29b458da40 # Use the footprint shape when rendering unit selection outlines
This was SVN commit r7479.
2010-04-23 16:57:18 +00:00
dd809f83e8 # Add documentation of the entity template XML file format.
Simplify the format a bit.
Use less <interleave> in the RNG so that error reports become
understandable.
Fixes #491.

This was SVN commit r7478.
2010-04-23 16:09:03 +00:00
08db7ebe13 # Support training units in buildings.
Includes basic batch training (see #298).

This was SVN commit r7469.
2010-04-19 19:47:23 +00:00
9f1d904278 # Fix use-of-freed-memory bug.
Don't call xmlCleanupParser after parsing documents.
("This function name is somewhat misleading. It does not clean up parser
state, it cleans up memory allocated by the library itself.")

This was SVN commit r7465.
2010-04-18 16:35:06 +00:00
0547757a30 Make CUnit::GetModel return a reference so it's clear it can never be NULL.
This was SVN commit r7464.
2010-04-17 11:44:08 +00:00
6a9de50692 # Use the correct projectile models.
Fixes #470.
Make CUnit::GetObject return a reference so it's clear it can never be
NULL.

This was SVN commit r7463.
2010-04-17 11:34:40 +00:00
d6ab843f9d # Documentation updates
This was SVN commit r7457.
2010-04-15 19:59:07 +00:00
3117f52d7c # Automatic runtime validation of entity template files.
Fixes #413.

This was SVN commit r7455.
2010-04-14 17:22:32 +00:00