VIPRA Documentation
Loading...
Searching...
No Matches
modifier_location.hpp
1#pragma once
2
3#include "vipra/vipra_behaviors/definitions/behavior_context.hpp"
4#include "vipra/vipra_behaviors/definitions/sim_pack.hpp"
5#include "vipra/vipra_behaviors/util/class_types.hpp"
6
7namespace VIPRA::Behaviors {
12class ModifierLocation {
13 NON_DEFAULT_CONSTRUCTIBLE(ModifierLocation)
14 COPYABLE(ModifierLocation)
15 MOVEABLE(ModifierLocation)
16
17 public:
18 explicit ModifierLocation(VIPRA::idx location) : _location(location) {}
19
29 auto operator()(Simpack pack, VIPRA::idx targetIdx,
30 VIPRA::idx /*selfIdx*/) const -> bool
31 {
32 auto const targetPos = pack.pedset.ped_coords(targetIdx);
33 return pack.context.locations[_location].is_point_inside(targetPos);
34 }
35
36 private:
37 VIPRA::idx _location;
38};
39} // namespace VIPRA::Behaviors
auto operator()(Simpack pack, VIPRA::idx targetIdx, VIPRA::idx) const -> bool
Returns if target is within the location.
Definition modifier_location.hpp:29
Holds references to commonly used parameters for simpler passing.
Definition sim_pack.hpp:23