| 173 | } |
| 174 | |
| 175 | static void RotateHeadToTarget(ItemInfo* item, CreatureInfo* creature, int joint, short& headAngle) |
| 176 | { |
| 177 | if (creature->Enemy == nullptr) |
| 178 | { |
| 179 | headAngle = item->Pose.Orientation.y; |
| 180 | return; |
| 181 | } |
| 182 | |
| 183 | auto* enemy = creature->Enemy; |
| 184 | |
| 185 | auto pos = GetJointPosition(item,joint); |
| 186 | int x = enemy->Pose.Position.x - pos.x; |
| 187 | int z = enemy->Pose.Position.z - pos.z; |
| 188 | headAngle = (short)(phd_atan(z, x) - item->Pose.Orientation.y) / 2; |
| 189 | } |
| 190 | |
| 191 | void GetTargetPosition(ItemInfo* originEntity, Pose* targetPose) |
| 192 | { |
no test coverage detected