From 32fa8928d463b699c293c65c4f157115620ad04c Mon Sep 17 00:00:00 2001 From: elasota Date: Fri, 27 Dec 2019 18:28:47 -0500 Subject: [PATCH] Disable Mac Plus graphic/sound --- GpApp/Dynamics.cpp | 25 ++++++++++++++++--- GpApp/ObjectDraw2.cpp | 14 ++++++++++- PortabilityLayer/PLHacks.cpp | 11 ++++++++ PortabilityLayer/PLHacks.h | 4 +++ PortabilityLayer/PortabilityLayer.vcxproj | 2 ++ .../PortabilityLayer.vcxproj.filters | 6 +++++ 6 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 PortabilityLayer/PLHacks.cpp create mode 100644 PortabilityLayer/PLHacks.h diff --git a/GpApp/Dynamics.cpp b/GpApp/Dynamics.cpp index d8887e2..cb33ae0 100644 --- a/GpApp/Dynamics.cpp +++ b/GpApp/Dynamics.cpp @@ -10,6 +10,7 @@ #include "Environ.h" #include "MainWindow.h" #include "Objects.h" +#include "PLHacks.h" #include "RectUtils.h" #include "Room.h" @@ -396,11 +397,27 @@ void HandleMacPlus (short who) AddRectToWorkRects(&dinahs[who].dest); else if (dinahs[who].timer == 1) { - PlayPrioritySound(kMacBeepSound, kMacBeepPriority); - CopyBits((BitMap *)*GetGWorldPixMap(applianceSrcMap), - (BitMap *)*GetGWorldPixMap(backSrcMap), - &plusScreen2, &dinahs[who].dest, + if (!IsMacPlusSoundBanned()) + PlayPrioritySound(kMacBeepSound, kMacBeepPriority); + + if (IsMacPlusGraphicBanned()) + { + CGraf *oldPort = GetGraphicsPort(); + SetGraphicsPort(backSrcMap); + + ForeColor(whiteColor); + PaintRect(&dinahs[who].dest); + + SetGraphicsPort(oldPort); + } + else + { + CopyBits((BitMap *)*GetGWorldPixMap(applianceSrcMap), + (BitMap *)*GetGWorldPixMap(backSrcMap), + &plusScreen2, &dinahs[who].dest, srcCopy, nil); + } + AddRectToBackRects(&dinahs[who].dest); } else if (dinahs[who].timer == 30) diff --git a/GpApp/ObjectDraw2.cpp b/GpApp/ObjectDraw2.cpp index 9f7c17d..53396a5 100644 --- a/GpApp/ObjectDraw2.cpp +++ b/GpApp/ObjectDraw2.cpp @@ -15,7 +15,7 @@ #include "RectUtils.h" #include "Room.h" #include "Utilities.h" - +#include "PLHacks.h" #define k8WhiteColor 0 #define kIntenseYellowColor 5 @@ -601,6 +601,18 @@ void DrawSimpleAppliance (short what, Rect *theRect) void DrawMacPlus (Rect *theRect, Boolean isOn, Boolean isLit) { Rect screen; + + if (IsMacPlusGraphicBanned()) + { + CGraf *wasGraph = GetGraphicsPort(); + SetGraphicsPort(backSrcMap); + + ForeColor(blackColor); + PaintRect(theRect); + + SetGraphicsPort(wasGraph); + return; + } if (isLit) { diff --git a/PortabilityLayer/PLHacks.cpp b/PortabilityLayer/PLHacks.cpp new file mode 100644 index 0000000..fdd3a2e --- /dev/null +++ b/PortabilityLayer/PLHacks.cpp @@ -0,0 +1,11 @@ +#include "PLHacks.h" + +bool IsMacPlusGraphicBanned() +{ + return true; +} + +bool IsMacPlusSoundBanned() +{ + return true; +} diff --git a/PortabilityLayer/PLHacks.h b/PortabilityLayer/PLHacks.h new file mode 100644 index 0000000..db810bc --- /dev/null +++ b/PortabilityLayer/PLHacks.h @@ -0,0 +1,4 @@ +#pragma once + +bool IsMacPlusGraphicBanned(); +bool IsMacPlusSoundBanned(); diff --git a/PortabilityLayer/PortabilityLayer.vcxproj b/PortabilityLayer/PortabilityLayer.vcxproj index a0605fc..e658a8e 100644 --- a/PortabilityLayer/PortabilityLayer.vcxproj +++ b/PortabilityLayer/PortabilityLayer.vcxproj @@ -192,6 +192,7 @@ + @@ -287,6 +288,7 @@ + diff --git a/PortabilityLayer/PortabilityLayer.vcxproj.filters b/PortabilityLayer/PortabilityLayer.vcxproj.filters index 5ddd491..bb3ebe2 100644 --- a/PortabilityLayer/PortabilityLayer.vcxproj.filters +++ b/PortabilityLayer/PortabilityLayer.vcxproj.filters @@ -384,6 +384,9 @@ Header Files + + Header Files + @@ -581,5 +584,8 @@ Source Files + + Source Files + \ No newline at end of file