fekalnigtacko/src/game/npc_character.hpp
2026-02-21 20:59:59 +01:00

44 lines
727 B
C++

#pragma once
#include "assets/map.hpp"
#include "controllable_character.hpp"
namespace game
{
class OpenWorld;
class NpcCharacter : public ControllableCharacter
{
public:
using Super = ControllableCharacter;
NpcCharacter(World& world, OpenWorld& openworld);
virtual void VehicleChanged() override;
virtual void Update() override
{
Super::Update();
VehicleThink();
}
private:
void SelectNextNode();
void VehicleThink();
private:
// driver
const assets::MapGraph* roads_;
glm::vec3 seg_start_;
std::deque<size_t> path_;
bool gas_ = false;
size_t stuck_counter_ = 0;
glm::vec3 last_pos_ = glm::vec3(0.0f);
float speed_limit_ = 0.0f;
};
}