diff --git a/server/gameserver/entity.h b/server/gameserver/entity.h index caf9616..0171299 100644 --- a/server/gameserver/entity.h +++ b/server/gameserver/entity.h @@ -1,6 +1,7 @@ #pragma once #include "gridservice.h" +#include "room.h" namespace cs { @@ -49,6 +50,15 @@ class Entity a8::Vec2 GetPos() { return pos_; }; void SetPos(a8::Vec2 pos) { + #if 0 + if (room && entity_subtype == EST_Player) { + if (room->frame_no > SERVER_FRAME_RATE * 35) { + if (pos.Distance(pos_) > 500) { + abort(); + } + } + } + #endif pos_ = pos; } float GetX() diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fa3c635..f6ad548 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -427,6 +427,7 @@ void Human::RecalcSelfCollider() bool Human::IsCollisionInMapService() { + Global::last_collider = nullptr; if (room->OverBorder(GetPos(), meta->i->radius())){ return true; } @@ -438,7 +439,6 @@ bool Human::IsCollisionInMapService() std::set colliders; room->map_service.GetColliders(GetX(), GetY(), colliders); - Global::last_collider = nullptr; for (ColliderComponent* collider : colliders) { switch (collider->owner->entity_type) { case ET_Obstacle: