затем сделать поворот тела с помощью мыши и наконец
Это будет не много сложновато. Принцип делается такой, у нас есть анимация A (пусть будет, это когда томми сидит на сиденье), затем есть анимация B (Это у нас и есть анимация прицела, когда чувак рукой целиться с пистолета). Ну а далее это делается блендингом (Blending Animation) анимация A и B смешиваются, получается что мужик сидя целиться. Ну а далее, остается последнее, это выделить нужные кости начиная от поясницы и до верха, ну и вращать их с нужными весами (Weight) относительно того, куда целиться игрок.
вызвать функцию полёта пули
Это не сложно. У меня было это так:
CBulletInfo::AddBullet(CEntity *, eWeaponType, CVector, CVector);
void CBulletInfo::AddBullet(CEntity* pEntity, eWeaponType eW, CVector v, CVector v2){
((void(__cdecl*)(CEntity *, eWeaponType, CVector, CVector))0x05C47C0)(pEntity, eW, v, v2);
}
Или же, другим методом, когда не посредственно выстрел делается CWeapon-ом класса.
Однако классы с анимациями, придется переписывать в сорцы, для того, что-бы с ними начать работать.