[Scummvm-cvs-logs] scummvm master -> d25533a57b3aa72b96e342f00afcd46941192c1b

dreammaster dreammaster at scummvm.org
Tue Sep 27 13:00:06 CEST 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
03d5d451b5 TSAGE: Fixed operation of FocusObject class
d25533a57b TSAGE: Implemented Blue Force scene 415


Commit: 03d5d451b566c31ebe0e2468742193046835fa84
    https://github.com/scummvm/scummvm/commit/03d5d451b566c31ebe0e2468742193046835fa84
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-09-27T03:52:24-07:00

Commit Message:
TSAGE: Fixed operation of FocusObject class

Changed paths:
    engines/tsage/blue_force/blueforce_logic.cpp
    engines/tsage/blue_force/blueforce_logic.h
    engines/tsage/blue_force/blueforce_scenes1.cpp
    engines/tsage/blue_force/blueforce_scenes3.cpp
    engines/tsage/blue_force/blueforce_scenes8.cpp
    engines/tsage/blue_force/blueforce_scenes9.cpp
    engines/tsage/blue_force/blueforce_ui.cpp



diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 5162e10..a13e3b1 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -129,6 +129,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
 		// Traffic Stop Gang Members
 		return new Scene410();
 	case 415:
+		// Searching Truck
+		return new Scene415();
 	case 440:
 	case 450:
 		error("Scene group 4 not implemented");
@@ -560,7 +562,7 @@ void FocusObject::postInit(SceneObjectList *OwnerList) {
 	_v92 = 1;
 
 	SceneExt *scene = (SceneExt *)BF_GLOBALS._sceneManager._scene;
-	scene->_eventHandler = this;
+	scene->_focusObject = this;
 	BF_GLOBALS._sceneItems.push_front(this);
 }
 
@@ -574,8 +576,8 @@ void FocusObject::remove() {
 	BF_GLOBALS._sceneItems.remove(this);
 
 	SceneExt *scene = (SceneExt *)BF_GLOBALS._sceneManager._scene;
-	if (scene->_eventHandler == this)
-		scene->_eventHandler = NULL;
+	if (scene->_focusObject == this)
+		scene->_focusObject = NULL;
 
 	BF_GLOBALS._events.setCursor(BF_GLOBALS._events.getCursor());
 	NamedObject::remove();
@@ -584,20 +586,27 @@ void FocusObject::remove() {
 void FocusObject::process(Event &event) {
 	if (BF_GLOBALS._player._enabled) {
 		if (_bounds.contains(event.mousePos)) {
+			// Reset the cursor back to normal
 			BF_GLOBALS._events.setCursor(BF_GLOBALS._events.getCursor());
+
 			if ((event.eventType == EVENT_BUTTON_DOWN) && (BF_GLOBALS._events.getCursor() == CURSOR_WALK) &&
 					(event.btnState == 3)) {
 				BF_GLOBALS._events.setCursor(CURSOR_USE);
 				event.handled = true;
 			}
 		} else if (event.mousePos.y < 168) {
+			// Change the cursor to an 'Exit' image
 			BF_GLOBALS._events.setCursor(_img);
 			if (event.eventType == EVENT_BUTTON_DOWN) {
+				// Remove the object from display
 				event.handled = true;
 				remove();
 			}
 		}
 	}
+
+	if (_action)
+		_action->process(event);
 }
 
 /*--------------------------------------------------------------------------*/
@@ -610,7 +619,7 @@ SceneExt::SceneExt(): Scene() {
 	_savedPlayerEnabled = false;
 	_savedUiEnabled = false;
 	_savedCanWalk = false;
-	_eventHandler = NULL;
+	_focusObject = NULL;
 	_cursorVisage.setVisage(1, 8);
 }
 
@@ -830,6 +839,10 @@ void SceneHandlerExt::postInit(SceneObjectList *OwnerList) {
 }
 
 void SceneHandlerExt::process(Event &event) {
+	SceneExt *scene = (SceneExt *)BF_GLOBALS._sceneManager._scene;
+	if (scene && scene->_focusObject)
+		scene->_focusObject->process(event);
+
 	if (BF_GLOBALS._uiElements._active) {
 		BF_GLOBALS._uiElements.process(event);
 		if (event.handled)
diff --git a/engines/tsage/blue_force/blueforce_logic.h b/engines/tsage/blue_force/blueforce_logic.h
index 129b8ea..0184c65 100644
--- a/engines/tsage/blue_force/blueforce_logic.h
+++ b/engines/tsage/blue_force/blueforce_logic.h
@@ -181,7 +181,7 @@ public:
 	GfxSurface _img;
 
 	FocusObject();
-	virtual void postInit(SceneObjectList *OwnerList);
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
 	virtual void synchronize(Serializer &s);
 	virtual void remove();
 	virtual void process(Event &event);
@@ -202,7 +202,7 @@ public:
 	bool _savedCanWalk;
 	int _field37A;
 
-	EventHandler *_eventHandler;
+	FocusObject *_focusObject;
 	Visage _cursorVisage;
 
 	Rect _v51C34;
diff --git a/engines/tsage/blue_force/blueforce_scenes1.cpp b/engines/tsage/blue_force/blueforce_scenes1.cpp
index fb111e3..2e3a504 100644
--- a/engines/tsage/blue_force/blueforce_scenes1.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes1.cpp
@@ -675,7 +675,7 @@ void Scene190::signal() {
 void Scene190::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_exit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(3);
diff --git a/engines/tsage/blue_force/blueforce_scenes3.cpp b/engines/tsage/blue_force/blueforce_scenes3.cpp
index fd2bc17..6edd6d1 100644
--- a/engines/tsage/blue_force/blueforce_scenes3.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes3.cpp
@@ -523,7 +523,7 @@ void Scene300::signal() {
 void Scene300::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_item14.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_NE);
@@ -1293,7 +1293,7 @@ void Scene315::signal() {
 void Scene315::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_swExit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
@@ -2137,7 +2137,7 @@ void Scene340::process(Event &event) {
 	if (!event.handled) {
 		SceneExt::process(event);
 
-		if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+		if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 			// Check if the cursor is on an exit
 			if (_westExit.contains(event.mousePos)) {
 				GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_W);
@@ -2434,7 +2434,7 @@ void Scene342::process(Event &event) {
 	if (!event.handled) {
 		SceneExt::process(event);
 
-		if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+		if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 			// Check if the cursor is on an exit
 			if (_westExit.contains(event.mousePos)) {
 				GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_W);
@@ -2792,7 +2792,7 @@ void Scene350::process(Event &event) {
 	if (!event.handled) {
 		SceneExt::process(event);
 
-		if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+		if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 			// Check if the cursor is on an exit
 			if (_swExit.contains(event.mousePos)) {
 				GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
@@ -3989,7 +3989,7 @@ void Scene355::signal() {
 void Scene355::process(Event &event) {
 	if (BF_GLOBALS._dayNumber == 5) {
 		// Handling for day 5
-		if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+		if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 			// Check if the cursor is on an exit
 			if (_item12.contains(event.mousePos)) {
 				GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_NW);
@@ -4047,7 +4047,7 @@ void Scene355::process(Event &event) {
 		}
 	} else {
 		// All other days
-		if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+		if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 			// Check if the cursor is on an exit
 			if (_item2.contains(event.mousePos)) {
 				GfxSurface surface = _cursorVisage.getFrame(!_modeFlag ? EXITFRAME_SW : EXITFRAME_NE);
@@ -5009,7 +5009,7 @@ void Scene370::signal() {
 void Scene370::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_exit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_E);
@@ -5471,7 +5471,7 @@ void Scene385::signal() {
 void Scene385::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_exit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
diff --git a/engines/tsage/blue_force/blueforce_scenes8.cpp b/engines/tsage/blue_force/blueforce_scenes8.cpp
index 3b3ff20..49de0be 100644
--- a/engines/tsage/blue_force/blueforce_scenes8.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes8.cpp
@@ -1365,7 +1365,7 @@ void Scene840::signal() {
 void Scene840::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		if (_exit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_E);
 			BF_GLOBALS._events.setCursor(surface);
diff --git a/engines/tsage/blue_force/blueforce_scenes9.cpp b/engines/tsage/blue_force/blueforce_scenes9.cpp
index 2bffe5e..b4799a6 100644
--- a/engines/tsage/blue_force/blueforce_scenes9.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes9.cpp
@@ -687,7 +687,7 @@ void Scene900::signal() {
 void Scene900::process(Event &event) {
 	SceneExt::process(event);
 
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		if (_item4.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_N);
 			BF_GLOBALS._events.setCursor(surface);
@@ -870,7 +870,7 @@ void Scene920::signal() {
 }
 void Scene920::process(Event &event) {
 	SceneExt::process(event);
-	if (BF_GLOBALS._player._enabled && !_eventHandler && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		if (_exitN.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_N);
 			BF_GLOBALS._events.setCursor(surface);
diff --git a/engines/tsage/blue_force/blueforce_ui.cpp b/engines/tsage/blue_force/blueforce_ui.cpp
index af15c7e..a4edffb 100644
--- a/engines/tsage/blue_force/blueforce_ui.cpp
+++ b/engines/tsage/blue_force/blueforce_ui.cpp
@@ -335,7 +335,7 @@ void UIElements::process(Event &event) {
 			_cursorChanged = false;
 
 			SceneExt *scene = (SceneExt *)BF_GLOBALS._sceneManager._scene;
-			if (scene->_eventHandler) {
+			if (scene->_focusObject) {
 				GfxSurface surface = _cursorVisage.getFrame(7);
 				BF_GLOBALS._events.setCursor(surface);
 			}


Commit: d25533a57b3aa72b96e342f00afcd46941192c1b
    https://github.com/scummvm/scummvm/commit/d25533a57b3aa72b96e342f00afcd46941192c1b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-09-27T03:52:38-07:00

Commit Message:
TSAGE: Implemented Blue Force scene 415

Changed paths:
    engines/tsage/blue_force/blueforce_scenes4.cpp
    engines/tsage/blue_force/blueforce_scenes4.h



diff --git a/engines/tsage/blue_force/blueforce_scenes4.cpp b/engines/tsage/blue_force/blueforce_scenes4.cpp
index 2210e3e..6a0be64 100644
--- a/engines/tsage/blue_force/blueforce_scenes4.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes4.cpp
@@ -890,6 +890,246 @@ void Scene410::dispatch() {
 	}
 }
 
+/*--------------------------------------------------------------------------
+ * Scene 415 - Searching Truck
+ *
+ *--------------------------------------------------------------------------*/
+
+bool Scene415::GunInset::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	if (action == CURSOR_USE) {
+		if (BF_GLOBALS.getFlag(fGotAutoWeapon)) {
+			FocusObject::startAction(action, event);
+		} else {
+			remove();
+			scene->_gunAndWig.remove();
+		}
+		return true;
+	} else {
+		return FocusObject::startAction(action, event);
+	}
+}
+
+bool Scene415::GunAndWig::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	switch (action) {
+	case CURSOR_USE:
+		NamedObject::startAction(action, event);
+		BF_INVENTORY.setObjectScene(INV_AUTO_RIFLE, 1);
+		BF_INVENTORY.setObjectScene(INV_WIG, 1);
+		BF_GLOBALS.setFlag(fGotAutoWeapon);
+		BF_GLOBALS._uiElements.addScore(30);
+
+		remove();
+		return true;
+	case INV_FOREST_RAP:
+		if (scene->_fieldE14)
+			break;
+
+		BF_GLOBALS._player.disableControl();
+		scene->_sceneMode = 0;
+		scene->_stripManager.start(4126, scene);
+		BF_GLOBALS._uiElements.addScore(50);
+		scene->_fieldE14 = true;
+		return true;
+	default:
+		break;
+	}
+
+	return NamedObject::startAction(action, event);
+}
+
+bool Scene415::BulletsInset::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	if (action == CURSOR_USE) {
+		if (BF_GLOBALS.getFlag(fGotAutoWeapon)) {
+			FocusObject::startAction(action, event);
+		} else {
+			remove();
+			scene->_theBullets.remove();
+		}
+		return true;
+	} else {
+		return FocusObject::startAction(action, event);
+	}
+}
+
+bool Scene415::DashDrawer::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	if ((action == CURSOR_LOOK) || (action == CURSOR_USE)) {
+		scene->showBullets();
+		return true;
+	} else {
+		return NamedObject::startAction(action, event);
+	}
+}
+
+bool Scene415::TheBullets::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	switch (action) {
+	case CURSOR_USE:
+		NamedObject::startAction(action, event);
+		BF_INVENTORY.setObjectScene(INV_22_BULLET, 1);
+		BF_GLOBALS.setFlag(fGotBulletsFromDash);
+		BF_GLOBALS._uiElements.addScore(30);
+
+		remove();
+		scene->_dashDrawer.remove();
+		return true;
+	case INV_FOREST_RAP:
+		if (scene->_fieldE16) {
+			SceneItem::display2(415, 35);
+			return true;
+		} else {
+			BF_GLOBALS._player.disableControl();
+			scene->_sceneMode = 0;
+			scene->_stripManager.start(4122, scene);
+			BF_GLOBALS._uiElements.addScore(50);
+			scene->_fieldE16 = true;
+		}
+		break;
+	default:
+		break;
+	}
+
+	return NamedObject::startAction(action, event);
+}
+
+/*--------------------------------------------------------------------------*/
+
+bool Scene415::Lever::startAction(CursorType action, Event &event) {
+	Scene415 *scene = (Scene415 *)BF_GLOBALS._sceneManager._scene;
+
+	switch (action) {
+	case CURSOR_USE:
+		if (BF_GLOBALS.getFlag(fGotAutoWeapon)) {
+			SceneItem::display2(415, 20);
+		} else {
+			BF_GLOBALS._player.disableControl();
+			scene->_sceneMode = 2;
+			scene->setAction(&scene->_sequenceManager, scene, 4150, &scene->_object6, NULL);
+		}
+		return true;
+	default:
+		return NamedHotspot::startAction(action, event);
+	}
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene415::Scene415(): SceneExt() {
+	_fieldE14 = _fieldE16 = false;
+}
+
+void Scene415::synchronize(Serializer &s) {
+	SceneExt::synchronize(s);
+	s.syncAsSint16LE(_fieldE14);
+	s.syncAsSint16LE(_fieldE16);
+}
+
+void Scene415::postInit(SceneObjectList *OwnerList) {
+	SceneExt::postInit();
+	loadScene(415);
+
+	_stripManager.addSpeaker(&_jakeRadioSpeaker);
+
+	_dashDrawer.postInit();
+	_dashDrawer.setVisage(411);
+	_dashDrawer.setStrip(3);
+	_dashDrawer.setPosition(Common::Point(151, 97));
+	_dashDrawer.setDetails(415, 22, -1, -1, 1, NULL);
+
+	_object6.postInit();
+	_object6.setVisage(419);
+	_object6.setStrip(1);
+	_object6.setPosition(Common::Point(306, 116));
+	_object6.fixPriority(80);
+	
+	_windowLever.setDetails(16, 415, 25, -1, 26, 1);
+	_item7.setDetails(17, 415, 32, -1, 33, 1);
+	_seatBelt.setDetails(14, 415, 29, -1, 30, 1);
+	_lever.setDetails(19, 415, 23, 24, -1, 1);
+	_seat.setDetails(18, 415, 3, 4, 2, 1);
+	_dashboard.setDetails(20, 415, 11, 12, 19, 1);
+	_steeringWheel.setDetails(15, 415, 5, 6, 7, 1);
+	_horn.setDetails(31, 415, 8, 9, 10, 1);
+	_item1.setDetails(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y), 415, 0, 1, 2, 1, NULL);
+
+	BF_GLOBALS._player.enableControl();
+	BF_GLOBALS._player._canWalk = false;
+	BF_GLOBALS._events.setCursor(CURSOR_WALK);
+
+	signal();
+}
+
+void Scene415::signal() {
+	switch (_sceneMode) {
+	case 1:
+		BF_GLOBALS._sceneManager.changeScene(410);
+		break;
+	case 2:
+		showGunAndWig();
+		_sceneMode = 0;
+		signal();
+		break;
+	case 0:
+	default:
+		BF_GLOBALS._player.enableControl();
+		BF_GLOBALS._player._canWalk = false;
+		break;
+	}
+}
+
+void Scene415::dispatch() {
+	SceneExt::dispatch();
+	if (BF_GLOBALS.getFlag(fGotAutoWeapon) && BF_GLOBALS.getFlag(fGotBulletsFromDash)) {
+		_sceneMode = 1;
+		signal();
+	}
+}
+
+void Scene415::showBullets() {
+	_bulletsInset.postInit();
+	_bulletsInset.setVisage(411);
+	_bulletsInset.setStrip(1);
+	_bulletsInset.setPosition(Common::Point(158, 100));
+	_bulletsInset.setDetails(415, -1, -1, -1);
+
+	_theBullets.postInit();
+	_theBullets.setVisage(411);
+	_theBullets.setStrip(1);
+	_theBullets.setFrame(2);
+	_theBullets.setPosition(Common::Point(184, 86));
+	_theBullets.fixPriority(105);
+	_theBullets.setDetails(415, 16, 17, 18, 1, NULL);
+	BF_GLOBALS._sceneItems.remove(&_theBullets);
+	BF_GLOBALS._sceneItems.push_front(&_theBullets);
+}
+
+void Scene415::showGunAndWig() {
+	_gunInset.postInit();
+	_gunInset.setVisage(411);
+	_gunInset.setStrip(2);
+	_gunInset.setPosition(Common::Point(158, 100));
+	_gunInset.setDetails(415, -1, -1, -1);
+
+	_gunAndWig.postInit();
+	_gunAndWig.setVisage(411);
+	_gunAndWig.setStrip(2);
+	_gunAndWig.setFrame(2);
+	_gunAndWig.setPosition(Common::Point(159, 88));
+	_gunAndWig.fixPriority(105);
+	_gunAndWig.setDetails(415, 13, 14, 15, 1, NULL);
+
+	BF_GLOBALS._sceneItems.remove(&_gunAndWig);
+	BF_GLOBALS._sceneItems.push_front(&_gunAndWig);
+}
+
 } // End of namespace BlueForce
 
 } // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_scenes4.h b/engines/tsage/blue_force/blueforce_scenes4.h
index a15c23f..6129cd5 100644
--- a/engines/tsage/blue_force/blueforce_scenes4.h
+++ b/engines/tsage/blue_force/blueforce_scenes4.h
@@ -128,6 +128,58 @@ public:
 	virtual void dispatch();
 };
 
+class Scene415: public SceneExt {
+	/* Objects */
+	class GunInset: public FocusObject {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+	class GunAndWig: public NamedObject {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+	class BulletsInset: public FocusObject {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+	class DashDrawer: public NamedObject {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+	class TheBullets: public NamedObject {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+
+	/* Items */
+	class Lever: public NamedHotspot {
+	public:
+		virtual bool startAction(CursorType action, Event &event);
+	};
+private:
+	void showBullets();
+	void showGunAndWig();
+public:
+	SequenceManager _sequenceManager;
+	GunInset _gunInset;
+	GunAndWig _gunAndWig;
+	BulletsInset _bulletsInset;
+	DashDrawer _dashDrawer;
+	TheBullets _theBullets;
+	NamedObject _object6;
+	NamedHotspot _item1, _steeringWheel, _horn, _dashboard;
+	NamedHotspot _seat, _windowLever, _item7, _seatBelt;
+	Lever _lever;
+	SpeakerJakeRadio _jakeRadioSpeaker;
+	bool _fieldE14, _fieldE16;
+
+	Scene415();
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void synchronize(Serializer &s);
+	virtual void signal();
+	virtual void dispatch();
+};
+
 } // End of namespace BlueForce
 
 } // End of namespace TsAGE






More information about the Scummvm-git-logs mailing list