重构FillMFObjectPart FillMFObjectFull

This commit is contained in:
aozhiwei 2020-07-07 18:49:27 +08:00
parent 4fcf8e5a75
commit 5c55dc75d2
12 changed files with 26 additions and 25 deletions

View File

@ -39,7 +39,7 @@ void Building::RecalcSelfCollider()
}
}
void Building::FillMFObjectPart(cs::MFObjectPart* part_data)
void Building::FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data)
{
part_data->set_object_type(ET_Building);
cs::MFBuildingPart* p = part_data->mutable_union_obj_3();
@ -47,7 +47,7 @@ void Building::FillMFObjectPart(cs::MFObjectPart* part_data)
TypeConvert::ToPb(pos, p->mutable_pos());
}
void Building::FillMFObjectFull(cs::MFObjectFull* full_data)
void Building::FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data)
{
full_data->set_object_type(ET_Building);
cs::MFBuildingFull* p = full_data->mutable_union_obj_3();

View File

@ -22,7 +22,7 @@ class Building : public Entity
virtual ~Building() override;
virtual void Initialize() override;
void RecalcSelfCollider();
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) override;
virtual void GetAabbBox(AabbCollider& aabb_box) override;
};

View File

@ -8,6 +8,7 @@ namespace cs
class MFObjectFull;
}
class Human;
class Room;
class Obstacle;
class ColliderComponent;
@ -36,8 +37,8 @@ class Entity
virtual ~Entity();
virtual void Initialize();
virtual void Update(int delta_time) {};
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) {};
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) {};
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) {};
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) {};
virtual float GetSpeed() { return 1.0f;};
virtual void GetAabbBox(AabbCollider& aabb_box);
virtual void GetCircleBox(CircleCollider& circle_box);

View File

@ -21,7 +21,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
a8::HasBitFlag(((Human*)itr)->status, HS_Fly)) {
continue;
}
itr->FillMFObjectFull(msg->add_full_objects());
itr->FillMFObjectFull((Human*)hum, msg->add_full_objects());
}
for (auto& itr : hum->part_objects) {
Entity* entity = itr;
@ -35,7 +35,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
continue;
}
}
entity->FillMFObjectPart(msg->add_part_objects());
entity->FillMFObjectPart((Human*)hum, msg->add_part_objects());
}
for (auto& itr : hum->del_objects) {
msg->add_del_objids(itr);

View File

@ -32,7 +32,7 @@ void Hero::RecalcSelfCollider()
self_collider_->rad = master->GetRadius();
}
void Hero::FillMFObjectPart(cs::MFObjectPart* part_data)
void Hero::FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data)
{
part_data->set_object_type(entity_type);
cs::MFHeroPart* p = part_data->mutable_union_obj_10();
@ -41,7 +41,7 @@ void Hero::FillMFObjectPart(cs::MFObjectPart* part_data)
TypeConvert::ToPb(attack_dir, p->mutable_dir());
}
void Hero::FillMFObjectFull(cs::MFObjectFull* full_data)
void Hero::FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data)
{
full_data->set_object_type(entity_type);
cs::MFHeroFull* p = full_data->mutable_union_obj_10();

View File

@ -26,8 +26,8 @@ class Hero : public Entity
virtual ~Hero() override;
virtual void Initialize() override;
void RecalcSelfCollider();
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) override;
private:
CircleCollider* self_collider_ = nullptr;

View File

@ -93,7 +93,7 @@ float Human::GetSpeed4()
return meta->i->move_speed4();
}
void Human::FillMFObjectPart(cs::MFObjectPart* part_data)
void Human::FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data)
{
part_data->set_object_type(ET_Player);
cs::MFPlayerPart* p = part_data->mutable_union_obj_1();
@ -102,7 +102,7 @@ void Human::FillMFObjectPart(cs::MFObjectPart* part_data)
TypeConvert::ToPb(attack_dir, p->mutable_dir());
}
void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
void Human::FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data)
{
full_data->set_object_type(ET_Player);
cs::MFPlayerFull* p = full_data->mutable_union_obj_1();
@ -1655,7 +1655,7 @@ void Human::SendUpdateMsg()
}
for (Entity* entity : view_objects) {
if (new_objects.find(entity) == new_objects.end()) {
entity->FillMFObjectFull(msg->add_full_objects());
entity->FillMFObjectFull(this, msg->add_full_objects());
}
}
refreshed_view = true;

View File

@ -138,8 +138,8 @@ class Human : public Entity
virtual void Initialize() override;
virtual float GetSpeed() override;
virtual float GetSpeed4();
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) override;
virtual void FillMFPlayerStats(cs::MFPlayerStats* stats);
virtual void GetAabbBox(AabbCollider& aabb_box);
void FillMFTeamData(cs::MFTeamData* team_data);

View File

@ -29,7 +29,7 @@ void Loot::RecalcSelfCollider()
{
}
void Loot::FillMFObjectPart(cs::MFObjectPart* part_data)
void Loot::FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data)
{
part_data->set_object_type(ET_Loot);
cs::MFLootPart* p = part_data->mutable_union_obj_5();
@ -37,7 +37,7 @@ void Loot::FillMFObjectPart(cs::MFObjectPart* part_data)
TypeConvert::ToPb(pos, p->mutable_pos());
}
void Loot::FillMFObjectFull(cs::MFObjectFull* full_data)
void Loot::FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data)
{
full_data->set_object_type(ET_Loot);
cs::MFLootFull* p = full_data->mutable_union_obj_5();

View File

@ -26,6 +26,6 @@ class Loot : public Entity
virtual ~Loot() override;
virtual void Initialize() override;
void RecalcSelfCollider();
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) override;
};

View File

@ -93,7 +93,7 @@ void Obstacle::RecalcSelfCollider()
}
}
void Obstacle::FillMFObjectPart(cs::MFObjectPart* part_data)
void Obstacle::FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data)
{
part_data->set_object_type(ET_Obstacle);
cs::MFObstaclePart* p = part_data->mutable_union_obj_2();
@ -102,7 +102,7 @@ void Obstacle::FillMFObjectPart(cs::MFObjectPart* part_data)
p->set_scale(1.0f);
}
void Obstacle::FillMFObjectFull(cs::MFObjectFull* full_data)
void Obstacle::FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data)
{
full_data->set_object_type(ET_Obstacle);
cs::MFObstacleFull* p = full_data->mutable_union_obj_2();

View File

@ -39,8 +39,8 @@ class Obstacle : public Entity
virtual ~Obstacle() override;
virtual void Initialize() override;
void RecalcSelfCollider();
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
virtual void FillMFObjectPart(Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Human* hum, cs::MFObjectFull* full_data) override;
virtual void GetAabbBox(AabbCollider& aabb_box) override;
virtual void GetCircleBox(CircleCollider& circle_box) override;
void Explosion(Bullet* bullet);