1
This commit is contained in:
parent
ab2f33eafd
commit
bb0cbc1c0b
@ -1,6 +1,7 @@
|
|||||||
#include "precompile.h"
|
#include "precompile.h"
|
||||||
|
|
||||||
#include "car.h"
|
#include "car.h"
|
||||||
|
#include "collider.h"
|
||||||
#include "human.h"
|
#include "human.h"
|
||||||
#include "room.h"
|
#include "room.h"
|
||||||
#include "metamgr.h"
|
#include "metamgr.h"
|
||||||
@ -249,4 +250,28 @@ void Car::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
|
|||||||
BroadcastDeleteState(room);
|
BroadcastDeleteState(room);
|
||||||
RemoveFromAroundPlayers(room);
|
RemoveFromAroundPlayers(room);
|
||||||
room->grid_service->RemoveCreature(this);
|
room->grid_service->RemoveCreature(this);
|
||||||
|
room->RemoveObjectLater(this);
|
||||||
|
for (Human* passenger : passengers_) {
|
||||||
|
if (meta->i->buffid()) {
|
||||||
|
passenger->RemoveBuffById(meta->i->buffid());
|
||||||
|
passenger->RecalcSelfCollider();
|
||||||
|
}
|
||||||
|
passenger->SetCar(nullptr);
|
||||||
|
passenger->SetSeat(0);
|
||||||
|
passenger->second_weapon = Weapon();
|
||||||
|
passenger->CancelAction();
|
||||||
|
passenger->RemoveBuffByEffectId(kBET_Driver);
|
||||||
|
passenger->RemoveBuffByEffectId(kBET_Passenger);
|
||||||
|
room->frame_event.AddCarChg(passenger);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Car::GetAabbBox(AabbCollider& aabb_box)
|
||||||
|
{
|
||||||
|
aabb_box.active = true;
|
||||||
|
aabb_box.owner = this;
|
||||||
|
aabb_box._min.x = -hero_meta_->i->radius();
|
||||||
|
aabb_box._min.y = -hero_meta_->i->radius();
|
||||||
|
aabb_box._max.x = hero_meta_->i->radius();
|
||||||
|
aabb_box._max.y = hero_meta_->i->radius();
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ class Car : public Creature
|
|||||||
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) 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 void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
|
||||||
virtual void OnBulletHit(Bullet* bullet) override;
|
virtual void OnBulletHit(Bullet* bullet) override;
|
||||||
|
virtual void GetAabbBox(AabbCollider& aabb_box) override;
|
||||||
|
|
||||||
bool IsDriver(Human* hum) { return driver_ == hum && driver_; }
|
bool IsDriver(Human* hum) { return driver_ == hum && driver_; }
|
||||||
void GetDown(Human* passenger);
|
void GetDown(Human* passenger);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user