diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c index 53c1c7f4b6f..44f12381eb2 100644 --- a/source/blender/src/editipo.c +++ b/source/blender/src/editipo.c @@ -1583,6 +1583,11 @@ Ipo *verify_ipo(ID *from, short blocktype, char *actname, char *constname) Object *ob= (Object *)from; bActionChannel *achan; + if(GS(from->name)!=ID_OB) { + printf("called ipo system for action with wrong base pointer\n"); + return NULL; + } + if(ob->action==NULL) ob->action= add_empty_action(blocktype); diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c index bb6543267ab..f50addf9aae 100755 --- a/source/blender/src/transform_conversions.c +++ b/source/blender/src/transform_conversions.c @@ -1633,18 +1633,18 @@ void special_aftertrans_update(TransInfo *t) for (pchan=pose->chanbase.first; pchan; pchan=pchan->next){ if (pchan->flag & POSE_KEY){ - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_SIZE_X); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_SIZE_Y); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_SIZE_Z); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_SIZE_X); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_SIZE_Y); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_SIZE_Z); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_QUAT_W); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_QUAT_X); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_QUAT_Y); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_QUAT_Z); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_QUAT_W); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_QUAT_X); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_QUAT_Y); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_QUAT_Z); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_LOC_X); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_LOC_Y); - insertkey(&act->id, ID_AC, pchan->name, NULL, AC_LOC_Z); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_LOC_X); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_LOC_Y); + insertkey(&ob->id, ID_PO, pchan->name, NULL, AC_LOC_Z); } }