aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus')
-rw-r--r--engines/pegasus/cursor.cpp6
-rw-r--r--engines/pegasus/neighborhood/tsa/fulltsa.cpp22
-rw-r--r--engines/pegasus/neighborhood/tsa/tinytsa.cpp22
-rw-r--r--engines/pegasus/pegasus.cpp11
-rw-r--r--engines/pegasus/pegasus.h1
-rw-r--r--engines/pegasus/surface.cpp4
6 files changed, 41 insertions, 25 deletions
diff --git a/engines/pegasus/cursor.cpp b/engines/pegasus/cursor.cpp
index ad0d2c2d7d..602ae88068 100644
--- a/engines/pegasus/cursor.cpp
+++ b/engines/pegasus/cursor.cpp
@@ -28,7 +28,7 @@
#include "common/system.h"
#include "graphics/cursorman.h"
#include "graphics/surface.h"
-#include "graphics/decoders/pict.h"
+#include "image/pict.h"
#include "pegasus/cursor.h"
#include "pegasus/graphics.h"
@@ -148,7 +148,7 @@ void Cursor::loadCursorImage(CursorInfo &cursorInfo) {
Common::SeekableReadStream *pictStream = vm->_resFork->getResource(MKTAG('P', 'I', 'C', 'T'), cursorInfo.tag + 1000);
if (pictStream) {
- Graphics::PICTDecoder pict;
+ Image::PICTDecoder pict;
if (!pict.loadStream(*pictStream))
error("Failed to decode cursor PICT %d", cursorInfo.tag + 1000);
@@ -166,7 +166,7 @@ void Cursor::loadCursorImage(CursorInfo &cursorInfo) {
error("Failed to find color icon %d", cursorInfo.tag);
// PixMap section
- Graphics::PICTDecoder::PixMap pixMap = Graphics::PICTDecoder::readPixMap(*cicnStream);
+ Image::PICTDecoder::PixMap pixMap = Image::PICTDecoder::readPixMap(*cicnStream);
// Mask section
cicnStream->readUint32BE(); // mask baseAddr
diff --git a/engines/pegasus/neighborhood/tsa/fulltsa.cpp b/engines/pegasus/neighborhood/tsa/fulltsa.cpp
index 99efe10272..75f652ad56 100644
--- a/engines/pegasus/neighborhood/tsa/fulltsa.cpp
+++ b/engines/pegasus/neighborhood/tsa/fulltsa.cpp
@@ -2691,16 +2691,18 @@ void FullTSA::receiveNotification(Notification *notification, const Notification
}
break;
case kTSA37DownloadToOpMemReview:
- switch (GameState.getTSAState()) {
- case kPlayerOnWayToNorad:
- g_opticalChip->playOpMemMovie(kPoseidonSpotID);
- break;
- case kPlayerOnWayToMars:
- g_opticalChip->playOpMemMovie(kAriesSpotID);
- break;
- case kPlayerOnWayToWSC:
- g_opticalChip->playOpMemMovie(kMercurySpotID);
- break;
+ if (_vm->itemInBiochips(kOpticalBiochip)) {
+ switch (GameState.getTSAState()) {
+ case kPlayerOnWayToNorad:
+ g_opticalChip->playOpMemMovie(kPoseidonSpotID);
+ break;
+ case kPlayerOnWayToMars:
+ g_opticalChip->playOpMemMovie(kAriesSpotID);
+ break;
+ case kPlayerOnWayToWSC:
+ g_opticalChip->playOpMemMovie(kMercurySpotID);
+ break;
+ }
}
if (GameState.allTimeZonesFinished()) {
diff --git a/engines/pegasus/neighborhood/tsa/tinytsa.cpp b/engines/pegasus/neighborhood/tsa/tinytsa.cpp
index 0d11f5d904..0326c7f2ee 100644
--- a/engines/pegasus/neighborhood/tsa/tinytsa.cpp
+++ b/engines/pegasus/neighborhood/tsa/tinytsa.cpp
@@ -372,16 +372,18 @@ void TinyTSA::receiveNotification(Notification *notification, const Notification
}
break;
case kTinyTSA37DownloadToOpMemReview:
- switch (GameState.getTSAState()) {
- case kPlayerOnWayToNorad:
- g_opticalChip->playOpMemMovie(kPoseidonSpotID);
- break;
- case kPlayerOnWayToMars:
- g_opticalChip->playOpMemMovie(kAriesSpotID);
- break;
- case kPlayerOnWayToWSC:
- g_opticalChip->playOpMemMovie(kMercurySpotID);
- break;
+ if (_vm->itemInBiochips(kOpticalBiochip)) {
+ switch (GameState.getTSAState()) {
+ case kPlayerOnWayToNorad:
+ g_opticalChip->playOpMemMovie(kPoseidonSpotID);
+ break;
+ case kPlayerOnWayToMars:
+ g_opticalChip->playOpMemMovie(kAriesSpotID);
+ break;
+ case kPlayerOnWayToWSC:
+ g_opticalChip->playOpMemMovie(kMercurySpotID);
+ break;
+ }
}
requestExtraSequence(kTinyTSA37OpMemReviewToMainMenu, kExtraCompletedFlag, kFilterNoInput);
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index 0148470cd5..c5edd34a01 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -431,6 +431,8 @@ void PegasusEngine::removeTimeBase(TimeBase *timeBase) {
bool PegasusEngine::loadFromStream(Common::SeekableReadStream *stream) {
// Dispose currently running stuff
+ lowerInventoryDrawerSync();
+ lowerBiochipDrawerSync();
useMenu(0);
useNeighborhood(0);
removeAllItemsFromInventory();
@@ -1460,6 +1462,15 @@ void PegasusEngine::throwAwayEverything() {
g_interface = 0;
}
+InputBits PegasusEngine::getInputFilter() {
+ InputBits filter = InputHandler::getInputFilter();
+
+ if (isPaused())
+ return filter & ~JMPPPInput::getItemPanelsInputFilter();
+
+ return filter;
+}
+
void PegasusEngine::processShell() {
checkCallBacks();
checkNotifications();
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index 59637e38df..fb66eb7586 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -272,6 +272,7 @@ private:
uint getNeighborhoodCD(const NeighborhoodID neighborhood) const;
uint _currentCD;
void initKeymap();
+ InputBits getInputFilter();
// Menu
GameMenu *_gameMenu;
diff --git a/engines/pegasus/surface.cpp b/engines/pegasus/surface.cpp
index cdcb3c6e79..cb1e2e7bcc 100644
--- a/engines/pegasus/surface.cpp
+++ b/engines/pegasus/surface.cpp
@@ -28,7 +28,7 @@
#include "common/stream.h"
#include "common/system.h"
#include "graphics/surface.h"
-#include "graphics/decoders/pict.h"
+#include "image/pict.h"
#include "video/video_decoder.h"
#include "pegasus/pegasus.h"
@@ -101,7 +101,7 @@ void Surface::getImageFromPICTResource(Common::MacResManager *resFork, uint16 id
}
bool Surface::getImageFromPICTStream(Common::SeekableReadStream *stream) {
- Graphics::PICTDecoder pict;
+ Image::PICTDecoder pict;
if (!pict.loadStream(*stream))
return false;