diff options
| author | Paul Gilbert | 2011-09-10 11:21:57 +1000 | 
|---|---|---|
| committer | Paul Gilbert | 2011-09-10 11:21:57 +1000 | 
| commit | c75da8051cd81548d112201c347c422fa570ea0b (patch) | |
| tree | 5604c9c056f786ac82fdedf4e6fb5b985c828994 | |
| parent | 39f3ea90b7465b063d55658bd0384566876e26d9 (diff) | |
| download | scummvm-rg350-c75da8051cd81548d112201c347c422fa570ea0b.tar.gz scummvm-rg350-c75da8051cd81548d112201c347c422fa570ea0b.tar.bz2 scummvm-rg350-c75da8051cd81548d112201c347c422fa570ea0b.zip | |
TSAGE: Implemented Scene 325 - Police Conference Room
| -rw-r--r-- | engines/tsage/blue_force/blueforce_logic.cpp | 2 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_scenes3.cpp | 89 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_scenes3.h | 23 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_speakers.cpp | 21 | ||||
| -rw-r--r-- | engines/tsage/blue_force/blueforce_speakers.h | 9 | 
5 files changed, 136 insertions, 8 deletions
| diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index c91007e768..73467d86ac 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -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: diff --git a/engines/tsage/blue_force/blueforce_scenes3.cpp b/engines/tsage/blue_force/blueforce_scenes3.cpp index 7ceb9bdbd3..7ab62956e8 100644 --- a/engines/tsage/blue_force/blueforce_scenes3.cpp +++ b/engines/tsage/blue_force/blueforce_scenes3.cpp @@ -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 diff --git a/engines/tsage/blue_force/blueforce_scenes3.h b/engines/tsage/blue_force/blueforce_scenes3.h index e0e7d78afa..df03057af2 100644 --- a/engines/tsage/blue_force/blueforce_scenes3.h +++ b/engines/tsage/blue_force/blueforce_scenes3.h @@ -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 diff --git a/engines/tsage/blue_force/blueforce_speakers.cpp b/engines/tsage/blue_force/blueforce_speakers.cpp index 58db8659b6..f35fa22390 100644 --- a/engines/tsage/blue_force/blueforce_speakers.cpp +++ b/engines/tsage/blue_force/blueforce_speakers.cpp @@ -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 diff --git a/engines/tsage/blue_force/blueforce_speakers.h b/engines/tsage/blue_force/blueforce_speakers.h index 9db0dd2126..1bb56ece96 100644 --- a/engines/tsage/blue_force/blueforce_speakers.h +++ b/engines/tsage/blue_force/blueforce_speakers.h @@ -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 | 
