aozhiwei b91f37ae3a 1
2021-03-15 17:38:52 +08:00

42 lines
904 B
C++

#pragma once
#include "moveableentity.h"
#include "cs_proto.pb.h"
namespace MetaData
{
struct Equip;
struct Player;
}
class Human;
class Room;
class Car : public MoveableEntity
{
public:
int car_uniid = 0;
a8::Vec2 move_dir;
MetaData::Equip* meta = nullptr;
Car();
virtual ~Car() override;
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;
bool IsDriver(Human* hum) { return driver_ == hum && driver_; }
void GetDown(Human* passenger);
void GetOn(Human* passenger);
void SyncPos();
private:
int AllocSeat();
private:
bool later_removed_ = false;
Human* driver_ = nullptr;
std::set<Human*> passengers_;
MetaData::Player* hero_meta_ = nullptr;
};