TSAGE: Implemented Scene 325 - Police Conference Room

This commit is contained in:
Paul Gilbert 2011-09-10 11:21:57 +10:00
parent 39f3ea90b7
commit c75da8051c
5 changed files with 136 additions and 8 deletions

View file

@ -87,6 +87,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
// Inside Police Station
return new Scene315();
case 325:
// Police Station Conference Room
return new Scene325();
case 330:
case 340:
case 342:

View file

@ -45,8 +45,8 @@ void Scene300::Object::startAction(CursorType action, Event &event) {
}
}
void Scene300::Object17::startAction(CursorType action, Event &event) {
if ((action != CURSOR_USE) || !BF_GLOBALS.getFlag(3)) {
void Scene300::Object19::startAction(CursorType action, Event &event) {
if ((action != CURSOR_USE) || !BF_GLOBALS.getFlag(onDuty)) {
NamedObject::startAction(action, event);
} else if ((BF_GLOBALS._dayNumber != 2) || (BF_GLOBALS._bookmark >= bEndDayOne)) {
Scene300 *scene = (Scene300 *)BF_GLOBALS._sceneManager._scene;
@ -175,7 +175,7 @@ void Scene300::Action4::signal() {
setAction(&scene->_sequenceManager1, this, 316, &BF_GLOBALS._player, &scene->_object19, NULL);
break;
case 2:
BF_GLOBALS._sceneManager.changeScene(15);
BF_GLOBALS._sceneManager.changeScene(60);
break;
case 3:
setAction(&scene->_sequenceManager1, this, 319, &scene->_object19, NULL);
@ -203,7 +203,6 @@ void Scene300::Action5::signal() {
break;
case 2:
scene->_stripManager.start(3004, this);
BF_GLOBALS._sceneManager.changeScene(15);
break;
case 3: {
ADD_PLAYER_MOVER_NULL(BF_GLOBALS._player, 186, 140);
@ -1075,7 +1074,8 @@ void Scene315::postInit(SceneObjectList *OwnerList) {
_object7.postInit();
_object8.setFrame(8);
_sceneMode = (BF_GLOBALS._dayNumber == 1) ? 3152 : 3155;
setAction(&_sequenceManager, this, _sceneMode, &_object6, &_object7, &_object8, NULL);
setAction(&_sequenceManager, this, _sceneMode, &BF_GLOBALS._player, &_object6,
&_object7, &_object8, NULL);
break;
case 300:
default:
@ -1341,6 +1341,85 @@ void Scene315::dispatch() {
}
}
/*--------------------------------------------------------------------------
* Scene 325 - Police Station Conference Room
*
*--------------------------------------------------------------------------*/
void Scene325::Item1::startAction(CursorType action, Event &event) {
if (action == CURSOR_EXIT) {
BF_GLOBALS._events.setCursor(CURSOR_WALK);
BF_GLOBALS._player.disableControl();
BF_GLOBALS._sceneManager.changeScene(315);
}
}
/*--------------------------------------------------------------------------*/
void Scene325::postInit(SceneObjectList *OwnerList) {
SceneExt::postInit();
loadScene(325);
BF_GLOBALS._interfaceY = 200;
BF_GLOBALS.clearFlag(fCanDrawGun);
if (BF_GLOBALS._dayNumber == 0)
BF_GLOBALS._dayNumber = 1;
// Add the speakers
_stripManager.addSpeaker(&_gameTextSpeaker);
_stripManager.addSpeaker(&_PSutterSpeaker);
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.hide();
if (BF_GLOBALS._dayNumber == 1) {
_object1.postInit();
_object1.setVisage(325);
_object1.setStrip(8);
_object1.setPosition(Common::Point(128, 44));
} else {
_object1.postInit();
_object1.setVisage(325);
_object1.setStrip(8);
_object1.setFrame(2);
_object1.setPosition(Common::Point(132, 28));
_object2.postInit();
_object2.setVisage(325);
_object2.setStrip(8);
_object2.setFrame(3);
_object2.setPosition(Common::Point(270, 24));
}
_object3.postInit();
_object3.setVisage(335);
_object3.setStrip(4);
_object3.setPosition(Common::Point(202, 122));
_object4.postInit();
_object4.setVisage(335);
_object4.setStrip(2);
_object4.setPosition(Common::Point(283, 102));
_object5.postInit();
_object5.setVisage(335);
_object5.setStrip(1);
_object5.setPosition(Common::Point(135, 167));
_item1.setup(Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), 560, -1, -1, -1, 1, NULL);
BF_GLOBALS._player.disableControl();
_sceneMode = (BF_GLOBALS._dayNumber == 1) ? 3250 : 3251;
setAction(&_sequenceManager, this, _sceneMode, &_object3, &_object4, &_object5, NULL);
}
void Scene325::signal() {
BF_GLOBALS._player._uiEnabled = 0;
BF_GLOBALS._player._canWalk = true;
BF_GLOBALS._player._enabled = true;
BF_GLOBALS._events.setCursor(CURSOR_EXIT);
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View file

@ -49,7 +49,7 @@ class Scene300: public SceneExt {
virtual void startAction(CursorType action, Event &event);
};
class Object17: public NamedObject {
class Object19: public NamedObject {
public:
virtual void startAction(CursorType action, Event &event);
};
@ -103,8 +103,8 @@ public:
SceneObject _object8, _object9, _object10;
NamedObject _object11, _object12;
Object _object13, _object14, _object15, _object16;
Object17 _object17;
NamedObject _object18, _object19;
NamedObject _object17, _object18;
Object19 _object19;
Item1 _item1;
Item2 _item2;
NamedHotspot _item3, _item4, _item5, _item6, _item7;
@ -226,6 +226,23 @@ public:
virtual void dispatch();
};
class Scene325: public SceneExt {
/* Items */
class Item1: public NamedHotspot {
public:
virtual void startAction(CursorType action, Event &event);
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerPSutter _PSutterSpeaker;
Item1 _item1;
NamedObject _object1, _object2, _object3, _object4, _object5;
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
} // End of namespace BlueForce
} // End of namespace TsAGE

View file

@ -286,6 +286,27 @@ void SpeakerJailer::setText(const Common::String &msg) {
_object2.fixCountdown(8, _numFrames);
}
/*--------------------------------------------------------------------------*/
SpeakerPSutter::SpeakerPSutter(): VisualSpeaker() {
_color1 = 20;
_color2 = 22;
_speakerName = "PSUTTER";
}
void SpeakerPSutter::setText(const Common::String &msg) {
_removeObject2 = true;
_object2.postInit();
_object2.setVisage(335);
_object2.setStrip2(3);
_object2.fixPriority(200);
_object2.setPosition(Common::Point(202, 48));
VisualSpeaker::setText(msg);
_object2.fixCountdown(8, _numFrames);
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View file

@ -116,6 +116,15 @@ public:
virtual void setText(const Common::String &msg);
};
class SpeakerPSutter: public VisualSpeaker {
public:
SpeakerPSutter();
virtual Common::String getClassName() { return "SpeakerPSutter"; }
virtual void setText(const Common::String &msg);
};
} // End of namespace BlueForce
} // End of namespace TsAGE