This commit is contained in:
aozhiwei 2021-03-15 17:53:08 +08:00
parent b91f37ae3a
commit 8d1df1ac1c
4 changed files with 26 additions and 9 deletions

View File

@ -21,6 +21,10 @@ Car::~Car()
void Car::Initialize()
{
MoveableEntity::Initialize();
hero_meta_ = MetaMgr::Instance()->GetPlayer(meta->i->heroid());
if (!hero_meta_) {
abort();
}
}
void Car::FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data)

View File

@ -8,6 +8,7 @@
#include "bullet.h"
#include "android.h"
#include "player.h"
#include "car.h"
void EntityFactory::Init()
{
@ -78,3 +79,11 @@ Player* EntityFactory::MakePlayer(int entity_uniid)
hum->entity_subtype_ = EST_Player;
return hum;
}
Car* EntityFactory::MakeCar(int entity_uniid)
{
Car* hum = new Car();
hum->entity_uniid_ = entity_uniid;
hum->entity_type_ = ET_Car;
return hum;
}

View File

@ -7,6 +7,7 @@ class Loot;
class Bullet;
class Android;
class Player;
class Car;
class EntityFactory : public a8::Singleton<EntityFactory>
{
private:
@ -24,6 +25,7 @@ class EntityFactory : public a8::Singleton<EntityFactory>
Bullet* MakeBullet(int entity_uniid);
Android* MakeAndroid(int entity_uniid);
Player* MakePlayer(int entity_uniid);
Car* MakeCar(int entity_uniid);
private:
};

View File

@ -549,19 +549,21 @@ void Room::CreateBullet(Human* hum,
Car* Room::CreateCar(Human* driver,
int car_uniid,
MetaData::Equip* meta,
MetaData::Equip* item_meta,
const a8::Vec2& pos)
{
Car* car = nullptr;
#if 0
car_.car_uniid = car_uniid;
car_.car_id = item_meta->i->id();
car_.meta = item_meta;
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(car_.meta->i->buffid());
Car* car = EntityFactory::Instance()->MakeCar(car_uniid);
car->meta = item_meta;
car->room = this;
car->SetPos(pos);
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(car->meta->i->buffid());
if (buff_meta) {
AddBuff(this, buff_meta, 1);
driver->AddBuff(driver, buff_meta, 1);
}
#endif
car->Initialize();
AddToEntityHash(car);
grid_service->AddCar(car);
car->BroadcastFullState(this);
return car;
}