Apparently some other software has felt like reformatting
our .po file in a different way than prescribed by docs/Makefile.
Reverted the reformat to get a clean patch for the actual
translation changes.
This might make the rendering a bit quicker, since the whole texture
environment setup that we do every frame is no longer required --
instead only the shader is bound and a few variables uploaded. However,
this was not the main motivation behind this change.
It also simplifies the code a bit. The texture environment setup is
replaced by GLSL code generation. Another small benefit is that for
texture units in material scripts that do not use an actual texture
image no hardware TIU is being used. This reduces the number of hardware
TIUs required for rendering the Clonk from 3 to 2.
The main benefit of this change, however, is that material specific
and clonk specific color variations can be applied correctly. This mainly
concerns ClrModulation and MOD2 drawing. Before, the ClrModulation was
mixed with the material color, which could lead to incorrect results
depending on what the texture units were doing. Now it is being applied
by the shader after all texture units in the material scripts have been
processed.
Another motivation of this change is to implement support for custom
shaders, which is already foreseen by OGRE material scripts. The
specification has only to be implemented. With this change in place,
both custom shaders and "fixed" processing can share the same code in
the engine, since both end up using a shader for the mesh rendering.
The shader currently works only for directional lights, but should be
easy to extend to also support point lights.
In no-gravity situations, SimFlight would enter an endless
loop when trying to project an unmoving object, waiting for
a collision that would never happen.
Similarly, in negative gravity, SimFlight would continue
calculating objects that left the top boundary of the land-
scape, only aborting the simulation once the coordinates
underflowed to values below the landscape.
autogen.sh was only ever needed on some broken msys installations where
autoreconf didn't work. Those may still be around, but one can probably use
cmake for them instead.
GTest does not ship precompiled binaries anymore. They are now compiled
using the CMakelists.txt from gtest.
Add basic unit tests for C4Value, DirectExec and C4StringTable.
Since the name of the game is OpenClonk, having the binary named
differently is at least confusing. At worst it conflicts with the
trademark license granted by RedWolf Design.
The Mac build will still have to be fixed because the installer
template .dmg file is not editable on non-Macintosh systems.
EnemyAI:
* Try to avoid shooting allies standing between AI and target. Jump to get free path.
* Fix some cases of AI stuck in wall scaling action
* Ranged enemies face their targets when they shoot
* Catapult handling: If catapult is empty, let go and attack with melee weapon
* Change ranged targets if current is unreachable
* Encounter callbacks to game script and ally wakeup
EvilCastle:
* Lock player view (Prohibit mouse scrolling)
* Encounter messages for some enemies
* Enemy aggro ranges tweaked
* Some landscape reworks
* Icon changed
C4AulParse::Host is now only used for local variables and named functions.
Global directexec functions have neither, so they won't need a scripthost
at all anymore.