mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-05 18:41:12 +00:00
TSAGE: R2R - Implement scene 3240
This commit is contained in:
parent
fc671351cf
commit
e6a671b555
@ -196,6 +196,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
|
||||
// Cutscene : Guards on duty
|
||||
return new Scene3230();
|
||||
case 3240:
|
||||
// Cutscene : Teal monolog
|
||||
return new Scene3240();
|
||||
case 3245:
|
||||
case 3250:
|
||||
case 3255:
|
||||
|
@ -1028,5 +1028,33 @@ void Scene3230::postInit(SceneObjectList *OwnerList) {
|
||||
void Scene3230::signal() {
|
||||
R2_GLOBALS._sceneManager.changeScene(1200);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
* Scene 3240 - Cutscene : Teal monolog
|
||||
*
|
||||
*--------------------------------------------------------------------------*/
|
||||
void Scene3240::postInit(SceneObjectList *OwnerList) {
|
||||
loadScene(3240);
|
||||
R2_GLOBALS._v58CE2 = 0;
|
||||
SceneExt::postInit();
|
||||
|
||||
_stripManager.addSpeaker(&_tealSpeaker);
|
||||
_stripManager.addSpeaker(&_webbsterSpeaker);
|
||||
_stripManager.addSpeaker(&_mirandaSpeaker);
|
||||
|
||||
R2_GLOBALS._player.postInit();
|
||||
R2_GLOBALS._player.hide();
|
||||
R2_GLOBALS._player.disableControl();
|
||||
|
||||
_actor1.postInit();
|
||||
_actor2.postInit();
|
||||
|
||||
setAction(&_sequenceManager, this, 3240 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, NULL);
|
||||
}
|
||||
|
||||
void Scene3240::signal() {
|
||||
R2_GLOBALS._sceneManager.changeScene(1200);
|
||||
}
|
||||
|
||||
} // End of namespace Ringworld2
|
||||
} // End of namespace TsAGE
|
||||
|
@ -236,6 +236,19 @@ public:
|
||||
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
||||
virtual void signal();
|
||||
};
|
||||
|
||||
class Scene3240 : public SceneExt {
|
||||
public:
|
||||
SpeakerTeal3240 _tealSpeaker;
|
||||
SpeakerWebbster3240 _webbsterSpeaker;
|
||||
SpeakerMiranda2500 _mirandaSpeaker;
|
||||
SceneActor _actor1;
|
||||
SceneActor _actor2;
|
||||
SequenceManager _sequenceManager;
|
||||
|
||||
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
||||
virtual void signal();
|
||||
};
|
||||
} // End of namespace Ringworld2
|
||||
} // End of namespace TsAGE
|
||||
|
||||
|
@ -1368,5 +1368,75 @@ void SpeakerJocko3230::proc15() {
|
||||
}
|
||||
}
|
||||
|
||||
SpeakerTeal3240::SpeakerTeal3240() {
|
||||
_speakerName = "Teal";
|
||||
_color1 = 22;
|
||||
_color2 = 0;
|
||||
_fieldF6 = 0;
|
||||
_textWidth = 300;
|
||||
_hideObjects = false;
|
||||
_object2 = NULL;
|
||||
_displayMode = 1;
|
||||
_numFrames = 0;
|
||||
}
|
||||
|
||||
void SpeakerTeal3240::proc15() {
|
||||
int v = _fieldF6;
|
||||
Scene3240 *scene = (Scene3240 *)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(4070, (_object2->_strip * 2) - 1, 1);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
}
|
||||
}
|
||||
|
||||
SpeakerWebbster3240::SpeakerWebbster3240() {
|
||||
_speakerName = "Webbster";
|
||||
_color1 = 10;
|
||||
_color2 = 0;
|
||||
_fieldF6 = 0;
|
||||
_textWidth = 300;
|
||||
_hideObjects = false;
|
||||
_object2 = NULL;
|
||||
_displayMode = 1;
|
||||
_numFrames = 0;
|
||||
}
|
||||
|
||||
void SpeakerWebbster3240::proc15() {
|
||||
int v = _fieldF6;
|
||||
Scene3240 *scene = (Scene3240 *)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(4110, 5, 1);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
}
|
||||
}
|
||||
|
||||
} // End of namespace Ringworld2
|
||||
} // End of namespace TsAGE
|
||||
|
@ -340,6 +340,22 @@ public:
|
||||
virtual Common::String getClassName() { return "SpeakerJocko3230"; }
|
||||
virtual void proc15();
|
||||
};
|
||||
|
||||
class SpeakerTeal3240 : public VisualSpeaker {
|
||||
public:
|
||||
SpeakerTeal3240();
|
||||
|
||||
virtual Common::String getClassName() { return "SpeakerTeal3240"; }
|
||||
virtual void proc15();
|
||||
};
|
||||
|
||||
class SpeakerWebbster3240 : public VisualSpeaker {
|
||||
public:
|
||||
SpeakerWebbster3240();
|
||||
|
||||
virtual Common::String getClassName() { return "SpeakerWebbster3240"; }
|
||||
virtual void proc15();
|
||||
};
|
||||
} // End of namespace Ringworld2
|
||||
} // End of namespace TsAGE
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user