From 035e63fef8e24896be55cafa1692339a16a42b88 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 14 Nov 2023 11:58:27 +0800 Subject: [PATCH] 1 --- server/gameserver/car.h | 2 ++ server/gameserver/entity.h | 6 ++++++ server/gameserver/loot.h | 2 ++ 3 files changed, 10 insertions(+) diff --git a/server/gameserver/car.h b/server/gameserver/car.h index f1a02566..30ebecb9 100644 --- a/server/gameserver/car.h +++ b/server/gameserver/car.h @@ -17,6 +17,8 @@ class Car : public Creature virtual void Initialize() override; virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override; virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override; + virtual bool IsCar() { return true;}; + virtual Car* AsCar() { return this;}; virtual void OnBulletHit(IBullet* bullet) override; virtual void OnExplosionHit(Explosion* e) override; virtual std::string GetName() override; diff --git a/server/gameserver/entity.h b/server/gameserver/entity.h index ceb59cd2..de44f85f 100644 --- a/server/gameserver/entity.h +++ b/server/gameserver/entity.h @@ -11,6 +11,8 @@ namespace cs class Room; class Human; class Explosion; +class Loot; +class Car; class Entity { public: @@ -26,6 +28,10 @@ class Entity virtual float GetHitRadius() { return GetRadius();}; virtual bool IsDead(Room* room) { return false;}; virtual bool IsCreature(Room* room) { return false;}; + virtual bool IsLoot() { return false;}; + virtual bool IsCar() { return false;}; + virtual Loot* AsLoot() { return nullptr;}; + virtual Car* AsCar() { return nullptr;}; virtual long long GetDeadFrameNo(Room* room) { return 0;}; virtual void OnBulletHit(IBullet* bullet) {}; virtual void OnExplosionHit(Explosion* explosion) {}; diff --git a/server/gameserver/loot.h b/server/gameserver/loot.h index 5ea62e27..18933a3b 100644 --- a/server/gameserver/loot.h +++ b/server/gameserver/loot.h @@ -34,6 +34,8 @@ class Loot : public RoomEntity virtual void Initialize() override; virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override; virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override; + virtual bool IsLoot() { return true;}; + virtual Loot* AsLoot() { return this;}; protected: Loot();