LCOV - code coverage report
Current view: top level - core/entities - Weapon.cpp (source / functions) Coverage Total Hit
Test: coverage-src.info Lines: 62.5 % 24 15
Test Date: 2025-12-21 01:16:59 Functions: 25.0 % 4 1

            Line data    Source code
       1              : #include "Weapon.hpp"
       2              : 
       3              : #include <algorithm>
       4              : #include <utility>
       5              : 
       6              : namespace Soldank
       7              : {
       8            2 : Weapon::Weapon(const WeaponParameters& weapon_parameters)
       9            2 :     : weapon_parameters_(weapon_parameters)
      10            2 :     , ammo_count_(weapon_parameters.ammo)
      11            2 :     , fire_interval_prev_(weapon_parameters.fire_interval)
      12            2 :     , fire_interval_count_(weapon_parameters.fire_interval)
      13            2 :     , fire_interval_real_((float)weapon_parameters.fire_interval)
      14            2 :     , start_up_time_count_(weapon_parameters.start_up_time)
      15            2 :     , reload_time_prev_(weapon_parameters.reload_time)
      16            2 :     , reload_time_count_(weapon_parameters.reload_time)
      17            2 :     , reload_time_real_((float)weapon_parameters.reload_time)
      18              : {
      19              : 
      20            2 :     if (weapon_parameters.clip_reload) {
      21            2 :         clip_out_time_ = (std::uint16_t)((float)weapon_parameters.reload_time * 0.8);
      22            2 :         clip_in_time_ = (std::uint16_t)((float)weapon_parameters.reload_time * 0.3);
      23              :     } else {
      24            0 :         clip_out_time_ = 0;
      25            0 :         clip_in_time_ = 0;
      26              :     }
      27              : 
      28            2 :     if (weapon_parameters.kind == WeaponType::M79) {
      29            0 :         ammo_count_ = 0;
      30              :     }
      31            2 : }
      32              : 
      33            0 : bool Weapon::IsAny(const std::vector<WeaponType>& weapons) const
      34              : {
      35            0 :     return std::ranges::any_of(weapons, [this](WeaponType weapon_type) {
      36            0 :         return weapon_type == GetWeaponParameters().kind;
      37            0 :     });
      38              : }
      39              : 
      40            0 : const WeaponParameters& Weapon::GetWeaponParameters() const
      41              : {
      42            0 :     return weapon_parameters_;
      43              : }
      44              : 
      45              : } // namespace Soldank
        

Generated by: LCOV version 2.0-1