代码重构

This commit is contained in:
aozhiwei 2019-04-10 17:28:06 +08:00
parent 29ec5651a6
commit 11b3b76504
5 changed files with 28 additions and 28 deletions

View File

@ -276,30 +276,6 @@ void Human::UpdatePoisoning()
}
}
void Human::DropItem(int item_id)
{
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(item_id);
if (equip_meta) {
Loot* entity = new Loot();
entity->room = room;
entity->meta = equip_meta;
entity->entity_uniid = room->AllocUniid();
{
Vector2D dir = Vector2D::UP;
dir.Rotate(a8::RandAngle());
entity->pos = pos + dir * (25 + rand() % 50);
}
entity->item_id = equip_meta->i->id();
entity->count = 1;
entity->Initialize();
room->uniid_hash_[entity->entity_uniid] = entity;
for (auto& pair : room->human_hash_) {
pair.second->new_objects.insert(entity);
pair.second->part_objects.insert(entity);
}
}
}
void Human::SyncAroundPlayers()
{
for (auto& pair : room->human_hash_) {

View File

@ -103,7 +103,6 @@ class Human : public Entity
void FindPath();
float GetRadius();
void UpdatePoisoning();
void DropItem(int item_id);
void SyncAroundPlayers();
void AutoLoadingBullet(bool manual = false);
void StartAction(ActionType_e action_type,

View File

@ -512,7 +512,7 @@ void Player::LootInteraction(Loot* entity)
if (old_item_meta->i->equip_lv() >= item_meta->i->equip_lv()) {
return;
}
DropItem(old_item_meta->i->id());
room->DropItem(pos, old_item_meta->i->id());
}
backpack = item_meta->i->id();
}
@ -527,7 +527,7 @@ void Player::LootInteraction(Loot* entity)
if (old_item_meta->i->equip_lv() >= item_meta->i->equip_lv()) {
return;
}
DropItem(old_item_meta->i->id());
room->DropItem(pos, old_item_meta->i->id());
}
chest = item_meta->i->id();
} else if (item_meta->i->equip_subtype() == 2) {
@ -537,7 +537,7 @@ void Player::LootInteraction(Loot* entity)
if (old_item_meta->i->equip_lv() >= item_meta->i->equip_lv()) {
return;
}
DropItem(old_item_meta->i->id());
room->DropItem(pos, old_item_meta->i->id());
}
helmet = item_meta->i->id();
}

View File

@ -395,6 +395,30 @@ void Room::FillSMMapInfo(cs::SMMapInfo& map_info)
}
}
void Room::DropItem(Vector2D pos, int item_id)
{
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(item_id);
if (equip_meta) {
Loot* entity = new Loot();
entity->room = this;
entity->meta = equip_meta;
entity->entity_uniid = AllocUniid();
{
Vector2D dir = Vector2D::UP;
dir.Rotate(a8::RandAngle());
entity->pos = pos + dir * (25 + rand() % 50);
}
entity->item_id = equip_meta->i->id();
entity->count = 1;
entity->Initialize();
uniid_hash_[entity->entity_uniid] = entity;
for (auto& pair : human_hash_) {
pair.second->new_objects.insert(entity);
pair.second->part_objects.insert(entity);
}
}
}
void Room::ClearDeletedObjects()
{
for (auto& obj_uniid : frame_data.deleted_objects) {

View File

@ -61,6 +61,7 @@ public:
void ProcDrop(Vector2D center, int drop_id);
void CreateThings();
void FillSMMapInfo(cs::SMMapInfo& map_info);
void DropItem(Vector2D pos, int item_id);
private:
void ClearDeletedObjects();