aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/player_v1.cpp2
-rw-r--r--scumm/player_v1.h4
-rw-r--r--scumm/player_v2.cpp7
-rw-r--r--scumm/player_v2.h6
-rw-r--r--scumm/player_v2a.h2
-rw-r--r--scumm/player_v3a.h2
-rw-r--r--scumm/resource_v2.cpp6
-rw-r--r--scumm/script_v2.cpp6
-rw-r--r--scumm/scumm.h6
-rw-r--r--scumm/scummvm.cpp8
10 files changed, 23 insertions, 26 deletions
diff --git a/scumm/player_v1.cpp b/scumm/player_v1.cpp
index a934b56bf5..5fc4dea07a 100644
--- a/scumm/player_v1.cpp
+++ b/scumm/player_v1.cpp
@@ -34,7 +34,7 @@ namespace Scumm {
#define FIXP_SHIFT 16
-Player_V1::Player_V1(ScummEngine *scumm) : Player_V2(scumm) {
+Player_V1::Player_V1(ScummEngine *scumm, bool pcjr) : Player_V2(scumm, pcjr) {
// Initialize channel code
for (int i = 0; i < 4; ++i)
clear_channel(i);
diff --git a/scumm/player_v1.h b/scumm/player_v1.h
index 83a901ea75..b7c25466c6 100644
--- a/scumm/player_v1.h
+++ b/scumm/player_v1.h
@@ -28,11 +28,11 @@
namespace Scumm {
/**
- * V1 PC-Speaker player.
+ * Scumm V1 PC-Speaker player.
*/
class Player_V1 : public Player_V2 {
public:
- Player_V1(ScummEngine *scumm);
+ Player_V1(ScummEngine *scumm, bool pcjr);
~Player_V1();
virtual void startSound(int sound);
diff --git a/scumm/player_v2.cpp b/scumm/player_v2.cpp
index a86a6ad43f..8a853922ea 100644
--- a/scumm/player_v2.cpp
+++ b/scumm/player_v2.cpp
@@ -341,12 +341,9 @@ static const uint16 pcjr_freq_table[12] = {
#endif
-Player_V2::Player_V2(ScummEngine *scumm) {
+Player_V2::Player_V2(ScummEngine *scumm, bool pcjr) {
int i;
- // This simulates the pc speaker sound, which is driven
- // by the 8253 (square wave generator) and a low-band filter.
-
_isV3Game = (scumm->_version >= 3);
_scumm = scumm;
_system = scumm->_system;
@@ -376,7 +373,7 @@ Player_V2::Player_V2(ScummEngine *scumm) {
_RNG = NG_PRESET;
- set_pcjr(scumm->_midiDriver != MD_PCSPK);
+ set_pcjr(pcjr);
setMasterVolume(255);
_mixer->setupPremix(premix_proc, this);
diff --git a/scumm/player_v2.h b/scumm/player_v2.h
index 0490845f92..bda919015d 100644
--- a/scumm/player_v2.h
+++ b/scumm/player_v2.h
@@ -68,11 +68,13 @@ struct channel_data {
/**
- * V2 PC-Speaker MIDI driver.
+ * Scumm V2 PC-Speaker MIDI driver.
+ * This simulates the pc speaker sound, which is driven by the 8253 (square
+ * wave generator) and a low-band filter.
*/
class Player_V2 : public MusicEngine {
public:
- Player_V2(ScummEngine *scumm);
+ Player_V2(ScummEngine *scumm, bool pcjr);
virtual ~Player_V2();
virtual void setMasterVolume(int vol);
diff --git a/scumm/player_v2a.h b/scumm/player_v2a.h
index e3fec9b27d..dfd7ba27bf 100644
--- a/scumm/player_v2a.h
+++ b/scumm/player_v2a.h
@@ -36,7 +36,7 @@ class ScummEngine;
class V2A_Sound;
/**
- * V2 Amiga sound/music driver.
+ * Scumm V2 Amiga sound/music driver.
*/
class Player_V2A : public MusicEngine {
public:
diff --git a/scumm/player_v3a.h b/scumm/player_v3a.h
index e175111482..3635ed7ade 100644
--- a/scumm/player_v3a.h
+++ b/scumm/player_v3a.h
@@ -35,7 +35,7 @@ namespace Scumm {
class ScummEngine;
/**
- * V3 Amiga sound/music driver.
+ * Scumm V3 Amiga sound/music driver.
*/
class Player_V3A : public MusicEngine {
public:
diff --git a/scumm/resource_v2.cpp b/scumm/resource_v2.cpp
index 34030268d3..2bfe44d588 100644
--- a/scumm/resource_v2.cpp
+++ b/scumm/resource_v2.cpp
@@ -34,7 +34,7 @@ void ScummEngine_v2::readClassicIndexFile() {
if (_gameId == GID_MANIAC) {
if (!(_features & GF_AMIGA) && !(_features & GF_NES))
- _musicEngine = new Player_V1(this);
+ _musicEngine = new Player_V1(this, _midiDriver != MD_PCSPK);
_numGlobalObjects = 800;
_numRooms = 55;
@@ -43,7 +43,7 @@ void ScummEngine_v2::readClassicIndexFile() {
_numSounds = 100;
} else if (_gameId == GID_ZAK) {
if (!(_features & GF_AMIGA))
- _musicEngine = new Player_V2(this);
+ _musicEngine = new Player_V2(this, _midiDriver != MD_PCSPK);
_numGlobalObjects = 775;
_numRooms = 61;
@@ -109,7 +109,7 @@ void ScummEngine_v2::readClassicIndexFile() {
void ScummEngine_v2::readEnhancedIndexFile() {
if (!(_features & GF_AMIGA))
- _musicEngine = new Player_V2(this);
+ _musicEngine = new Player_V2(this, _midiDriver != MD_PCSPK);
_numGlobalObjects = _fileHandle.readUint16LE();
_fileHandle.seek(_numGlobalObjects, SEEK_CUR); // Skip object flags
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 2af5817cff..4259405058 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -421,7 +421,7 @@ void ScummEngine_v2::decodeParseString() {
// V1 Mansion Mansion uses dynamic color table for subtitles
if ((_gameId == GID_MANIAC) && (_version == 1)) {
// Demo mode doesn't set subtitle color before display first subtitle.
- if (_demo_mode && _actorToPrintStrFor == 0xFF)
+ if (_demoMode && _actorToPrintStrFor == 0xFF)
_string[textSlot].color = 1;
else if (_actorToPrintStrFor != 0xFF)
_string[textSlot].color = v1_mm_actor_speech_color[_actorToPrintStrFor];
@@ -836,7 +836,7 @@ void ScummEngine_v2::o2_verbOps() {
vs = &_verbs[slot];
vs->verbid = verb;
if (_version == 1) {
- if (_gameId == GID_MANIAC && _demo_mode)
+ if (_gameId == GID_MANIAC && _demoMode)
vs->color = 4;
else
vs->color = 5;
@@ -1382,7 +1382,7 @@ void ScummEngine_v2::o2_cutscene() {
// FIXME allows quotes script (173) to start during introudction of
// demo mode of V1 Maniac Mansion. setUserState was halting script
// 173 before it started.
- if (!(_gameId == GID_MANIAC && _version == 1 && _demo_mode))
+ if (!(_gameId == GID_MANIAC && _version == 1 && _demoMode))
// Hide inventory, freeze scripts, hide cursor
setUserState(15);
diff --git a/scumm/scumm.h b/scumm/scumm.h
index d6664263e9..b6cdc4d5e5 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -955,7 +955,6 @@ public:
byte _proc_special_palette[256];
byte *_roomPalette;
byte *_shadowPalette;
- int _midiDriver; // Use the MD_ values from mididrv.h
protected:
int _shadowPaletteSize;
@@ -969,6 +968,9 @@ protected:
int tempMusic;
int _saveSound;
bool _native_mt32;
+ int _midiDriver; // Use the MD_ values from mididrv.h
+ bool _demoMode;
+ bool _confirmExit;
public:
bool _silentDigitalImuse, _noDigitalSamples;
@@ -1022,9 +1024,7 @@ protected:
byte _charsetBuffer[512];
public:
- bool _demo_mode;
bool _noSubtitles; // Whether to skip all subtitles
- bool _confirmExit;
protected:
void initCharset(int charset);
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index ad421fb38d..5c5638ecf6 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -65,7 +65,6 @@ extern bool isSmartphone(void);
extern NewGui *g_gui;
extern uint16 _debugLevel;
-extern uint16 _demo_mode;
namespace Scumm {
@@ -453,7 +452,6 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst)
memset(_charsetData, 0, sizeof(_charsetData));
_charsetBufPos = 0;
memset(_charsetBuffer, 0, sizeof(_charsetBuffer));
- _demo_mode = false;
_noSubtitles = false;
_confirmExit = false;
_numInMsgStack = 0;
@@ -606,7 +604,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst)
_version = detector->_game.version;
setFeatures(detector->_game.features);
- _demo_mode = detector->_demo_mode;
+ _demoMode = detector->_demo_mode;
_noSubtitles = detector->_noSubtitles;
_confirmExit = detector->_confirmExit;
_defaultTalkDelay = detector->_talkSpeed;
@@ -680,7 +678,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst)
} else if ((_features & GF_AMIGA) && (_version < 5)) {
_musicEngine = NULL;
} else if (((_midiDriver == MD_PCJR) || (_midiDriver == MD_PCSPK)) && ((_version > 2) && (_version < 5))) {
- _musicEngine = new Player_V2(this);
+ _musicEngine = new Player_V2(this, _midiDriver != MD_PCSPK);
} else if (_version > 2) {
MidiDriver *driver = detector->createMidi();
if (driver && detector->_native_mt32)
@@ -890,7 +888,7 @@ void ScummEngine::launch() {
// If requested, load a save game instead of running the boot script
if (_saveLoadFlag != 2 || !loadState(_saveLoadSlot, _saveLoadCompatible)) {
- if (_gameId == GID_MANIAC && _demo_mode)
+ if (_gameId == GID_MANIAC && _demoMode)
runScript(9, 0, 0, &_bootParam);
else
runScript(1, 0, 0, &_bootParam);