代码重构
This commit is contained in:
parent
29ec5651a6
commit
11b3b76504
@ -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_) {
|
||||
|
@ -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,
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user