- Hellas_biome isn't a RM but as a JSON script it does load, and then
silently fails on mapgen. Explicitly fail.
- Fix player.js when a valid position cannot exist.
- Fix unknown.js when landscape isn't set in the settings.
Reported by: vladislavbelov
Refs #6180
Differential Revision: https://code.wildfiregames.com/D4147
This was SVN commit r25765.
Following 40cbde1925, the minimum pushing force is 0.2. This also
happens to be the maximum pushing force any pair of units can exert on
each other, so they can freely overlap instead of being pushed.
This tweaks settings slightly to fix that problem.
Reported by: marder
Differential Revision: https://code.wildfiregames.com/D4129
This was SVN commit r25748.
Introduced in 40cbde1925
MoveToFormationOffset may be called after the formation controller is
reset, leading to issues. It seems best to trust only
SetMemberOfFormation.
This causes the speed glitch experienced by wow & Valihrant.
Differential Revision: https://code.wildfiregames.com/D4128
This was SVN commit r25747.
The structTree, in case of errors, could have enough items to draw to
trigger an OOM failure in the Arena allocator.
This fixes that by hiding elements by default and some c++ memory
optimisation (mostly, this should make all platforms take the same
memory footprint for VisibleObject).
Discussed with vladislavbelov and s0600204
Differential Revision: https://code.wildfiregames.com/D4114
This was SVN commit r25746.
The .png get converted to .dds and they failed to load. Use a custom
CacheLoader since that's lightweight enough and avoids having to hack
into the texture manager.
Thanks Stan for testing
Differential Revision: https://code.wildfiregames.com/D4119
This was SVN commit r25738.
The game is slightly over 3G now.
This doesn't affect the actual DMG size, just the maximum size we can
write into it.
Differential Revision: https://code.wildfiregames.com/D4118
This was SVN commit r25737.
As no default values got set, some game settings became NaN, which
triggered exceptions.
This sets sane default.
This also includes better debugging logic in case of exception, so it's
easier to know what happens.
Fixes#6200
Reported by: langbart
Differential Revision: https://code.wildfiregames.com/D4113
This was SVN commit r25736.
This overall decreases the deathball effect from units walking to each
other a bit.
- Fix formations - this cleans up a UnitMotion hack for formations,
making it possible to increase pushing ranges without breaking closely
knit formations like testudo.
- Make MINIMAL_PUSHING and the MOVE_EXTENSION configurable, and add a
STATIC_EXTENSION as well.
- Increase the pushing range significantly, making units sparser.
Differential Revision: https://code.wildfiregames.com/D4098
This was SVN commit r25708.
Switch some logic from C++ to JS in PREGAME for player assignments. Refs
#3049Fixes#6204
Reported by: Imarok
Tested By: Imarok
Differential Revision: https://code.wildfiregames.com/D4092
This was SVN commit r25699.
A GUI sprite can have e.g. "color:" and "stretched:", but 'sprite' was
moved from after the first call.
Refs #6206
Differential Revision: https://code.wildfiregames.com/D4094
This was SVN commit r25698.
Add flaring on the map and resize the minimap buttons.
Target marker and button by Stan.
Reviewed/Commented by wraitii, elexis, vladislavbelov
Refs: #3491
Refs: #57
Differential Revision: https://code.wildfiregames.com/D1751
This was SVN commit r25691.
std::atomic<bool> does not value-initialise the boolean.
This caused windows tests to use way too much CPU and fail.
Differential Revision: https://code.wildfiregames.com/D4089
This was SVN commit r25687.
Fixes 592453c62f
wasObstructed and wentStraight are not reset when Move() isn't called,
but PostMove may still be called (if the unit was pushed). This will
OOS.
Differential Revision: https://code.wildfiregames.com/D4088
This was SVN commit r25686.
The pathfinder computations are run asynchronously (and potentially on
the main thread) in-between simulation turns, thus reducing
pathfinder-related lag considerably in common cases.
To make this most efficient, the number of paths computed during a turn
via MaxSameTurnMoves is reduced from 64 to 20.
This has a hard dependency on the obstruction manager (via the vertex
pathfinder) not being modified in-between simulation turn (or to put it
more generally on the simulation state not changing outside of turn
computation), otherwise results will be non-deterministic and go OOS.
This is currently entirely safe (as in, it indeed does not happen that
the simulation state changes in-between turn), but future work towards
improving simulation sandboxing would be good.
Thanks to Kuba386 for maintaining & improving the patch in 2020
Thanks to everyone who tested the various iterations of this patch.
Fixes#4324
Differential Revision: https://code.wildfiregames.com/D14
This was SVN commit r25657.
Tasks are simple callables (e.g. lambdas), and can be pushed with 2
priority levels. Pushing a task returns a future.
Futures can be waited on, can return results, and can be cancelled
deterministically. Futures can also not be waited on.
This gives 'hardware concurrency - 1' threads to maximize CPU usage in a
work-stealing workflow.
Reviewed by: vladislavbelov
Refs #5874
Differential Revision: https://code.wildfiregames.com/D3848
This was SVN commit r25656.
Add some retro-compatibility to avoid issues.
First reported by: gameboy
Differential Revision: https://code.wildfiregames.com/D4066
This was SVN commit r25651.
Issue spotted by kalimaps
Reviewed by: wraitii
Code parts by: wraitii
Differential Revision: https://code.wildfiregames.com/D4043
This was SVN commit r25646.
Since it is very non-trivial to determine which mods change checksums
and which don't, this relies on modder goodwill (and on verification on
our end for signed mods).
The declaration is an optional "ignoreInCompatibilityChecks" boolean in
mod.json
Also rework slightly the MP lobby mod display to always show the host
mods in a clear manner.
Differential Revision: https://code.wildfiregames.com/D3968
This was SVN commit r25634.
Because the page stack is a vector, if during PushPage, a new page is
pushed, the vector may re-allocate. This 'pulls the rug out' from
underneath the code stack that originally pushed, which then crashes.
To fix this, use a deque, since push/pop won't invalidate references.
Reported by: Imarok.
Based on a patch by: Imarok (tests are his)
Differential Revision: https://code.wildfiregames.com/D4037
This was SVN commit r25616.
Variants can now have limited or no diversity. This can occasionally
speed rendering slightly (5-10% FPS increase was reported on Combat Demo
Huge, which is very variant-heavy).
Reported by: bb
Based on a patch by: bb
Fixes#5831
Differential Revision: https://code.wildfiregames.com/D3035
This was SVN commit r25613.
Bit operations can be done via std::bitset. The current implementation
is too specific to have it just for a future. Refs 479f59e386,
5ca66fc757.
This was SVN commit r25569.
For modern standards base64 costs a bit less space and might be
implemented on demand. base32 usage was introduced in e0dfbe719d and
removed in 93cffe9deb.
Refs a34b759720, 317f98a6c0.
This was SVN commit r25568.
We already have a single place to access arguments, so we don't need
a platform dependent place for that.
Refs 3f58951808, 8c1bd05ab9.
This was SVN commit r25567.
Following D3108 / 876f6d5e50, sounds are attenuated by their actual
distance. However, as noted by players on A24, the dropoff is stark and,
when zoomed out, can easily result in not hearing things that are
happening in the middle of the screen.
The new default settings almost double the max-range, change the minimum
range to have greater dynamic range, and reduce the stereo depth
slightly to better match the default camera FOV.
These are stored per sound-grounp, possibly allowing future tweaks on a
per-soundgroup basis, and are configurable.
Tested by: Imarok
Discussed over mail with: Samulis, Porru
Differential Revision: https://code.wildfiregames.com/D3612
This was SVN commit r25547.
Parses mod.json data not only in temporary JS values, but in a proper
C++ struct.
This will ultimately make it more convenient to pass more than just the
version to JS in D3968, and it enforces the schema a bit more.
Differential Revision: https://code.wildfiregames.com/D3988
This was SVN commit r25546.
Supersedes D1674 and D3520.
This still generates some false positives (particularly the
singular-plural check), but in general it will suffice to better check
bundled languages.
Refs #4250
Differential Revision: https://code.wildfiregames.com/D3926
This was SVN commit r25538.
As noted by Angen in a26535d023, refs 3bcf360107
When starting with incompatible mods, the non-incompatible mods were no
longer shown. This fixes that.
I think the code looks cleaner from this new control flow that
explicitly only mounts "mod".
Tested by: Angen
Differential Revision: https://code.wildfiregames.com/D3996
This was SVN commit r25510.