Skip to content

Commit

Permalink
TSAGE: R2R - Implement scene 3220
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Dec 22, 2011
1 parent 5f89ef2 commit e10060f
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 2 deletions.
4 changes: 3 additions & 1 deletion engines/tsage/ringworld2/ringworld2_logic.cpp
Expand Up @@ -184,12 +184,14 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Autopsy room
return new Scene3175();
case 3200:
// Cutscene : Cutscene : Rocko & co - Discussion
// Cutscene : Guards - Discussion
return new Scene3200();
case 3210:
// Cutscene : Captain and Private - Discussion
return new Scene3210();
case 3220:
// Cutscene : Guards in cargo zone
return new Scene3220();
case 3230:
case 3240:
case 3245:
Expand Down
29 changes: 28 additions & 1 deletion engines/tsage/ringworld2/ringworld2_scenes3.cpp
Expand Up @@ -923,7 +923,7 @@ void Scene3175::signal() {
}

/*--------------------------------------------------------------------------
* Scene 3200 - Cutscene : Rocko & co - Discussion
* Scene 3200 - Cutscene : Guards - Discussion
*
*--------------------------------------------------------------------------*/
void Scene3200::postInit(SceneObjectList *OwnerList) {
Expand Down Expand Up @@ -975,5 +975,32 @@ void Scene3210::postInit(SceneObjectList *OwnerList) {
void Scene3210::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}

/*--------------------------------------------------------------------------
* Scene 3220 - Cutscene : Guards in cargo zone
*
*--------------------------------------------------------------------------*/
void Scene3220::postInit(SceneObjectList *OwnerList) {
loadScene(3220);
R2_GLOBALS._v58CE2 = 0;
SceneExt::postInit();

_stripManager.addSpeaker(&_rockoSpeaker);
_stripManager.addSpeaker(&_jockoSpeaker);

R2_GLOBALS._player.postInit();
R2_GLOBALS._player.hide();
R2_GLOBALS._player.disableControl();

_actor1.postInit();
_actor2.postInit();

setAction(&_sequenceManager, this, 3220 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, NULL);
}

void Scene3220::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}

} // End of namespace Ringworld2
} // End of namespace TsAGE
12 changes: 12 additions & 0 deletions engines/tsage/ringworld2/ringworld2_scenes3.h
Expand Up @@ -211,6 +211,18 @@ class Scene3210 : public SceneExt {
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};

class Scene3220 : public SceneExt {
public:
SpeakerRocko3220 _rockoSpeaker;
SpeakerJocko3220 _jockoSpeaker;
SceneActor _actor1;
SceneActor _actor2;
SequenceManager _sequenceManager;

virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
} // End of namespace Ringworld2
} // End of namespace TsAGE

Expand Down
70 changes: 70 additions & 0 deletions engines/tsage/ringworld2/ringworld2_speakers.cpp
Expand Up @@ -1228,5 +1228,75 @@ void SpeakerPrivate3210::proc15() {
}
}

SpeakerRocko3220::SpeakerRocko3220() {
_speakerName = "Rocko";
_color1 = 5;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
_hideObjects = false;
_object2 = NULL;
_displayMode = 1;
_numFrames = 0;
}

void SpeakerRocko3220::proc15() {
int v = _fieldF6;
Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;

if (!_object2) {
_object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);

if (_object2->_mover)
_object2->addMover(NULL);
}

if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
_object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}

SpeakerJocko3220::SpeakerJocko3220() {
_speakerName = "Jocko";
_color1 = 45;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
_hideObjects = false;
_object2 = NULL;
_displayMode = 1;
_numFrames = 0;
}

void SpeakerJocko3220::proc15() {
int v = _fieldF6;
Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;

if (!_object2) {
_object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);

if (_object2->_mover)
_object2->addMover(NULL);
}

if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
_object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}

} // End of namespace Ringworld2
} // End of namespace TsAGE
16 changes: 16 additions & 0 deletions engines/tsage/ringworld2/ringworld2_speakers.h
Expand Up @@ -309,6 +309,22 @@ class SpeakerPrivate3210 : public VisualSpeaker {
virtual void proc15();
};

class SpeakerRocko3220 : public VisualSpeaker {
public:
SpeakerRocko3220();

virtual Common::String getClassName() { return "SpeakerRocko3220"; }
virtual void proc15();
};

class SpeakerJocko3220 : public VisualSpeaker {
public:
SpeakerJocko3220();

virtual Common::String getClassName() { return "SpeakerJocko3220"; }
virtual void proc15();
};

} // End of namespace Ringworld2
} // End of namespace TsAGE

Expand Down

0 comments on commit e10060f

Please sign in to comment.