2020-11-21 15:14:40 +00:00
|
|
|
#pragma once
|
2020-11-28 11:39:12 +00:00
|
|
|
#include "TPinballComponent.h"
|
|
|
|
|
2021-01-07 16:00:38 +00:00
|
|
|
struct vector_type;
|
2021-01-06 14:06:13 +00:00
|
|
|
class TEdgeSegment;
|
|
|
|
class TBall;
|
|
|
|
|
2020-11-28 11:39:12 +00:00
|
|
|
class TCollisionComponent : public TPinballComponent
|
2020-11-21 15:14:40 +00:00
|
|
|
{
|
2020-11-28 11:39:12 +00:00
|
|
|
public:
|
2021-10-01 15:55:44 +00:00
|
|
|
std::vector<TEdgeSegment*> EdgeList;
|
2021-01-23 10:33:30 +00:00
|
|
|
float Elasticity;
|
|
|
|
float Smoothness;
|
|
|
|
float Boost;
|
|
|
|
float Threshold;
|
|
|
|
int SoftHitSoundId;
|
|
|
|
int HardHitSoundId;
|
2020-11-21 15:14:40 +00:00
|
|
|
|
2020-11-28 12:59:42 +00:00
|
|
|
TCollisionComponent(TPinballTable* table, int groupIndex, bool createWall);
|
2021-01-08 15:50:12 +00:00
|
|
|
~TCollisionComponent() override;
|
2020-11-29 15:50:49 +00:00
|
|
|
void port_draw() override;
|
2021-01-07 16:00:38 +00:00
|
|
|
virtual void Collision(TBall* ball, vector_type* nextPosition, vector_type* direction, float coef,
|
2021-01-06 14:06:13 +00:00
|
|
|
TEdgeSegment* edge);
|
2021-01-07 16:00:38 +00:00
|
|
|
virtual int FieldEffect(TBall* ball, vector_type* vecDst);
|
|
|
|
int DefaultCollision(TBall* ball, vector_type* nextPosition, vector_type* direction);
|
2020-11-28 11:39:12 +00:00
|
|
|
};
|