TSAGE: Implemented Scene #3500 - Ringworld Scan

This commit is contained in:
Paul Gilbert 2011-03-19 22:46:19 +11:00
parent 88b909b26d
commit eb1c1e7e6a
4 changed files with 155 additions and 0 deletions

View file

@ -14,6 +14,7 @@ MODULE_OBJS := \
ringworld_scenes1.o \
ringworld_scenes2.o \
ringworld_scenes3.o \
ringworld_scenes4.o \
saveload.o \
scenes.o \
sound.o \

View file

@ -30,6 +30,7 @@
#include "tsage/ringworld_scenes1.h"
#include "tsage/ringworld_scenes2.h"
#include "tsage/ringworld_scenes3.h"
#include "tsage/ringworld_scenes4.h"
namespace tSage {
@ -98,6 +99,8 @@ Scene *SceneFactory::createScene(int sceneNumber) {
case 2400: return new Scene2400();
/* Scene group 4 */
// Ringworld Scan
case 3500: return new Scene3500();
/* Scene group 5 */

View file

@ -0,0 +1,93 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $URL$
* $Id$
*
*/
#include "common/config-manager.h"
#include "tsage/ringworld_scenes4.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
namespace tSage {
/*--------------------------------------------------------------------------
* Scene 3500 - Ringworld Scan
*
*--------------------------------------------------------------------------*/
void Scene3500::Action1::signal() {
Scene3500 *scene = (Scene3500 *)_globals->_sceneManager._scene;
switch (_actionIndex++) {
case 0:
setDelay(10);
break;
case 1:
scene->_stripManager.start(3500, this);
break;
case 2:
setDelay(3);
break;
case 3:
_globals->_sceneManager.changeScene(9999);
break;
}
}
void Scene3500::Action2::signal() {
Scene3500 *scene = (Scene3500 *)_globals->_sceneManager._scene;
switch (_actionIndex++) {
case 0:
setDelay(10);
break;
case 1:
scene->_stripManager.start(3501, this);
break;
case 2:
setDelay(3);
break;
case 3:
_globals->_sceneManager.changeScene(2012);
break;
}
}
/*--------------------------------------------------------------------------*/
void Scene3500::postInit(SceneObjectList *OwnerList) {
loadScene((_globals->_stripNum == 3600) ? 3600 : 3500);
Scene::postInit();
_stripManager.addSpeaker(&_speakerQText);
_stripManager.addSpeaker(&_speakerMText);
_stripManager.addSpeaker(&_speakerSText);
_globals->_sceneManager._scene->_sceneBounds.contain(_globals->_sceneManager._scene->_backgroundBounds);
_globals->_sceneOffset.x = (_globals->_sceneManager._scene->_sceneBounds.top / 160) * 160;
setAction((_globals->_stripNum == 3600) ? (Action *)&_action2 : (Action *)&_action1);
}
} // End of namespace tSage

View file

@ -0,0 +1,58 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $URL: https://scummvm-misc.svn.sourceforge.net/svnroot/scummvm-misc/trunk/engines/tsage/scene_logic.h $
* $Id: scene_logic.h 232 2011-02-12 11:56:38Z dreammaster $
*
*/
#ifndef TSAGE_RINGWORLD_SCENES4_H
#define TSAGE_RINGWORLD_SCENES4_H
#include "common/scummsys.h"
#include "tsage/core.h"
#include "tsage/converse.h"
#include "tsage/ringworld_logic.h"
namespace tSage {
class Scene3500: public Scene {
/* Actions */
class Action1: public Action {
public:
virtual void signal();
};
class Action2: public Action {
public:
virtual void signal();
};
public:
SpeakerSText _speakerSText;
SpeakerMText _speakerMText;
SpeakerQText _speakerQText;
Action1 _action1;
Action2 _action2;
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
} // End of namespace tSage
#endif