game2006/server/gameserver/framedata.cc
aozhiwei 2b8e88adfc 1
2023-05-29 19:05:25 +08:00

95 lines
2.4 KiB
C++

#include "precompile.h"
#include "framedata.h"
#include "human.h"
#include "room.h"
void FrameData::ClearFrameData(Human* hum)
{
if (!new_objects.empty()) {
new_objects.clear();
}
if (!image_objects.empty()) {
image_objects.clear();
}
if (!del_objects.empty()) {
if (!a8::HasBitFlag(hum->status, CS_Disable)) {
for (auto& itr : del_objects) {
Entity* entity = hum->room->GetEntityByUniId(itr);
if (entity) {
hum->RemovePartObjects(entity);
if (entity->IsEntityType(ET_Player)) {
((Human*)entity)->RemovePartObjects(hum);
}
}
}
}
del_objects.clear();
}
if (!out_objects.empty()) {
if (!a8::HasBitFlag(hum->status, CS_Disable)) {
for (auto& itr : out_objects) {
Entity* entity = hum->room->GetEntityByUniId(itr);
if (entity) {
hum->RemovePartObjects(entity);
if (entity->IsEntityType(ET_Player)) {
((Human*)entity)->RemovePartObjects(hum);
}
}
}
}
out_objects.clear();
}
if (!shots_.empty()) {
shots_.clear();
}
if (!bullets_.empty()) {
bullets_.clear();
}
if (!explosions_.empty()) {
explosions_.clear();
}
if (!play_skills_.empty()) {
play_skills_.clear();
}
if (!emotes_.empty()) {
emotes_.clear();
}
if (!chged_bullet_nums_.empty()) {
chged_bullet_nums_.clear();
}
if (!chged_hps_.empty()) {
chged_hps_.clear();
}
if (!chged_buffs_.empty()) {
chged_buffs_.clear();
}
if (!chged_effects_.empty()) {
chged_effects_.clear();
}
if (!chged_skillcds_.empty()) {
chged_skillcds_.clear();
}
if (!chged_skill_curr_times_.empty()) {
chged_skill_curr_times_.clear();
}
if (!chged_items_.empty()) {
chged_items_.clear();
}
if (!chged_weapon_ammo_.empty()) {
chged_weapon_ammo_.clear();
}
if (!dead_alive_objs_.empty()) {
dead_alive_objs_.clear();
}
if (!chged_cars_.empty()) {
chged_cars_.clear();
}
if (!chged_props_.empty()) {
chged_props_.clear();
}
if (!del_bullets_.empty()) {
del_bullets_.clear();
}
}