diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2011-07-03 05:59:17 +0400 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2011-07-03 05:59:17 +0400 |
commit | 5f4f75c51a511f4f190c16eedfc4c04c3b9aa387 (patch) | |
tree | 9c226d26639fdeb1c4b546183f4178979e7b93cb /source/gameengine/Ketsji/KX_GameObject.cpp | |
parent | 8c3f2923fdc0626d4c2e7f6307c1ec4fd0e8c7f3 (diff) |
BGE Animations: Adding in layer weights to allow for layer blending.
Diffstat (limited to 'source/gameengine/Ketsji/KX_GameObject.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_GameObject.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 35fe956b0e8..334868d283a 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -367,11 +367,11 @@ bool KX_GameObject::PlayAction(const char* name, short priority, float blendin, short play_mode, - short blend_mode, + float layer_weight, short ipo_flags, float playback_speed) { - return GetActionManager()->PlayAction(name, start, end, layer, priority, blendin, play_mode, blend_mode, ipo_flags, playback_speed); + return GetActionManager()->PlayAction(name, start, end, layer, priority, blendin, play_mode, layer_weight, ipo_flags, playback_speed); } void KX_GameObject::StopAction(short layer) @@ -3037,19 +3037,19 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_GameObject, sendMessage, } KX_PYMETHODDEF_DOC(KX_GameObject, playAction, - "playAction(name, start_frame, end_frame, layer=0, priority=0 blendin=0, play_mode=ACT_MODE_PLAY, blend_mode=ACT_BLEND_NONE, ipo_flags=0, speed=1.0)\n" + "playAction(name, start_frame, end_frame, layer=0, priority=0 blendin=0, play_mode=ACT_MODE_PLAY, layer_weight=0.0, ipo_flags=0, speed=1.0)\n" "plays an action\n") { const char* name; - float start, end, blendin=0.f, speed=1.f; + float start, end, blendin=0.f, speed=1.f, layer_weight=0.f; short layer=0, priority=0; short ipo_flags=0; - short play_mode=0, blend_mode=0; + short play_mode=0; - static const char *kwlist[] = {"name", "start_frame", "end_frame", "layer", "priority", "blendin", "play_mode", "blend_mode", "ipo_flags", "speed", NULL}; + static const char *kwlist[] = {"name", "start_frame", "end_frame", "layer", "priority", "blendin", "play_mode", "layer_weight", "ipo_flags", "speed", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "sff|hhfhhhf:playAction", const_cast<char**>(kwlist), - &name, &start, &end, &layer, &priority, &blendin, &play_mode, &blend_mode, &ipo_flags, &speed)) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "sff|hhfhfhf:playAction", const_cast<char**>(kwlist), + &name, &start, &end, &layer, &priority, &blendin, &play_mode, &layer_weight, &ipo_flags, &speed)) return NULL; if (layer < 0 || layer > MAX_ACTION_LAYERS) @@ -3064,13 +3064,13 @@ KX_PYMETHODDEF_DOC(KX_GameObject, playAction, play_mode = BL_Action::ACT_MODE_MAX; } - if (blend_mode < 0 || blend_mode > BL_Action::ACT_BLEND_MAX) + if (layer_weight < 0.f || layer_weight > 1.f) { - printf("KX_GameObject.playAction(): given blend_mode (%d) is out of range (0 - %d), setting to ACT_BLEND_NONE", blend_mode, BL_Action::ACT_BLEND_MAX-1); - blend_mode = BL_Action::ACT_BLEND_NONE; + printf("KX_GameObject.playAction(): given layer_weight (%f) is out of range (0.0 - 1.0), setting to 0.0", layer_weight); + layer_weight = 0.f; } - PlayAction(name, start, end, layer, priority, blendin, play_mode, blend_mode, ipo_flags, speed); + PlayAction(name, start, end, layer, priority, blendin, play_mode, layer_weight, ipo_flags, speed); Py_RETURN_NONE; } |