1 #pragma once 2 #include "TPinballComponent.h" 3 4 struct vector_type; 5 class TEdgeSegment; 6 class TBall; 7 8 class TCollisionComponent : public TPinballComponent 9 { 10 public: 11 std::vector<TEdgeSegment*> EdgeList; 12 float Elasticity; 13 float Smoothness; 14 float Boost; 15 float Threshold; 16 int SoftHitSoundId; 17 int HardHitSoundId; 18 19 TCollisionComponent(TPinballTable* table, int groupIndex, bool createWall); 20 ~TCollisionComponent() override; 21 void port_draw() override; 22 virtual void Collision(TBall* ball, vector_type* nextPosition, vector_type* direction, float coef, 23 TEdgeSegment* edge); 24 virtual int FieldEffect(TBall* ball, vector_type* vecDst); 25 int DefaultCollision(TBall* ball, vector_type* nextPosition, vector_type* direction); 26 }; 27