1
0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2024-11-07 03:12:58 +01:00

Message code enum part 5: control codes.

This commit is contained in:
Muzychenko Andrey 2022-09-07 16:01:38 +03:00
parent dfe1665ba1
commit 22603aa126
29 changed files with 489 additions and 476 deletions

View File

@ -66,5 +66,5 @@ void TBlocker::TimerExpired(int timerId, void* caller)
{ {
auto blocker = static_cast<TBlocker*>(caller); auto blocker = static_cast<TBlocker*>(caller);
blocker->Timer = 0; blocker->Timer = 0;
control::handler(60, blocker); control::handler(MessageCode::ControlTimerExpired, blocker);
} }

View File

@ -41,7 +41,7 @@ int TBumper::Message(MessageCode code, float value)
loader::play_sound(SoundIndex3, this, "TBumper2"); loader::play_sound(SoundIndex3, this, "TBumper2");
BmpIndex = nextBmp; BmpIndex = nextBmp;
Fire(); Fire();
control::handler(11, this); control::handler(MessageCode::TBumperSetBmpIndex, this);
} }
break; break;
} }
@ -103,7 +103,7 @@ void TBumper::Collision(TBall* ball, vector2* nextPosition, vector2* direction,
if (DefaultCollision(ball, nextPosition, direction)) if (DefaultCollision(ball, nextPosition, direction))
{ {
Fire(); Fire();
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

View File

@ -60,5 +60,5 @@ void TComponentGroup::NotifyTimerExpired(int timerId, void* caller)
{ {
auto compGroup = static_cast<TComponentGroup*>(caller); auto compGroup = static_cast<TComponentGroup*>(caller);
compGroup->Timer = 0; compGroup->Timer = 0;
control::handler(61, compGroup); control::handler(MessageCode::ControlNotifyTimerExpired, compGroup);
} }

View File

@ -38,11 +38,11 @@ void TDrain::Collision(TBall* ball, vector2* nextPosition, vector2* direction, f
PinballTable->BallInDrainFlag = 1; PinballTable->BallInDrainFlag = 1;
Timer = timer::set(TimerTime, this, TimerCallback); Timer = timer::set(TimerTime, this, TimerCallback);
} }
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
void TDrain::TimerCallback(int timerId, void* caller) void TDrain::TimerCallback(int timerId, void* caller)
{ {
auto drain = static_cast<TDrain*>(caller); auto drain = static_cast<TDrain*>(caller);
control::handler(60, drain); control::handler(MessageCode::ControlTimerExpired, drain);
} }

View File

@ -104,11 +104,11 @@ void TFlagSpinner::NextFrame()
if (!PinballTable->TiltLockFlag) if (!PinballTable->TiltLockFlag)
{ {
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
if (SoftHitSoundId) if (SoftHitSoundId)
loader::play_sound(SoftHitSoundId, this, "TFlagSpinner"); loader::play_sound(SoftHitSoundId, this, "TFlagSpinner");
if (!BmpIndex) if (!BmpIndex)
control::handler(62, this); control::handler(MessageCode::ControlSpinnerLoopReset, this);
} }
auto bmp = ListBitmap->at(BmpIndex); auto bmp = ListBitmap->at(BmpIndex);

View File

@ -70,7 +70,7 @@ int TFlipper::Message(MessageCode code, float value)
case MessageCode::GameOver: case MessageCode::GameOver:
if (code == MessageCode::TFlipperExtend) if (code == MessageCode::TFlipperExtend)
{ {
control::handler(1, this); control::handler(MessageCode::TFlipperExtend, this);
loader::play_sound(HardHitSoundId, this, "TFlipper1"); loader::play_sound(HardHitSoundId, this, "TFlipper1");
} }
else if (code == MessageCode::TFlipperRetract) else if (code == MessageCode::TFlipperRetract)

View File

@ -15,7 +15,7 @@ TGate::TGate(TPinballTable* table, int groupIndex) : TCollisionComponent(table,
SoundIndex3 = visual.SoundIndex3; SoundIndex3 = visual.SoundIndex3;
ActiveFlag = 1; ActiveFlag = 1;
render::sprite_set_bitmap(RenderSprite, ListBitmap->at(0)); render::sprite_set_bitmap(RenderSprite, ListBitmap->at(0));
control::handler(1024, this); control::handler(MessageCode::Reset, this);
} }
int TGate::Message(MessageCode code, float value) int TGate::Message(MessageCode code, float value)
@ -37,6 +37,6 @@ int TGate::Message(MessageCode code, float value)
default: break; default: break;
} }
control::handler(~code, this); control::handler(code, this);
return 0; return 0;
} }

View File

@ -88,7 +88,7 @@ void THole::Collision(TBall* ball, vector2* nextPosition, vector2* direction, fl
if (!PinballTable->TiltLockFlag) if (!PinballTable->TiltLockFlag)
{ {
loader::play_sound(HardHitSoundId, ball, "THole1"); loader::play_sound(HardHitSoundId, ball, "THole1");
control::handler(57, this); control::handler(MessageCode::ControlBallCaptured, this);
} }
} }
} }
@ -116,7 +116,7 @@ int THole::FieldEffect(TBall* ball, vector2* vecDst)
ball->Direction.X = 0.0; ball->Direction.X = 0.0;
ball->Speed = 0.0; ball->Speed = 0.0;
loader::play_sound(SoftHitSoundId, ball, "THole2"); loader::play_sound(SoftHitSoundId, ball, "THole2");
control::handler(58, this); control::handler(MessageCode::ControlBallReleased, this);
} }
} }
result = 0; result = 0;

View File

@ -89,6 +89,6 @@ void TKickback::TimerExpired(int timerId, void* caller)
bmp->YPosition - kick->PinballTable->YOffset); bmp->YPosition - kick->PinballTable->YOffset);
} }
kick->Timer = 0; kick->Timer = 0;
control::handler(60, kick); control::handler(MessageCode::ControlTimerExpired, kick);
} }
} }

View File

@ -112,7 +112,7 @@ void TKickout::Collision(TBall* ball, vector2* nextPosition, vector2* direction,
else else
{ {
loader::play_sound(SoftHitSoundId, ball, "TKickout1"); loader::play_sound(SoftHitSoundId, ball, "TKickout1");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }
} }

View File

@ -301,7 +301,7 @@ void TLight::TimerExpired(int timerId, void* caller)
light->Message(MessageCode::TLightResetAndTurnOff, 0.0); light->Message(MessageCode::TLightResetAndTurnOff, 0.0);
} }
if (light->Control) if (light->Control)
control::handler(60, light); control::handler(MessageCode::ControlTimerExpired, light);
} }

View File

@ -120,11 +120,11 @@ void TLightBargraph::BargraphTimerExpired(int timerId, void* caller)
if (bar->TimeIndex) if (bar->TimeIndex)
{ {
bar->Message(MessageCode::TLightGroupToggleSplitIndex, static_cast<float>(bar->TimeIndex - 1)); bar->Message(MessageCode::TLightGroupToggleSplitIndex, static_cast<float>(bar->TimeIndex - 1));
control::handler(60, bar); control::handler(MessageCode::ControlTimerExpired, bar);
} }
else else
{ {
bar->Message(MessageCode::TLightResetAndTurnOff, 0.0); bar->Message(MessageCode::TLightResetAndTurnOff, 0.0);
control::handler(47, bar); control::handler(MessageCode::TLightGroupCountdownEnded, bar);
} }
} }

View File

@ -351,7 +351,7 @@ int TLightGroup::Message(MessageCode code, float value)
} }
case MessageCode::TLightGroupToggleSplitIndex: case MessageCode::TLightGroupToggleSplitIndex:
{ {
control::handler(~code, this); control::handler(code, this);
auto index = static_cast<int>(floor(value)); auto index = static_cast<int>(floor(value));
if (index >= 0 && index < count) if (index >= 0 && index < count)
{ {
@ -460,5 +460,5 @@ void TLightGroup::NotifyTimerExpired(int timerId, void* caller)
{ {
auto group = static_cast<TLightGroup*>(caller); auto group = static_cast<TLightGroup*>(caller);
group->NotifyTimer = 0; group->NotifyTimer = 0;
control::handler(61, group); control::handler(MessageCode::ControlNotifyTimerExpired, group);
} }

View File

@ -54,7 +54,7 @@ void TLightRollover::Collision(TBall* ball, vector2* nextPosition, vector2* dire
else else
{ {
loader::play_sound(SoftHitSoundId, this, "TLightRollover"); loader::play_sound(SoftHitSoundId, this, "TLightRollover");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
RolloverFlag = RolloverFlag == 0; RolloverFlag = RolloverFlag == 0;
if (ListBitmap) if (ListBitmap)
render::sprite_set_bitmap(RenderSprite, ListBitmap->at(0)); render::sprite_set_bitmap(RenderSprite, ListBitmap->at(0));

View File

@ -52,7 +52,7 @@ void TOneway::Collision(TBall* ball, vector2* nextPosition, vector2* direction,
{ {
if (HardHitSoundId) if (HardHitSoundId)
loader::play_sound(HardHitSoundId, ball, "TOneway1"); loader::play_sound(HardHitSoundId, ball, "TOneway1");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }
else if (PinballTable->TiltLockFlag) else if (PinballTable->TiltLockFlag)

View File

@ -65,10 +65,7 @@ enum class MessageCode
TLightGroupFlashWhenOn = 44, TLightGroupFlashWhenOn = 44,
TLightGroupToggleSplitIndex = 45, TLightGroupToggleSplitIndex = 45,
TLightGroupStartFlasher = 46, TLightGroupStartFlasher = 46,
TLightGroupCountdownEnded = 47,
TBlockerDisable = 51,
TBlockerEnable = 52,
TBlockerRestartTimeout = 59,
TBumperSetBmpIndex = 11, TBumperSetBmpIndex = 11,
TBumperIncBmpIndex = 12, TBumperIncBmpIndex = 12,
@ -76,14 +73,18 @@ enum class MessageCode
TComponentGroupResetNotifyTimer = 48, TComponentGroupResetNotifyTimer = 48,
TPopupTargetDisable = 49,
TPopupTargetEnable = 50,
TBlockerDisable = 51,
TBlockerEnable = 52,
TBlockerRestartTimeout = 59,
TGateDisable = 53, TGateDisable = 53,
TGateEnable = 54, TGateEnable = 54,
TKickoutRestartTimer = 55, TKickoutRestartTimer = 55,
TPopupTargetDisable = 49,
TPopupTargetEnable = 50,
TSinkUnknown7 = 7, TSinkUnknown7 = 7,
TSinkResetTimer = 56, TSinkResetTimer = 56,
@ -92,6 +93,17 @@ enum class MessageCode
TTimerResetTimer = 59, TTimerResetTimer = 59,
ControlBallCaptured = 57,
ControlBallReleased = 58,
ControlTimerExpired = 60,
ControlNotifyTimerExpired = 61,
ControlSpinnerLoopReset = 62,
ControlCollision = 63,
ControlEnableMultiplier = 64,
ControlDisableMultiplier = 65,
ControlMissionComplete = 66,
ControlMissionStarted = 67,
// Public codes 1000+, apply to all components // Public codes 1000+, apply to all components
LeftFlipperInputPressed = 1000, LeftFlipperInputPressed = 1000,
LeftFlipperInputReleased = 1001, LeftFlipperInputReleased = 1001,

View File

@ -301,7 +301,7 @@ void TPinballTable::tilt(float time)
} }
LightGroup->Message(MessageCode::TLightTurnOffTimed, 0); LightGroup->Message(MessageCode::TLightTurnOffTimed, 0);
TiltLockFlag = 1; TiltLockFlag = 1;
control::table_control_handler(1011); control::table_control_handler(MessageCode::SetTiltLock);
} }
} }
@ -589,7 +589,7 @@ int TPinballTable::Message(MessageCode code, float value)
default: break; default: break;
} }
control::table_control_handler(~code); control::table_control_handler(code);
return 0; return 0;
} }
@ -662,7 +662,7 @@ void TPinballTable::EndGame_timeout(int timerId, void* caller)
} }
if (table->Demo) if (table->Demo)
table->Demo->Message(MessageCode::GameOver, 0.0); table->Demo->Message(MessageCode::GameOver, 0.0);
control::handler(67, pb::MissTextBox); control::handler(MessageCode::ControlMissionStarted, pb::MissTextBox);
pb::InfoTextBox->Display(pb::get_rc_string(Msg::STRING125), -1.0); pb::InfoTextBox->Display(pb::get_rc_string(Msg::STRING125), -1.0);
} }

View File

@ -168,7 +168,7 @@ int TPlunger::Message(MessageCode code, float value)
break; break;
} }
control::handler(~code, this); control::handler(code, this);
return 0; return 0;
} }

View File

@ -70,7 +70,7 @@ void TPopupTarget::Collision(TBall* ball, vector2* nextPosition, vector2* direct
if (HardHitSoundId) if (HardHitSoundId)
loader::play_sound(HardHitSoundId, this, "TPopupTarget1"); loader::play_sound(HardHitSoundId, this, "TPopupTarget1");
Message(MessageCode::TPopupTargetDisable, 0.0); Message(MessageCode::TPopupTargetDisable, 0.0);
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

View File

@ -154,7 +154,7 @@ void TRamp::Collision(TBall* ball, vector2* nextPosition, vector2* direction, fl
if (!PinballTable->TiltLockFlag) if (!PinballTable->TiltLockFlag)
{ {
loader::play_sound(SoftHitSoundId, ball, "TRamp"); loader::play_sound(SoftHitSoundId, ball, "TRamp");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }
else else

View File

@ -55,7 +55,7 @@ void TRollover::Collision(TBall* ball, vector2* nextPosition, vector2* direction
else else
{ {
loader::play_sound(SoftHitSoundId, ball, "TRollover"); loader::play_sound(SoftHitSoundId, ball, "TRollover");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
RolloverFlag = RolloverFlag == 0; RolloverFlag = RolloverFlag == 0;
if (ListBitmap) if (ListBitmap)

View File

@ -65,7 +65,7 @@ void TSink::Collision(TBall* ball, vector2* nextPosition, vector2* direction, fl
{ {
ball->Disable(); ball->Disable();
loader::play_sound(SoundIndex4, ball, "TSink1"); loader::play_sound(SoundIndex4, ball, "TSink1");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

View File

@ -60,7 +60,7 @@ void TSoloTarget::Collision(TBall* ball, vector2* nextPosition, vector2* directi
{ {
Message(MessageCode::TSoloTargetDisable, 0.0); Message(MessageCode::TSoloTargetDisable, 0.0);
Timer = timer::set(TimerTime, this, TimerExpired); Timer = timer::set(TimerTime, this, TimerExpired);
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

View File

@ -67,7 +67,7 @@ void TTextBox::TimerExpired(int timerId, void* caller)
delete message; delete message;
tb->CurrentMessage = nextMessage; tb->CurrentMessage = nextMessage;
tb->Draw(); tb->Draw();
control::handler(60, tb); control::handler(MessageCode::ControlTimerExpired, tb);
} }
} }

View File

@ -37,5 +37,5 @@ void TTimer::TimerExpired(int timerId, void* caller)
{ {
auto timer = static_cast<TTimer*>(caller); auto timer = static_cast<TTimer*>(caller);
timer->Timer = 0; timer->Timer = 0;
control::handler(60, timer); control::handler(MessageCode::ControlTimerExpired, timer);
} }

View File

@ -20,6 +20,6 @@ void TTripwire::Collision(TBall* ball, vector2* nextPosition, vector2* direction
if (!PinballTable->TiltLockFlag) if (!PinballTable->TiltLockFlag)
{ {
loader::play_sound(SoftHitSoundId, ball, "TTripwire"); loader::play_sound(SoftHitSoundId, ball, "TTripwire");
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

View File

@ -33,7 +33,7 @@ void TWall::Collision(TBall* ball, vector2* nextPosition, vector2* direction, fl
render::sprite_set_bitmap(RenderSprite, BmpPtr); render::sprite_set_bitmap(RenderSprite, BmpPtr);
Timer = timer::set(0.1f, this, TimerExpired); Timer = timer::set(0.1f, this, TimerExpired);
} }
control::handler(63, this); control::handler(MessageCode::ControlCollision, this);
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
enum class MessageCode;
class TSink; class TSink;
class TLight; class TLight;
class TSound; class TSound;
@ -48,7 +49,7 @@ struct component_tag : component_tag_base
struct component_control struct component_control
{ {
void (* ControlFunc)(int, TPinballComponent*); void (* ControlFunc)(MessageCode, TPinballComponent*);
unsigned int ScoreCount; unsigned int ScoreCount;
const int* Scores; const int* Scores;
}; };
@ -76,7 +77,7 @@ public:
static void make_links(TPinballTable* table); static void make_links(TPinballTable* table);
static void ClearLinks(); static void ClearLinks();
static TPinballComponent* make_component_link(component_tag_base& tag); static TPinballComponent* make_component_link(component_tag_base& tag);
static void handler(int code, TPinballComponent* cmp); static void handler(MessageCode code, TPinballComponent* cmp);
static void pbctrl_bdoor_controller(char key); static void pbctrl_bdoor_controller(char key);
static void table_add_extra_ball(float count); static void table_add_extra_ball(float count);
static void table_set_bonus_hold(); static void table_set_bonus_hold();
@ -92,100 +93,100 @@ public:
static int AddRankProgress(int rank); static int AddRankProgress(int rank);
static void AdvanceWormHoleDestination(int flag); static void AdvanceWormHoleDestination(int flag);
static void FlipperRebounderControl1(int code, TPinballComponent* caller); static void FlipperRebounderControl1(MessageCode code, TPinballComponent* caller);
static void FlipperRebounderControl2(int code, TPinballComponent* caller); static void FlipperRebounderControl2(MessageCode code, TPinballComponent* caller);
static void RebounderControl(int code, TPinballComponent* caller); static void RebounderControl(MessageCode code, TPinballComponent* caller);
static void BumperControl(int code, TPinballComponent* caller); static void BumperControl(MessageCode code, TPinballComponent* caller);
static void LeftKickerControl(int code, TPinballComponent* caller); static void LeftKickerControl(MessageCode code, TPinballComponent* caller);
static void RightKickerControl(int code, TPinballComponent* caller); static void RightKickerControl(MessageCode code, TPinballComponent* caller);
static void LeftKickerGateControl(int code, TPinballComponent* caller); static void LeftKickerGateControl(MessageCode code, TPinballComponent* caller);
static void RightKickerGateControl(int code, TPinballComponent* caller); static void RightKickerGateControl(MessageCode code, TPinballComponent* caller);
static void DeploymentChuteToEscapeChuteOneWayControl(int code, TPinballComponent* caller); static void DeploymentChuteToEscapeChuteOneWayControl(MessageCode code, TPinballComponent* caller);
static void DeploymentChuteToTableOneWayControl(int code, TPinballComponent* caller); static void DeploymentChuteToTableOneWayControl(MessageCode code, TPinballComponent* caller);
static void DrainBallBlockerControl(int code, TPinballComponent* caller); static void DrainBallBlockerControl(MessageCode code, TPinballComponent* caller);
static void LaunchRampControl(int code, TPinballComponent* caller); static void LaunchRampControl(MessageCode code, TPinballComponent* caller);
static void LaunchRampHoleControl(int code, TPinballComponent* caller); static void LaunchRampHoleControl(MessageCode code, TPinballComponent* caller);
static void SpaceWarpRolloverControl(int code, TPinballComponent* caller); static void SpaceWarpRolloverControl(MessageCode code, TPinballComponent* caller);
static void ReentryLanesRolloverControl(int code, TPinballComponent* caller); static void ReentryLanesRolloverControl(MessageCode code, TPinballComponent* caller);
static void BumperGroupControl(int code, TPinballComponent* caller); static void BumperGroupControl(MessageCode code, TPinballComponent* caller);
static void LaunchLanesRolloverControl(int code, TPinballComponent* caller); static void LaunchLanesRolloverControl(MessageCode code, TPinballComponent* caller);
static void OutLaneRolloverControl(int code, TPinballComponent* caller); static void OutLaneRolloverControl(MessageCode code, TPinballComponent* caller);
static void ExtraBallLightControl(int code, TPinballComponent* caller); static void ExtraBallLightControl(MessageCode code, TPinballComponent* caller);
static void ReturnLaneRolloverControl(int code, TPinballComponent* caller); static void ReturnLaneRolloverControl(MessageCode code, TPinballComponent* caller);
static void BonusLaneRolloverControl(int code, TPinballComponent* caller); static void BonusLaneRolloverControl(MessageCode code, TPinballComponent* caller);
static void FuelRollover1Control(int code, TPinballComponent* caller); static void FuelRollover1Control(MessageCode code, TPinballComponent* caller);
static void FuelRollover2Control(int code, TPinballComponent* caller); static void FuelRollover2Control(MessageCode code, TPinballComponent* caller);
static void FuelRollover3Control(int code, TPinballComponent* caller); static void FuelRollover3Control(MessageCode code, TPinballComponent* caller);
static void FuelRollover4Control(int code, TPinballComponent* caller); static void FuelRollover4Control(MessageCode code, TPinballComponent* caller);
static void FuelRollover5Control(int code, TPinballComponent* caller); static void FuelRollover5Control(MessageCode code, TPinballComponent* caller);
static void FuelRollover6Control(int code, TPinballComponent* caller); static void FuelRollover6Control(MessageCode code, TPinballComponent* caller);
static void HyperspaceLightGroupControl(int code, TPinballComponent* caller); static void HyperspaceLightGroupControl(MessageCode code, TPinballComponent* caller);
static void WormHoleControl(int code, TPinballComponent* caller); static void WormHoleControl(MessageCode code, TPinballComponent* caller);
static void LeftFlipperControl(int code, TPinballComponent* caller); static void LeftFlipperControl(MessageCode code, TPinballComponent* caller);
static void RightFlipperControl(int code, TPinballComponent* caller); static void RightFlipperControl(MessageCode code, TPinballComponent* caller);
static void JackpotLightControl(int code, TPinballComponent* caller); static void JackpotLightControl(MessageCode code, TPinballComponent* caller);
static void BonusLightControl(int code, TPinballComponent* caller); static void BonusLightControl(MessageCode code, TPinballComponent* caller);
static void BoosterTargetControl(int code, TPinballComponent* caller); static void BoosterTargetControl(MessageCode code, TPinballComponent* caller);
static void MedalLightGroupControl(int code, TPinballComponent* caller); static void MedalLightGroupControl(MessageCode code, TPinballComponent* caller);
static void MultiplierLightGroupControl(int code, TPinballComponent* caller); static void MultiplierLightGroupControl(MessageCode code, TPinballComponent* caller);
static void FuelSpotTargetControl(int code, TPinballComponent* caller); static void FuelSpotTargetControl(MessageCode code, TPinballComponent* caller);
static void MissionSpotTargetControl(int code, TPinballComponent* caller); static void MissionSpotTargetControl(MessageCode code, TPinballComponent* caller);
static void LeftHazardSpotTargetControl(int code, TPinballComponent* caller); static void LeftHazardSpotTargetControl(MessageCode code, TPinballComponent* caller);
static void RightHazardSpotTargetControl(int code, TPinballComponent* caller); static void RightHazardSpotTargetControl(MessageCode code, TPinballComponent* caller);
static void WormHoleDestinationControl(int code, TPinballComponent* caller); static void WormHoleDestinationControl(MessageCode code, TPinballComponent* caller);
static void BlackHoleKickoutControl(int code, TPinballComponent* caller); static void BlackHoleKickoutControl(MessageCode code, TPinballComponent* caller);
static void FlagControl(int code, TPinballComponent* caller); static void FlagControl(MessageCode code, TPinballComponent* caller);
static void GravityWellKickoutControl(int code, TPinballComponent* caller); static void GravityWellKickoutControl(MessageCode code, TPinballComponent* caller);
static void SkillShotGate1Control(int code, TPinballComponent* caller); static void SkillShotGate1Control(MessageCode code, TPinballComponent* caller);
static void SkillShotGate2Control(int code, TPinballComponent* caller); static void SkillShotGate2Control(MessageCode code, TPinballComponent* caller);
static void SkillShotGate3Control(int code, TPinballComponent* caller); static void SkillShotGate3Control(MessageCode code, TPinballComponent* caller);
static void SkillShotGate4Control(int code, TPinballComponent* caller); static void SkillShotGate4Control(MessageCode code, TPinballComponent* caller);
static void SkillShotGate5Control(int code, TPinballComponent* caller); static void SkillShotGate5Control(MessageCode code, TPinballComponent* caller);
static void SkillShotGate6Control(int code, TPinballComponent* caller); static void SkillShotGate6Control(MessageCode code, TPinballComponent* caller);
static void ShootAgainLightControl(int code, TPinballComponent* caller); static void ShootAgainLightControl(MessageCode code, TPinballComponent* caller);
static void EscapeChuteSinkControl(int code, TPinballComponent* caller); static void EscapeChuteSinkControl(MessageCode code, TPinballComponent* caller);
static void MissionControl(int code, TPinballComponent* caller); static void MissionControl(MessageCode code, TPinballComponent* caller);
static void HyperspaceKickOutControl(int code, TPinballComponent* caller); static void HyperspaceKickOutControl(MessageCode code, TPinballComponent* caller);
static void PlungerControl(int code, TPinballComponent* caller); static void PlungerControl(MessageCode code, TPinballComponent* caller);
static void MedalTargetControl(int code, TPinballComponent* caller); static void MedalTargetControl(MessageCode code, TPinballComponent* caller);
static void MultiplierTargetControl(int code, TPinballComponent* caller); static void MultiplierTargetControl(MessageCode code, TPinballComponent* caller);
static void BallDrainControl(int code, TPinballComponent* caller); static void BallDrainControl(MessageCode code, TPinballComponent* caller);
static void table_control_handler(int code); static void table_control_handler(MessageCode code);
static void AlienMenaceController(int code, TPinballComponent* caller); static void AlienMenaceController(MessageCode code, TPinballComponent* caller);
static void AlienMenacePartTwoController(int code, TPinballComponent* caller); static void AlienMenacePartTwoController(MessageCode code, TPinballComponent* caller);
static void BlackHoleThreatController(int code, TPinballComponent* caller); static void BlackHoleThreatController(MessageCode code, TPinballComponent* caller);
static void BugHuntController(int code, TPinballComponent* caller); static void BugHuntController(MessageCode code, TPinballComponent* caller);
static void CosmicPlagueController(int code, TPinballComponent* caller); static void CosmicPlagueController(MessageCode code, TPinballComponent* caller);
static void CosmicPlaguePartTwoController(int code, TPinballComponent* caller); static void CosmicPlaguePartTwoController(MessageCode code, TPinballComponent* caller);
static void DoomsdayMachineController(int code, TPinballComponent* caller); static void DoomsdayMachineController(MessageCode code, TPinballComponent* caller);
static void GameoverController(int code, TPinballComponent* caller); static void GameoverController(MessageCode code, TPinballComponent* caller);
static void LaunchTrainingController(int code, TPinballComponent* caller); static void LaunchTrainingController(MessageCode code, TPinballComponent* caller);
static void MaelstromController(int code, TPinballComponent* caller); static void MaelstromController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartEightController(int code, TPinballComponent* caller); static void MaelstromPartEightController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartFiveController(int code, TPinballComponent* caller); static void MaelstromPartFiveController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartFourController(int code, TPinballComponent* caller); static void MaelstromPartFourController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartSevenController(int code, TPinballComponent* caller); static void MaelstromPartSevenController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartSixController(int code, TPinballComponent* caller); static void MaelstromPartSixController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartThreeController(int code, TPinballComponent* caller); static void MaelstromPartThreeController(MessageCode code, TPinballComponent* caller);
static void MaelstromPartTwoController(int code, TPinballComponent* caller); static void MaelstromPartTwoController(MessageCode code, TPinballComponent* caller);
static void PracticeMissionController(int code, TPinballComponent* caller); static void PracticeMissionController(MessageCode code, TPinballComponent* caller);
static void ReconnaissanceController(int code, TPinballComponent* caller); static void ReconnaissanceController(MessageCode code, TPinballComponent* caller);
static void ReentryTrainingController(int code, TPinballComponent* caller); static void ReentryTrainingController(MessageCode code, TPinballComponent* caller);
static void RescueMissionController(int code, TPinballComponent* caller); static void RescueMissionController(MessageCode code, TPinballComponent* caller);
static void SatelliteController(int code, TPinballComponent* caller); static void SatelliteController(MessageCode code, TPinballComponent* caller);
static void ScienceMissionController(int code, TPinballComponent* caller); static void ScienceMissionController(MessageCode code, TPinballComponent* caller);
static void SecretMissionGreenController(int code, TPinballComponent* caller); static void SecretMissionGreenController(MessageCode code, TPinballComponent* caller);
static void SecretMissionRedController(int code, TPinballComponent* caller); static void SecretMissionRedController(MessageCode code, TPinballComponent* caller);
static void SecretMissionYellowController(int code, TPinballComponent* caller); static void SecretMissionYellowController(MessageCode code, TPinballComponent* caller);
static void SelectMissionController(int code, TPinballComponent* caller); static void SelectMissionController(MessageCode code, TPinballComponent* caller);
static void SpaceRadiationController(int code, TPinballComponent* caller); static void SpaceRadiationController(MessageCode code, TPinballComponent* caller);
static void StrayCometController(int code, TPinballComponent* caller); static void StrayCometController(MessageCode code, TPinballComponent* caller);
static void TimeWarpController(int code, TPinballComponent* caller); static void TimeWarpController(MessageCode code, TPinballComponent* caller);
static void TimeWarpPartTwoController(int code, TPinballComponent* caller); static void TimeWarpPartTwoController(MessageCode code, TPinballComponent* caller);
static void UnselectMissionController(int code, TPinballComponent* caller); static void UnselectMissionController(MessageCode code, TPinballComponent* caller);
static void WaitingDeploymentController(int code, TPinballComponent* caller); static void WaitingDeploymentController(MessageCode code, TPinballComponent* caller);
private: private:
static int extraball_light_flag; static int extraball_light_flag;
}; };