mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 17:46:22 +00:00
TITANIC: Implemented CAutoMusicPlayerBase class
This commit is contained in:
parent
8b6ac03f18
commit
a1affaa698
@ -208,7 +208,7 @@ MESSAGE0(CArmPickedUpFromTableMsg);
|
|||||||
MESSAGE0(CBodyInBilgeRoomMsg);
|
MESSAGE0(CBodyInBilgeRoomMsg);
|
||||||
MESSAGE1(CBowlStateChange, int, value, 0);
|
MESSAGE1(CBowlStateChange, int, value, 0);
|
||||||
MESSAGE2(CCarryObjectArrivedMsg, CString, strValue, "", int, numValue, 0);
|
MESSAGE2(CCarryObjectArrivedMsg, CString, strValue, "", int, numValue, 0);
|
||||||
MESSAGE2(CChangeMusicMsg, CString, strValue, "", int, numValue, 0);
|
MESSAGE2(CChangeMusicMsg, CString, filename, "", int, flags, 0);
|
||||||
MESSAGE1(CChangeSeasonMsg, CString, season, "Summer");
|
MESSAGE1(CChangeSeasonMsg, CString, season, "Summer");
|
||||||
MESSAGE0(CCheckAllPossibleCodes);
|
MESSAGE0(CCheckAllPossibleCodes);
|
||||||
MESSAGE2(CCheckChevCode, int, value1, 0, int, value2, 0);
|
MESSAGE2(CCheckChevCode, int, value1, 0, int, value2, 0);
|
||||||
|
@ -42,8 +42,10 @@ void CAutoMusicPlayer::load(SimpleFile *file) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool CAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) {
|
bool CAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) {
|
||||||
if (!_fieldCC) {
|
if (!_isRepeated) {
|
||||||
warning("TODO");
|
CRoomItem *room = findRoom();
|
||||||
|
if (msg->_newRoom == room)
|
||||||
|
addTimer(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -24,29 +24,78 @@
|
|||||||
|
|
||||||
namespace Titanic {
|
namespace Titanic {
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(CAutoMusicPlayerBase, CGameObject)
|
||||||
|
ON_MESSAGE(StatusChangeMsg)
|
||||||
|
ON_MESSAGE(TimerMsg)
|
||||||
|
ON_MESSAGE(LoadSuccessMsg)
|
||||||
|
ON_MESSAGE(ChangeMusicMsg)
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
CAutoMusicPlayerBase::CAutoMusicPlayerBase() : CGameObject(),
|
CAutoMusicPlayerBase::CAutoMusicPlayerBase() : CGameObject(),
|
||||||
_fieldC8(1), _fieldCC(0), _fieldD0(-1), _fieldD4(1) {
|
_initialMute(true), _isRepeated(false), _volumeMode(-1), _transition(1) {
|
||||||
}
|
}
|
||||||
void CAutoMusicPlayerBase::save(SimpleFile *file, int indent) {
|
void CAutoMusicPlayerBase::save(SimpleFile *file, int indent) {
|
||||||
file->writeNumberLine(1, indent);
|
file->writeNumberLine(1, indent);
|
||||||
file->writeQuotedLine(_string1, indent);
|
file->writeQuotedLine(_filename, indent);
|
||||||
file->writeNumberLine(_fieldC8, indent);
|
file->writeNumberLine(_initialMute, indent);
|
||||||
file->writeNumberLine(_fieldCC, indent);
|
file->writeNumberLine(_isRepeated, indent);
|
||||||
file->writeNumberLine(_fieldD0, indent);
|
file->writeNumberLine(_volumeMode, indent);
|
||||||
file->writeNumberLine(_fieldD4, indent);
|
file->writeNumberLine(_transition, indent);
|
||||||
|
|
||||||
CGameObject::save(file, indent);
|
CGameObject::save(file, indent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAutoMusicPlayerBase::load(SimpleFile *file) {
|
void CAutoMusicPlayerBase::load(SimpleFile *file) {
|
||||||
file->readNumber();
|
file->readNumber();
|
||||||
_string1 = file->readString();
|
_filename = file->readString();
|
||||||
_fieldC8 = file->readNumber();
|
_initialMute = file->readNumber();
|
||||||
_fieldCC = file->readNumber();
|
_isRepeated = file->readNumber();
|
||||||
_fieldD0 = file->readNumber();
|
_volumeMode = file->readNumber();
|
||||||
_fieldD4 = file->readNumber();
|
_transition = file->readNumber();
|
||||||
|
|
||||||
CGameObject::load(file);
|
CGameObject::load(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CAutoMusicPlayerBase::StatusChangeMsg(CStatusChangeMsg *msg) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CAutoMusicPlayerBase::TimerMsg(CTimerMsg *msg) {
|
||||||
|
CChangeMusicMsg musicMsg;
|
||||||
|
musicMsg._flags = 2;
|
||||||
|
musicMsg.execute(this);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CAutoMusicPlayerBase::LoadSuccessMsg(CLoadSuccessMsg *msg) {
|
||||||
|
if (_isRepeated)
|
||||||
|
playGlobalSound(_filename, _volumeMode, _initialMute, true, 0);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CAutoMusicPlayerBase::ChangeMusicMsg(CChangeMusicMsg *msg) {
|
||||||
|
if (_isRepeated && msg->_flags == 1) {
|
||||||
|
_isRepeated = false;
|
||||||
|
stopGlobalSound(_transition, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!msg->_filename.empty()) {
|
||||||
|
_filename = msg->_filename;
|
||||||
|
|
||||||
|
if (_isRepeated) {
|
||||||
|
stopGlobalSound(_transition, -1);
|
||||||
|
playGlobalSound(_filename, _volumeMode, _initialMute, true, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_isRepeated && msg->_flags == 2) {
|
||||||
|
_isRepeated = true;
|
||||||
|
playGlobalSound(_filename, _volumeMode, _initialMute, true, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
} // End of namespace Titanic
|
} // End of namespace Titanic
|
||||||
|
@ -28,12 +28,17 @@
|
|||||||
namespace Titanic {
|
namespace Titanic {
|
||||||
|
|
||||||
class CAutoMusicPlayerBase : public CGameObject {
|
class CAutoMusicPlayerBase : public CGameObject {
|
||||||
|
DECLARE_MESSAGE_MAP;
|
||||||
|
bool StatusChangeMsg(CStatusChangeMsg *msg);
|
||||||
|
bool TimerMsg(CTimerMsg *msg);
|
||||||
|
bool LoadSuccessMsg(CLoadSuccessMsg *msg);
|
||||||
|
bool ChangeMusicMsg(CChangeMusicMsg *msg);
|
||||||
protected:
|
protected:
|
||||||
CString _string1;
|
CString _filename;
|
||||||
int _fieldC8;
|
bool _initialMute;
|
||||||
int _fieldCC;
|
bool _isRepeated;
|
||||||
int _fieldD0;
|
int _volumeMode;
|
||||||
int _fieldD4;
|
int _transition;
|
||||||
public:
|
public:
|
||||||
CLASSDEF;
|
CLASSDEF;
|
||||||
CAutoMusicPlayerBase();
|
CAutoMusicPlayerBase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user