template<typename T, typename B>
+ requires std::is_base_of_v<B, T>
inline bool Polymorphism<T, B>::is_instance_of(const void *obj, const PolymorphismBase &other) const
{
if(const RootedPolymorphism<B> *rooted = dynamic_cast<const RootedPolymorphism<B> *>(&other))
template<typename P, typename E>
+ requires std::is_base_of_v<Entity, E>
ReplicatedEntityCall<P, E>::ReplicatedEntityCall(Replicator *r, Function f):
replicator(r),
func(std::move(f))
}
template<typename P, typename E>
+ requires std::is_base_of_v<Entity, E>
void ReplicatedEntityCall<P, E>::operator()(Handle<Entity> entity, P &packet)
{
if(replicator)
}
template<typename P, typename E>
+ requires std::is_base_of_v<Entity, E>
void ReplicatedEntityCall<P, E>::operator()(unsigned target, Handle<Entity> entity, P &packet)
{
if(replicator)
}
template<typename P, typename E>
+ requires std::is_base_of_v<Entity, E>
void ReplicatedEntityCall<P, E>::prepare(Handle<Entity> entity, P &packet)
{
Handle<Zygote> zygote = entity->get_component<Zygote>();
}
template<typename P, typename E>
+ requires std::is_base_of_v<Entity, E>
void ReplicatedEntityCall<P, E>::receive(const P &packet)
{
Handle<Entity> entity = replicator->find_entity(packet.entity_id);