1 #pragma once 2 3 #include "TPinballComponent.h" 4 5 class TBall; 6 struct scoreStruct; 7 class TFlipper; 8 class TPlunger; 9 class TDrain; 10 class TDemo; 11 class TLightGroup; 12 13 struct score_struct_super 14 { 15 scoreStruct* ScoreStruct; 16 int Score; 17 int ScoreE9Part; 18 int Unknown2; 19 int BallCount; 20 int ExtraBalls; 21 int BallLockedCounter; 22 }; 23 24 25 class TPinballTable : public TPinballComponent 26 { 27 public: 28 TPinballTable(); 29 ~TPinballTable() override; 30 TPinballComponent* find_component(LPCSTR componentName); 31 TPinballComponent* find_component(int groupIndex); 32 int AddScore(int score); 33 void ChangeBallCount(int count); 34 void tilt(float time); 35 void port_draw() override; 36 int Message(int code, float value) override; 37 38 static void EndGame_timeout(int timerId, void* caller); 39 static void LightShow_timeout(int timerId, void* caller); 40 static void replay_timer_callback(int timerId, void* caller); 41 static void tilt_timeout(int timerId, void* caller); 42 43 TFlipper* FlipperL; 44 TFlipper* FlipperR; 45 scoreStruct* CurScoreStruct; 46 scoreStruct* ScoreBallcount; 47 scoreStruct* ScorePlayerNumber1; 48 int CheatsUsed{}; 49 int SoundIndex1{}; 50 int SoundIndex2{}; 51 int SoundIndex3{}; 52 int BallInSink; 53 int CurScore{}; 54 int CurScoreE9{}; 55 int LightShowTimer; 56 int EndGameTimeoutTimer; 57 int TiltTimeoutTimer; 58 score_struct_super PlayerScores[4]{}; 59 int PlayerCount; 60 int CurrentPlayer; 61 TPlunger* Plunger; 62 TDrain* Drain; 63 TDemo* Demo{}; 64 int XOffset{}; 65 int YOffset{}; 66 int Width{}; 67 int Height{}; 68 std::vector<TPinballComponent*> ComponentList; 69 std::vector<TBall*> BallList; 70 TLightGroup* LightGroup; 71 float GravityDirVectMult{}; 72 float GravityAngleX{}; 73 float GravityAnglY{}; 74 float CollisionCompOffset{}; 75 float PlungerPositionX{}; 76 float PlungerPositionY{}; 77 int ScoreMultiplier{}; 78 int ScoreAdded{}; 79 int ScoreSpecial1{}; 80 int ScoreSpecial2{}; 81 int ScoreSpecial2Flag{}; 82 int ScoreSpecial3{}; 83 int ScoreSpecial3Flag{}; 84 int UnknownP71{}; 85 int BallCount{}; 86 int MaxBallCount; 87 int ExtraBalls{}; 88 int UnknownP75{}; 89 int BallLockedCounter{}; 90 int MultiballFlag; 91 int UnknownP78{}; 92 int ReplayActiveFlag{}; 93 int ReplayTimer; 94 int UnknownP81{}; 95 int UnknownP82{}; 96 int TiltLockFlag; 97 98 private: 99 static int score_multipliers[5]; 100 }; 101