mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
TITANIC: Fix all music instrument properties that are bool
This commit is contained in:
@@ -35,15 +35,15 @@ BEGIN_MESSAGE_MAP(CPhonographCylinder, CCarry)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
CPhonographCylinder::CPhonographCylinder() : CCarry(),
|
||||
_bellsMuteControl(false), _bellsPitchControl(false),
|
||||
_bellsSpeedControl(false), _bellsDirectionControl(false),
|
||||
_bellsMuteControl(false), _bellsPitchControl(0),
|
||||
_bellsSpeedControl(0), _bellsDirectionControl(false),
|
||||
_bellsInversionControl(false), _snakeMuteControl(false),
|
||||
_snakeSpeedControl(false), _snakePitchControl(false),
|
||||
_snakeSpeedControl(0), _snakePitchControl(0),
|
||||
_snakeInversionControl(false), _snakeDirectionControl(false),
|
||||
_pianoMuteControl(false), _pianoSpeedControl(false),
|
||||
_pianoPitchControl(false), _pianoInversionControl(false),
|
||||
_pianoMuteControl(false), _pianoSpeedControl(0),
|
||||
_pianoPitchControl(0), _pianoInversionControl(false),
|
||||
_pianoDirectionControl(false), _bassMuteControl(false),
|
||||
_bassSpeedControl(false), _bassPitchControl(false),
|
||||
_bassSpeedControl(0), _bassPitchControl(0),
|
||||
_bassInversionControl(false) {
|
||||
}
|
||||
|
||||
|
||||
@@ -36,24 +36,24 @@ class CPhonographCylinder : public CCarry {
|
||||
bool ErasePhonographCylinderMsg(CErasePhonographCylinderMsg *msg);
|
||||
private:
|
||||
CString _itemName;
|
||||
int _bellsPitchControl;
|
||||
int _bellsSpeedControl;
|
||||
bool _bellsMuteControl;
|
||||
bool _bellsPitchControl;
|
||||
bool _bellsSpeedControl;
|
||||
bool _bellsDirectionControl;
|
||||
bool _bellsInversionControl;
|
||||
int _snakeSpeedControl;
|
||||
int _snakePitchControl;
|
||||
bool _snakeMuteControl;
|
||||
bool _snakeSpeedControl;
|
||||
bool _snakePitchControl;
|
||||
bool _snakeInversionControl;
|
||||
bool _snakeDirectionControl;
|
||||
int _pianoSpeedControl;
|
||||
int _pianoPitchControl;
|
||||
bool _pianoMuteControl;
|
||||
bool _pianoSpeedControl;
|
||||
bool _pianoPitchControl;
|
||||
bool _pianoInversionControl;
|
||||
bool _pianoDirectionControl;
|
||||
int _bassSpeedControl;
|
||||
int _bassPitchControl;
|
||||
bool _bassMuteControl;
|
||||
bool _bassSpeedControl;
|
||||
bool _bassPitchControl;
|
||||
bool _bassInversionControl;
|
||||
bool _bassDirectionControl;
|
||||
public:
|
||||
|
||||
@@ -84,48 +84,48 @@ bool CMusicConsoleButton::SetMusicControlsMsg(CSetMusicControlsMsg *msg) {
|
||||
CQueryMusicControlSettingMsg queryMsg;
|
||||
|
||||
queryMsg.execute("Bells Mute Control");
|
||||
musicRoom->setMuteControl(BELLS, queryMsg._value == 1 ? 1 : 0);
|
||||
musicRoom->setMuteControl(BELLS, queryMsg._value == 1);
|
||||
queryMsg.execute("Bells Pitch Control");
|
||||
musicRoom->setPitchControl(BELLS, queryMsg._value);
|
||||
queryMsg.execute("Bells Speed Control");
|
||||
musicRoom->setSpeedControl(BELLS, queryMsg._value);
|
||||
queryMsg.execute("Bells Inversion Control");
|
||||
musicRoom->setInversionControl(BELLS, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setInversionControl(BELLS, queryMsg._value == 1);
|
||||
queryMsg.execute("Bells Direction Control");
|
||||
musicRoom->setDirectionControl(BELLS, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setDirectionControl(BELLS, queryMsg._value == 1);
|
||||
|
||||
queryMsg.execute("Snake Mute Control");
|
||||
musicRoom->setMuteControl(SNAKE, queryMsg._value == 1 ? 1 : 0);
|
||||
musicRoom->setMuteControl(SNAKE, queryMsg._value == 1);
|
||||
queryMsg.execute("Snake Pitch Control");
|
||||
musicRoom->setPitchControl(SNAKE, queryMsg._value);
|
||||
queryMsg.execute("Snake Speed Control");
|
||||
musicRoom->setSpeedControl(SNAKE, queryMsg._value);
|
||||
queryMsg.execute("Snake Inversion Control");
|
||||
musicRoom->setInversionControl(SNAKE, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setInversionControl(SNAKE, queryMsg._value == 1);
|
||||
queryMsg.execute("Snake Direction Control");
|
||||
musicRoom->setDirectionControl(SNAKE, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setDirectionControl(SNAKE, queryMsg._value == 1);
|
||||
|
||||
queryMsg.execute("Piano Mute Control");
|
||||
musicRoom->setMuteControl(PIANO, queryMsg._value == 1 ? 1 : 0);
|
||||
musicRoom->setMuteControl(PIANO, queryMsg._value == 1);
|
||||
queryMsg.execute("Piano Pitch Control");
|
||||
musicRoom->setPitchControl(PIANO, queryMsg._value);
|
||||
queryMsg.execute("Piano Speed Control");
|
||||
musicRoom->setSpeedControl(PIANO, queryMsg._value);
|
||||
queryMsg.execute("Piano Inversion Control");
|
||||
musicRoom->setInversionControl(PIANO, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setInversionControl(PIANO, queryMsg._value == 1);
|
||||
queryMsg.execute("Piano Direction Control");
|
||||
musicRoom->setDirectionControl(PIANO, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setDirectionControl(PIANO, queryMsg._value == 1);
|
||||
|
||||
queryMsg.execute("Bass Mute Control");
|
||||
musicRoom->setMuteControl(BASS, queryMsg._value == 1 ? 1 : 0);
|
||||
musicRoom->setMuteControl(BASS, queryMsg._value == 1);
|
||||
queryMsg.execute("Bass Pitch Control");
|
||||
musicRoom->setPitchControl(BASS, queryMsg._value);
|
||||
queryMsg.execute("Bass Speed Control");
|
||||
musicRoom->setSpeedControl(BASS, queryMsg._value);
|
||||
queryMsg.execute("Bass Inversion Control");
|
||||
musicRoom->setInversionControl(BASS, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setInversionControl(BASS, queryMsg._value == 1);
|
||||
queryMsg.execute("Bass Direction Control");
|
||||
musicRoom->setDirectionControl(BASS, queryMsg._value == 0 ? 1 : 0);
|
||||
musicRoom->setDirectionControl(BASS, queryMsg._value == 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ CMusicRoomHandler *CMusicRoom::_musicHandler;
|
||||
CMusicRoom::CMusicRoom(CGameManager *gameManager) :
|
||||
_gameManager(gameManager) {
|
||||
_sound = &_gameManager->_sound;
|
||||
_controls.resize(4);
|
||||
}
|
||||
|
||||
CMusicRoom::~CMusicRoom() {
|
||||
@@ -65,25 +64,25 @@ void CMusicRoom::setupMusic(int volume) {
|
||||
_musicHandler->setPitchControl2(PIANO, 0);
|
||||
_musicHandler->setPitchControl2(BELLS, 1);
|
||||
|
||||
_musicHandler->setInversionControl2(BELLS, 1);
|
||||
_musicHandler->setInversionControl2(SNAKE, 0);
|
||||
_musicHandler->setInversionControl2(PIANO, 1);
|
||||
_musicHandler->setInversionControl2(BASS, 0);
|
||||
_musicHandler->setInversionControl2(BELLS, true);
|
||||
_musicHandler->setInversionControl2(SNAKE, false);
|
||||
_musicHandler->setInversionControl2(PIANO, true);
|
||||
_musicHandler->setInversionControl2(BASS, false);
|
||||
|
||||
_musicHandler->setDirectionControl2(BELLS, 0);
|
||||
_musicHandler->setDirectionControl2(SNAKE, 0);
|
||||
_musicHandler->setDirectionControl2(PIANO, 1);
|
||||
_musicHandler->setDirectionControl2(BASS, 1);
|
||||
_musicHandler->setDirectionControl2(BELLS, false);
|
||||
_musicHandler->setDirectionControl2(SNAKE, false);
|
||||
_musicHandler->setDirectionControl2(PIANO, true);
|
||||
_musicHandler->setDirectionControl2(BASS, true);
|
||||
|
||||
// Set up the current control values
|
||||
for (MusicInstrument idx = BELLS; idx <= BASS;
|
||||
idx = (MusicInstrument)((int)idx + 1)) {
|
||||
Controls &controls = _controls[idx];
|
||||
_musicHandler->setSpeedControl(idx, controls._speedControl);
|
||||
_musicHandler->setPitchControl(idx, controls._pitchControl);
|
||||
_musicHandler->setDirectionControl(idx, controls._directionControl);
|
||||
_musicHandler->setInversionControl(idx, controls._inversionControl);
|
||||
_musicHandler->setMuteControl(idx, controls._muteControl);
|
||||
MusicRoomInstrument &instr = _instruments[idx];
|
||||
_musicHandler->setSpeedControl(idx, instr._speedControl);
|
||||
_musicHandler->setPitchControl(idx, instr._pitchControl);
|
||||
_musicHandler->setDirectionControl(idx, instr._directionControl);
|
||||
_musicHandler->setInversionControl(idx, instr._inversionControl);
|
||||
_musicHandler->setMuteControl(idx, instr._muteControl);
|
||||
}
|
||||
|
||||
_musicHandler->createWaveFile(volume);
|
||||
|
||||
@@ -32,18 +32,8 @@ class CGameManager;
|
||||
class CSound;
|
||||
|
||||
class CMusicRoom {
|
||||
struct Controls {
|
||||
int _speedControl;
|
||||
int _pitchControl;
|
||||
int _directionControl;
|
||||
int _inversionControl;
|
||||
int _muteControl;
|
||||
|
||||
Controls() : _speedControl(0), _pitchControl(0), _directionControl(0),
|
||||
_inversionControl(0), _muteControl(0) {}
|
||||
};
|
||||
private:
|
||||
Common::Array<Controls> _controls;
|
||||
MusicRoomInstrument _instruments[4];
|
||||
public:
|
||||
static CMusicRoomHandler *_musicHandler;
|
||||
public:
|
||||
@@ -66,27 +56,27 @@ public:
|
||||
/**
|
||||
* Sets the speed control for a given instrument
|
||||
*/
|
||||
void setSpeedControl(MusicInstrument instrument, int val) { _controls[instrument]._speedControl = val; }
|
||||
void setSpeedControl(MusicInstrument instrument, int val) { _instruments[instrument]._speedControl = val; }
|
||||
|
||||
/**
|
||||
* Sets the pitch control for a given instrument
|
||||
*/
|
||||
void setPitchControl(MusicInstrument instrument, int val) { _controls[instrument]._pitchControl = val; }
|
||||
void setPitchControl(MusicInstrument instrument, int val) { _instruments[instrument]._pitchControl = val; }
|
||||
|
||||
/**
|
||||
* Sets the direction control for a given instrument
|
||||
*/
|
||||
void setDirectionControl(MusicInstrument instrument, int val) { _controls[instrument]._directionControl = val; }
|
||||
void setDirectionControl(MusicInstrument instrument, bool val) { _instruments[instrument]._directionControl = val; }
|
||||
|
||||
/**
|
||||
* Sets the inversion control for a given instrument
|
||||
*/
|
||||
void setInversionControl(MusicInstrument instrument, int val) { _controls[instrument]._inversionControl = val; }
|
||||
void setInversionControl(MusicInstrument instrument, bool val) { _instruments[instrument]._inversionControl = val; }
|
||||
|
||||
/**
|
||||
* Sets the mute control for a given instrument
|
||||
*/
|
||||
void setMuteControl(MusicInstrument instrument, int val) { _controls[instrument]._muteControl = val; }
|
||||
void setMuteControl(MusicInstrument instrument, bool val) { _instruments[instrument]._muteControl = val; }
|
||||
|
||||
/**
|
||||
* Sets up the music controls
|
||||
|
||||
@@ -86,8 +86,11 @@ void CMusicRoomHandler::stop() {
|
||||
}
|
||||
|
||||
bool CMusicRoomHandler::checkInstrument(MusicInstrument instrument) const {
|
||||
// TODO
|
||||
return false;
|
||||
return (_array1[instrument]._speedControl + _array2[instrument]._speedControl) == 0
|
||||
&& (_array1[instrument]._pitchControl + _array2[instrument]._pitchControl) == 0
|
||||
&& _array1[instrument]._directionControl == _array2[instrument]._directionControl
|
||||
&& _array1[instrument]._inversionControl == _array2[instrument]._inversionControl
|
||||
&& _array1[instrument]._muteControl == _array2[instrument]._muteControl;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setSpeedControl2(MusicInstrument instrument, int value) {
|
||||
@@ -100,12 +103,12 @@ void CMusicRoomHandler::setPitchControl2(MusicInstrument instrument, int value)
|
||||
_array2[instrument]._pitchControl = value * 3;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setInversionControl2(MusicInstrument instrument, int value) {
|
||||
void CMusicRoomHandler::setInversionControl2(MusicInstrument instrument, bool value) {
|
||||
if (instrument >= BELLS && instrument <= BASS && value >= -2 && value <= 2)
|
||||
_array2[instrument]._inversionControl = value;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setDirectionControl2(MusicInstrument instrument, int value) {
|
||||
void CMusicRoomHandler::setDirectionControl2(MusicInstrument instrument, bool value) {
|
||||
if (instrument >= BELLS && instrument <= BASS && value >= -2 && value <= 2)
|
||||
_array2[instrument]._directionControl = value;
|
||||
}
|
||||
@@ -120,17 +123,17 @@ void CMusicRoomHandler::setSpeedControl(MusicInstrument instrument, int value) {
|
||||
_array1[instrument]._speedControl = value;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setDirectionControl(MusicInstrument instrument, int value) {
|
||||
void CMusicRoomHandler::setDirectionControl(MusicInstrument instrument, bool value) {
|
||||
if (instrument >= BELLS && instrument <= BASS && value >= -2 && value <= 2)
|
||||
_array1[instrument]._directionControl = value;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setInversionControl(MusicInstrument instrument, int value) {
|
||||
void CMusicRoomHandler::setInversionControl(MusicInstrument instrument, bool value) {
|
||||
if (instrument >= BELLS && instrument <= BASS && value >= -2 && value <= 2)
|
||||
_array1[instrument]._inversionControl = value;
|
||||
}
|
||||
|
||||
void CMusicRoomHandler::setMuteControl(MusicInstrument instrument, int value) {
|
||||
void CMusicRoomHandler::setMuteControl(MusicInstrument instrument, bool value) {
|
||||
if (instrument >= BELLS && instrument <= BASS && value >= -2 && value <= 2)
|
||||
_array1[instrument]._muteControl = value;
|
||||
}
|
||||
|
||||
@@ -33,16 +33,17 @@ class CSoundManager;
|
||||
|
||||
enum MusicInstrument { BELLS = 0, SNAKE = 1, PIANO = 2, BASS = 3 };
|
||||
|
||||
struct MusicRoomInstrument {
|
||||
int _pitchControl;
|
||||
int _speedControl;
|
||||
bool _directionControl;
|
||||
bool _inversionControl;
|
||||
bool _muteControl;
|
||||
MusicRoomInstrument() : _pitchControl(0), _speedControl(0), _directionControl(false),
|
||||
_inversionControl(false), _muteControl(false) {}
|
||||
};
|
||||
|
||||
class CMusicRoomHandler {
|
||||
struct Controls {
|
||||
int _pitchControl;
|
||||
int _speedControl;
|
||||
int _directionControl;
|
||||
int _inversionControl;
|
||||
int _muteControl;
|
||||
Controls() : _pitchControl(0), _speedControl(0), _directionControl(0),
|
||||
_inversionControl(0), _muteControl(0) {}
|
||||
};
|
||||
struct Array5Entry {
|
||||
int _v1;
|
||||
int _v2;
|
||||
@@ -52,8 +53,8 @@ private:
|
||||
CProjectItem *_project;
|
||||
CSoundManager *_soundManager;
|
||||
CMusicWave *_musicWaves[4];
|
||||
Controls _array1[4];
|
||||
Controls _array2[4];
|
||||
MusicRoomInstrument _array1[4];
|
||||
MusicRoomInstrument _array2[4];
|
||||
Array5Entry _array5[4];
|
||||
bool _stopWaves;
|
||||
CWaveFile *_waveFile;
|
||||
@@ -110,12 +111,12 @@ public:
|
||||
/**
|
||||
* Sets the inversion control value
|
||||
*/
|
||||
void setInversionControl2(MusicInstrument instrument, int value);
|
||||
void setInversionControl2(MusicInstrument instrument, bool value);
|
||||
|
||||
/**
|
||||
* Sets the direction control value
|
||||
*/
|
||||
void setDirectionControl2(MusicInstrument instrument, int value);
|
||||
void setDirectionControl2(MusicInstrument instrument, bool value);
|
||||
|
||||
/**
|
||||
* Sets the pitch control value
|
||||
@@ -130,17 +131,17 @@ public:
|
||||
/**
|
||||
* Sets the direction control value
|
||||
*/
|
||||
void setDirectionControl(MusicInstrument instrument, int value);
|
||||
void setDirectionControl(MusicInstrument instrument, bool value);
|
||||
|
||||
/**
|
||||
* Sets the inversion control value
|
||||
*/
|
||||
void setInversionControl(MusicInstrument instrument, int value);
|
||||
void setInversionControl(MusicInstrument instrument, bool value);
|
||||
|
||||
/**
|
||||
* Sets the mute control value
|
||||
*/
|
||||
void setMuteControl(MusicInstrument instrument, int value);
|
||||
void setMuteControl(MusicInstrument instrument, bool value);
|
||||
};
|
||||
|
||||
} // End of namespace Titanic
|
||||
|
||||
Reference in New Issue
Block a user