Vehicle seats & Remake openworld logic
This commit is contained in:
parent
bbf2788627
commit
26bb9b802f
@ -39,7 +39,23 @@ std::shared_ptr<const assets::VehicleModel> assets::VehicleModel::LoadFromFile(c
|
||||
|
||||
veh->wheels_.emplace_back(wheel);
|
||||
}
|
||||
else if (command == "loc")
|
||||
{
|
||||
std::string loc_name;
|
||||
iss >> loc_name;
|
||||
Transform& trans = veh->locations_[loc_name];
|
||||
ParseTransform(iss, trans);
|
||||
}
|
||||
});
|
||||
|
||||
return veh;
|
||||
}
|
||||
|
||||
const Transform* assets::VehicleModel::GetLocation(const std::string& name) const
|
||||
{
|
||||
auto it = locations_.find(name);
|
||||
if (it != locations_.end())
|
||||
return &it->second;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -34,10 +34,12 @@ public:
|
||||
|
||||
const std::shared_ptr<const Model>& GetModel() const { return basemodel_; }
|
||||
const std::vector<VehicleWheel>& GetWheels() const { return wheels_; }
|
||||
const Transform* GetLocation(const std::string& name) const;
|
||||
|
||||
private:
|
||||
std::shared_ptr<const Model> basemodel_;
|
||||
std::vector<VehicleWheel> wheels_;
|
||||
std::map<std::string, Transform> locations_;
|
||||
|
||||
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,6 +7,9 @@
|
||||
namespace game
|
||||
{
|
||||
|
||||
class PlayerCharacter;
|
||||
class NpcCharacter;
|
||||
|
||||
class OpenWorld : public World
|
||||
{
|
||||
public:
|
||||
@ -20,20 +23,14 @@ public:
|
||||
virtual void PlayerLeft(Player& player) override;
|
||||
|
||||
private:
|
||||
void SpawnVehicle(Player& player);
|
||||
void RemoveVehicle(Player& player);
|
||||
|
||||
Character& SpawnRandomCharacter();
|
||||
|
||||
void SpawnCharacter(Player& player);
|
||||
void RemoveCharacter(Player& player);
|
||||
void CreatePlayerCharacter(Player& player);
|
||||
void RemovePlayerCharacter(Player& player);
|
||||
|
||||
void SpawnBot();
|
||||
|
||||
private:
|
||||
std::map<Player*, Vehicle*> player_vehicles_;
|
||||
std::map<Player*, Character*> player_characters_;
|
||||
std::vector<Vehicle*> bots_;
|
||||
std::map<Player*, PlayerCharacter*> player_characters_;
|
||||
std::vector<NpcCharacter*> npcs_;
|
||||
};
|
||||
|
||||
}
|
||||
@ -51,6 +51,8 @@ public:
|
||||
|
||||
void SetSteering(bool analog, float value = 0.0f);
|
||||
|
||||
const std::shared_ptr<const assets::VehicleModel>& GetModel() const { return model_; }
|
||||
|
||||
virtual ~Vehicle();
|
||||
|
||||
private:
|
||||
|
||||
@ -40,15 +40,13 @@ public:
|
||||
|
||||
Entity* GetEntity(net::EntNum entnum);
|
||||
|
||||
const assets::Map& GetMap() const { return *map_; }
|
||||
const std::string& GetMapName() const { return mapname_; }
|
||||
const std::map<net::EntNum, std::unique_ptr<Entity>>& GetEntities() const { return ents_; }
|
||||
const int64_t& GetTime() const { return time_ms_; }
|
||||
|
||||
virtual ~World() = default;
|
||||
|
||||
protected:
|
||||
const assets::Map& GetMap() const { return *map_; }
|
||||
|
||||
private:
|
||||
std::shared_ptr<const assets::Map> map_;
|
||||
std::string mapname_;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user