Skip to content

Commit

Permalink
TSAGE: Completed R2R starship cutscene
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Aug 4, 2013
1 parent 89e14f6 commit c92ffa9
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 20 deletions.
11 changes: 9 additions & 2 deletions engines/tsage/ringworld2/ringworld2_logic.cpp
Expand Up @@ -108,7 +108,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
/* Scene group #1 */
//
case 1000:
// Cutscene: Ship moving
// Cutscene scene
return new Scene1000();
case 1010:
// Cutscene - trip in space
Expand Down Expand Up @@ -570,6 +570,13 @@ void SceneExt::scalePalette(int RFactor, int GFactor, int BFactor) {
}
}

void SceneExt::loadBlankScene() {
_backSurface.create(SCREEN_WIDTH, SCREEN_HEIGHT * 3 / 2);
_backSurface.fillRect(_backSurface.getBounds(), 0);

R2_GLOBALS._screenSurface.fillRect(R2_GLOBALS._screenSurface.getBounds(), 0);
}

/*--------------------------------------------------------------------------*/

void SceneHandlerExt::postInit(SceneObjectList *OwnerList) {
Expand Down Expand Up @@ -1750,7 +1757,7 @@ AnimationPlayer::~AnimationPlayer() {

void AnimationPlayer::synchronize(Serializer &s) {
EventHandler::synchronize(s);
warning("TODO AnimationPlayer::load");
warning("TODO AnimationPlayer::synchronize");
}

void AnimationPlayer::remove() {
Expand Down
2 changes: 2 additions & 0 deletions engines/tsage/ringworld2/ringworld2_logic.h
Expand Up @@ -108,6 +108,7 @@ class SceneExt: public Scene {
void fadeOut();
void clearScreen();
void scalePalette(int RFactor, int GFactor, int BFactor);
void loadBlankScene();
};

class SceneHandlerExt: public SceneHandler {
Expand Down Expand Up @@ -435,6 +436,7 @@ class AnimationPlayer: public EventHandler {
virtual void changePane() {}
virtual void closing() {}


bool load(int animId, Action *endAction = NULL);
bool isCompleted();
void close();
Expand Down
6 changes: 3 additions & 3 deletions engines/tsage/ringworld2/ringworld2_scenes0.cpp
Expand Up @@ -3080,10 +3080,10 @@ bool Scene300::Seeker::startAction(CursorType action, Event &event) {
} else {
R2_GLOBALS._player.disableControl();
scene->_stripId = 171;
}

scene->_sceneMode = 310;
scene->setAction(&scene->_sequenceManager1, scene, 310, &R2_GLOBALS._player, NULL);
scene->_sceneMode = 310;
scene->setAction(&scene->_sequenceManager1, scene, 310, &R2_GLOBALS._player, NULL);
}
return true;

case R2_READER:
Expand Down
45 changes: 30 additions & 15 deletions engines/tsage/ringworld2/ringworld2_scenes1.cpp
Expand Up @@ -30,7 +30,7 @@ namespace TsAGE {
namespace Ringworld2 {

/*--------------------------------------------------------------------------
* Scene 1000 - Cutscene: Ship moving
* Scene 1000 - Cutscene scene
*
*--------------------------------------------------------------------------*/

Expand All @@ -42,6 +42,7 @@ Scene1000::Scene1000(): SceneExt() {
}

void Scene1000::postInit(SceneObjectList *OwnerList) {
loadBlankScene();
SceneExt::postInit();

_stripManager.addSpeaker(&_gameTextSpeaker);
Expand Down Expand Up @@ -85,6 +86,7 @@ void Scene1000::postInit(SceneObjectList *OwnerList) {
break;
}

R2_GLOBALS._uiElements._active = false;
setAction(&_sequenceManager1, this, 1, &R2_GLOBALS._player, NULL);
}

Expand All @@ -98,7 +100,7 @@ void Scene1000::signal() {
ScenePalette scenePalette1, scenePalette2;
uint32 black = 0;

switch (R2_GLOBALS._sceneManager._previousScene) {
switch (_sceneMode++) {
case 0:
// TODO: Sort out values
R2_GLOBALS._gfxColors.foreground = 191;
Expand All @@ -108,7 +110,7 @@ void Scene1000::signal() {

_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer.load(5);
_animationPlayer.load(5, this);
R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;

Expand Down Expand Up @@ -165,7 +167,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(7);
_animationPlayer.load(7, this);
R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;

Expand Down Expand Up @@ -195,7 +197,7 @@ void Scene1000::signal() {
case 10:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(6);
_animationPlayer.load(6, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -217,7 +219,7 @@ void Scene1000::signal() {
case 20:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(8);
_animationPlayer.load(8, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -237,7 +239,7 @@ void Scene1000::signal() {
case 30:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(17);
_animationPlayer.load(17, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -262,7 +264,7 @@ void Scene1000::signal() {
case 40:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(18);
_animationPlayer.load(18, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -288,7 +290,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(13);
_animationPlayer.load(13, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -310,7 +312,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(14);
_animationPlayer.load(14, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -337,7 +339,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(12);
_animationPlayer.load(12, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -362,7 +364,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(9);
_animationPlayer.load(9, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -385,7 +387,7 @@ void Scene1000::signal() {
case 80:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(10);
_animationPlayer.load(10, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -403,7 +405,7 @@ void Scene1000::signal() {
case 90:
_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(11);
_animationPlayer.load(11, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -430,7 +432,7 @@ void Scene1000::signal() {

_animationPlayer._paletteMode = ANIMPALMODE_NONE;
_animationPlayer._objectMode = ANIMOBJMODE_2;
_animationPlayer.load(19);
_animationPlayer.load(19, this);

R2_GLOBALS._scenePalette.loadPalette(_animationPlayer._subData._palData, 0, 256);
R2_GLOBALS._sceneManager._hasPalette = false;
Expand All @@ -452,7 +454,20 @@ void Scene1000::signal() {
}

void Scene1000::dispatch() {
if (_fieldD2E) {
if (_animationPlayer.isCompleted()) {
_fieldD2E = 0;
_animationPlayer.close();
_animationPlayer.remove();

if (_sceneMode == 52)
_endHandler = this;
} else {
_animationPlayer.dispatch();
}
}

Scene::dispatch();
}


Expand Down

0 comments on commit c92ffa9

Please sign in to comment.