| 1371 | } |
| 1372 | |
| 1373 | bool CreatureAnimation(short itemNumber, short headingAngle, short tiltAngle) |
| 1374 | { |
| 1375 | auto& item = g_Level.Items[itemNumber]; |
| 1376 | if (!item.IsCreature()) |
| 1377 | return false; |
| 1378 | |
| 1379 | auto& creature = *GetCreatureInfo(&item); |
| 1380 | |
| 1381 | SpawnCreatureGunEffect(item, creature.MuzzleFlash[0]); |
| 1382 | SpawnCreatureGunEffect(item, creature.MuzzleFlash[1]); |
| 1383 | |
| 1384 | auto prevPos = item.Pose.Position; |
| 1385 | |
| 1386 | AnimateItem(item); |
| 1387 | ProcessSectorFlags(&item); |
| 1388 | CreatureHealth(&item); |
| 1389 | |
| 1390 | if (item.Status == ITEM_DEACTIVATED) |
| 1391 | { |
| 1392 | CreatureDie(itemNumber, false); |
| 1393 | return false; |
| 1394 | } |
| 1395 | |
| 1396 | return CreaturePathfind(&item, prevPos, headingAngle, tiltAngle); |
| 1397 | } |
| 1398 | |
| 1399 | void CreatureHealth(ItemInfo* item) |
| 1400 | { |
no test coverage detected