TSAGE: Implemented Scene #4010 - Village - By Lander

This commit is contained in:
Paul Gilbert 2011-03-22 20:45:27 +11:00
parent df80ff2f51
commit 0e35331302
4 changed files with 64 additions and 1 deletions

View File

@ -3076,9 +3076,11 @@ void WalkRegions::load(int sceneNum) {
_resNum = sceneNum;
byte *regionData = _vm->_dataManager->getResource(RES_WALKRGNS, sceneNum, 1, true);
if (!regionData)
if (!regionData) {
// No data, so return
_resNum = -1;
return;
}
byte *dataP;
int dataSize;

View File

@ -108,6 +108,8 @@ Scene *SceneFactory::createScene(int sceneNumber) {
/* Scene group 5 */
// Village
case 4000: return new Scene4000();
// Village - Outside Lander
case 4010: return new Scene4010();
/* Scene group 6 */

View File

@ -1237,4 +1237,51 @@ void Scene4000::dispatch() {
}
}
/*--------------------------------------------------------------------------
* Scene 4010 - Village - Outside Lander
*
*--------------------------------------------------------------------------*/
void Scene4010::postInit(SceneObjectList *OwnerList) {
loadScene(4010);
Scene::postInit();
setZoomPercents(0, 20, 70, 50);
_stripManager.addSpeaker(&_speakerQText);
_stripManager.addSpeaker(&_speakerSText);
_stripManager.addSpeaker(&_speakerMText);
_speakerSText._npc = &_hotspot1;
_speakerMText._npc = &_hotspot2;
_speakerQText._npc = &_globals->_player;
_globals->_player.postInit();
_globals->_player.setVisage(0);
_globals->_player.animate(ANIM_MODE_1, NULL);
_globals->_player.setObjectWrapper(new SceneObjectWrapper());
_globals->_player.setPosition(Common::Point(-38, 175));
_globals->_player.changeZoom(75);
_hotspot2.postInit();
_hotspot2.setVisage(2705);
_hotspot2.animate(ANIM_MODE_1, NULL);
_hotspot2.setObjectWrapper(new SceneObjectWrapper());
_hotspot2._moveDiff = Common::Point(4, 2);
_hotspot2.setPosition(Common::Point(-50, 185));
_hotspot2.changeZoom(75);
_hotspot1.postInit();
_hotspot1.setVisage(2806);
_hotspot1.setPosition(Common::Point(-20, 175));
_hotspot1.changeZoom(75);
_hotspot1.animate(ANIM_MODE_1, NULL);
_hotspot1.setObjectWrapper(new SceneObjectWrapper());
_globals->_player.disableControl();
setAction(&_sequenceManager, this, 4017, &_globals->_player, &_hotspot1, &_hotspot2, NULL);
}
void Scene4010::signal() {
_globals->_sceneManager.changeScene(4000);
}
} // End of namespace tSage

View File

@ -186,6 +186,18 @@ public:
virtual void dispatch();
};
class Scene4010: public Scene {
public:
SequenceManager _sequenceManager;
SpeakerQText _speakerQText;
SpeakerSText _speakerSText;
SpeakerMText _speakerMText;
SceneObject _hotspot1, _hotspot2;
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
} // End of namespace tSage
#endif