+ beam_getEndPos()
+ entity_setCurrentHealth()
+ entity_setMaxHealth()
+ beam_getEndPos()
+ entity_hasAnimation()
- Add 3 new parameters to entity_damage: shot, hitX, hitY
- entity_getAnimationLength() supports string as 2nd parameter now.
This will lookup an animation's length via name.
Passing an ANIMLAYER_* constant works as it used to.
- Make ACTION_LOOK and ACTION_ROLL available to handle via nodes
- Add entity_getPushVec()
- Fix typo in beam_setFirer()
- Add pull param to addInfluence()
- Add entity_getPushDamage()
- Add getMouseWheelChange()
- Add avatar_isSwimming()
- toggleInput() does now parse bools correctly
- pickupGem() returns gem ID
- Change in entity_doCollisionAvoidance():
* Add support for ignore obs
* One arg was shifted, this is now fixed but not sure if it adds a problem somewhere.
Minor changes:
- clean out some Lua functions registered twice
- Correct bool cast in quad_setSegs()
- Show nested mains in debug console
- One less //HACK comment
This avoid the problems with AL_INVERSE_DISTANCE_CLAMPED (doesn't reach 0),
and sounds way better than AL_LINEAR_DISTANCE_CLAMPED, which has an
all-too-sudden decay when a sound goes out of audible range.
With this patch, entities can serve as a sound source whose position
updates relative to the listener. This implements the last missing
feature of my previous positional audio patch, which is moving sound sources.
Previously, all sounds were relative to the listener with the listener
centered at (0, 0, 0), and once a sound started playing, the position could
not be changed. Volume was set as an estimation of the distance to the listener.
These restrictions are now gone; OpenAL will handle the volume & panning
based on the distance.
The remaining problem is that stereo sounds are not attenuated, at all.
Lua additions:
- playSfx() takes an additional parameter now.
- entity_setStopSoundsOnDeath()
This changes all typical vector interpolation functions that get
value, time, loopType, pingPong, ease as args from the Lua state;
use unified functions for all value type occurances.
This fixes the slightly annoying problem that it was not possible to
pass a boolean true to pingPong or ease, because lua_tonumber() would
always return 0 in that case.
Also changed:
- obj_getWorldPosition() now takes optional x,y-vector
New:
- obj_getWorldPositionAndRotation() is a more efficient shortcut,
as often both position and rotation are retrieved together,
and the underlying matrix chain operation is rather expensive.
- entity_getEmitter()
- entity_getNumEmitters()
- setSceneColor2()
- getSceneColor2()