#pragma once #include "maths.h" #include "TPinballComponent.h" struct vector2; class TEdgeSegment; class TBall; class TCollisionComponent : public TPinballComponent { public: std::vector EdgeList; float Elasticity; float Smoothness; float Boost; float Threshold; int SoftHitSoundId; int HardHitSoundId; RectF AABB; TCollisionComponent(TPinballTable* table, int groupIndex, bool createWall); ~TCollisionComponent() override; void port_draw() override; virtual void Collision(TBall* ball, vector2* nextPosition, vector2* direction, float distance, TEdgeSegment* edge); virtual int FieldEffect(TBall* ball, vector2* vecDst); bool DefaultCollision(TBall* ball, vector2* nextPosition, vector2* direction); };