aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/core/game_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/core/game_object.cpp')
-rw-r--r--engines/titanic/core/game_object.cpp56
1 files changed, 31 insertions, 25 deletions
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index 8f71b3d995..76a2f2d5c0 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -403,8 +403,11 @@ void CGameObject::loadImage(const CString &name, bool pendingFlag) {
void CGameObject::loadFrame(int frameNumber) {
_frameNumber = -1;
- if (!_resource.empty())
+
+ if (!_surface && !_resource.empty()) {
loadResource(_resource);
+ _resource.clear();
+ }
if (_surface)
_surface->setMovieFrame(frameNumber);
@@ -612,9 +615,8 @@ void CGameObject::playMovie(uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}
@@ -630,9 +632,8 @@ void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, int initialFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}
@@ -645,6 +646,8 @@ void CGameObject::playMovie(int startFrame, int endFrame, int initialFrame, uint
}
void CGameObject::playClip(const CString &name, uint flags) {
+ debugC(ERROR_DETAILED, kDebugScripts, "playClip - %s", name.c_str());
+
_frameNumber = -1;
CMovieClip *clip = _movieClips.findByName(name);
if (clip)
@@ -652,6 +655,8 @@ void CGameObject::playClip(const CString &name, uint flags) {
}
void CGameObject::playClip(uint startFrame, uint endFrame) {
+ debugC(ERROR_DETAILED, kDebugScripts, "playClip - %d to %d", startFrame, endFrame);
+
CMovieClip *clip = new CMovieClip("", startFrame, endFrame);
CGameManager *gameManager = getGameManager();
CRoomItem *room = gameManager->getRoom();
@@ -753,7 +758,7 @@ int CGameObject::playSound(const CString &name, CProximity &prox) {
if (gameManager && !name.empty()) {
g_vm->_filesManager->preload(name);
- gameManager->_sound.playSound(name, prox);
+ return gameManager->_sound.playSound(name, prox);
}
return -1;
@@ -864,7 +869,8 @@ CViewItem *CGameObject::parseView(const CString &viewString) {
if (project) {
if (room->getName() != roomName) {
// Scan for the correct room
- for (room = project->findFirstRoom(); room && room->getName() != roomName;
+ for (room = project->findFirstRoom();
+ room && room->getName() != roomName;
room = project->findNextRoom(room)) ;
}
}
@@ -912,12 +918,12 @@ Point CGameObject::getMousePos() const {
}
bool CGameObject::compareViewNameTo(const CString &name) const {
- return getViewFullName().compareToIgnoreCase(name);
+ return !getViewFullName().compareToIgnoreCase(name);
}
int CGameObject::compareRoomNameTo(const CString &name) {
CRoomItem *room = getGameManager()->getRoom();
- return room->getName().compareToIgnoreCase(name);
+ return !room->getName().compareToIgnoreCase(name);
}
CString CGameObject::getRoomName() const {
@@ -1142,11 +1148,11 @@ void CGameObject::lockMouse() {
}
void CGameObject::hideMouse() {
- CScreenManager::_screenManagerPtr->_mouseCursor->hide();
+ CScreenManager::_screenManagerPtr->_mouseCursor->incHideCounter();
}
void CGameObject::showMouse() {
- CScreenManager::_screenManagerPtr->_mouseCursor->show();
+ CScreenManager::_screenManagerPtr->_mouseCursor->decHideCounter();
}
void CGameObject::disableMouse() {
@@ -1159,12 +1165,12 @@ void CGameObject::enableMouse() {
showMouse();
}
-void CGameObject::mouseLockE4() {
- CScreenManager::_screenManagerPtr->_mouseCursor->lockE4();
+void CGameObject::mouseDisableControl() {
+ CScreenManager::_screenManagerPtr->_mouseCursor->disableControl();
}
-void CGameObject::mouseUnlockE4() {
- CScreenManager::_screenManagerPtr->_mouseCursor->unlockE4();
+void CGameObject::mouseEnableControl() {
+ CScreenManager::_screenManagerPtr->_mouseCursor->enableControl();
}
void CGameObject::mouseSetPosition(const Point &pt, double rate) {
@@ -1330,17 +1336,17 @@ CMusicRoom *CGameObject::getMusicRoom() const {
return gameManager ? &gameManager->_musicRoom : nullptr;
}
-int CGameObject::getPassengerClass() const {
+PassengerClass CGameObject::getPassengerClass() const {
CGameManager *gameManager = getGameManager();
- return gameManager ? gameManager->_gameState._passengerClass : 3;
+ return gameManager ? gameManager->_gameState._passengerClass : THIRD_CLASS;
}
-int CGameObject::getPriorClass() const {
+PassengerClass CGameObject::getPriorClass() const {
CGameManager *gameManager = getGameManager();
- return gameManager ? gameManager->_gameState._priorClass : 3;
+ return gameManager ? gameManager->_gameState._priorClass : THIRD_CLASS;
}
-void CGameObject::setPassengerClass(int newClass) {
+void CGameObject::setPassengerClass(PassengerClass newClass) {
if (newClass >= 1 && newClass <= 4) {
// Change the passenger class
CGameManager *gameMan = getGameManager();
@@ -1575,7 +1581,7 @@ void CGameObject::petMoveToHiddenRoom() {
}
}
-void CGameObject::petReassignRoom(int passClassNum) {
+void CGameObject::petReassignRoom(PassengerClass passClassNum) {
CPetControl *petControl = getPetControl();
if (petControl)
petControl->reassignRoom(passClassNum);
@@ -1607,7 +1613,7 @@ void CGameObject::petSetRooms1D4(int v) {
void CGameObject::petOnSummonBot(const CString &name, int val) {
CPetControl *pet = getPetControl();
if (pet)
- pet->summonBot(name, val);
+ pet->onSummonBot(name, val);
}
void CGameObject::petUnlockInput() {
@@ -1654,7 +1660,7 @@ void CGameObject::startTalking(CTrueTalkNPC *npc, uint id, CViewItem *view) {
}
}
-void CGameObject::endTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view) {
+void CGameObject::setTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view) {
CPetControl *pet = getPetControl();
if (pet)
pet->setActiveNPC(npc);