diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 806c4ebe..db27dd79 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -8,6 +8,7 @@ #include "room.h" #include "player.h" #include "human.h" +#include "weapon.h" #include "mt/Param.h" @@ -156,3 +157,12 @@ void PBUtils::KillMgr_BoradcastRollMsgCb(Human* dead_hum, return true; }); } + +void PBUtils::Weapon_ToPB(Weapon* self, Creature* c, cs::MFWeapon* pb_obj) +{ + pb_obj->set_weapon_uniid(a8::XValue(self->weapon_uniid).GetString()); + pb_obj->set_weapon_id(self->weapon_id); + pb_obj->set_weapon_lv(1); + pb_obj->set_ammo(self->ammo); + pb_obj->set_volume(self->GetClipVolume(c)); +} diff --git a/server/gameserver/pbutils.h b/server/gameserver/pbutils.h index e64652c2..3b1948f1 100644 --- a/server/gameserver/pbutils.h +++ b/server/gameserver/pbutils.h @@ -5,10 +5,13 @@ namespace cs class MFActivePlayerData; class MFPlayerFull; class MFAttrAddition; + class MFWeapon; } class Ability; class Human; +class Weapon; +class Creature; struct KillInfo; struct RollMsgHintInfo; class PBUtils @@ -29,6 +32,8 @@ class PBUtils int killer_team_id, std::shared_ptr pb_msg); + static void Weapon_ToPB(Weapon* self, Creature* c, cs::MFWeapon* pb_obj); + private: static void _Ability_FillMFAttrAdditionList (Ability* self, diff --git a/server/gameserver/weapon.cc b/server/gameserver/weapon.cc index f2116dec..0d9fd538 100644 --- a/server/gameserver/weapon.cc +++ b/server/gameserver/weapon.cc @@ -1,9 +1,9 @@ #include "precompile.h" #include "weapon.h" -#include "cs_proto.pb.h" #include "creature.h" #include "battledatacontext.h" +#include "pbutils.h" #include "mt/Equip.h" @@ -19,11 +19,7 @@ void Weapon::Clear() void Weapon::ToPB(Creature* c, cs::MFWeapon* pb_obj) { - pb_obj->set_weapon_uniid(a8::XValue(weapon_uniid).GetString()); - pb_obj->set_weapon_id(weapon_id); - pb_obj->set_weapon_lv(1); - pb_obj->set_ammo(ammo); - pb_obj->set_volume(GetClipVolume(c)); + PBUtils::Weapon_ToPB(this, c, pb_obj); } void Weapon::Recalc() diff --git a/server/gameserver/weapon.h b/server/gameserver/weapon.h index 0341d2cb..f2753d5a 100644 --- a/server/gameserver/weapon.h +++ b/server/gameserver/weapon.h @@ -24,4 +24,6 @@ class Weapon int GetClipVolume(Creature* c); int GetFireRate(Creature* c); int GetReloadTime(Creature* c); + + friend class PBUtils; };