diff --git a/SpaceCadetPinball/TLight.cpp b/SpaceCadetPinball/TLight.cpp index b56dc8c..f4a4ac0 100644 --- a/SpaceCadetPinball/TLight.cpp +++ b/SpaceCadetPinball/TLight.cpp @@ -8,7 +8,7 @@ #include "timer.h" #include "TPinballTable.h" -TLight::TLight(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, true) +TLight::TLight(TPinballTable* table, int groupIndex) : TPinballComponent2(table, groupIndex, true) { TimeoutTimer = 0; FlasherOnFlag = false; @@ -23,13 +23,13 @@ TLight::TLight(TPinballTable* table, int groupIndex) : TPinballComponent(table, SourceDelay[1] = *floatArr2; } -int TLight::Message(int code, float value) +int TLight::Message2(MessageCode code, float value) { int bmpIndex; switch (code) { - case ~MessageCode::Reset: + case MessageCode::Reset: Reset(); for (auto index = 0; index < PinballTable->PlayerCount; ++index) { @@ -40,7 +40,7 @@ int TLight::Message(int code, float value) playerPtr->MessageField = MessageField; } break; - case ~MessageCode::PlayerChanged: + case MessageCode::PlayerChanged: { auto playerPtr = &PlayerData[PinballTable->CurrentPlayer]; playerPtr->FlasherOnFlag = FlasherOnFlag; @@ -57,29 +57,29 @@ int TLight::Message(int code, float value) MessageField = playerPtr->MessageField; if (LightOnBmpIndex) { - Message(11, static_cast(LightOnBmpIndex)); + Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(LightOnBmpIndex)); } if (LightOnFlag) - Message(1, 0.0); + Message2(MessageCode::TLightTurnOn, 0.0); if (FlasherOnFlag) - Message(4, 0.0); + Message2(MessageCode::TLightFlasherStart, 0.0); break; } - case 0: + case MessageCode::TLightTurnOff: LightOnFlag = false; if (!FlasherOnFlag && !ToggledOffFlag && !ToggledOnFlag) SetSpriteBmp(BmpArr[0]); break; - case 1: + case MessageCode::TLightTurnOn: LightOnFlag = true; if (!FlasherOnFlag && !ToggledOffFlag && !ToggledOnFlag) SetSpriteBmp(BmpArr[1]); break; - case 2: + case MessageCode::TLightGetLightOnFlag: return LightOnFlag; - case 3: + case MessageCode::TLightGetFlasherOnFlag: return FlasherOnFlag; - case 4: + case MessageCode::TLightFlasherStart: schedule_timeout(0.0); if (!FlasherOnFlag || !FlashTimer) { @@ -90,15 +90,15 @@ int TLight::Message(int code, float value) flasher_start(LightOnFlag); } break; - case 5: + case MessageCode::TLightApplyMultDelay: FlashDelay[0] = value * SourceDelay[0]; FlashDelay[1] = value * SourceDelay[1]; break; - case 6: + case MessageCode::TLightApplyDelay: FlashDelay[0] = SourceDelay[0]; FlashDelay[1] = SourceDelay[1]; break; - case 7: + case MessageCode::TLightFlasherStartTimed: if (!FlasherOnFlag) flasher_start(LightOnFlag); FlasherOnFlag = true; @@ -107,7 +107,7 @@ int TLight::Message(int code, float value) ToggledOffFlag = false; schedule_timeout(value); break; - case 8: + case MessageCode::TLightTurnOffTimed: if (!ToggledOffFlag) { if (FlasherOnFlag) @@ -124,7 +124,7 @@ int TLight::Message(int code, float value) } schedule_timeout(value); break; - case 9: + case MessageCode::TLightTurnOnTimed: if (!ToggledOnFlag) { if (FlasherOnFlag) @@ -141,7 +141,7 @@ int TLight::Message(int code, float value) } schedule_timeout(value); break; - case 11: + case MessageCode::TLightSetOnStateBmpIndex: LightOnBmpIndex = Clamp(static_cast(floor(value)), 0, static_cast(ListBitmap->size()) - 1); BmpArr[0] = nullptr; BmpArr[1] = ListBitmap->at(LightOnBmpIndex); @@ -160,19 +160,19 @@ int TLight::Message(int code, float value) } SetSpriteBmp(BmpArr[bmpIndex]); break; - case 12: + case MessageCode::TLightIncOnStateBmpIndex: bmpIndex = LightOnBmpIndex + 1; if (bmpIndex >= static_cast(ListBitmap->size())) bmpIndex = static_cast(ListBitmap->size()) - 1; - Message(11, static_cast(bmpIndex)); + Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(bmpIndex)); break; - case 13: + case MessageCode::TLightDecOnStateBmpIndex: bmpIndex = LightOnBmpIndex - 1; if (bmpIndex < 0) bmpIndex = 0; - Message(11, static_cast(bmpIndex)); + Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(bmpIndex)); break; - case 14: + case MessageCode::TLightResetTimed: if (TimeoutTimer) timer::kill(TimeoutTimer); TimeoutTimer = 0; @@ -183,49 +183,49 @@ int TLight::Message(int code, float value) ToggledOnFlag = false; SetSpriteBmp(BmpArr[LightOnFlag]); break; - case 15: + case MessageCode::TLightFlasherStartTimedThenStayOn: TurnOffAfterFlashingFg = false; if (UndoOverrideTimer) timer::kill(UndoOverrideTimer); UndoOverrideTimer = 0; - Message(1, 0.0); - Message(7, value); + Message2(MessageCode::TLightTurnOn, 0.0); + Message2(MessageCode::TLightFlasherStartTimed, value); break; - case 16: + case MessageCode::TLightFlasherStartTimedThenStayOff: if (UndoOverrideTimer) timer::kill(UndoOverrideTimer); UndoOverrideTimer = 0; - Message(7, value); + Message2(MessageCode::TLightFlasherStartTimed, value); TurnOffAfterFlashingFg = true; break; - case 17: - Message(static_cast(floor(value)) != 0, 0.0); + case MessageCode::TLightToggleValue: + Message2(static_cast(floor(value)) ? MessageCode::TLightTurnOn : MessageCode::TLightTurnOff, 0.0); return LightOnFlag; - case 18: - Message(17, value); - Message(14, 0.0); + case MessageCode::TLightResetAndToggleValue: + Message2(MessageCode::TLightToggleValue, value); + Message2(MessageCode::TLightResetTimed, 0.0); return LightOnFlag; - case 19: - Message(1, 0.0); - Message(14, 0.0); + case MessageCode::TLightResetAndTurnOn: + Message2(MessageCode::TLightTurnOn, 0.0); + Message2(MessageCode::TLightResetTimed, 0.0); break; - case 20: - Message(0, 0.0); - Message(14, 0.0); + case MessageCode::TLightResetAndTurnOff: + Message2(MessageCode::TLightTurnOff, 0.0); + Message2(MessageCode::TLightResetTimed, 0.0); break; - case 21: - Message(17, !LightOnFlag); + case MessageCode::TLightToggle: + Message2(MessageCode::TLightToggleValue, !LightOnFlag); return LightOnFlag; - case 22: - Message(18, !LightOnFlag); + case MessageCode::TLightResetAndToggle: + Message2(MessageCode::TLightResetAndToggleValue, !LightOnFlag); return LightOnFlag; - case 23: + case MessageCode::TLightSetMessageField: MessageField = static_cast(floor(value)); break; - case -24: - case -25: + case MessageCode::TLightFtTmpOverrideOn: + case MessageCode::TLightFtTmpOverrideOff: // FT codes in negative to avoid overlap with 3DPB TLightGroup codes - render::sprite_set_bitmap(RenderSprite, BmpArr[code == -24]); + render::sprite_set_bitmap(RenderSprite, BmpArr[code == MessageCode::TLightFtTmpOverrideOn]); if (UndoOverrideTimer) timer::kill(UndoOverrideTimer); UndoOverrideTimer = 0; @@ -235,7 +235,7 @@ int TLight::Message(int code, float value) UndoOverrideTimer = timer::set(value, this, UndoTmpOverride); } break; - case -26: + case MessageCode::TLightFtResetOverride: if (UndoOverrideTimer) timer::kill(UndoOverrideTimer); UndoOverrideTimer = 0; @@ -298,7 +298,7 @@ void TLight::TimerExpired(int timerId, void* caller) if (light->TurnOffAfterFlashingFg) { light->TurnOffAfterFlashingFg = false; - light->Message(20, 0.0); + light->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } if (light->Control) control::handler(60, light); @@ -341,5 +341,5 @@ void TLight::flasher_callback(int timerId, void* caller) void TLight::UndoTmpOverride(int timerId, void* caller) { auto light = static_cast(caller); - light->Message(-26, 0.0f); + light->Message2(MessageCode::TLightFtResetOverride, 0.0f); } diff --git a/SpaceCadetPinball/TLight.h b/SpaceCadetPinball/TLight.h index 3990b3d..3c88e93 100644 --- a/SpaceCadetPinball/TLight.h +++ b/SpaceCadetPinball/TLight.h @@ -13,11 +13,11 @@ struct TLight_player_backup class TLight : - public TPinballComponent + public TPinballComponent2 { public: TLight(TPinballTable* table, int groupIndex); - int Message(int code, float value) override; + int Message2(MessageCode code, float value) override; void Reset(); void schedule_timeout(float time); void flasher_stop(int bmpIndex); diff --git a/SpaceCadetPinball/TLightBargraph.cpp b/SpaceCadetPinball/TLightBargraph.cpp index 23c3e15..62c679d 100644 --- a/SpaceCadetPinball/TLightBargraph.cpp +++ b/SpaceCadetPinball/TLightBargraph.cpp @@ -32,13 +32,13 @@ TLightBargraph::~TLightBargraph() delete[] TimerTimeArray; } -int TLightBargraph::Message(int code, float value) +int TLightBargraph::Message2(MessageCode code, float value) { switch (code) { - case 37: + case MessageCode::TLightGroupGetOnCount: return TimeIndex; - case 45: + case MessageCode::TLightGroupToggleSplitIndex: { if (TimerBargraph) { @@ -51,24 +51,24 @@ int TLightBargraph::Message(int code, float value) timeIndex = maxCount - 1; if (timeIndex >= 0) { - TLightGroup::Message(45, static_cast(timeIndex / 2)); + TLightGroup::Message2(MessageCode::TLightGroupToggleSplitIndex, static_cast(timeIndex / 2)); if (!(timeIndex & 1)) - TLightGroup::Message(46, 0.0); + TLightGroup::Message2(MessageCode::TLightGroupStartFlasher, 0.0); if (TimerTimeArray) TimerBargraph = timer::set(TimerTimeArray[timeIndex], this, BargraphTimerExpired); TimeIndex = timeIndex; } else { - TLightGroup::Message(20, 0.0); + TLightGroup::Message2(MessageCode::TLightResetAndTurnOff, 0.0); TimeIndex = 0; } break; } - case ~MessageCode::SetTiltLock: + case MessageCode::SetTiltLock: Reset(); break; - case ~MessageCode::PlayerChanged: + case MessageCode::PlayerChanged: if (TimerBargraph) { timer::kill(TimerBargraph); @@ -79,10 +79,10 @@ int TLightBargraph::Message(int code, float value) TimeIndex = PlayerTimerIndexBackup[static_cast(floor(value))]; if (TimeIndex) { - TLightBargraph::Message(45, static_cast(TimeIndex)); + TLightBargraph::Message2(MessageCode::TLightGroupToggleSplitIndex, static_cast(TimeIndex)); } break; - case ~MessageCode::Reset: + case MessageCode::Reset: { Reset(); int* playerPtr = PlayerTimerIndexBackup; @@ -92,11 +92,11 @@ int TLightBargraph::Message(int code, float value) ++playerPtr; } - TLightGroup::Message(~MessageCode::Reset, value); + TLightGroup::Message2(MessageCode::Reset, value); break; } default: - TLightGroup::Message(code, value); + TLightGroup::Message2(code, value); break; } return 0; @@ -119,12 +119,12 @@ void TLightBargraph::BargraphTimerExpired(int timerId, void* caller) bar->TimerBargraph = 0; if (bar->TimeIndex) { - bar->Message(45, static_cast(bar->TimeIndex - 1)); + bar->Message2(MessageCode::TLightGroupToggleSplitIndex, static_cast(bar->TimeIndex - 1)); control::handler(60, bar); } else { - bar->Message(20, 0.0); + bar->Message2(MessageCode::TLightResetAndTurnOff, 0.0); control::handler(47, bar); } } diff --git a/SpaceCadetPinball/TLightBargraph.h b/SpaceCadetPinball/TLightBargraph.h index faf9807..c21ba96 100644 --- a/SpaceCadetPinball/TLightBargraph.h +++ b/SpaceCadetPinball/TLightBargraph.h @@ -7,7 +7,7 @@ class TLightBargraph : public: TLightBargraph(TPinballTable* table, int groupIndex); ~TLightBargraph() override; - int Message(int code, float value) override; + int Message2(MessageCode code, float value) override; void Reset() override; static void BargraphTimerExpired(int timerId, void* caller); diff --git a/SpaceCadetPinball/TLightGroup.cpp b/SpaceCadetPinball/TLightGroup.cpp index c308fff..59e2fcd 100644 --- a/SpaceCadetPinball/TLightGroup.cpp +++ b/SpaceCadetPinball/TLightGroup.cpp @@ -8,7 +8,7 @@ #include "TLight.h" #include "TPinballTable.h" -TLightGroup::TLightGroup(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false) +TLightGroup::TLightGroup(TPinballTable* table, int groupIndex) : TPinballComponent2(table, groupIndex, false) { Timer = 0; NotifyTimer = 0; @@ -28,15 +28,15 @@ TLightGroup::TLightGroup(TPinballTable* table, int groupIndex) : TPinballCompone } } -int TLightGroup::Message(int code, float value) +int TLightGroup::Message2(MessageCode code, float value) { auto const count = static_cast(List.size()); switch (code) { - case ~MessageCode::SetTiltLock: - case ~MessageCode::GameOver: + case MessageCode::SetTiltLock: + case MessageCode::GameOver: break; - case ~MessageCode::PlayerChanged: + case MessageCode::PlayerChanged: { auto playerPtr = &PlayerData[PinballTable->CurrentPlayer]; playerPtr->MessageField = MessageField; @@ -53,7 +53,7 @@ int TLightGroup::Message(int code, float value) TimerExpired(0, this); break; } - case ~MessageCode::Reset: + case MessageCode::Reset: Reset(); for (auto index = 0; index < PinballTable->PlayerCount; index++) { @@ -63,99 +63,99 @@ int TLightGroup::Message(int code, float value) playerPtr->Timer1Time = Timer1Time; } break; - case 24: + case MessageCode::TLightGroupStepBackward: { auto lastLight = List.at(count - 1); if (lastLight->FlasherOnFlag || lastLight->ToggledOnFlag || lastLight->ToggledOffFlag) break; - if (MessageField2) + if (MessageField2 != MessageCode::TLightGroupNull) { - TLightGroup::Message(34, 0.0); + TLightGroup::Message2(MessageCode::TLightGroupReset, 0.0); } AnimationFlag = 1; MessageField2 = code; - auto lightMessageField = lastLight->MessageField; - auto lightStatusBefore = lastLight->LightOnFlag; + auto lastMessage = lastLight->MessageField; + auto lastStatus = lastLight->LightOnFlag; for (auto index = count - 1; index > 0; --index) { auto lightCur = List.at(index); auto lightPrev = List.at(index - 1); - lightCur->Message(lightPrev->LightOnFlag, 0.0); + lightCur->Message2(lightPrev->LightOnFlag ? MessageCode::TLightTurnOn : MessageCode::TLightTurnOff, 0.0); lightCur->MessageField = lightPrev->MessageField; } auto firstLight = List.at(0); - firstLight->Message(lightStatusBefore, 0.0); - firstLight->MessageField = lightMessageField; + firstLight->Message2(lastStatus ? MessageCode::TLightTurnOn : MessageCode::TLightTurnOff, 0.0); + firstLight->MessageField = lastMessage; reschedule_animation(value); break; } - case 25: + case MessageCode::TLightGroupStepForward: { auto lastLight = List.at(count - 1); if (lastLight->FlasherOnFlag || lastLight->ToggledOnFlag || lastLight->ToggledOffFlag) break; - if (MessageField2) + if (MessageField2 != MessageCode::TLightGroupNull) { - TLightGroup::Message(34, 0.0); + TLightGroup::Message2(MessageCode::TLightGroupReset, 0.0); } auto firstLight = List.at(0); AnimationFlag = 1; MessageField2 = code; - auto lightMessageField = firstLight->MessageField; - auto lightStatusBefore = firstLight->LightOnFlag; + auto firstMessage = firstLight->MessageField; + auto firstStatus = firstLight->LightOnFlag; for (auto index = 0; index < count - 1; index++) { auto lightCur = List.at(index); auto lightNext = List.at(index + 1); - lightCur->Message(lightNext->LightOnFlag, 0.0); + lightCur->Message2(lightNext->LightOnFlag ? MessageCode::TLightTurnOn : MessageCode::TLightTurnOff, 0.0); lightCur->MessageField = lightNext->MessageField; } - lastLight->Message(lightStatusBefore, 0.0); - lastLight->MessageField = lightMessageField; + lastLight->Message2(firstStatus ? MessageCode::TLightTurnOn : MessageCode::TLightTurnOff, 0.0); + lastLight->MessageField = firstMessage; reschedule_animation(value); break; } - case 26: + case MessageCode::TLightGroupAnimationBackward: { - if (AnimationFlag || !MessageField2) + if (AnimationFlag || MessageField2 == MessageCode::TLightGroupNull) start_animation(); MessageField2 = code; AnimationFlag = 0; auto lastLight = List.at(count - 1); - auto flasherFlag2 = lastLight->ToggledOnFlag; + auto lastStatus = lastLight->ToggledOnFlag; for (auto i = count - 1; i > 0; --i) { auto lightCur = List.at(i); auto lightPrev = List.at(i - 1); - lightCur->Message(lightPrev->ToggledOnFlag + 8, 0.0); + lightCur->Message2(lightPrev->ToggledOnFlag ? MessageCode::TLightTurnOnTimed : MessageCode::TLightTurnOffTimed, 0.0); } auto firstLight = List.at(0); - firstLight->Message((flasherFlag2 != 0) + 8, 0); + firstLight->Message2(lastStatus ? MessageCode::TLightTurnOnTimed : MessageCode::TLightTurnOffTimed, 0); reschedule_animation(value); break; } - case 27: + case MessageCode::TLightGroupAnimationForward: { - if (AnimationFlag || !MessageField2) + if (AnimationFlag || MessageField2 == MessageCode::TLightGroupNull) start_animation(); MessageField2 = code; AnimationFlag = 0; auto firstLight = List.at(0); - auto flasherFlag2 = firstLight->ToggledOnFlag; + auto firstStatus = firstLight->ToggledOnFlag; for (auto i = 0; i < count - 1; i++) { auto lightCur = List.at(i); auto lightNext = List.at(i + 1); - lightCur->Message(lightNext->ToggledOnFlag + 8, 0.0); + lightCur->Message2(lightNext->ToggledOnFlag ? MessageCode::TLightTurnOnTimed : MessageCode::TLightTurnOffTimed, 0.0); } auto lastLight = List.at(count - 1); - lastLight->Message((flasherFlag2 != 0) + 8, 0); + lastLight->Message2(firstStatus ? MessageCode::TLightTurnOnTimed : MessageCode::TLightTurnOffTimed, 0); reschedule_animation(value); break; } - case 28: + case MessageCode::TLightGroupLightShowAnimation: { - if (AnimationFlag || !MessageField2) + if (AnimationFlag || MessageField2 == MessageCode::TLightGroupNull) start_animation(); MessageField2 = code; AnimationFlag = 0; @@ -164,27 +164,27 @@ int TLightGroup::Message(int code, float value) if (rand() % 100 > 70) { auto randVal = RandFloat() * value * 3.0f + 0.1f; - light->Message(9, randVal); + light->Message2(MessageCode::TLightTurnOnTimed, randVal); } } reschedule_animation(value); break; } - case 29: + case MessageCode::TLightGroupGameOverAnimation: { - if (AnimationFlag || !MessageField2) + if (AnimationFlag || MessageField2 == MessageCode::TLightGroupNull) start_animation(); MessageField2 = code; AnimationFlag = 0; for (auto light : List) { auto randVal = static_cast(rand() % 100 > 70); - light->Message(18, randVal); + light->Message2(MessageCode::TLightResetAndToggleValue, randVal); } reschedule_animation(value); break; } - case 30: + case MessageCode::TLightGroupRandomAnimationSaturation: { auto noBmpInd1Count = 0; for (auto light : List) @@ -201,16 +201,16 @@ int TLightGroup::Message(int code, float value) auto light = *it; if (!light->LightOnFlag && randModCount-- == 0) { - light->Message(1, 0.0); + light->Message2(MessageCode::TLightTurnOn, 0.0); break; } } - if (MessageField2) + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); break; } - case 31: + case MessageCode::TLightGroupRandomAnimationDesaturation: { auto bmpInd1Count = 0; for (auto light : List) @@ -227,71 +227,72 @@ int TLightGroup::Message(int code, float value) auto light = *it; if (light->LightOnFlag && randModCount-- == 0) { - light->Message(0, 0.0); + light->Message2(MessageCode::TLightTurnOff, 0.0); break; } } - if (MessageField2) + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); break; } - case 32: + case MessageCode::TLightGroupOffsetAnimationForward: { auto index = next_light_up(); if (index < 0) break; - List.at(index)->Message(1, 0.0); - if (MessageField2) + List.at(index)->Message2(MessageCode::TLightTurnOn, 0.0); + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); return 1; } - case 33: + case MessageCode::TLightGroupOffsetAnimationBackward: { auto index = next_light_down(); if (index < 0) break; - List.at(index)->Message(0, 0.0); - if (MessageField2) + List.at(index)->Message2(MessageCode::TLightTurnOff, 0.0); + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); return 1; } - case 34: + case MessageCode::TLightGroupReset: { if (Timer) timer::kill(Timer); Timer = 0; - if (MessageField2 == 26 || MessageField2 == 27 || MessageField2 == 28) - TLightGroup::Message(14, 0.0); - MessageField2 = 0; + if (MessageField2 == MessageCode::TLightGroupAnimationBackward || + MessageField2 == MessageCode::TLightGroupAnimationForward || MessageField2 == MessageCode::TLightGroupLightShowAnimation) + TLightGroup::Message2(MessageCode::TLightResetTimed, 0.0); + MessageField2 = MessageCode::TLightGroupNull; AnimationFlag = 0; break; } - case 35: + case MessageCode::TLightGroupTurnOnAtIndex: { auto index = static_cast(floor(value)); if (index >= count || index < 0) break; auto light = List.at(index); - light->Message(1, 0.0); - if (MessageField2) + light->Message2(MessageCode::TLightTurnOn, 0.0); + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); break; } - case 36: + case MessageCode::TLightGroupTurnOffAtIndex: { auto index = static_cast(floor(value)); if (index >= count || index < 0) break; auto light = List.at(index); - light->Message(0, 0.0); - if (MessageField2) + light->Message2(MessageCode::TLightTurnOff, 0.0); + if (MessageField2 != MessageCode::TLightGroupNull) start_animation(); break; } - case 37: + case MessageCode::TLightGroupGetOnCount: { auto bmp1Count = 0; for (auto light : List) @@ -301,86 +302,86 @@ int TLightGroup::Message(int code, float value) } return bmp1Count; } - case 38: + case MessageCode::TLightGroupGetLightCount: return count; - case 39: - return MessageField2; - case 40: + case MessageCode::TLightGroupGetMessage2: + return ~MessageField2; + case MessageCode::TLightGroupGetAnimationFlag: return AnimationFlag; - case 41: + case MessageCode::TLightGroupResetAndTurnOn: { auto index = next_light_up(); if (index < 0) break; - if (MessageField2 || AnimationFlag) - TLightGroup::Message(34, 0.0); - List.at(index)->Message(15, value); + if (MessageField2 != MessageCode::TLightGroupNull || AnimationFlag) + TLightGroup::Message2(MessageCode::TLightGroupReset, 0.0); + List.at(index)->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, value); return 1; } - case 42: + case MessageCode::TLightGroupResetAndTurnOff: { auto index = next_light_down(); if (index < 0) break; - if (MessageField2 || AnimationFlag) - TLightGroup::Message(34, 0.0); - List.at(index)->Message(16, value); + if (MessageField2 != MessageCode::TLightGroupNull || AnimationFlag) + TLightGroup::Message2(MessageCode::TLightGroupReset, 0.0); + List.at(index)->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, value); return 1; } - case 43: + case MessageCode::TLightGroupRestartNotifyTimer: if (NotifyTimer) timer::kill(NotifyTimer); NotifyTimer = 0; if (value > 0.0f) NotifyTimer = timer::set(value, this, NotifyTimerExpired); break; - case 44: + case MessageCode::TLightGroupFlashWhenOn: { for (auto it = List.rbegin(); it != List.rend(); ++it) { auto light = *it; if (light->LightOnFlag) { - light->Message(0, 0.0); - light->Message(16, value); + light->Message2(MessageCode::TLightTurnOff, 0.0); + light->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, value); } } break; } - case 45: + case MessageCode::TLightGroupToggleSplitIndex: { - control::handler(code, this); + control::handler(~code, this); auto index = static_cast(floor(value)); if (index >= 0 && index < count) { // Turn off lights (index, end] for (auto i = count - 1; i > index; i--) { - List.at(i)->Message(20, 0.0); + List.at(i)->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } // Turn on lights [begin, index] for (auto i = index; i >= 0; i--) { - List.at(i)->Message(19, 0.0); + List.at(i)->Message2(MessageCode::TLightResetAndTurnOn, 0.0); } } break; } - case 46: + case MessageCode::TLightGroupStartFlasher: { auto index = next_light_down(); if (index >= 0) { - List.at(index)->Message(4, 0.0); + List.at(index)->Message2(MessageCode::TLightFlasherStart, 0.0); } break; } default: for (auto it = List.rbegin(); it != List.rend(); ++it) { - (*it)->Message(code, value); + (*it)->Message2(code, value); } break; } @@ -395,7 +396,7 @@ void TLightGroup::Reset() if (NotifyTimer) timer::kill(NotifyTimer); NotifyTimer = 0; - MessageField2 = 0; + MessageField2 = MessageCode::TLightGroupNull; AnimationFlag = 0; Timer1Time = Timer1TimeDefault; } @@ -407,7 +408,7 @@ void TLightGroup::reschedule_animation(float time) Timer = 0; if (time == 0) { - MessageField2 = 0; + MessageField2 = MessageCode::TLightGroupNull; AnimationFlag = 0; return; } @@ -422,9 +423,9 @@ void TLightGroup::start_animation() { auto light = *it; if (light->LightOnFlag) - light->Message(9, 0.0); + light->Message2(MessageCode::TLightTurnOnTimed, 0.0); else - light->Message(8, 0.0); + light->Message2(MessageCode::TLightTurnOffTimed, 0.0); } } @@ -452,7 +453,7 @@ void TLightGroup::TimerExpired(int timerId, void* caller) { auto group = static_cast(caller); group->Timer = 0; - group->Message(group->MessageField2, group->Timer1Time); + group->Message2(group->MessageField2, group->Timer1Time); } void TLightGroup::NotifyTimerExpired(int timerId, void* caller) diff --git a/SpaceCadetPinball/TLightGroup.h b/SpaceCadetPinball/TLightGroup.h index 0156952..44fb30b 100644 --- a/SpaceCadetPinball/TLightGroup.h +++ b/SpaceCadetPinball/TLightGroup.h @@ -7,19 +7,19 @@ class TLight; struct TLightGroup_player_backup { int MessageField; - int MessageField2; + MessageCode MessageField2; float Timer1Time; int Unknown3; }; class TLightGroup : - public TPinballComponent + public TPinballComponent2 { public: TLightGroup(TPinballTable* table, int groupIndex); ~TLightGroup() override = default; - int Message(int code, float value) override; + int Message2(MessageCode code, float value) override; virtual void Reset(); void reschedule_animation(float time); void start_animation(); @@ -32,7 +32,7 @@ public: std::vector List; float Timer1Time{}; float Timer1TimeDefault; - int MessageField2{}; + MessageCode MessageField2{}; int AnimationFlag{}; int NotifyTimer; int Timer; diff --git a/SpaceCadetPinball/TPinballComponent.h b/SpaceCadetPinball/TPinballComponent.h index de8446a..c6dfd3a 100644 --- a/SpaceCadetPinball/TPinballComponent.h +++ b/SpaceCadetPinball/TPinballComponent.h @@ -41,12 +41,13 @@ enum class MessageCode TLightFtTmpOverrideOff = -25, TLightFtResetOverride = -26, + TLightGroupNull = 0, TLightGroupStepBackward = 24, TLightGroupStepForward = 25, TLightGroupAnimationBackward = 26, TLightGroupAnimationForward = 27, - TLightGroupRandomAnimation1 = 28, - TLightGroupRandomAnimation2 = 29, + TLightGroupLightShowAnimation = 28, + TLightGroupGameOverAnimation = 29, TLightGroupRandomAnimationSaturation = 30, TLightGroupRandomAnimationDesaturation = 31, TLightGroupOffsetAnimationForward = 32, diff --git a/SpaceCadetPinball/TPinballTable.cpp b/SpaceCadetPinball/TPinballTable.cpp index 746c93a..b2b69ec 100644 --- a/SpaceCadetPinball/TPinballTable.cpp +++ b/SpaceCadetPinball/TPinballTable.cpp @@ -299,7 +299,7 @@ void TPinballTable::tilt(float time) { component->Message2(MessageCode::SetTiltLock, time); } - LightGroup->Message(8, 0); + LightGroup->Message2(MessageCode::TLightTurnOffTimed, 0); TiltLockFlag = 1; control::table_control_handler(1011); } @@ -357,7 +357,7 @@ int TPinballTable::Message2(MessageCode code, float value) } break; case MessageCode::ClearTiltLock: - LightGroup->Message(14, 0.0); + LightGroup->Message2(MessageCode::TLightResetTimed, 0.0); if (TiltLockFlag) { TiltLockFlag = 0; @@ -367,8 +367,8 @@ int TPinballTable::Message2(MessageCode code, float value) } break; case MessageCode::StartGamePlayer1: - LightGroup->Message(34, 0.0); - LightGroup->Message(20, 0.0); + LightGroup->Message2(MessageCode::TLightGroupReset, 0.0); + LightGroup->Message2(MessageCode::TLightResetAndTurnOff, 0.0); Plunger->Message2(MessageCode::PlungerStartFeedTimer, 0.0); if (Demo && Demo->ActiveFlag) rc_text = pb::get_rc_string(Msg::STRING131); @@ -446,7 +446,7 @@ int TPinballTable::Message2(MessageCode code, float value) UnknownP71 = 0; pb::InfoTextBox->Clear(); pb::MissTextBox->Clear(); - LightGroup->Message(28, 0.2f); + LightGroup->Message2(MessageCode::TLightGroupLightShowAnimation, 0.2f); auto time = loader::play_sound(SoundIndex1, nullptr, "TPinballTable2"); if (time < 0) time = 5.0f; @@ -565,7 +565,7 @@ int TPinballTable::Message2(MessageCode code, float value) if (LightShowTimer) { timer::kill(LightShowTimer); - LightGroup->Message(34, 0.0); + LightGroup->Message2(MessageCode::TLightGroupReset, 0.0); } LightShowTimer = 0; ScoreMultiplier = 0; diff --git a/SpaceCadetPinball/control.cpp b/SpaceCadetPinball/control.cpp index 3d5136a..8f31c56 100644 --- a/SpaceCadetPinball/control.cpp +++ b/SpaceCadetPinball/control.cpp @@ -825,19 +825,20 @@ int control::mission_select_scores[17] = 30000, 30000 }; -component_tag_base* control::wormhole_tag_array1[3] = + +std::reference_wrapper control::wormhole_tag_array1[3] = { - &control_sink1_tag, &control_sink2_tag, &control_sink3_tag + sink1, sink2, sink3 }; -component_tag_base* control::wormhole_tag_array2[3] = +std::reference_wrapper control::wormhole_tag_array2[3] = { - &control_lite5_tag, &control_lite6_tag, &control_lite7_tag + lite5, lite6, lite7 }; -component_tag_base* control::wormhole_tag_array3[3] = +std::reference_wrapper control::wormhole_tag_array3[3] = { - &control_lite4_tag, &control_lite2_tag, &control_lite3_tag + lite4, lite2, lite3 }; @@ -965,29 +966,29 @@ void control::table_add_extra_ball(float count) void control::table_set_bonus_hold() { - lite58->Message(19, 0.0); + lite58->Message2(MessageCode::TLightResetAndTurnOn, 0.0); info_text_box->Display(pb::get_rc_string(Msg::STRING153), 2.0); } void control::table_set_bonus() { TableG->ScoreSpecial2Flag = 1; - lite59->Message(9, 60.0); + lite59->Message2(MessageCode::TLightTurnOnTimed, 60.0); info_text_box->Display(pb::get_rc_string(Msg::STRING105), 2.0); } void control::table_set_jackpot() { TableG->ScoreSpecial3Flag = 1; - lite60->Message(9, 60.0); + lite60->Message2(MessageCode::TLightTurnOnTimed, 60.0); info_text_box->Display(pb::get_rc_string(Msg::STRING116), 2.0); } void control::table_set_flag_lights() { - lite20->Message(9, 60.0); - lite19->Message(9, 60.0); - lite61->Message(9, 60.0); + lite20->Message2(MessageCode::TLightTurnOnTimed, 60.0); + lite19->Message2(MessageCode::TLightTurnOnTimed, 60.0); + lite61->Message2(MessageCode::TLightTurnOnTimed, 60.0); info_text_box->Display(pb::get_rc_string(Msg::STRING152), 2.0); } @@ -999,9 +1000,9 @@ void control::table_set_multiball(float time) sink1->Message2(MessageCode::TSinkResetTimer, time); sink2->Message2(MessageCode::TSinkResetTimer, time); sink3->Message2(MessageCode::TSinkResetTimer, time); - lite38->Message(7, -1.0f); - lite39->Message(7, -1.0f); - lite40->Message(7, -1.0f); + lite38->Message2(MessageCode::TLightFlasherStartTimed, -1.0f); + lite39->Message2(MessageCode::TLightFlasherStartTimed, -1.0f); + lite40->Message2(MessageCode::TLightFlasherStartTimed, -1.0f); info_text_box->Display(pb::get_rc_string(Msg::STRING117), 2.0); midi::play_track(MidiTracks::Track3, true); } @@ -1030,7 +1031,7 @@ void control::table_bump_ball_sink_lock() void control::table_set_replay(float value) { - lite199->Message(19, 0.0); + lite199->Message2(MessageCode::TLightResetAndTurnOn, 0.0); info_text_box->Display(pb::get_rc_string(Msg::STRING101), value); } @@ -1038,10 +1039,10 @@ void control::cheat_bump_rank() { char Buffer[64]{}; - auto rank = middle_circle->Message(37, 0.0); + auto rank = middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); if (rank < 9) { - middle_circle->Message(41, 2.0f); + middle_circle->Message2(MessageCode::TLightGroupResetAndTurnOn, 2.0f); auto rankText = pb::get_rc_string(RankRcArray[rank]); snprintf(Buffer,sizeof Buffer, pb::get_rc_string(Msg::STRING184), rankText); mission_text_box->Display(Buffer, 8.0); @@ -1076,23 +1077,23 @@ int control::AddRankProgress(int rank) char Buffer[64]; int result = 0; - lite16->Message(19, 0.0); + lite16->Message2(MessageCode::TLightResetAndTurnOn, 0.0); for (int index = rank; index; --index) { - outer_circle->Message(41, 2.0); + outer_circle->Message2(MessageCode::TLightGroupResetAndTurnOn, 2.0); } - int activeCount = outer_circle->Message(37, 0.0); - int totalCount = outer_circle->Message(38, 0.0); + int activeCount = outer_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); + int totalCount = outer_circle->Message2(MessageCode::TLightGroupGetLightCount, 0.0); if (activeCount == totalCount) { result = 1; - outer_circle->Message(16, 5.0); - middle_circle->Message(34, 0.0); - int midActiveCount = middle_circle->Message(37, 0.0); + outer_circle->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 5.0); + middle_circle->Message2(MessageCode::TLightGroupReset, 0.0); + int midActiveCount = middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); if (midActiveCount < 9) { - middle_circle->Message(41, 5.0); + middle_circle->Message2(MessageCode::TLightGroupResetAndTurnOn, 5.0); auto rankText = pb::get_rc_string(RankRcArray[midActiveCount]); snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING184), rankText); mission_text_box->Display(Buffer, 8.0); @@ -1101,7 +1102,7 @@ int control::AddRankProgress(int rank) } else if (activeCount >= 3 * totalCount / 4) { - middle_circle->Message(27, -1.0); + middle_circle->Message2(MessageCode::TLightGroupAnimationForward, -1.0); } return result; } @@ -1121,12 +1122,12 @@ void control::AdvanceWormHoleDestination(int flag) val1 = 1; val2 = 1; } - bsink_arrow_lights->Message(23, static_cast(val2)); - bsink_arrow_lights->Message(11, static_cast(3 - val1)); + bsink_arrow_lights->Message2(MessageCode::TLightSetMessageField, static_cast(val2)); + bsink_arrow_lights->Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(3 - val1)); if (!light_on(&control_lite4_tag)) { - worm_hole_lights->Message(19, 0.0); - bsink_arrow_lights->Message(19, 0.0); + worm_hole_lights->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightResetAndTurnOn, 0.0); } } } @@ -1136,7 +1137,7 @@ void control::FlipperRebounderControl1(int code, TPinballComponent* caller) { if (code == 63) { - lite84->Message(9, 0.1f); + lite84->Message2(MessageCode::TLightTurnOnTimed, 0.1f); auto score = caller->get_scoring(0); TableG->AddScore(score); } @@ -1146,7 +1147,7 @@ void control::FlipperRebounderControl2(int code, TPinballComponent* caller) { if (code == 63) { - lite85->Message(9, 0.1f); + lite85->Message2(MessageCode::TLightTurnOnTimed, 0.1f); int score = caller->get_scoring(0); TableG->AddScore(score); } @@ -1184,13 +1185,13 @@ void control::LeftKickerGateControl(int code, TPinballComponent* caller) { if (code == ~MessageCode::TGateDisable) { - lite30->Message(15, 5.0); - lite196->Message(7, 5.0); + lite30->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 5.0); + lite196->Message2(MessageCode::TLightFlasherStartTimed, 5.0); } else if (code == ~MessageCode::TGateEnable) { - lite30->Message(20, 0.0); - lite196->Message(20, 0.0); + lite30->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite196->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } } @@ -1198,13 +1199,13 @@ void control::RightKickerGateControl(int code, TPinballComponent* caller) { if (code == ~MessageCode::TGateDisable) { - lite29->Message(15, 5.0); - lite195->Message(7, 5.0); + lite29->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 5.0); + lite195->Message2(MessageCode::TLightFlasherStartTimed, 5.0); } else if (code == ~MessageCode::TGateEnable) { - lite29->Message(20, 0.0); - lite195->Message(20, 0.0); + lite29->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite195->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } } @@ -1213,7 +1214,7 @@ void control::DeploymentChuteToEscapeChuteOneWayControl(int code, TPinballCompon char Buffer[64]; if (code == 63) { - int count = skill_shot_lights->Message(37, 0.0); + int count = skill_shot_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0); if (count) { soundwave3->Play(nullptr, "DeploymentChuteToEscapeChuteOneWayControl"); @@ -1222,12 +1223,12 @@ void control::DeploymentChuteToEscapeChuteOneWayControl(int code, TPinballCompon info_text_box->Display(Buffer, 2.0); if (!light_on(&control_lite56_tag)) { - l_trek_lights->Message(34, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(34, 0.0); - r_trek_lights->Message(20, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } - skill_shot_lights->Message(44, 1.0); + skill_shot_lights->Message2(MessageCode::TLightGroupFlashWhenOn, 1.0); } } } @@ -1235,12 +1236,12 @@ void control::DeploymentChuteToEscapeChuteOneWayControl(int code, TPinballCompon void control::DeploymentChuteToTableOneWayControl(int code, TPinballComponent* caller) { if (code == 63) - skill_shot_lights->Message(20, 0.0); + skill_shot_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } void control::DrainBallBlockerControl(int code, TPinballComponent* caller) { - int lightMessage; + MessageCode lightMessage; float blockerDuration; auto block = static_cast(caller); @@ -1249,7 +1250,7 @@ void control::DrainBallBlockerControl(int code, TPinballComponent* caller) block->MessageField = 1; blockerDuration = static_cast(block->InitialDuration); block->Message2(MessageCode::TBlockerEnable, blockerDuration); - lightMessage = 9; + lightMessage = MessageCode::TLightTurnOnTimed; } else { @@ -1264,9 +1265,9 @@ void control::DrainBallBlockerControl(int code, TPinballComponent* caller) block->MessageField = 2; blockerDuration = static_cast(block->ExtendedDuration); block->Message2(MessageCode::TBlockerRestartTimeout, blockerDuration); - lightMessage = 7; + lightMessage = MessageCode::TLightFlasherStartTimed; } - lite1->Message(lightMessage, blockerDuration); + lite1->Message2(lightMessage, blockerDuration); } void control::LaunchRampControl(int code, TPinballComponent* caller) @@ -1315,15 +1316,15 @@ void control::LaunchRampControl(int code, TPinballComponent* caller) void control::LaunchRampHoleControl(int code, TPinballComponent* caller) { if (code == 58) - lite54->Message(7, 5.0); + lite54->Message2(MessageCode::TLightFlasherStartTimed, 5.0); } void control::SpaceWarpRolloverControl(int code, TPinballComponent* caller) { if (code == 63) { - lite27->Message(19, 0.0); - lite28->Message(19, 0.0); + lite27->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite28->Message2(MessageCode::TLightResetAndTurnOn, 0.0); } } @@ -1331,12 +1332,12 @@ void control::ReentryLanesRolloverControl(int code, TPinballComponent* caller) { if (code == 63) { - if (!light_on(&control_lite56_tag) && l_trek_lights->Message(39, 0.0)) + if (!light_on(&control_lite56_tag) && l_trek_lights->Message2(MessageCode::TLightGroupGetMessage2, 0.0)) { - l_trek_lights->Message(34, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(34, 0.0); - r_trek_lights->Message(20, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } TLight* light; @@ -1354,16 +1355,16 @@ void control::ReentryLanesRolloverControl(int code, TPinballComponent* caller) { if (light->LightOnFlag) { - light->Message(20, 0.0); + light->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } else { - light->Message(19, 0.0); - int activeCount = bmpr_inc_lights->Message(37, 0.0); - if (activeCount == bmpr_inc_lights->Message(38, 0.0)) + light->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + int activeCount = bmpr_inc_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0); + if (activeCount == bmpr_inc_lights->Message2(MessageCode::TLightGroupGetLightCount, 0.0)) { - bmpr_inc_lights->Message(7, 5.0); - bmpr_inc_lights->Message(0, 0.0); + bmpr_inc_lights->Message2(MessageCode::TLightFlasherStartTimed, 5.0); + bmpr_inc_lights->Message2(MessageCode::TLightTurnOff, 0.0); if (bump1->BmpIndex < 3) { attack_bump->Message2(MessageCode::TBumperIncBmpIndex, 0.0); @@ -1406,16 +1407,16 @@ void control::LaunchLanesRolloverControl(int code, TPinballComponent* caller) { if (light->LightOnFlag) { - light->Message(20, 0.0); + light->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } else { - light->Message(19, 0.0); - int msg1 = ramp_bmpr_inc_lights->Message(37, 0.0); - if (msg1 == ramp_bmpr_inc_lights->Message(38, 0.0)) + light->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + int msg1 = ramp_bmpr_inc_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0); + if (msg1 == ramp_bmpr_inc_lights->Message2(MessageCode::TLightGroupGetLightCount, 0.0)) { - ramp_bmpr_inc_lights->Message(7, 5.0); - ramp_bmpr_inc_lights->Message(0, 0.0); + ramp_bmpr_inc_lights->Message2(MessageCode::TLightFlasherStartTimed, 5.0); + ramp_bmpr_inc_lights->Message2(MessageCode::TLightTurnOff, 0.0); if (bump5->BmpIndex < 3) { launch_bump->Message2(MessageCode::TBumperIncBmpIndex, 0.0); @@ -1436,8 +1437,8 @@ void control::OutLaneRolloverControl(int code, TPinballComponent* caller) if (light_on(&control_lite17_tag) || light_on(&control_lite18_tag)) { table_add_extra_ball(2.0); - lite17->Message(20, 0.0); - lite18->Message(20, 0.0); + lite17->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite18->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } else { @@ -1447,14 +1448,14 @@ void control::OutLaneRolloverControl(int code, TPinballComponent* caller) { if (light_on(&control_lite30_tag)) { - lite30->Message(4, 0.0); - lite196->Message(4, 0.0); + lite30->Message2(MessageCode::TLightFlasherStart, 0.0); + lite196->Message2(MessageCode::TLightFlasherStart, 0.0); } } else if (light_on(&control_lite29_tag)) { - lite29->Message(4, 0.0); - lite195->Message(4, 0.0); + lite29->Message2(MessageCode::TLightFlasherStart, 0.0); + lite195->Message2(MessageCode::TLightFlasherStart, 0.0); } TableG->AddScore(caller->get_scoring(0)); } @@ -1464,16 +1465,16 @@ void control::ExtraBallLightControl(int code, TPinballComponent* caller) { if (code == 19) { - lite17->Message(9, 55.0); - lite18->Message(9, 55.0); + lite17->Message2(MessageCode::TLightTurnOnTimed, 55.0); + lite18->Message2(MessageCode::TLightTurnOnTimed, 55.0); extraball_light_flag = 1; } else if (code == 60) { if (extraball_light_flag) { - lite17->Message(7, 5.0); - lite18->Message(7, 5.0); + lite17->Message2(MessageCode::TLightFlasherStartTimed, 5.0); + lite18->Message2(MessageCode::TLightFlasherStartTimed, 5.0); extraball_light_flag = 0; } } @@ -1487,8 +1488,8 @@ void control::ReturnLaneRolloverControl(int code, TPinballComponent* caller) { if (light_on(&control_lite27_tag)) { - lite59->Message(20, 0.0); - lite27->Message(20, 0.0); + lite59->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite27->Message2(MessageCode::TLightResetAndTurnOff, 0.0); TableG->AddScore(caller->get_scoring(1)); } else @@ -1498,8 +1499,8 @@ void control::ReturnLaneRolloverControl(int code, TPinballComponent* caller) { if (light_on(&control_lite28_tag)) { - lite59->Message(20, 0.0); - lite28->Message(20, 0.0); + lite59->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite28->Message2(MessageCode::TLightResetAndTurnOff, 0.0); TableG->AddScore(caller->get_scoring(1)); } else @@ -1519,7 +1520,7 @@ void control::BonusLaneRolloverControl(int code, TPinballComponent* caller) int addedScore = SpecialAddScore(TableG->ScoreSpecial2); snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING104), addedScore); info_text_box->Display(Buffer, 2.0); - lite16->Message(20, 0.0); + lite16->Message2(MessageCode::TLightResetAndTurnOff, 0.0); soundwave50_1->Play(caller, "BonusLaneRolloverControl1"); } else @@ -1528,7 +1529,7 @@ void control::BonusLaneRolloverControl(int code, TPinballComponent* caller) soundwave25->Play(caller, "BonusLaneRolloverControl2"); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } - fuel_bargraph->Message(45, 11.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 11.0); } } @@ -1536,13 +1537,13 @@ void control::FuelRollover1Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 1) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 1) { - literoll179->Message(8, 0.05f); + literoll179->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 1.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 1.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1553,13 +1554,13 @@ void control::FuelRollover2Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 3) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 3) { - literoll180->Message(8, 0.05f); + literoll180->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 3.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 3.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1570,13 +1571,13 @@ void control::FuelRollover3Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 5) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 5) { - literoll181->Message(8, 0.05f); + literoll181->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 5.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 5.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1587,13 +1588,13 @@ void control::FuelRollover4Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 7) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 7) { - literoll182->Message(8, 0.05f); + literoll182->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 7.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 7.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1604,13 +1605,13 @@ void control::FuelRollover5Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 9) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 9) { - literoll183->Message(8, 0.05f); + literoll183->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 9.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 9.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1621,13 +1622,13 @@ void control::FuelRollover6Control(int code, TPinballComponent* caller) { if (code == 63) { - if (fuel_bargraph->Message(37, 0.0) > 11) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 11) { - literoll184->Message(8, 0.05f); + literoll184->Message2(MessageCode::TLightTurnOffTimed, 0.05f); } else { - fuel_bargraph->Message(45, 11.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 11.0); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -1639,16 +1640,16 @@ void control::HyperspaceLightGroupControl(int code, TPinballComponent* caller) switch (code) { case 0: - caller->Message(0, 0.0); + caller->Message2(MessageCode::TLightTurnOff, 0.0); break; case 41: - caller->Message(41, 2.0); - caller->Message(43, 60.0); + caller->Message2(MessageCode::TLightGroupResetAndTurnOn, 2.0); + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 60.0); break; case 61: - caller->Message(33, 0.0); - if (caller->Message(37, 0.0)) - caller->Message(43, 60.0); + caller->Message2(MessageCode::TLightGroupOffsetAnimationBackward, 0.0); + if (caller->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 60.0); break; default: break; } @@ -1672,9 +1673,9 @@ void control::WormHoleControl(int code, TPinballComponent* caller) if (lite4Msg) { lite4->MessageField = 0; - worm_hole_lights->Message(20, 0.0); - bsink_arrow_lights->Message(20, 0.0); - lite110->Message(20, 0.0); + worm_hole_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite110->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (lite4Msg == sinkFlag + 1) { if (TableG->MultiballFlag) @@ -1699,10 +1700,10 @@ void control::WormHoleControl(int code, TPinballComponent* caller) } info_text_box->Display(pb::get_rc_string(Msg::STRING150), 2.0); - wormhole_tag_array2[sinkFlag]->GetComponent()->Message(16, sink->TimerTime); - wormhole_tag_array3[sinkFlag]->GetComponent()->Message(11, static_cast(2 - sinkFlag)); - wormhole_tag_array3[sinkFlag]->GetComponent()->Message(16, sink->TimerTime); - wormhole_tag_array1[sinkFlag]->GetComponent()->Message2(MessageCode::TSinkResetTimer, sink->TimerTime); + wormhole_tag_array2[sinkFlag].get()->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, sink->TimerTime); + wormhole_tag_array3[sinkFlag].get()->Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(2 - sinkFlag)); + wormhole_tag_array3[sinkFlag].get()->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, sink->TimerTime); + wormhole_tag_array1[sinkFlag].get()->Message2(MessageCode::TSinkResetTimer, sink->TimerTime); return; } TableG->AddScore(sink->get_scoring(2)); @@ -1714,10 +1715,10 @@ void control::WormHoleControl(int code, TPinballComponent* caller) sinkFlag2 = sinkFlag; } - wormhole_tag_array2[sinkFlag2]->GetComponent()->Message(16, sink->TimerTime); - wormhole_tag_array3[sinkFlag2]->GetComponent()->Message(11, static_cast(2 - sinkFlag2)); - wormhole_tag_array3[sinkFlag2]->GetComponent()->Message(16, sink->TimerTime); - wormhole_tag_array1[sinkFlag2]->GetComponent()->Message2(MessageCode::TSinkResetTimer, sink->TimerTime); + wormhole_tag_array2[sinkFlag2].get()->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, sink->TimerTime); + wormhole_tag_array3[sinkFlag2].get()->Message2(MessageCode::TLightSetOnStateBmpIndex, static_cast(2 - sinkFlag2)); + wormhole_tag_array3[sinkFlag2].get()->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, sink->TimerTime); + wormhole_tag_array1[sinkFlag2].get()->Message2(MessageCode::TSinkResetTimer, sink->TimerTime); info_text_box->Display(pb::get_rc_string(Msg::STRING150), 2.0); } } @@ -1726,8 +1727,8 @@ void control::LeftFlipperControl(int code, TPinballComponent* caller) { if (code == 1) { - bmpr_inc_lights->Message(24, 0.0); - ramp_bmpr_inc_lights->Message(24, 0.0); + bmpr_inc_lights->Message2(MessageCode::TLightGroupStepBackward, 0.0); + ramp_bmpr_inc_lights->Message2(MessageCode::TLightGroupStepBackward, 0.0); } } @@ -1735,8 +1736,8 @@ void control::RightFlipperControl(int code, TPinballComponent* caller) { if (code == 1) { - bmpr_inc_lights->Message(25, 0.0); - ramp_bmpr_inc_lights->Message(25, 0.0); + bmpr_inc_lights->Message2(MessageCode::TLightGroupStepForward, 0.0); + ramp_bmpr_inc_lights->Message2(MessageCode::TLightGroupStepForward, 0.0); } } @@ -1821,16 +1822,16 @@ void control::MedalLightGroupControl(int code, TPinballComponent* caller) switch (code) { case 0: - caller->Message(0, 0.0); + caller->Message2(MessageCode::TLightTurnOff, 0.0); break; case 41: - caller->Message(41, 2.0); - caller->Message(43, 30.0); + caller->Message2(MessageCode::TLightGroupResetAndTurnOn, 2.0); + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 30.0); break; case 61: - caller->Message(33, 0.0); - if (caller->Message(37, 0.0)) - caller->Message(43, 30.0); + caller->Message2(MessageCode::TLightGroupOffsetAnimationBackward, 0.0); + if (caller->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 30.0); break; default: break; } @@ -1841,29 +1842,29 @@ void control::MultiplierLightGroupControl(int code, TPinballComponent* caller) switch (code) { case 0: - caller->Message(0, 0.0); + caller->Message2(MessageCode::TLightTurnOff, 0.0); break; case 41: - caller->Message(41, 2.0); - caller->Message(43, 30.0); + caller->Message2(MessageCode::TLightGroupResetAndTurnOn, 2.0); + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 30.0); break; case 61: if (TableG->ScoreMultiplier) TableG->ScoreMultiplier = TableG->ScoreMultiplier - 1; - caller->Message(33, 0.0); - if (caller->Message(37, 0.0)) - caller->Message(43, 30.0); + caller->Message2(MessageCode::TLightGroupOffsetAnimationBackward, 0.0); + if (caller->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 30.0); break; case 64: TableG->ScoreMultiplier = 4; - caller->Message(19, 0.0); - caller->Message(43, 30.0); + caller->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, 30.0); info_text_box->Display(pb::get_rc_string(Msg::STRING160), 2.0); break; case 65: TableG->ScoreMultiplier = 0; - caller->Message(20, 0.0); - caller->Message(43, -1.0); + caller->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + caller->Message2(MessageCode::TLightGroupRestartNotifyTimer, -1.0); break; default: break; @@ -1886,12 +1887,12 @@ void control::FuelSpotTargetControl(int code, TPinballComponent* caller) if (target11 != caller) liteComp = lite72; } - liteComp->Message(15, 2.0); + liteComp->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 2.0); TableG->AddScore(caller->get_scoring(0)); - if (top_circle_tgt_lights->Message(37, 0.0) == 3) + if (top_circle_tgt_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0) == 3) { - top_circle_tgt_lights->Message(16, 2.0); - fuel_bargraph->Message(45, 11.0); + top_circle_tgt_lights->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 2.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 11.0); soundwave25->Play(caller, "FuelSpotTargetControl1"); info_text_box->Display(pb::get_rc_string(Msg::STRING145), 2.0); } @@ -1922,7 +1923,7 @@ void control::MissionSpotTargetControl(int code, TPinballComponent* caller) lite101->MessageField |= 4u; lite = lite103; } - lite->Message(15, 2.0); + lite->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 2.0); TSound* sound; if (!light_on(&control_lite198_tag) || lite198->FlasherOnFlag) @@ -1933,8 +1934,8 @@ void control::MissionSpotTargetControl(int code, TPinballComponent* caller) sound = soundwave49D; sound->Play(caller, "MissionSpotTargetControl"); TableG->AddScore(caller->get_scoring(0)); - if (ramp_tgt_lights->Message(37, 0.0) == 3) - ramp_tgt_lights->Message(16, 2.0); + if (ramp_tgt_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0) == 3) + ramp_tgt_lights->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 2.0); } } @@ -1959,13 +1960,13 @@ void control::LeftHazardSpotTargetControl(int code, TPinballComponent* caller) lite104->MessageField |= 4u; lite = lite106; } - lite->Message(15, 2.0); + lite->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 2.0); TableG->AddScore(caller->get_scoring(0)); - if (lchute_tgt_lights->Message(37, 0.0) == 3) + if (lchute_tgt_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0) == 3) { soundwave14_1->Play(caller, "LeftHazardSpotTargetControl1"); gate1->Message2(MessageCode::TGateDisable, 0.0); - lchute_tgt_lights->Message(16, 2.0); + lchute_tgt_lights->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 2.0); } else { @@ -1995,13 +1996,13 @@ void control::RightHazardSpotTargetControl(int code, TPinballComponent* caller) lite107->MessageField |= 4u; light = lite109; } - light->Message(15, 2.0); + light->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 2.0); TableG->AddScore(caller->get_scoring(0)); - if (bpr_solotgt_lights->Message(37, 0.0) == 3) + if (bpr_solotgt_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0) == 3) { soundwave14_1->Play(caller, "RightHazardSpotTargetControl1"); gate2->Message2(MessageCode::TGateDisable, 0.0); - bpr_solotgt_lights->Message(16, 2.0); + bpr_solotgt_lights->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 2.0); } else { @@ -2016,7 +2017,7 @@ void control::WormHoleDestinationControl(int code, TPinballComponent* caller) { if (!light_on(&control_lite110_tag)) { - lite110->Message(15, 3.0); + lite110->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 3.0); info_text_box->Display(pb::get_rc_string(Msg::STRING194), 2.0); } TableG->AddScore(caller->get_scoring(0)); @@ -2061,7 +2062,7 @@ void control::GravityWellKickoutControl(int code, TPinballComponent* caller) auto addedScore = TableG->AddScore(caller->get_scoring(0)); snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING182), addedScore); info_text_box->Display(Buffer, 2.0); - lite62->Message(20, 0.0); + lite62->Message2(MessageCode::TLightResetAndTurnOff, 0.0); caller->ActiveFlag = 0; auto duration = soundwave7->Play(lite62, "GravityWellKickoutControl"); caller->Message2(MessageCode::TKickoutRestartTimer, duration); @@ -2079,7 +2080,7 @@ void control::GravityWellKickoutControl(int code, TPinballComponent* caller) snprintf(Buffer, sizeof Buffer, "%s", pb::get_rc_string(Msg::STRING146)); } info_text_box->Display(Buffer, 2.0); - lite62->Message(4, 0.0); + lite62->Message2(MessageCode::TLightFlasherStart, 0.0); kickout1->ActiveFlag = 1; break; } @@ -2093,15 +2094,15 @@ void control::SkillShotGate1Control(int code, TPinballComponent* caller) { if (code == 63) { - lite200->Message(9, 5.0); + lite200->Message2(MessageCode::TLightTurnOnTimed, 5.0); if (light_on(&control_lite67_tag)) { - skill_shot_lights->Message(34, 0.0); - skill_shot_lights->Message(20, 0.0); - lite67->Message(19, 0.0); - lite54->Message(7, 5.0); - lite25->Message(7, 5.0); - fuel_bargraph->Message(45, 11.0); + skill_shot_lights->Message2(MessageCode::TLightGroupReset, 0.0); + skill_shot_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite67->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite54->Message2(MessageCode::TLightFlasherStartTimed, 5.0); + lite25->Message2(MessageCode::TLightFlasherStartTimed, 5.0); + fuel_bargraph->Message2(MessageCode::TLightGroupToggleSplitIndex, 11.0); soundwave14_2->Play(lite67, "SkillShotGate1Control"); } } @@ -2113,7 +2114,7 @@ void control::SkillShotGate2Control(int code, TPinballComponent* caller) { if (light_on(&control_lite67_tag)) { - lite68->Message(19, 0.0); + lite68->Message2(MessageCode::TLightResetAndTurnOn, 0.0); soundwave14_2->Play(lite68, "SkillShotGate2Control"); } } @@ -2125,7 +2126,7 @@ void control::SkillShotGate3Control(int code, TPinballComponent* caller) { if (light_on(&control_lite67_tag)) { - lite69->Message(19, 0.0); + lite69->Message2(MessageCode::TLightResetAndTurnOn, 0.0); soundwave14_2->Play(lite69, "SkillShotGate3Control"); } } @@ -2137,7 +2138,7 @@ void control::SkillShotGate4Control(int code, TPinballComponent* caller) { if (light_on(&control_lite67_tag)) { - lite131->Message(19, 0.0); + lite131->Message2(MessageCode::TLightResetAndTurnOn, 0.0); soundwave14_2->Play(lite131, "SkillShotGate4Control"); } } @@ -2149,7 +2150,7 @@ void control::SkillShotGate5Control(int code, TPinballComponent* caller) { if (light_on(&control_lite67_tag)) { - lite132->Message(19, 0.0); + lite132->Message2(MessageCode::TLightResetAndTurnOn, 0.0); soundwave14_2->Play(lite132, "SkillShotGate5Control"); } } @@ -2161,7 +2162,7 @@ void control::SkillShotGate6Control(int code, TPinballComponent* caller) { if (light_on(&control_lite67_tag)) { - lite133->Message(19, 0.0); + lite133->Message2(MessageCode::TLightResetAndTurnOn, 0.0); soundwave14_2->Play(lite133, "SkillShotGate6Control"); } } @@ -2177,7 +2178,7 @@ void control::ShootAgainLightControl(int code, TPinballComponent* caller) } else { - caller->Message(16, 5.0); + caller->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 5.0); caller->MessageField = 1; } } @@ -2202,10 +2203,10 @@ void control::MissionControl(int code, TPinballComponent* caller) case 47: if (fuel_bargraph == caller && lite198Msg > 1) { - l_trek_lights->Message(34, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(34, 0.0); - r_trek_lights->Message(20, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); mission_text_box->Display(pb::get_rc_string(Msg::STRING210), 4.0); lite198->MessageField = 1; MissionControl(66, nullptr); @@ -2214,7 +2215,7 @@ void control::MissionControl(int code, TPinballComponent* caller) case 60: if (fuel_bargraph == caller && lite198Msg) { - if (fuel_bargraph->Message(37, 0.0) == 1) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0) == 1) { mission_text_box->Display(pb::get_rc_string(Msg::STRING217), 4.0); } @@ -2341,7 +2342,7 @@ void control::HyperspaceKickOutControl(int code, TPinballComponent* caller) if (code != 63) return; - auto activeCount = hyper_lights->Message(37, 0.0); + auto activeCount = hyper_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0); HyperspaceLightGroupControl(41, hyper_lights); switch (activeCount) { @@ -2378,7 +2379,7 @@ void control::HyperspaceKickOutControl(int code, TPinballComponent* caller) } case 4: { - hyper_lights->Message(0, 0.0); + hyper_lights->Message2(MessageCode::TLightTurnOff, 0.0); size_t addedScore = TableG->AddScore(caller->get_scoring(4)); GravityWellKickoutControl(64, reinterpret_cast(addedScore)); break; @@ -2400,15 +2401,15 @@ void control::HyperspaceKickOutControl(int code, TPinballComponent* caller) if (light_on(&control_lite130_tag)) { someFlag |= 4u; - lite130->Message(20, 0.0); + lite130->Message2(MessageCode::TLightResetAndTurnOff, 0.0); MultiplierLightGroupControl(64, top_target_lights); - bumber_target_lights->Message(19, 0.0); + bumber_target_lights->Message2(MessageCode::TLightResetAndTurnOn, 0.0); table_set_jackpot(); table_set_bonus(); table_set_flag_lights(); table_set_bonus_hold(); - lite27->Message(19, 0.0); - lite28->Message(19, 0.0); + lite27->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite28->Message2(MessageCode::TLightResetAndTurnOn, 0.0); ExtraBallLightControl(19, nullptr); DrainBallBlockerControl(52, block1); @@ -2438,7 +2439,7 @@ void control::HyperspaceKickOutControl(int code, TPinballComponent* caller) auto duration = soundwave41->Play(lite24, "HyperspaceKickOutControl1"); soundwave36_1->Play(lite24, "HyperspaceKickOutControl2"); soundwave50_2->Play(lite24, "HyperspaceKickOutControl3"); - lite25->Message(7, 5.0); + lite25->Message2(MessageCode::TLightFlasherStartTimed, 5.0); caller->Message2(MessageCode::TKickoutRestartTimer, duration); return; } @@ -2467,7 +2468,7 @@ void control::HyperspaceKickOutControl(int code, TPinballComponent* caller) } } auto duration = sound->Play(lite24, "HyperspaceKickOutControl4"); - lite25->Message(7, 5.0); + lite25->Message2(MessageCode::TLightFlasherStartTimed, 5.0); caller->Message2(MessageCode::TKickoutRestartTimer, duration); } @@ -2480,23 +2481,23 @@ void control::PlungerControl(int code, TPinballComponent* caller) else if (code == 1016) { table_unlimited_balls = false; - if (!middle_circle->Message(37, 0.0)) - middle_circle->Message(32, 0.0); + if (!middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) + middle_circle->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.0); if (!light_on(&control_lite200_tag)) { - skill_shot_lights->Message(20, 0.0); - lite67->Message(19, 0.0); - skill_shot_lights->Message(26, 0.25f); - l_trek_lights->Message(20, 0.0); - l_trek_lights->Message(32, 0.2f); - l_trek_lights->Message(26, 0.2f); - r_trek_lights->Message(20, 0.0); - r_trek_lights->Message(32, 0.2f); - r_trek_lights->Message(26, 0.2f); + skill_shot_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite67->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + skill_shot_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.25f); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + l_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); TableG->ScoreSpecial1 = 25000; MultiplierLightGroupControl(65, top_target_lights); - fuel_bargraph->Message(19, 0.0); - lite200->Message(19, 0.0); + fuel_bargraph->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite200->Message2(MessageCode::TLightResetAndTurnOn, 0.0); gate1->Message2(MessageCode::TGateDisable, 0.0); gate2->Message2(MessageCode::TGateDisable, 0.0); } @@ -2514,7 +2515,7 @@ void control::MedalTargetControl(int code, TPinballComponent* caller) + target4->MessageField == 3) { MedalLightGroupControl(41, bumber_target_lights); - int activeCount = bumber_target_lights->Message(37, 0.0) - 1; + int activeCount = bumber_target_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0) - 1; const char* text; switch (activeCount) { @@ -2553,7 +2554,7 @@ void control::MultiplierTargetControl(int code, TPinballComponent* caller) { TableG->AddScore(caller->get_scoring(1)); MultiplierLightGroupControl(41, top_target_lights); - int activeCount = top_target_lights->Message(37, 0.0); + int activeCount = top_target_lights->Message2(MessageCode::TLightGroupGetOnCount, 0.0); const char* text; switch (activeCount) { @@ -2602,7 +2603,7 @@ void control::BallDrainControl(int code, TPinballComponent* caller) if (pb::chk_highscore()) { soundwave3->Play(nullptr, "BallDrainControl1"); - TableG->LightGroup->Message(16, 3.0); + TableG->LightGroup->Message2(MessageCode::TLightFlasherStartTimedThenStayOff, 3.0); mission_text_box->Display(pb::get_rc_string(Msg::STRING277), -1.0); } } @@ -2622,22 +2623,22 @@ void control::BallDrainControl(int code, TPinballComponent* caller) { if (TableG->TiltLockFlag) { - lite200->Message(20, 0.0); - lite199->Message(20, 0.0); + lite200->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite199->Message2(MessageCode::TLightResetAndTurnOff, 0.0); midi::play_track(MidiTracks::Track1, false); } if (light_on(&control_lite200_tag)) { soundwave27->Play(nullptr, "BallDrainControl2"); - lite200->Message(19, 0.0); + lite200->Message2(MessageCode::TLightResetAndTurnOn, 0.0); info_text_box->Display(pb::get_rc_string(Msg::STRING197), -1.0); soundwave59->Play(nullptr, "BallDrainControl3"); } else if (light_on(&control_lite199_tag)) { soundwave27->Play(nullptr, "BallDrainControl4"); - lite199->Message(20, 0.0); - lite200->Message(19, 0.0); + lite199->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite200->Message2(MessageCode::TLightResetAndTurnOn, 0.0); info_text_box->Display(pb::get_rc_string(Msg::STRING196), 2.0); soundwave59->Play(nullptr, "BallDrainControl5"); --TableG->UnknownP78; @@ -2646,13 +2647,13 @@ void control::BallDrainControl(int code, TPinballComponent* caller) { if (TableG->MultiballCount == 1) { - lite38->Message(20, 0.0f); - lite39->Message(20, 0.0f); + lite38->Message2(MessageCode::TLightResetAndTurnOff, 0.0f); + lite39->Message2(MessageCode::TLightResetAndTurnOff, 0.0f); midi::play_track(MidiTracks::Track1, false); } else if (TableG->MultiballCount == 2) { - lite40->Message(20, 0.0f); + lite40->Message2(MessageCode::TLightResetAndTurnOff, 0.0f); } } else @@ -2701,55 +2702,55 @@ void control::BallDrainControl(int code, TPinballComponent* caller) } soundwave27->Play(nullptr, "BallDrainControl8"); } - bmpr_inc_lights->Message(20, 0.0); - ramp_bmpr_inc_lights->Message(20, 0.0); - lite30->Message(20, 0.0); - lite29->Message(20, 0.0); - lite1->Message(20, 0.0); - lite54->Message(20, 0.0); - lite55->Message(20, 0.0); - lite56->Message(20, 0.0); - lite17->Message(20, 0.0); - lite18->Message(20, 0.0); - lite27->Message(20, 0.0); - lite28->Message(20, 0.0); - lite16->Message(20, 0.0); - lite20->Message(20, 0.0); - hyper_lights->Message(20, 0.0); - lite25->Message(20, 0.0); - lite26->Message(20, 0.0); - lite130->Message(20, 0.0); - lite19->Message(20, 0.0); - worm_hole_lights->Message(20, 0.0); - bsink_arrow_lights->Message(20, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(20, 0.0); - lite60->Message(20, 0.0); - lite59->Message(20, 0.0); - lite61->Message(20, 0.0); - bumber_target_lights->Message(20, 0.0); - top_target_lights->Message(20, 0.0); - top_circle_tgt_lights->Message(20, 0.0); - ramp_tgt_lights->Message(20, 0.0); - lchute_tgt_lights->Message(20, 0.0); - bpr_solotgt_lights->Message(20, 0.0); - lite110->Message(20, 0.0); - skill_shot_lights->Message(20, 0.0); - lite77->Message(20, 0.0); - lite198->Message(20, 0.0); - lite196->Message(20, 0.0); - lite195->Message(20, 0.0); - fuel_bargraph->Message(20, 0.0); + bmpr_inc_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + ramp_bmpr_inc_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite30->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite29->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite1->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite54->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite55->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite56->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite17->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite18->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite27->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite28->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite16->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + hyper_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite25->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite26->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite130->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + worm_hole_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite60->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite59->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite61->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bumber_target_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + top_target_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + top_circle_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + ramp_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lchute_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bpr_solotgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite110->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + skill_shot_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite77->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite198->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite196->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite195->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + fuel_bargraph->Message2(MessageCode::TLightResetAndTurnOff, 0.0); fuel_bargraph->Message2(MessageCode::Reset, 0.0); GravityWellKickoutControl(1024, nullptr); - lite62->Message(20, 0.0); + lite62->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite4->MessageField = 0; lite101->MessageField = 0; lite102->MessageField = 0; lite103->MessageField = 0; ramp_tgt_lights->MessageField = 0; - outer_circle->Message(34, 0.0); - middle_circle->Message(34, 0.0); + outer_circle->Message2(MessageCode::TLightGroupReset, 0.0); + middle_circle->Message2(MessageCode::TLightGroupReset, 0.0); attack_bump->Message2(MessageCode::Reset, 0.0); launch_bump->Message2(MessageCode::Reset, 0.0); gate1->Message2(MessageCode::Reset, 0.0); @@ -2771,7 +2772,7 @@ void control::BallDrainControl(int code, TPinballComponent* caller) MissionControl(66, nullptr); TableG->Message2(MessageCode::ClearTiltLock, 0.0); if (light_on(&control_lite58_tag)) - lite58->Message(20, 0.0); + lite58->Message2(MessageCode::TLightResetAndTurnOff, 0.0); else TableG->ScoreSpecial2 = 25000; } @@ -2785,7 +2786,7 @@ void control::table_control_handler(int code) if (code == 1011) { table_unlimited_balls = false; - lite77->Message(7, 0.0); + lite77->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } @@ -2797,13 +2798,13 @@ void control::AlienMenaceController(int code, TPinballComponent* caller) if (code == 66) { attack_bump->Message2(MessageCode::TBumperSetBmpIndex, 0.0); - l_trek_lights->Message(20, 0.0); - l_trek_lights->Message(32, 0.2f); - l_trek_lights->Message(26, 0.2f); - r_trek_lights->Message(20, 0.0); - r_trek_lights->Message(32, 0.2f); - r_trek_lights->Message(26, 0.2f); - lite307->Message(7, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + l_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); + lite307->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -2816,7 +2817,7 @@ void control::AlienMenaceController(int code, TPinballComponent* caller) { if (bump1->BmpIndex) { - lite307->Message(20, 0.0); + lite307->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 20; MissionControl(66, nullptr); } @@ -2832,12 +2833,12 @@ void control::AlienMenacePartTwoController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 8; - l_trek_lights->Message(34, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(34, 0.0); - r_trek_lights->Message(20, 0.0); - lite308->Message(7, 0.0); - lite311->Message(7, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite308->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite311->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -2860,8 +2861,8 @@ void control::AlienMenacePartTwoController(int code, TPinballComponent* caller) } else { - lite308->Message(20, 0.0); - lite311->Message(20, 0.0); + lite308->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite311->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING231), 4.0); @@ -2891,9 +2892,9 @@ void control::BlackHoleThreatController(int code, TPinballComponent* caller) && bump5->BmpIndex) { if (light_on(&control_lite316_tag)) - lite316->Message(20, 0.0); + lite316->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite314_tag)) - lite314->Message(20, 0.0); + lite314->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING225), 4.0); @@ -2920,20 +2921,20 @@ void control::BlackHoleThreatController(int code, TPinballComponent* caller) { mission_text_box->Display(pb::get_rc_string(Msg::STRING224), -1.0); if (light_on(&control_lite316_tag)) - lite316->Message(20, 0.0); + lite316->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite314_tag)) { - lite314->Message(7, 0.0); + lite314->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } else { mission_text_box->Display(pb::get_rc_string(Msg::STRING223), -1.0); if (light_on(&control_lite314_tag)) - lite314->Message(20, 0.0); + lite314->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite316_tag)) { - lite316->Message(7, 0.0); + lite316->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } } @@ -2966,15 +2967,15 @@ void control::BugHuntController(int code, TPinballComponent* caller) target8->Message2(MessageCode::TPopupTargetEnable, 0.0); target7->MessageField = 0; target7->Message2(MessageCode::TPopupTargetEnable, 0.0); - top_circle_tgt_lights->Message(20, 0.0); - ramp_tgt_lights->Message(20, 0.0); - lchute_tgt_lights->Message(20, 0.0); - bpr_solotgt_lights->Message(20, 0.0); - lite306->Message(7, 0.0); - lite308->Message(7, 0.0); - lite310->Message(7, 0.0); - lite313->Message(7, 0.0); - lite319->Message(7, 0.0); + top_circle_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + ramp_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lchute_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bpr_solotgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite306->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite308->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite310->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite313->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite319->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3014,11 +3015,11 @@ void control::BugHuntController(int code, TPinballComponent* caller) } else { - lite306->Message(20, 0.0); - lite308->Message(20, 0.0); - lite310->Message(20, 0.0); - lite313->Message(20, 0.0); - lite319->Message(20, 0.0); + lite306->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite308->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite310->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite313->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite319->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING227), 4.0); @@ -3042,10 +3043,10 @@ void control::CosmicPlagueController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 75; - lite20->Message(19, 0.0); - lite19->Message(19, 0.0); - lite305->Message(7, 0.0); - lite312->Message(7, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite305->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite312->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3064,12 +3065,12 @@ void control::CosmicPlagueController(int code, TPinballComponent* caller) } else { - lite305->Message(20, 0.0); - lite312->Message(20, 0.0); + lite305->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite312->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 21; MissionControl(66, nullptr); - lite20->Message(20, 0.0); - lite19->Message(20, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } } } @@ -3082,7 +3083,7 @@ void control::CosmicPlaguePartTwoController(int code, TPinballComponent* caller) { if (code == 66) { - lite310->Message(7, 0.0); + lite310->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3093,7 +3094,7 @@ void control::CosmicPlaguePartTwoController(int code, TPinballComponent* caller) } if (roll9 == caller) { - lite310->Message(20, 0.0); + lite310->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING242), 4.0); @@ -3116,8 +3117,8 @@ void control::DoomsdayMachineController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 3; - lite301->Message(7, 0.0); - lite320->Message(7, 0.0); + lite301->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite320->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3136,8 +3137,8 @@ void control::DoomsdayMachineController(int code, TPinballComponent* caller) } else { - lite301->Message(20, 0.0); - lite320->Message(20, 0.0); + lite301->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite320->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING239), 4.0); @@ -3158,7 +3159,7 @@ void control::GameoverController(int code, TPinballComponent* caller) if (code == 66) { - goal_lights->Message(20, 0.0); + goal_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); pb::mode_change(GameModes::GameOver); flip1->Message2(MessageCode::GameOver, 0.0); flip2->Message2(MessageCode::GameOver, 0.0); @@ -3258,7 +3259,7 @@ void control::LaunchTrainingController(int code, TPinballComponent* caller) { if (code == 66) { - lite317->Message(7, 0.0); + lite317->Message2(MessageCode::TLightFlasherStartTimed, 0.0); lite56->MessageField = 3; } else if (code != 67) @@ -3278,7 +3279,7 @@ void control::LaunchTrainingController(int code, TPinballComponent* caller) } else { - lite317->Message(20, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING212), 4.0); @@ -3302,9 +3303,9 @@ void control::MaelstromController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 3; - lite303->Message(7, 0.0); - lite309->Message(7, 0.0); - lite315->Message(7, 0.0); + lite303->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite309->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite315->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3331,9 +3332,9 @@ void control::MaelstromController(int code, TPinballComponent* caller) } else { - lite303->Message(20, 0.0); - lite309->Message(20, 0.0); - lite315->Message(20, 0.0); + lite303->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite309->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite315->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 25; MissionControl(66, nullptr); } @@ -3348,8 +3349,8 @@ void control::MaelstromPartEightController(int code, TPinballComponent* caller) { if (code == 66) { - lite130->Message(19, 0.0); - lite304->Message(7, 0.0); + lite130->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite304->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3360,8 +3361,8 @@ void control::MaelstromPartEightController(int code, TPinballComponent* caller) } if (kickout2 == caller) { - lite304->Message(20, 0.0); - lite130->Message(20, 0.0); + lite304->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite130->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); int addedScore = SpecialAddScore(5000000); @@ -3381,7 +3382,7 @@ void control::MaelstromPartFiveController(int code, TPinballComponent* caller) { if (code == 66) { - lite317->Message(7, 0.0); + lite317->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3392,7 +3393,7 @@ void control::MaelstromPartFiveController(int code, TPinballComponent* caller) } if (ramp == caller) { - lite317->Message(20, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 29; MissionControl(66, nullptr); } @@ -3405,7 +3406,7 @@ void control::MaelstromPartFourController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 0; - lite318->Message(7, 0.0); + lite318->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3416,7 +3417,7 @@ void control::MaelstromPartFourController(int code, TPinballComponent* caller) } if (roll184 == caller) { - lite318->Message(20, 0.0); + lite318->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 28; MissionControl(66, nullptr); } @@ -3455,10 +3456,10 @@ void control::MaelstromPartSixController(int code, TPinballComponent* caller) { if (code == 66) { - lite20->Message(19, 0.0); - lite19->Message(19, 0.0); - lite305->Message(7, 0.0); - lite312->Message(7, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite305->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite312->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3469,12 +3470,12 @@ void control::MaelstromPartSixController(int code, TPinballComponent* caller) } if (flag1 == caller || flag2 == caller) { - lite305->Message(20, 0.0); - lite312->Message(20, 0.0); + lite305->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite312->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 30; MissionControl(66, nullptr); - lite20->Message(20, 0.0); - lite19->Message(20, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOff, 0.0); } } @@ -3487,12 +3488,12 @@ void control::MaelstromPartThreeController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 5; - lite301->Message(7, 0.0); - lite302->Message(7, 0.0); - lite307->Message(7, 0.0); - lite316->Message(7, 0.0); - lite320->Message(7, 0.0); - lite321->Message(7, 0.0); + lite301->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite302->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite307->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite316->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite320->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite321->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3521,12 +3522,12 @@ void control::MaelstromPartThreeController(int code, TPinballComponent* caller) } else { - lite301->Message(20, 0.0); - lite302->Message(20, 0.0); - lite307->Message(20, 0.0); - lite316->Message(20, 0.0); - lite320->Message(20, 0.0); - lite321->Message(20, 0.0); + lite301->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite302->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite307->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite316->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite320->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite321->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 27; MissionControl(66, nullptr); } @@ -3542,11 +3543,11 @@ void control::MaelstromPartTwoController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 3; - lite306->Message(7, 0.0); - lite308->Message(7, 0.0); - lite310->Message(7, 0.0); - lite313->Message(7, 0.0); - lite319->Message(7, 0.0); + lite306->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite308->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite310->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite313->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite319->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3577,11 +3578,11 @@ void control::MaelstromPartTwoController(int code, TPinballComponent* caller) } else { - lite306->Message(20, 0.0); - lite308->Message(20, 0.0); - lite310->Message(20, 0.0); - lite313->Message(20, 0.0); - lite319->Message(20, 0.0); + lite306->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite308->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite310->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite313->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite319->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 26; MissionControl(66, nullptr); } @@ -3596,8 +3597,8 @@ void control::PracticeMissionController(int code, TPinballComponent* caller) { if (code == 66) { - lite308->Message(7, 0.0); - lite311->Message(7, 0.0); + lite308->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite311->Message2(MessageCode::TLightFlasherStartTimed, 0.0); lite56->MessageField = 8; } else if (code != 67) @@ -3621,8 +3622,8 @@ void control::PracticeMissionController(int code, TPinballComponent* caller) } else { - lite308->Message(20, 0.0); - lite311->Message(20, 0.0); + lite308->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite311->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING209), 4.0); @@ -3646,12 +3647,12 @@ void control::ReconnaissanceController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 15; - lite301->Message(7, 0.0); - lite302->Message(7, 0.0); - lite307->Message(7, 0.0); - lite316->Message(7, 0.0); - lite320->Message(7, 0.0); - lite321->Message(7, 0.0); + lite301->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite302->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite307->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite316->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite320->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite321->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3680,12 +3681,12 @@ void control::ReconnaissanceController(int code, TPinballComponent* caller) } else { - lite301->Message(20, 0.0); - lite302->Message(20, 0.0); - lite307->Message(20, 0.0); - lite316->Message(20, 0.0); - lite320->Message(20, 0.0); - lite321->Message(20, 0.0); + lite301->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite302->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite307->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite316->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite320->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite321->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING237), 4.0); @@ -3709,13 +3710,13 @@ void control::ReentryTrainingController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 3; - l_trek_lights->Message(20, 0.0); - l_trek_lights->Message(32, 0.2f); - l_trek_lights->Message(26, 0.2f); - r_trek_lights->Message(20, 0.0); - r_trek_lights->Message(32, 0.2f); - r_trek_lights->Message(26, 0.2f); - lite307->Message(7, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + l_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupOffsetAnimationForward, 0.2f); + r_trek_lights->Message2(MessageCode::TLightGroupAnimationBackward, 0.2f); + lite307->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3736,7 +3737,7 @@ void control::ReentryTrainingController(int code, TPinballComponent* caller) } else { - lite307->Message(20, 0.0); + lite307->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING214), 4.0); @@ -3775,9 +3776,9 @@ void control::RescueMissionController(int code, TPinballComponent* caller) return; } if (light_on(&control_lite303_tag)) - lite303->Message(20, 0.0); + lite303->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite304_tag)) - lite304->Message(20, 0.0); + lite304->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING230), 4.0); @@ -3791,8 +3792,8 @@ void control::RescueMissionController(int code, TPinballComponent* caller) break; } case 66: - lite20->Message(20, 0.0); - lite19->Message(20, 0.0); + lite20->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite19->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite56->MessageField = 1; break; case 67: @@ -3800,20 +3801,20 @@ void control::RescueMissionController(int code, TPinballComponent* caller) { mission_text_box->Display(pb::get_rc_string(Msg::STRING229), -1.0); if (light_on(&control_lite303_tag)) - lite303->Message(20, 0.0); + lite303->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite304_tag)) { - lite304->Message(7, 0.0); + lite304->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } else { mission_text_box->Display(pb::get_rc_string(Msg::STRING228), -1.0); if (light_on(&control_lite304_tag)) - lite304->Message(20, 0.0); + lite304->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite303_tag)) { - lite303->Message(7, 0.0); + lite303->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } break; @@ -3831,7 +3832,7 @@ void control::SatelliteController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 3; - lite308->Message(7, 0.0); + lite308->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3850,7 +3851,7 @@ void control::SatelliteController(int code, TPinballComponent* caller) } else { - lite308->Message(20, 0.0); + lite308->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING234), 4.0); @@ -3892,9 +3893,9 @@ void control::ScienceMissionController(int code, TPinballComponent* caller) target8->Message2(MessageCode::TPopupTargetEnable, 0.0); target7->MessageField = 0; target7->Message2(MessageCode::TPopupTargetEnable, 0.0); - lite303->Message(7, 0.0); - lite309->Message(7, 0.0); - lite315->Message(7, 0.0); + lite303->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite309->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite315->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3921,9 +3922,9 @@ void control::ScienceMissionController(int code, TPinballComponent* caller) } else { - lite303->Message(20, 0.0); - lite309->Message(20, 0.0); - lite315->Message(20, 0.0); + lite303->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite309->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite315->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING216), 4.0); @@ -3946,10 +3947,10 @@ void control::SecretMissionGreenController(int code, TPinballComponent* caller) { if (code == 66) { - lite6->Message(19, 0.0); - lite2->Message(11, 1.0); - lite2->Message(19, 0.0); - lite2->Message(7, 0.0); + lite6->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite2->Message2(MessageCode::TLightSetOnStateBmpIndex, 1.0); + lite2->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite2->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -3980,10 +3981,10 @@ void control::SecretMissionRedController(int code, TPinballComponent* caller) { if (code == 66) { - lite5->Message(19, 0.0); - lite4->Message(11, 2.0); - lite4->Message(19, 0.0); - lite4->Message(7, 0.0); + lite5->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite4->Message2(MessageCode::TLightSetOnStateBmpIndex, 2.0); + lite4->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite4->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -4005,14 +4006,14 @@ void control::SecretMissionYellowController(int code, TPinballComponent* caller) { if (code == 66) { - worm_hole_lights->Message(20, 0.0); - bsink_arrow_lights->Message(20, 0.0); - bsink_arrow_lights->Message(23, 0.0); - lite110->Message(20, 0.0); - lite7->Message(19, 0.0); - lite3->Message(11, 0.0); - lite3->Message(19, 0.0); - lite3->Message(7, 0.0); + worm_hole_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightSetMessageField, 0.0); + lite110->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite7->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite3->Message2(MessageCode::TLightSetOnStateBmpIndex, 0.0); + lite3->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + lite3->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -4053,17 +4054,17 @@ void control::SelectMissionController(int code, TPinballComponent* caller) { if (ramp == caller && light_on(&control_lite56_tag) - && fuel_bargraph->Message(37, 0.0)) + && fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) { - lite56->Message(20, 0.0); - lite198->Message(19, 0.0); - outer_circle->Message(26, -1.0); + lite56->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite198->Message2(MessageCode::TLightResetAndTurnOn, 0.0); + outer_circle->Message2(MessageCode::TLightGroupAnimationBackward, -1.0); if (light_on(&control_lite317_tag)) - lite317->Message(20, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite318_tag)) - lite318->Message(20, 0.0); + lite318->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite319_tag)) - lite319->Message(20, 0.0); + lite319->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = lite56->MessageField; auto scoreId = lite56->MessageField - 2; MissionControl(66, nullptr); @@ -4082,7 +4083,7 @@ void control::SelectMissionController(int code, TPinballComponent* caller) } int missionId; - auto activeCount = middle_circle->Message(37, 0.0); + auto activeCount = middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); switch (activeCount) { case 1: @@ -4178,25 +4179,25 @@ void control::SelectMissionController(int code, TPinballComponent* caller) return; } lite56->MessageField = missionId; - lite56->Message(15, 2.0); - lite198->Message(4, 0.0); + lite56->Message2(MessageCode::TLightFlasherStartTimedThenStayOn, 2.0); + lite198->Message2(MessageCode::TLightFlasherStart, 0.0); MissionControl(67, caller); return; } case 66: midi::play_track(MidiTracks::Track1, false); - lite198->Message(20, 0.0); - outer_circle->Message(34, 0.0); - ramp_tgt_lights->Message(20, 0.0); + lite198->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + outer_circle->Message2(MessageCode::TLightGroupReset, 0.0); + ramp_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite56->MessageField = 0; lite101->MessageField = 0; - l_trek_lights->Message(34, 0.0); - l_trek_lights->Message(20, 0.0); - r_trek_lights->Message(34, 0.0); - r_trek_lights->Message(20, 0.0); - goal_lights->Message(20, 0.0); - worm_hole_lights->Message(20, 0.0); - bsink_arrow_lights->Message(20, 0.0); + l_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + l_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + r_trek_lights->Message2(MessageCode::TLightGroupReset, 0.0); + r_trek_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + goal_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + worm_hole_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); break; case 67: break; @@ -4204,7 +4205,7 @@ void control::SelectMissionController(int code, TPinballComponent* caller) return; } - if (fuel_bargraph->Message(37, 0.0)) + if (fuel_bargraph->Message2(MessageCode::TLightGroupGetOnCount, 0.0)) { if (light_on(&control_lite56_tag)) { @@ -4212,22 +4213,22 @@ void control::SelectMissionController(int code, TPinballComponent* caller) snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING207), missionText); mission_text_box->Display(Buffer, -1.0); if (light_on(&control_lite318_tag)) - lite318->Message(20, 0.0); + lite318->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite319_tag)) - lite319->Message(20, 0.0); + lite319->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite317_tag)) - lite317->Message(7, 0.0); + lite317->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else { mission_text_box->Display(pb::get_rc_string(Msg::STRING205), -1.0); if (light_on(&control_lite317_tag)) - lite317->Message(20, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite318_tag)) - lite318->Message(20, 0.0); + lite318->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite319_tag)) { - lite319->Message(7, 0.0); + lite319->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } } @@ -4235,12 +4236,12 @@ void control::SelectMissionController(int code, TPinballComponent* caller) { mission_text_box->Display(pb::get_rc_string(Msg::STRING206), -1.0); if (light_on(&control_lite317_tag)) - lite317->Message(20, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (light_on(&control_lite319_tag)) - lite319->Message(20, 0.0); + lite319->Message2(MessageCode::TLightResetAndTurnOff, 0.0); if (!light_on(&control_lite318_tag)) { - lite318->Message(7, 0.0); + lite318->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } } } @@ -4258,8 +4259,8 @@ void control::SpaceRadiationController(int code, TPinballComponent* caller) if (lite104->MessageField == 7) { lite104->MessageField = 15; - bsink_arrow_lights->Message(7, 0.0); - lite313->Message(20, 0.0); + bsink_arrow_lights->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite313->Message2(MessageCode::TLightResetAndTurnOff, 0.0); MissionControl(67, caller); AdvanceWormHoleDestination(1); } @@ -4285,9 +4286,9 @@ void control::SpaceRadiationController(int code, TPinballComponent* caller) { if (code == 66) { - lchute_tgt_lights->Message(20, 0.0); + lchute_tgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite104->MessageField = 0; - lite313->Message(7, 0.0); + lite313->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code == 67) { @@ -4313,15 +4314,15 @@ void control::StrayCometController(int code, TPinballComponent* caller) { if (lite107->MessageField == 7) { - lite306->Message(20, 0.0); - lite304->Message(7, 0.0); + lite306->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite304->Message2(MessageCode::TLightFlasherStartTimed, 0.0); lite107->MessageField = 15; MissionControl(67, caller); } } else if (kickout2 == caller && lite107->MessageField == 15) { - lite304->Message(20, 0.0); + lite304->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); mission_text_box->Display(pb::get_rc_string(Msg::STRING220), 4.0); @@ -4338,9 +4339,9 @@ void control::StrayCometController(int code, TPinballComponent* caller) { if (code == 66) { - bpr_solotgt_lights->Message(20, 0.0); + bpr_solotgt_lights->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite107->MessageField = 0; - lite306->Message(7, 0.0); + lite306->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code == 67) { @@ -4363,8 +4364,8 @@ void control::TimeWarpController(int code, TPinballComponent* caller) if (code == 66) { lite56->MessageField = 25; - lite300->Message(7, 0.0); - lite322->Message(7, 0.0); + lite300->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite322->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -4386,8 +4387,8 @@ void control::TimeWarpController(int code, TPinballComponent* caller) } else { - lite300->Message(20, 0.0); - lite322->Message(20, 0.0); + lite300->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite322->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 24; MissionControl(66, nullptr); } @@ -4402,10 +4403,10 @@ void control::TimeWarpPartTwoController(int code, TPinballComponent* caller) { if (code == 66) { - lite55->Message(7, -1.0); - lite26->Message(7, -1.0); - lite304->Message(7, 0.0); - lite317->Message(7, 0.0); + lite55->Message2(MessageCode::TLightFlasherStartTimed, -1.0); + lite26->Message2(MessageCode::TLightFlasherStartTimed, -1.0); + lite304->Message2(MessageCode::TLightFlasherStartTimed, 0.0); + lite317->Message2(MessageCode::TLightFlasherStartTimed, 0.0); } else if (code != 67) { @@ -4417,10 +4418,10 @@ void control::TimeWarpPartTwoController(int code, TPinballComponent* caller) if (kickout2 == caller) { mission_text_box->Display(pb::get_rc_string(Msg::STRING148), 4.0); - if (middle_circle->Message(37, 0.0) > 1) + if (middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0) > 1) { - middle_circle->Message(33, 5.0); - int rank = middle_circle->Message(37, 0.0); + middle_circle->Message2(MessageCode::TLightGroupOffsetAnimationBackward, 5.0); + int rank = middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING274), pb::get_rc_string(RankRcArray[rank - 1])); mission_text_box->Display(Buffer, 8.0); } @@ -4430,10 +4431,10 @@ void control::TimeWarpPartTwoController(int code, TPinballComponent* caller) if (ramp != caller) return; mission_text_box->Display(pb::get_rc_string(Msg::STRING147), 4.0); - if (middle_circle->Message(37, 0.0) < 9) + if (middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0) < 9) { - int rank = middle_circle->Message(37, 0.0); - middle_circle->Message(41, 5.0); + int rank = middle_circle->Message2(MessageCode::TLightGroupGetOnCount, 0.0); + middle_circle->Message2(MessageCode::TLightGroupResetAndTurnOn, 5.0); snprintf(Buffer, sizeof Buffer, pb::get_rc_string(Msg::STRING273), pb::get_rc_string(RankRcArray[rank])); } if (!AddRankProgress(12)) @@ -4443,10 +4444,10 @@ void control::TimeWarpPartTwoController(int code, TPinballComponent* caller) } } SpecialAddScore(2000000); - lite55->Message(20, 0.0); - lite26->Message(20, 0.0); - lite304->Message(20, 0.0); - lite317->Message(20, 0.0); + lite55->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite26->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite304->Message2(MessageCode::TLightResetAndTurnOff, 0.0); + lite317->Message2(MessageCode::TLightResetAndTurnOff, 0.0); lite198->MessageField = 1; MissionControl(66, nullptr); // SpecialAddScore sets the score dirty flag. So next tick it will be redrawn. diff --git a/SpaceCadetPinball/control.h b/SpaceCadetPinball/control.h index 1befa2d..d07aaf6 100644 --- a/SpaceCadetPinball/control.h +++ b/SpaceCadetPinball/control.h @@ -1,5 +1,6 @@ #pragma once +class TSink; class TLight; class TSound; class TPinballTable; @@ -69,7 +70,8 @@ public: static bool table_unlimited_balls; static Msg RankRcArray[9], MissionRcArray[17]; static int mission_select_scores[17]; - static component_tag_base *wormhole_tag_array1[3], *wormhole_tag_array2[3], *wormhole_tag_array3[3]; + static std::reference_wrapper wormhole_tag_array1[3]; + static std::reference_wrapper wormhole_tag_array2[3], wormhole_tag_array3[3]; static void make_links(TPinballTable* table); static void ClearLinks(); diff --git a/SpaceCadetPinball/pb.cpp b/SpaceCadetPinball/pb.cpp index f01632d..00be232 100644 --- a/SpaceCadetPinball/pb.cpp +++ b/SpaceCadetPinball/pb.cpp @@ -215,7 +215,7 @@ void pb::mode_change(GameModes mode) winmain::DemoActive = false; } if (MainTable && MainTable->LightGroup) - MainTable->LightGroup->Message(29, 1.4f); + MainTable->LightGroup->Message2(MessageCode::TLightGroupGameOverAnimation, 1.4f); break; } game_mode = mode; @@ -504,10 +504,10 @@ void pb::InputDown(GameInput input) MainTable->port_draw(); break; case 'i': - MainTable->LightGroup->Message(-24, 1.0f); + MainTable->LightGroup->Message2(MessageCode::TLightFtTmpOverrideOn, 1.0f); break; case 'j': - MainTable->LightGroup->Message(-25, 1.0f); + MainTable->LightGroup->Message2(MessageCode::TLightFtTmpOverrideOff, 1.0f); break; } }