Commit Graph

18246 Commits

Author SHA1 Message Date
Pavel Penev
3678e146cf Make WithVoxelBody upgradable 2015-09-01 20:19:21 +03:00
RoosterDragon
ac55c5bf09 Fix pathfinding using PriorityQueue incorrectly.
By providing a comparer that could change over time (as estimated costs on the graph were updated), this meant the priority queue could have its heap property invalidated and thus not maintain a correct ordering. Instead we store elements into the queue with their estimations at the time. This preserves the heap property and thus ensures the queue returns properly ordered results, although it may contain out of date estimations.

This also improves performance. The fixed comparer need not perform expensive lookups into the graph, but can instead use the readily available value. This speeds up adds and removes on the queue significantly.
2015-09-01 17:29:36 +01:00
RoosterDragon
77923a27c1 Tweak IPathSearch to avoid exposing the OpenQueue directly. 2015-09-01 17:29:36 +01:00
RoosterDragon
774992c246 Cache only unit paths in the pathfinder.
The path caching works on the assumption that the time saved from reusing a cached path outweights the cost of caching it in the first place.

For unit paths, this assumption holds. For path searchs, we spend more time caching them then we save when we get to reuse these cached paths. This is because they are reused less often, and calculating their key is more expensive in comparison.
2015-09-01 17:29:35 +01:00
Zimmermann Gyula
1410a3d405 Fix veinholes. 2015-09-01 17:14:41 +02:00
reaperrr
7f7031d5c8 Update outdated description 2015-09-01 13:52:09 +02:00
Zimmermann Gyula
4aba64cc0f Fix armors. 2015-09-01 13:52:08 +02:00
reaperrr
0f9ef4036e Merge pull request #9140 from RoosterDragon/safe-pathfinder-perf
Improve pathfinder performance
2015-09-01 13:02:29 +02:00
reaperrr
a154410307 Merge pull request #9214 from Mailaender/ts-trains
Fixed the TS mod crashing on startup and oh trains!
2015-09-01 13:00:14 +02:00
deniz1a
d065c9f202 Red Alert: Adds satellite icons to badger planes.
They drop crates, paratroopers and parabombs.
2015-09-01 10:15:37 +03:00
Matthias Mailänder
2ed240527e add train locomotive and waggons 2015-08-31 22:22:49 +02:00
Matthias Mailänder
b3bed529d2 fix 'nawall' does not define a quantized body orientation 2015-08-31 22:14:17 +02:00
RoosterDragon
0739fc80a3 Cache the speed modifiers enumerable, not just the traits, in Mobile. 2015-08-31 20:45:34 +01:00
RoosterDragon
d9dd96ca35 Speed up Map.ContainsAllProjectedCellsCovering on flat maps.
This method gets called often via Contains calls. We can significantly speed up the method for flat maps since we know the projection and it is trivial to perform. This avoids an expensive projection lookup.
2015-08-31 20:45:32 +01:00
RoosterDragon
76303e9699 In PathGraph.GetConnections, return a List of neighbors directly, rather than a LinkedList typed an IEnumerable.
The caller can enumerate the list more efficiently without the IEnumerable indirection, and the reduced memory allocation is marginally faster than allocating a linked list and several nodes.
2015-08-31 20:45:31 +01:00
RoosterDragon
7d44eb953e Reduce size of GraphConnection for allocation efficiency. 2015-08-31 20:45:29 +01:00
RoosterDragon
be59d045ce Only enumerate crushable traits once in MobileInfo.IsBlockedBy. 2015-08-31 20:45:25 +01:00
RoosterDragon
dab53f403d Provide a hand-written enumerator for ActorMap.GetUnitsAt(CPos). 2015-08-31 20:43:19 +01:00
RoosterDragon
18478646d4 Avoid multiple ToMPos calls in ActorMap. 2015-08-31 20:43:18 +01:00
RoosterDragon
ac1658c9ce Refactor movement cost method to avoid repeated terrain information lookups.
As the world tileset is fixed, the pathfinder can look up the terrain information for that tileset on creation. This is implemented by the WorldMovementInfo struct. When calculating node costs, this allows the pathfinder to avoid having to repeat this expensive dictionary lookup on every node.
2015-08-31 20:43:18 +01:00
RoosterDragon
4eacb6e5c9 Transparently cache results of GetTerrainIndex in Map.
This method performs an expensive calculation and is called often during pathfinding. We create a cache of the terrain indicies for the map to vastly reduce the cost.
2015-08-31 20:43:17 +01:00
RoosterDragon
fa87befeff Add missing CellEntryChanged checks. 2015-08-31 20:43:16 +01:00
Matthias Mailänder
f65c356399 add Kodiak positional lights 2015-08-31 20:20:47 +02:00
Matthias Mailänder
ee8cac25d0 add lights to the Nod pyramid 2015-08-31 20:18:14 +02:00
reaperrr
3175ef4d67 Merge pull request #9193 from Mailaender/quanbo-fixup
Fixed BodyOrientation refactor regressions
2015-08-31 20:12:53 +02:00
Matthias Mailänder
252b102886 add the unloaded truck 2015-08-31 18:30:22 +02:00
Matthias Mailänder
6137a44123 add lights to the Montauk 2015-08-30 18:51:00 +02:00
Matthias Mailänder
f60080e0ac Merge pull request #9186 from LavenderMoon/bleed
Combine Shrapnel into Bullet
2015-08-30 18:40:26 +02:00
Matthias Mailänder
47b581d8c0 be more concise 2015-08-30 17:42:56 +02:00
Matthias Mailänder
19801b6cc3 add damaged, light and water animations 2015-08-30 17:40:54 +02:00
reaperrr
10ab4cbe61 Fixed production overlay ZOffsets 2015-08-30 15:45:01 +02:00
reaperrr
c39c7cdc4e Fix d2k NukePower sequence requirement 2015-08-30 15:45:00 +02:00
reaperrr
9da56f51e2 Remove RenderBuilding 2015-08-30 15:44:59 +02:00
reaperrr
df29ee1e19 Improved TS sequence offsets for gaplug and naapwr
Fixes #9003.
2015-08-30 15:38:03 +02:00
reaperrr
6c2eb1b0a8 Fixed TD obelisk and adv. guard tower visual selection boxes 2015-08-30 15:38:02 +02:00
Pavel Penev
5e55cef02c Merge pull request #8699 from deniz1a/disguise-owner
Shows real owner of disguised units to allies.
2015-08-30 14:32:34 +03:00
Matthias Mailänder
0b8d7708ef add more lint interfaces to reduce boiler plate 2015-08-30 13:12:25 +02:00
Lavender Moon
81e5b7866b Combine Shrapnel into Bullet 2015-08-30 06:37:38 -04:00
Matthias Mailänder
838faa4ae3 Merge pull request #9200 from penev92/bleed_upgradableResources
Make SeedsResource upgradable
2015-08-30 11:41:12 +02:00
Matthias Mailänder
24a5c37d5b Merge pull request #9199 from reaperrr/fix-td-shell-mamm
Fixed TD shellmap mammoth turrets drawn below body
2015-08-30 11:11:37 +02:00
Pavel Penev
55045d691a Make SeedsResource upgradable 2015-08-30 02:13:56 +03:00
Pavel Penev
43809b7fc5 Merge pull request #9194 from Mailaender/emitError-sequences
Fixed undefined sequence lint checks not emitting errors
2015-08-30 01:29:20 +03:00
reaperrr
bf51e0600d RenderBuildingWall -> WithWallSpriteBody 2015-08-30 00:22:53 +02:00
reaperrr
21186c10b6 RenderBuildingTurreted -> WithTurretedSpriteBody 2015-08-30 00:22:52 +02:00
reaperrr
dddb49e095 Fix TD shellmap mammoth turrets 2015-08-29 23:59:16 +02:00
reaperrr
69d062495c RenderBuildingSilo -> WithSiloAnimation 2015-08-29 23:33:18 +02:00
reaperrr
2df318cd3e RenderBuildingCharge -> WithChargeAnimation 2015-08-29 23:33:17 +02:00
reaperrr
bc2b60be05 Extend WithSpriteBody funtionality
Move building placement range circle to PlaceBuilding, add
PauseAnimationWhenDisabled.
2015-08-29 23:10:22 +02:00
Matthias Mailänder
539e25920c add missing spaces 2015-08-29 21:24:58 +02:00
Pavel Penev
8d1e46dc54 Merge pull request #9195 from Mailaender/map-preview-leak
Fixed a resource leak in MapPreview
2015-08-29 20:36:48 +03:00