TSAGE: Implemented Blue Force scene 225 - Credits - Gun Training

This commit is contained in:
Paul Gilbert 2011-10-02 23:22:33 +11:00
parent d3f0935794
commit 89d9aca804
3 changed files with 370 additions and 0 deletions

View file

@ -89,6 +89,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
// Credits - Martial Arts
return new Scene220();
case 225:
// Credits - Gun Training
return new Scene225();
case 265:
case 270:
case 271:

View file

@ -384,6 +384,330 @@ void Scene220::remove() {
SceneExt::remove();
}
/*--------------------------------------------------------------------------
* Scene 225 - Credits - Gun Training
*
*--------------------------------------------------------------------------*/
void Scene225::Action1::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
setDelay(30);
break;
case 1:
BF_GLOBALS._scenePalette.loadPalette(235);
BF_GLOBALS._scenePalette.refresh();
setDelay(5);
break;
case 2:
owner->animate(ANIM_MODE_4, 7, 1, this);
break;
case 3:
scene->_object8.animate(ANIM_MODE_5, this);
owner->animate(ANIM_MODE_5, this);
break;
case 4:
scene->_object8.remove();
break;
case 5:
scene->_action3.signal();
break;
case 6:
owner->setPosition(Common::Point(owner->_position.x, owner->_position.y - 4));
owner->setStrip(2);
owner->setFrame(1);
owner->animate(ANIM_MODE_5, this);
break;
case 7:
scene->_action2.signal();
break;
case 8:
owner->animate(ANIM_MODE_6, this);
break;
case 9:
owner->setPosition(Common::Point(owner->_position.x - 2, owner->_position.y - 1));
owner->setStrip(3);
owner->setFrame(1);
owner->animate(ANIM_MODE_5, this);
break;
case 10: {
owner->setPosition(Common::Point(owner->_position.x + 10, owner->_position.y + 4));
owner->setStrip(4);
owner->setFrame(1);
owner->fixPriority(116);
owner->animate(ANIM_MODE_1, NULL);
Common::Point destPos(138, 117);
NpcMover *mover = new NpcMover();
owner->addMover(mover, &destPos, this);
break;
}
case 11: {
owner->setPosition(Common::Point(owner->_position.x - 12, owner->_position.y - 1));
owner->setStrip(5);
owner->setFrame(1);
owner->_moveDiff.x = 8;
Common::Point destPos(402, 116);
NpcMover *mover = new NpcMover();
owner->addMover(mover, &destPos, this);
BF_GLOBALS._player.setPosition(Common::Point(owner->_position.x, 0));
ADD_MOVER_NULL(BF_GLOBALS._player, 500, 0);
break;
}
case 12:
owner->setVisage(1227);
owner->setStrip(1);
owner->setFrame(1);
owner->animate(ANIM_MODE_5, this);
break;
case 13:
owner->setStrip(2);
owner->setFrame(4);
scene->_action4.signal();
break;
case 14:
owner->animate(ANIM_MODE_6, this);
break;
case 15:
scene->_action6.signal();
break;
case 16:
owner->animate(ANIM_MODE_4, 4, 1, this);
break;
case 17:
owner->setFrame(6);
owner->animate(ANIM_MODE_5, this);
break;
case 18:
scene->_action5.signal();
break;
case 19:
owner->animate(ANIM_MODE_4, 4, -1, this);
break;
case 20:
PaletteRotation *rot;
rot = BF_GLOBALS._scenePalette.addRotation(64, 79, 1);
rot->setDelay(10);
rot = BF_GLOBALS._scenePalette.addRotation(96, 111, 1);
rot->setDelay(10);
scene->setAction(&scene->_sequenceManager, this, 225, &scene->_object15, &scene->_object16,
&scene->_object17, &scene->_object18, &scene->_object19, &scene->_object20, NULL);
break;
case 21:
scene->_object21.hide();
BF_GLOBALS._player._moveDiff.x = 5;
BF_GLOBALS._sceneManager.changeScene(265);
break;
default:
break;
}
}
void Scene225::Action2::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
break;
case 1:
owner->animate(ANIM_MODE_5, this);
break;
case 2:
owner->setStrip(3);
owner->setFrame(2);
scene->_action1.signal();
break;
default:
break;
}
}
void Scene225::Action3::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
break;
case 1:
owner->animate(ANIM_MODE_5, this);
break;
case 2:
owner->setStrip(3);
owner->setFrame(1);
scene->_action1.signal();
break;
default:
break;
}
}
void Scene225::Action4::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
break;
case 1:
owner->animate(ANIM_MODE_5, this);
break;
case 2:
owner->setStrip(5);
owner->setFrame(4);
scene->_action1.signal();
break;
default:
break;
}
}
void Scene225::Action5::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
break;
case 1:
owner->animate(ANIM_MODE_5, this);
break;
case 2:
owner->setStrip(3);
owner->setFrame(6);
scene->_action1.signal();
break;
default:
break;
}
}
void Scene225::Action6::signal() {
Scene225 *scene = (Scene225 *)BF_GLOBALS._sceneManager._scene;
SceneObject *owner = static_cast<SceneObject *>(this->_owner);
switch (_actionIndex++) {
case 0:
break;
case 1:
owner->animate(ANIM_MODE_5, this);
break;
case 2:
owner->setStrip(3);
owner->setFrame(3);
scene->_action1.signal();
break;
default:
break;
}
}
/*--------------------------------------------------------------------------*/
void Scene225::postInit(SceneObjectList *OwnerList) {
SceneExt::postInit();
loadScene(1225);
loadBackground(-320, 0);
_object8.postInit();
_object8.setVisage(1225);
_object8.setPosition(Common::Point(114, 119));
_object8._frame = 1;
_object8.setStrip(2);
_object8.changeZoom(100);
_object9.postInit();
_object9.setVisage(1226);
_object9.setPosition(Common::Point(83, 128));
_object9.setStrip(1);
_object9.changeZoom(100);
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.setPosition(Common::Point(83, 0));
BF_GLOBALS._player.hide();
_object10.postInit();
_object10.setVisage(1225);
_object10.setPosition(Common::Point(237, 29));
_object10.setStrip(1);
_object10._frame = 1;
_object10.changeZoom(100);
_object10._numFrames = 2;
_object11.postInit();
_object11.setVisage(1225);
_object11.setPosition(Common::Point(290, 47));
_object11.setStrip(1);
_object11._frame = 1;
_object11.changeZoom(100);
_object11._numFrames = 2;
_object12.postInit();
_object12.setVisage(1225);
_object12.setPosition(Common::Point(368, 35));
_object12.setStrip(4);
_object12._frame = 1;
_object12.changeZoom(100);
_object12._numFrames = 2;
_object13.postInit();
_object13.setVisage(1225);
_object13.setPosition(Common::Point(416, 33));
_object13.setStrip(1);
_object13._frame = 1;
_object13.changeZoom(100);
_object13._numFrames = 2;
_object14.postInit();
_object14.setVisage(1225);
_object14.setPosition(Common::Point(476, 30));
_object14.setStrip(1);
_object14._frame = 1;
_object14.changeZoom(100);
_object14._numFrames = 2;
_object21.postInit();
_object21.setVisage(235);
_object21.setStrip(1);
_object21._frame = 1;
_object21.setPosition(Common::Point(498, 41));
_object21.changeZoom(100);
_object21.hide();
_object15.postInit();
_object15.hide();
_object16.postInit();
_object16.hide();
_object17.postInit();
_object17.hide();
_object18.postInit();
_object18.hide();
_object19.postInit();
_object19.hide();
_object20.postInit();
_object20.hide();
_object9.setAction(&_action1);
_object10.setAction(&_action2);
_object11.setAction(&_action3);
_object12.setAction(&_action4);
_object13.setAction(&_action5);
_object14.setAction(&_action6);
}
void Scene225::remove() {
BF_GLOBALS._scenePalette.clearListeners();
SceneExt::remove();
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View file

@ -107,6 +107,50 @@ public:
virtual void remove();
};
class Scene225: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
virtual void signal();
};
class Action2: public Action {
public:
virtual void signal();
};
class Action3: public Action {
public:
virtual void signal();
};
class Action4: public Action {
public:
virtual void signal();
};
class Action5: public Action {
public:
virtual void signal();
};
class Action6: public Action {
public:
virtual void signal();
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
IntroObject _object1, _object2, _object3, _object4;
IntroObject _object5, _object6, _object7;
NamedObject _object8, _object9, _object10, _object11, _object12;
NamedObject _object13, _object14, _object15, _object16;
NamedObject _object17, _object18, _object19;
NamedObject _object20, _object21;
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void remove();
};
} // End of namespace BlueForce