diff options
author | Paul Gilbert | 2016-08-09 21:51:19 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-08-09 21:51:19 -0400 |
commit | 668c486f4fdf270a88cfd799ba54871d5a314383 (patch) | |
tree | e7c48a32fb9ff2ce2aa7b739faa3311c9cd52e70 /engines | |
parent | 30936a6115160e8e79b3c768c2ee97aae9cbd554 (diff) | |
download | scummvm-rg350-668c486f4fdf270a88cfd799ba54871d5a314383.tar.gz scummvm-rg350-668c486f4fdf270a88cfd799ba54871d5a314383.tar.bz2 scummvm-rg350-668c486f4fdf270a88cfd799ba54871d5a314383.zip |
TITANIC: Implemented more sound related classes
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/core/game_object.cpp | 17 | ||||
-rw-r--r-- | engines/titanic/core/game_object.h | 12 | ||||
-rw-r--r-- | engines/titanic/npcs/true_talk_npc.cpp | 8 | ||||
-rw-r--r-- | engines/titanic/npcs/true_talk_npc.h | 5 | ||||
-rw-r--r-- | engines/titanic/sound/restricted_auto_music_player.cpp | 47 | ||||
-rw-r--r-- | engines/titanic/sound/restricted_auto_music_player.h | 10 | ||||
-rw-r--r-- | engines/titanic/sound/room_trigger_auto_music_player.cpp | 22 | ||||
-rw-r--r-- | engines/titanic/sound/room_trigger_auto_music_player.h | 4 | ||||
-rw-r--r-- | engines/titanic/sound/season_noises.cpp | 86 | ||||
-rw-r--r-- | engines/titanic/sound/season_noises.h | 15 | ||||
-rw-r--r-- | engines/titanic/sound/titania_speech.cpp | 119 | ||||
-rw-r--r-- | engines/titanic/sound/titania_speech.h | 9 | ||||
-rw-r--r-- | engines/titanic/sound/view_toggles_other_music.cpp | 20 | ||||
-rw-r--r-- | engines/titanic/sound/view_toggles_other_music.h | 4 | ||||
-rw-r--r-- | engines/titanic/support/movie.cpp | 2 | ||||
-rw-r--r-- | engines/titanic/support/movie.h | 2 |
16 files changed, 320 insertions, 62 deletions
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp index e0a4903f75..3a100ffd29 100644 --- a/engines/titanic/core/game_object.cpp +++ b/engines/titanic/core/game_object.cpp @@ -783,6 +783,14 @@ int CGameObject::addTimer(uint firstDuration, uint repeatDuration) { return timer->_id; } +int CGameObject::startAnimTimer(const CString &action, uint firstDuration, uint repeatDuration) { + CTimeEventInfo *timer = new CTimeEventInfo(g_vm->_events->getTicksCount(), + repeatDuration > 0, firstDuration, repeatDuration, this, 0, action); + getGameManager()->addTimer(timer); + + return timer->_id; +} + void CGameObject::stopTimer(int id) { getGameManager()->stopTimer(id); } @@ -1330,14 +1338,14 @@ void CGameObject::fn10(int v1, int v2, int v3) { _field4C = v3; } -void CGameObject::setMovie14(int v) { +void CGameObject::movieSetAudioTiming(bool flag) { if (!_surface && !_resource.empty()) { loadResource(_resource); _resource.clear(); } if (_surface && _surface->_movie) - _surface->_movie->_field14 = v; + _surface->_movie->_hasAudioTiming = flag; } void CGameObject::movieEvent(int frameNumber) { @@ -1481,6 +1489,11 @@ CTreeItem *CGameObject::petContainerRemove(CGameObject *obj) { return item; } +bool CGameObject::petCheckNode(const CString &name) { + CPetControl *pet = getPetControl(); + return pet ? pet->checkNode(name) : false; +} + bool CGameObject::petDismissBot(const CString &name) { CPetControl *pet = getPetControl(); return pet ? pet->dismissBot(name) : false; diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h index 19eb296965..cad05dea00 100644 --- a/engines/titanic/core/game_object.h +++ b/engines/titanic/core/game_object.h @@ -260,6 +260,11 @@ protected: int addTimer(uint firstDuration, uint repeatDuration = 0); /** + * Start an animation timer + */ + int startAnimTimer(const CString &action, uint firstDuration, uint repeatDuration = 0); + + /** * Stops a timer */ void stopTimer(int id); @@ -417,7 +422,10 @@ protected: */ void setPassengerClass(int newClass); - void setMovie14(int v); + /** + * Overrides whether the object's movie has audio timing + */ + void movieSetAudioTiming(bool flag); void fn10(int v1, int v2, int v3); @@ -768,6 +776,8 @@ public: CTreeItem *petContainerRemove(CGameObject *obj); + bool petCheckNode(const CString &name); + /** * Dismiss a bot */ diff --git a/engines/titanic/npcs/true_talk_npc.cpp b/engines/titanic/npcs/true_talk_npc.cpp index 290922f660..9310f285e5 100644 --- a/engines/titanic/npcs/true_talk_npc.cpp +++ b/engines/titanic/npcs/true_talk_npc.cpp @@ -198,14 +198,6 @@ void CTrueTalkNPC::processInput(CTextInputMsg *msg, CViewItem *view) { talkManager->processInput(this, msg, view); } -int CTrueTalkNPC::startAnimTimer(const CString &action, uint firstDuration, uint duration) { - CTimeEventInfo *timer = new CTimeEventInfo(g_vm->_events->getTicksCount(), - duration > 0, firstDuration, duration, this, 0, action); - getGameManager()->addTimer(timer); - - return timer->_id; -} - void CTrueTalkNPC::stopAnimTimer(int id) { getGameManager()->stopTimer(id); } diff --git a/engines/titanic/npcs/true_talk_npc.h b/engines/titanic/npcs/true_talk_npc.h index 0deb832c82..0319f7e059 100644 --- a/engines/titanic/npcs/true_talk_npc.h +++ b/engines/titanic/npcs/true_talk_npc.h @@ -62,11 +62,6 @@ protected: int _field104; protected: void processInput(CTextInputMsg *msg, CViewItem *view); - - /** - * Start an animation timer - */ - int startAnimTimer(const CString &action, uint firstDuration, uint duration); /** * Stop an animation timer diff --git a/engines/titanic/sound/restricted_auto_music_player.cpp b/engines/titanic/sound/restricted_auto_music_player.cpp index 4ccfecc58d..2384d4da25 100644 --- a/engines/titanic/sound/restricted_auto_music_player.cpp +++ b/engines/titanic/sound/restricted_auto_music_player.cpp @@ -21,32 +21,59 @@ */ #include "titanic/sound/restricted_auto_music_player.h" +#include "titanic/core/room_item.h" namespace Titanic { +BEGIN_MESSAGE_MAP(CRestrictedAutoMusicPlayer, CAutoMusicPlayer) + ON_MESSAGE(EnterRoomMsg) + ON_MESSAGE(LeaveRoomMsg) +END_MESSAGE_MAP() + void CRestrictedAutoMusicPlayer::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeQuotedLine(_string3, indent); - file->writeQuotedLine(_string4, indent); - file->writeQuotedLine(_string5, indent); - file->writeQuotedLine(_string6, indent); + file->writeQuotedLine(_oldNodeName, indent); + file->writeQuotedLine(_newNodeName, indent); + file->writeQuotedLine(_newRoomName, indent); + file->writeQuotedLine(_oldRoomName, indent); CAutoMusicPlayer::save(file, indent); } void CRestrictedAutoMusicPlayer::load(SimpleFile *file) { file->readNumber(); - _string3 = file->readString(); - _string4 = file->readString(); - _string5 = file->readString(); - _string6 = file->readString(); + _oldNodeName = file->readString(); + _newNodeName = file->readString(); + _newRoomName = file->readString(); + _oldRoomName = file->readString(); CAutoMusicPlayer::load(file); } bool CRestrictedAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) { - warning("CRestrictedAutoMusicPlayer::handleEvent"); - return true; + if (!msg->_oldRoom) + return true; + if (petCheckNode(_oldNodeName)) + return false; + + CString roomName = msg->_oldRoom->getName(); + if (_oldRoomName.compareToIgnoreCase(roomName)) { + _isRepeated = true; + return false; + } else { + return CAutoMusicPlayer::EnterRoomMsg(msg); + } +} + +bool CRestrictedAutoMusicPlayer::LeaveRoomMsg(CLeaveRoomMsg *msg) { + CString roomName = msg->_newRoom->getName(); + + if (petCheckNode(_newNodeName) || _newRoomName.compareToIgnoreCase(roomName)) { + _isRepeated = false; + return true; + } else { + return CAutoMusicPlayer::LeaveRoomMsg(msg); + } } } // End of namespace Titanic diff --git a/engines/titanic/sound/restricted_auto_music_player.h b/engines/titanic/sound/restricted_auto_music_player.h index 4a26d3770a..d36ee5a7ab 100644 --- a/engines/titanic/sound/restricted_auto_music_player.h +++ b/engines/titanic/sound/restricted_auto_music_player.h @@ -29,12 +29,14 @@ namespace Titanic { class CRestrictedAutoMusicPlayer : public CAutoMusicPlayer { + DECLARE_MESSAGE_MAP; bool EnterRoomMsg(CEnterRoomMsg *msg); + bool LeaveRoomMsg(CLeaveRoomMsg *msg); private: - CString _string3; - CString _string4; - CString _string5; - CString _string6; + CString _oldNodeName; + CString _newNodeName; + CString _newRoomName; + CString _oldRoomName; public: CLASSDEF; diff --git a/engines/titanic/sound/room_trigger_auto_music_player.cpp b/engines/titanic/sound/room_trigger_auto_music_player.cpp index 4506dfd7d4..7782cef0e2 100644 --- a/engines/titanic/sound/room_trigger_auto_music_player.cpp +++ b/engines/titanic/sound/room_trigger_auto_music_player.cpp @@ -24,6 +24,11 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CRoomTriggerAutoMusicPlayer, CTriggerAutoMusicPlayer) + ON_MESSAGE(LeaveRoomMsg) + ON_MESSAGE(EnterRoomMsg) +END_MESSAGE_MAP() + void CRoomTriggerAutoMusicPlayer::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); CTriggerAutoMusicPlayer::save(file, indent); @@ -34,8 +39,23 @@ void CRoomTriggerAutoMusicPlayer::load(SimpleFile *file) { CTriggerAutoMusicPlayer::load(file); } +bool CRoomTriggerAutoMusicPlayer::LeaveRoomMsg(CLeaveRoomMsg *msg) { + if (msg->_oldRoom == findRoom()) { + CTriggerAutoMusicPlayerMsg triggerMsg; + triggerMsg._value = 1; + triggerMsg.execute(this); + } + + return true; +} + bool CRoomTriggerAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) { - warning("CRoomTriggerAutoMusicPlayer::handleEvent"); + if (msg->_newRoom == findRoom()) { + CTriggerAutoMusicPlayerMsg triggerMsg; + triggerMsg._value = 2; + triggerMsg.execute(this); + } + return true; } diff --git a/engines/titanic/sound/room_trigger_auto_music_player.h b/engines/titanic/sound/room_trigger_auto_music_player.h index 250adad864..a57e133eb6 100644 --- a/engines/titanic/sound/room_trigger_auto_music_player.h +++ b/engines/titanic/sound/room_trigger_auto_music_player.h @@ -29,7 +29,9 @@ namespace Titanic { class CRoomTriggerAutoMusicPlayer : public CTriggerAutoMusicPlayer { - bool EnterRoomMsg(CEnterRoomMsg *msg); + DECLARE_MESSAGE_MAP; + bool LeaveRoomMsg(CLeaveRoomMsg *msg); + bool EnterRoomMsg(CEnterRoomMsg *msg); public: CLASSDEF; diff --git a/engines/titanic/sound/season_noises.cpp b/engines/titanic/sound/season_noises.cpp index e7307654fe..ce045488ee 100644 --- a/engines/titanic/sound/season_noises.cpp +++ b/engines/titanic/sound/season_noises.cpp @@ -24,30 +24,92 @@ namespace Titanic { -CSeasonNoises::CSeasonNoises() : CViewAutoSoundPlayer(), _fieldF0(0), - _string2("NULL"), _string3("NULL"), _string4("NULL"), _string5("NULL") { +BEGIN_MESSAGE_MAP(CSeasonNoises, CViewAutoSoundPlayer) + ON_MESSAGE(ChangeSeasonMsg) + ON_MESSAGE(EnterViewMsg) + ON_MESSAGE(ActMsg) + ON_MESSAGE(LoadSuccessMsg) +END_MESSAGE_MAP() + +CSeasonNoises::CSeasonNoises() : CViewAutoSoundPlayer(), _seasonNumber(0), + _springName("NULL"), _summerName("NULL"), _autumnName("NULL"), _winterName("NULL") { } void CSeasonNoises::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldF0, indent); - file->writeQuotedLine(_string2, indent); - file->writeQuotedLine(_string3, indent); - file->writeQuotedLine(_string4, indent); - file->writeQuotedLine(_string5, indent); + file->writeNumberLine(_seasonNumber, indent); + file->writeQuotedLine(_springName, indent); + file->writeQuotedLine(_summerName, indent); + file->writeQuotedLine(_autumnName, indent); + file->writeQuotedLine(_winterName, indent); CViewAutoSoundPlayer::save(file, indent); } void CSeasonNoises::load(SimpleFile *file) { file->readNumber(); - _fieldF0 = file->readNumber(); - _string2 = file->readString(); - _string3 = file->readString(); - _string4 = file->readString(); - _string5 = file->readString(); + _seasonNumber = file->readNumber(); + _springName = file->readString(); + _summerName = file->readString(); + _autumnName = file->readString(); + _winterName = file->readString(); CViewAutoSoundPlayer::load(file); } +bool CSeasonNoises::ChangeSeasonMsg(CChangeSeasonMsg *msg) { + _seasonNumber = (_seasonNumber + 1) % 4; + CActMsg actMsg("Update"); + actMsg.execute(this); + + return true; +} + +bool CSeasonNoises::EnterViewMsg(CEnterViewMsg *msg) { + CActMsg actMsg("Update"); + return true; +} + +bool CSeasonNoises::ActMsg(CActMsg *msg) { + msg->_action = "Update"; + + switch (_seasonNumber) { + case 0: + _filename = _springName; + break; + case 1: + _filename = _summerName; + break; + case 2: + _filename = _autumnName; + break; + case 3: + _filename = _winterName; + break; + default: + break; + } + + CSignalObject signalMsg; + signalMsg._numValue = 2; + signalMsg.execute(this); + + CTurnOn onMsg; + onMsg.execute(this); + + return true; +} + +bool CSeasonNoises::LoadSuccessMsg(CLoadSuccessMsg *msg) { + if (_active) { + _active = false; + _soundHandle = -1; + + CActMsg actMsg("Update"); + actMsg.execute(this); + } + + return true; +} + } // End of namespace Titanic diff --git a/engines/titanic/sound/season_noises.h b/engines/titanic/sound/season_noises.h index ff39b01d73..796628d10d 100644 --- a/engines/titanic/sound/season_noises.h +++ b/engines/titanic/sound/season_noises.h @@ -28,12 +28,17 @@ namespace Titanic { class CSeasonNoises : public CViewAutoSoundPlayer { + DECLARE_MESSAGE_MAP; + bool ChangeSeasonMsg(CChangeSeasonMsg *msg); + bool EnterViewMsg(CEnterViewMsg *msg); + bool ActMsg(CActMsg *msg); + bool LoadSuccessMsg(CLoadSuccessMsg *msg); private: - int _fieldF0; - CString _string2; - CString _string3; - CString _string4; - CString _string5; + int _seasonNumber; + CString _springName; + CString _summerName; + CString _autumnName; + CString _winterName; public: CLASSDEF; CSeasonNoises(); diff --git a/engines/titanic/sound/titania_speech.cpp b/engines/titanic/sound/titania_speech.cpp index f9d5b91705..a07cc79334 100644 --- a/engines/titanic/sound/titania_speech.cpp +++ b/engines/titanic/sound/titania_speech.cpp @@ -24,24 +24,133 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CTitaniaSpeech, CGameObject) + ON_MESSAGE(ActMsg) + ON_MESSAGE(MovieEndMsg) + ON_MESSAGE(MovieFrameMsg) + ON_MESSAGE(TimerMsg) + ON_MESSAGE(EnterRoomMsg) +END_MESSAGE_MAP() + void CTitaniaSpeech::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_value1, indent); - file->writeNumberLine(_value2, indent); + file->writeNumberLine(_paraNum, indent); + file->writeNumberLine(_frameNum, indent); CGameObject::save(file, indent); } void CTitaniaSpeech::load(SimpleFile *file) { file->readNumber(); - _value1 = file->readNumber(); - _value2 = file->readNumber(); + _paraNum = file->readNumber(); + _frameNum = file->readNumber(); CGameObject::load(file); } +bool CTitaniaSpeech::ActMsg(CActMsg *msg) { + CSetFrameMsg frameMsg; + CVisibleMsg visibleMsg; + CActMsg actMsg; + + if (msg->_action == "TitaniaSpeech") { + switch (_paraNum) { + case 0: + movieSetAudioTiming(true); + loadSound("a#12.wav"); + sleep(1000); + playMovie(0, 187, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT); + movieEvent(0); + break; + + case 1: + loadSound("a#11.wav"); + addTimer(0); + startAnimTimer("Para2", 300); + addTimer(6000); + addTimer(12000); + addTimer(18000); + addTimer(24000); + startAnimTimer("NextPara", 30000); + break; + + case 2: + visibleMsg._visible = false; + visibleMsg.execute("TitaniaStillControl"); + loadSound("a#10.wav"); + playMovie(585, 706, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT); + playSound("a#10.wav"); + break; + + case 3: + visibleMsg._visible = false; + visibleMsg.execute("TitaniaStillControl"); + loadSound("a#9.wav"); + playMovie(707, 905, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT); + playSound("a#9.wav"); + break; + + case 4: + visibleMsg._visible = false; + visibleMsg.execute("TitaniaStillControl"); + loadSound("a#8.wav"); + playMovie(906, 938, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT); + playSound("a#8.wav"); + break; + + default: + sleep(3000); + actMsg._action = "SleepTitania"; + actMsg.execute(this); + } + } + + return true; +} + +bool CTitaniaSpeech::MovieEndMsg(CMovieEndMsg *msg) { + if (_paraNum == 5) { + startAnimTimer("NextPara", 0); + } else { + if (_paraNum != 1) + addTimer(0); + startAnimTimer("NextPara", 3000); + } + + return true; +} + +bool CTitaniaSpeech::MovieFrameMsg(CMovieFrameMsg *msg) { + int frame = getMovieFrame(); + if (!frame) + playSound("a#12.wav"); + + return true; +} + +bool CTitaniaSpeech::TimerMsg(CTimerMsg *msg) { + CSetFrameMsg frameMsg; + CVisibleMsg visibleMsg; + CActMsg actMsg("TitaniaSpeech"); + + if (msg->_action == "NextPara") { + visibleMsg.execute("TitaniaStillControl"); + ++_paraNum; + actMsg.execute(this); + } else if (msg->_action == "Para2") { + playSound("a#11.wav"); + } else { + frameMsg._frameNumber = _frameNum; + frameMsg.execute("TitaniaStillControl"); + } + + return true; +} + bool CTitaniaSpeech::EnterRoomMsg(CEnterRoomMsg *msg) { - warning("CTitaniaSpeech::handleEvent"); + CActMsg actMsg("Disable"); + actMsg.execute("ShipAnnouncements"); + return true; } diff --git a/engines/titanic/sound/titania_speech.h b/engines/titanic/sound/titania_speech.h index c9b93043f6..2244bb01af 100644 --- a/engines/titanic/sound/titania_speech.h +++ b/engines/titanic/sound/titania_speech.h @@ -29,12 +29,17 @@ namespace Titanic { class CTitaniaSpeech : public CGameObject { + DECLARE_MESSAGE_MAP; + bool ActMsg(CActMsg *msg); + bool MovieEndMsg(CMovieEndMsg *msg); + bool MovieFrameMsg(CMovieFrameMsg *msg); + bool TimerMsg(CTimerMsg *msg); bool EnterRoomMsg(CEnterRoomMsg *msg); private: - int _value1, _value2; + int _paraNum, _frameNum; public: CLASSDEF; - CTitaniaSpeech() : CGameObject(), _value1(1), _value2(0) {} + CTitaniaSpeech() : CGameObject(), _paraNum(1), _frameNum(0) {} /** * Save the data for the class to file diff --git a/engines/titanic/sound/view_toggles_other_music.cpp b/engines/titanic/sound/view_toggles_other_music.cpp index 35888fba9d..731f59bd53 100644 --- a/engines/titanic/sound/view_toggles_other_music.cpp +++ b/engines/titanic/sound/view_toggles_other_music.cpp @@ -24,21 +24,35 @@ namespace Titanic { -CViewTogglesOtherMusic::CViewTogglesOtherMusic() : CEnterViewTogglesOtherMusic(), _fieldCC(0) { +BEGIN_MESSAGE_MAP(CViewTogglesOtherMusic, CEnterViewTogglesOtherMusic) + ON_MESSAGE(LeaveViewMsg) +END_MESSAGE_MAP() + +CViewTogglesOtherMusic::CViewTogglesOtherMusic() : + CEnterViewTogglesOtherMusic(), _value(1) { } void CViewTogglesOtherMusic::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldCC, indent); + file->writeNumberLine(_value, indent); CEnterViewTogglesOtherMusic::save(file, indent); } void CViewTogglesOtherMusic::load(SimpleFile *file) { file->readNumber(); - _fieldCC = file->readNumber(); + _value = file->readNumber(); CEnterViewTogglesOtherMusic::load(file); } +bool CViewTogglesOtherMusic::LeaveViewMsg(CLeaveViewMsg *msg) { + if (msg->_oldView == findView()) { + CTriggerAutoMusicPlayerMsg playerMsg(_value); + playerMsg.execute(this); + } + + return true; +} + } // End of namespace Titanic diff --git a/engines/titanic/sound/view_toggles_other_music.h b/engines/titanic/sound/view_toggles_other_music.h index a5ba68ba45..1b5f110e70 100644 --- a/engines/titanic/sound/view_toggles_other_music.h +++ b/engines/titanic/sound/view_toggles_other_music.h @@ -28,8 +28,10 @@ namespace Titanic { class CViewTogglesOtherMusic : public CEnterViewTogglesOtherMusic { + DECLARE_MESSAGE_MAP; + bool LeaveViewMsg(CLeaveViewMsg *msg); private: - int _fieldCC; + int _value; public: CLASSDEF; CViewTogglesOtherMusic(); diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp index 5453d8ca9c..3bb9fb88cf 100644 --- a/engines/titanic/support/movie.cpp +++ b/engines/titanic/support/movie.cpp @@ -37,7 +37,7 @@ CMovieList *CMovie::_playingMovies; CVideoSurface *CMovie::_movieSurface; CMovie::CMovie() : ListItem(), _handled(false), _hasVideoFrame(false), - _field14(0) { + _hasAudioTiming(false) { } CMovie::~CMovie() { diff --git a/engines/titanic/support/movie.h b/engines/titanic/support/movie.h index 2a7d589194..2d1c264f03 100644 --- a/engines/titanic/support/movie.h +++ b/engines/titanic/support/movie.h @@ -50,7 +50,7 @@ protected: public: bool _handled; bool _hasVideoFrame; - int _field14; + bool _hasAudioTiming; public: static CMovieList *_playingMovies; static CVideoSurface *_movieSurface; |