TSAGE: R2R - Implement scene 3240

This commit is contained in:
Strangerke 2011-12-22 16:20:21 +01:00
parent fc671351cf
commit e6a671b555
5 changed files with 129 additions and 0 deletions

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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