diff --git a/server/gameserver/aicomponent.h b/server/gameserver/aicomponent.h index a2f0275..b5eb14d 100644 --- a/server/gameserver/aicomponent.h +++ b/server/gameserver/aicomponent.h @@ -1,10 +1,10 @@ #pragma once -class RoomEntity; +class MoveableEntity; class AIComponent { public: - RoomEntity* owner = nullptr; + MoveableEntity* owner = nullptr; virtual ~AIComponent(); virtual void Update(int delta_time); diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 4bc06bb..626300c 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -8,7 +8,7 @@ #include "player.h" #include "app.h" -Bullet::Bullet():RoomEntity() +Bullet::Bullet():MoveableEntity() { entity_type = ET_Bullet; ++App::Instance()->perf.entity_num[ET_Bullet]; diff --git a/server/gameserver/bullet.h b/server/gameserver/bullet.h index e81094d..b29e9e7 100644 --- a/server/gameserver/bullet.h +++ b/server/gameserver/bullet.h @@ -1,6 +1,6 @@ #pragma once -#include "roomentity.h" +#include "moveableentity.h" namespace MetaData { @@ -13,7 +13,7 @@ class Human; class Obstacle; class CircleCollider; class MovementComponent; -class Bullet : public RoomEntity +class Bullet : public MoveableEntity { public: int gun_lv = 0; diff --git a/server/gameserver/entity.h b/server/gameserver/entity.h index 261070f..ccb5c9d 100644 --- a/server/gameserver/entity.h +++ b/server/gameserver/entity.h @@ -20,7 +20,6 @@ class Entity int entity_uniid = 0; EntityType_e entity_type = ET_None; EntitySubType_e entity_subtype = EST_None; - int updated_times = 0; bool is_permanent = false; MapService* permanent_map_service = nullptr; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 49ca962..e89043f 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -28,7 +28,7 @@ const int kReviveTimeAdd = 12; const int kSkinNum = 4; -Human::Human():RoomEntity() +Human::Human():MoveableEntity() { default_weapon.weapon_idx = 0; default_weapon.weapon_id = 12101; diff --git a/server/gameserver/human.h b/server/gameserver/human.h index af6cc93..d780871 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -1,6 +1,6 @@ #pragma once -#include "roomentity.h" +#include "moveableentity.h" #include "cs_proto.pb.h" #include "GGListener.h" @@ -26,7 +26,7 @@ class AabbCollider; class Obstacle; class Loot; class Buff; -class Human : public RoomEntity +class Human : public MoveableEntity { public: int socket_handle = 0; diff --git a/server/gameserver/moveableentity.cc b/server/gameserver/moveableentity.cc new file mode 100644 index 0000000..e69de29 diff --git a/server/gameserver/moveableentity.h b/server/gameserver/moveableentity.h new file mode 100644 index 0000000..b6562c5 --- /dev/null +++ b/server/gameserver/moveableentity.h @@ -0,0 +1,10 @@ +#pragma once + +#include "roomentity.h" + +class MoveableEntity : public RoomEntity +{ + public: + int updated_times = 0; + +}; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index e5fb9f4..49214b4 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -1185,7 +1185,8 @@ void Room::AddObjectLater(RoomEntity* entity) { RoomEntity* entity = (RoomEntity*)param.sender.GetUserData(); if (entity->entity_type == ET_Bullet) { - entity->room->moveable_hash_[entity->entity_uniid] = entity; + MoveableEntity* moveableentity = (MoveableEntity*)entity; + entity->room->moveable_hash_[entity->entity_uniid] = moveableentity; } entity->room->uniid_hash_[entity->entity_uniid] = entity; entity->room->later_add_hash_.erase(entity->entity_uniid); diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 1568af8..1a0beec 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -26,6 +26,7 @@ struct timer_list; struct xtimer_list; class Entity; class RoomEntity; +class MoveableEntity; class Obstacle; class Bullet; class Human; @@ -156,7 +157,7 @@ private: std::set refreshed_robot_set_; std::map> team_hash_; std::map accountid_hash_; - std::map moveable_hash_; + std::map moveable_hash_; std::map uniid_hash_; std::map later_add_hash_; std::map human_hash_;