[Scummvm-cvs-logs] scummvm master -> 1402b47674f83a7f021417a4eebb8e132036cdcd

Strangerke Strangerke at scummvm.org
Tue Oct 11 00:25:08 CEST 2011


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

Summary:
1402b47674 TSAGE: missing functions in scene 910, still WIP


Commit: 1402b47674f83a7f021417a4eebb8e132036cdcd
    https://github.com/scummvm/scummvm/commit/1402b47674f83a7f021417a4eebb8e132036cdcd
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-10-10T15:16:47-07:00

Commit Message:
TSAGE: missing functions in scene 910, still WIP

Changed paths:
    engines/tsage/blue_force/blueforce_scenes9.cpp



diff --git a/engines/tsage/blue_force/blueforce_scenes9.cpp b/engines/tsage/blue_force/blueforce_scenes9.cpp
index beb1b88..a7f58ac 100644
--- a/engines/tsage/blue_force/blueforce_scenes9.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes9.cpp
@@ -2214,12 +2214,628 @@ void Scene910::postInit(SceneObjectList *OwnerList) {
 }
 
 void Scene910::signal() {
+	static uint32 v50EA0 = 0, v50EA4 = 0, v50EA8 = 0,v50EAC = 0, v50EB0 = 0, v50EB4 = 0, v50EB8 = 0;
+	switch (_sceneMode) {
+	case 2:
+		_sceneMode = 3;
+		_timer1.set(60, this);
+		break;
+	case 3:
+		_sceneMode = 4;
+		sub15E4F((const byte *)&v50EAC, 35, 910, this, 0, 111, 112, 255, false);
+		break;
+	case 4:
+		_sceneMode = 5;
+		_timer1.set(30, this);
+		break;
+	case 5:
+		_sceneMode = 6;
+		sub15E4F((const byte *)&v50EB0, 40, 910, this, 0, 111, 112, 255, false);
+		break;
+	case 6:
+		_sceneMode = 7;
+		_timer1.set(60, this);
+		break;
+	case 7:
+		BF_GLOBALS._player.setVisage(129);
+		_object1.setVisage(811);
+		_object5.hide();
+		_sceneMode = 8;
+		sub15E4F((const byte *)&v50EB4, 95, 910, this, 0, 111, 112, 255, false);
+		break;
+	case 8:
+		_sceneMode = 9;
+		_timer1.set(30, this);
+		break;
+	case 9:
+		_sceneMode = 0;
+		sub15E4F((const byte *)&v50EB8, 100, 910, this, 0, 111, 112, 255, false);
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 10:
+		BF_GLOBALS._player.disableControl();
+		BF_GLOBALS._v51C44 = 0;
+		BF_GLOBALS._sceneManager.changeScene(935);
+		break;
+	case 11:
+		if (BF_GLOBALS._sceneManager._previousScene == 900) {
+			if (BF_GLOBALS._v4CEC8 != 0)
+				sub15E4F((const byte *)&v50EA4, 25, 910, NULL, 0, 111, 112, 255, false);
+			if (BF_GLOBALS.getFlag(fWithLyle)) {
+				NpcMover *mover = new NpcMover();
+				Common::Point destPos(22, 157);
+				_object1.addMover(mover, &destPos, NULL);
+
+				_sceneMode = 9100;
+			}
+			setAction(&_sequenceManager1, this, 9100, &BF_GLOBALS._player, NULL);
+		} else if (BF_GLOBALS._sceneManager._previousScene == 935) {
+			_sceneMode = 9146;
+			_stripManager.start(9103, this);
+		}
+		break;
+	case 12:
+		BF_GLOBALS._player.setVisage(129);
+		BF_GLOBALS._player.animate(ANIM_MODE_1, NULL);
+		BF_GLOBALS._player.setStrip(7);
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 13:
+		BF_GLOBALS._player.disableControl();
+		BF_GLOBALS._player.setAction(&_sequenceManager2, NULL, 9117, &_object2, NULL);
+		BF_GLOBALS._v4CEE2 = 2;
+	// No break on purpose
+	case 15:
+		_object3.postInit();
+		_object3.setDetails(910, 66, 67, 68, 5, &_object2);
+		BF_GLOBALS._v4CEE8 = 0;
+		_sceneMode = 9121;
+		setAction(&_sequenceManager1, this, 9121, &_object3, NULL);
+		break;
+	case 14:
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(940);
+		break;
+	case 16:
+		_object1._field90 = 1;
+		_sceneMode = 10;
+		addFader((const byte *)&v50EA8, 2, this);
+		BF_GLOBALS._v4CEE2 = 1;
+		BF_GLOBALS._walkRegions.proc1(16);
+		BF_GLOBALS._walkRegions.proc1(14);
+		BF_GLOBALS._sceneItems.remove(&_item16);
+		break;
+	case 17:
+		BF_GLOBALS._player._strip = 7;
+		BF_GLOBALS._player._frame = 1;
+		if (_field2DE2 == 0) {
+			_field2DE2 = 1;
+			if (BF_GLOBALS._v4CEE2 == 4) {
+				_sceneMode = 9149;
+				setAction(&_sequenceManager1, this, 9149, &BF_GLOBALS._player, NULL);
+			} else {
+				_sceneMode = 9141;
+				setAction(&_sequenceManager1, this, 9141, &BF_GLOBALS._player, &_object2, NULL);
+			}
+		} else {
+			SceneItem::display(910, 91, SET_WIDTH, 312,
+				SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+				SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+				SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+				SET_EXT_FGCOLOR, 13, LIST_END);
+			BF_GLOBALS._player.enableControl();
+		}
+		break;
+	case 18:
+		BF_GLOBALS._player._strip = 7;
+		BF_GLOBALS._player._frame = 1;
+		if (BF_GLOBALS._v4CEE4 == 3) {
+			if (_field2DE4 == 0) {
+				_field2DE4 = 1;
+				_sceneMode = 9142;
+				setAction(&_sequenceManager1, this, 9142, &BF_GLOBALS._player, &_object3, NULL);
+			} else {
+				SceneItem::display(910, 92, SET_WIDTH, 312,
+					SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+					SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+					SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+					SET_EXT_FGCOLOR, 13, LIST_END);
+				BF_GLOBALS._player.enableControl();
+			}
+		} else {
+			SceneItem::display(910, 94, SET_WIDTH, 312,
+				SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+				SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+				SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+				SET_EXT_FGCOLOR, 13, LIST_END);
+			BF_GLOBALS._player.enableControl();
+		}
+		break;
+	case 19:
+		BF_GLOBALS._deathReason = 14;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 20:
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9100:
+		if (BF_GLOBALS._dayNumber == 5)
+			BF_GLOBALS._walkRegions.proc1(1);
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9101:
+		if ((BF_GLOBALS._v4CEE0 == 0) && (BF_GLOBALS._v4CEC8 != 0) && (BF_GLOBALS._v4CECE[17] == 0) && (BF_INVENTORY.getObjectScene(INV_YELLOW_CORD) == 910) && (BF_INVENTORY.getObjectScene(INV_BLACK_CORD) == 910))
+			BF_GLOBALS.clearFlag(fGotPointsForSearchingDA);
+		else
+			BF_GLOBALS.setFlag(fGotPointsForSearchingDA);
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(900);
+		break;
+	case 9102:
+		if ((BF_GLOBALS._v4CECE[13] < 4) && (_object10._frame == 1))
+			_object10.animate(ANIM_MODE_5, NULL);
+
+		BF_GLOBALS._player.enableControl();
+		_object12.postInit();
+		_object12.setVisage(910);
+		_object12.setStrip(3);
+		_object12.setFrame(2);
+		_object12.setPosition(Common::Point(160, 130));
+		_object12.fixPriority(250);
+		break;
+	case 9103:
+		BF_GLOBALS._player.enableControl();
+		_object29.postInit();
+		_object29.setVisage(910);
+		_object29.setStrip(3);
+		_object29.setFrame(2);
+		_object29.setPosition(Common::Point(160, 130));
+		_object29.fixPriority(250);
+		break;
+	case 9110:
+		if (!BF_GLOBALS.getFlag(fGotPointsForCrate)) {
+			BF_GLOBALS._uiElements.addScore(30);
+			BF_GLOBALS.setFlag(fGotPointsForCrate);
+		}
+		BF_INVENTORY.setObjectScene(INV_BLACK_CORD, 1);
+		_object8.setPosition(Common::Point(540, 100));
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9111:
+		if ((BF_GLOBALS._bookmark == bEndDayThree) && (!BF_GLOBALS.getFlag(fGotPointsForGeneratorOff))) {
+				BF_GLOBALS._uiElements.addScore(30);
+				BF_GLOBALS.setFlag(fGotPointsForGeneratorOff);
+		}
+		BF_INVENTORY.setObjectScene(INV_BLACK_CORD, 910);
+		_object8.setStrip(6);
+		_object8.setFrame(1);
+		_object8.setPosition(Common::Point(114, 149));
+		_object8.fixPriority(249);
+		BF_GLOBALS._v4CECA = 0;
+		_object8._field90 = 0;
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9112:
+		BF_GLOBALS._player._strip = 4;
+		BF_GLOBALS._player._frame = 1;
+		BF_INVENTORY.setObjectScene(INV_YELLOW_CORD, 1);
+		_object9.setPosition(Common::Point(540, 100));
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9113:
+		BF_GLOBALS._player._strip = 4;
+		BF_GLOBALS._player._frame = 1;
+		BF_INVENTORY.setObjectScene(INV_YELLOW_CORD, 910);
+		_object9.setStrip(6);
+		_object9.setFrame(2);
+		_object9.setPosition(Common::Point(_object11._position.x - 50, _object11._position.y - 4));
+		_object9.fixPriority(50);
+		BF_GLOBALS._v4CECC = 0;
+		_object9._field90 = 0;
+		_object9.show();
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9114:
+		_object11.hide();
+		if ((BF_GLOBALS._dayNumber == 5) && (BF_GLOBALS._v4CEE2 == 0)) {
+			BF_GLOBALS._player.disableControl();
+			_object2.postInit();
+			_object2.setDetails(910, 63, 64, 65, 5, &_item4);
+			BF_GLOBALS._v4CEE6 = 0;
+			_object7.postInit();
+			_action2.remove();
+			_sceneMode = 9116;
+			setAction(&_sequenceManager1, this, 9116, &_object2, NULL);
+		} else {
+			BF_GLOBALS._player.enableControl();
+		}
+		break;
+	case 9115:
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9116:
+		BF_GLOBALS._player.disableControl();
+		_sceneMode = 16;
+		_stripManager.start(9119, this);
+		break;
+	case 9118:
+	// No break on purpose
+	case 9137:
+		BF_GLOBALS._deathReason = 16;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 9119:
+		if (!BF_GLOBALS.getFlag(fGotPointsForCordOnForklift)) {
+			BF_GLOBALS._uiElements.addScore(30);
+			BF_GLOBALS.setFlag(fGotPointsForCordOnForklift);
+		}
+		BF_INVENTORY.setObjectScene(INV_YELLOW_CORD, 0);
+		BF_INVENTORY.setObjectScene(INV_HALF_YELLOW_CORD, 1);
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9120:
+		BF_GLOBALS._walkRegions.proc1(7);
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9121:
+		_item3.setDetails(7, 910, 96, 60, 61, 3);
+		BF_GLOBALS._v4CEE4 = 2;
+		if (BF_GLOBALS._v4CEE2 == 4) {
+			_sceneMode = 20;
+			_stripManager.start(9115, this);
+		} else {
+			BF_GLOBALS._player.enableControl();
+		}
+		break;
+	case 9123:
+		BF_GLOBALS.clearFlag(gunDrawn);
+		switch (_field2DDA - 1) {
+		case 0:
+			_sceneMode = 9102;
+			setAction(&_sequenceManager1, this, 9102, &BF_GLOBALS._player, NULL);
+			break;
+		case 1:
+			_sceneMode = 9103;
+			setAction(&_sequenceManager1, this, 9103, &BF_GLOBALS._player, NULL);
+			break;
+		case 2:
+			_sceneMode = 9143;
+			setAction(&_sequenceManager1, this, 9143, &BF_GLOBALS._player, NULL);
+			break;
+		case 3:
+			_sceneMode = 9110;
+			setAction(&_sequenceManager1, this, 9110, &BF_GLOBALS._player, &_object8, NULL);
+			break;
+		case 4:
+			_sceneMode = 9111;
+			setAction(&_sequenceManager1, this, 9111, &BF_GLOBALS._player, &_object8, NULL);
+			break;
+		case 5:
+			switch (BF_GLOBALS._v4CEE2 - 1) {
+			case 0:
+				_sceneMode = 9118;
+				setAction(&_sequenceManager1, this, 9118, &BF_GLOBALS._player, &_object2, NULL);
+				break;
+			case 1:
+				_sceneMode = 9148;
+				setAction(&_sequenceManager1, this, 9148, &BF_GLOBALS._player, &_object2, NULL);
+				break;
+			case 2:
+			// No break on purpose
+			case 3: {
+				_sceneMode = 17;
+				PlayerMover *mover = new PlayerMover();
+				Common::Point destPos(232, 138);
+				BF_GLOBALS._player.addMover(mover, &destPos, this);
+				}
+			default:
+				break;
+			}
+			break;
+		case 6: {
+			_sceneMode = 18;
+			PlayerMover *mover = new PlayerMover();
+			Common::Point destPos(248, 137);
+			BF_GLOBALS._player.addMover(mover, &destPos, this);
+			break;
+			}
+		case 7: {
+			_sceneMode = 9112;
+			PlayerMover *mover = new PlayerMover();
+			Common::Point destPos(285, 114);
+			BF_GLOBALS._player.addMover(mover, &destPos, this);
+			break;
+			}
+		case 8: {
+			_sceneMode = 9113;
+			PlayerMover *mover = new PlayerMover();
+			Common::Point destPos(285, 114);
+			BF_GLOBALS._player.addMover(mover, &destPos, this);
+			break;
+			}
+		case 9:
+			_sceneMode = 9119;
+			setAction(&_sequenceManager1, this, 9119, &BF_GLOBALS._player, &_object2, &_object9, NULL);
+			break;
+		case 10:
+			_object9.fixPriority(127);
+			if (_object9._position.x != 267)
+				_object9.hide();
+			_sceneMode = 9136;
+			setAction(&_sequenceManager1, this, 9136, &BF_GLOBALS._player, &_object3, &_object9, NULL);
+			BF_GLOBALS._v4CEE4 = 3;
+			break;
+		case 11:
+			_sceneMode = 9137;
+			setAction(&_sequenceManager1, this, 9137, &BF_GLOBALS._player, &_object2, NULL);
+			break;
+		default:
+			BF_GLOBALS._player.enableControl();
+			PlayerMover *mover = new PlayerMover();
+			Common::Point destPos(_field2DDC, _field2DDE);
+			BF_GLOBALS._player.addMover(mover, &destPos, NULL);
+			break;
+		}
+	case 9124:
+		BF_GLOBALS._player.enableControl();
+		BF_GLOBALS.setFlag(gunDrawn);
+		break;
+	case 9125:
+		BF_GLOBALS.setFlag(fBackupAt340);
+		BF_GLOBALS._v4CEE2 = 4;
+		_object3.postInit();
+		_object2.setDetails(910, 72, 73, 74, 3, NULL);
+		_object3.setDetails(910, 66, 67, 68, 5, &_object2);
+		BF_GLOBALS._v4CEE8 = 0;
+		_sceneMode = 9121;
+		setAction(&_sequenceManager1, this, 9121, &_object3, NULL);
+		break;
+	case 9126:
+		_sceneMode = 19;
+		if (BF_GLOBALS._v4CEE4 == 0)
+			signal();
+		else
+			_stripManager.start(9115, this);
+		break;
+	case 9129:
+	// No break on purpose
+	case 9134:
+		BF_GLOBALS._deathReason = 17;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 9130:
+		_object1.setAction(&_sequenceManager2, NULL, 9133, &_object1, NULL);
+		BF_GLOBALS._v4CECE[14] = 3;
+		subE82BD();
+		BF_GLOBALS._walkRegions.proc1(15);
+		break;
+	case 9132:
+		BF_GLOBALS._player.enableControl();
+		BF_GLOBALS._v4CEE4 = 4;
+		BF_GLOBALS._deathReason = 13;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 9135:
+		BF_GLOBALS._deathReason = 15;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 9136:
+		if (!BF_GLOBALS.getFlag(fGotPointsForCuffingNico)) {
+			BF_GLOBALS._uiElements.addScore(30);
+			BF_GLOBALS.setFlag(fGotPointsForCuffingNico);
+		}
+		_object1.setAction(&_sequenceManager2, NULL, 9131, &_object1, NULL);
+		BF_GLOBALS._walkRegions.proc2(16);
+		if (BF_GLOBALS._v4CEE2 == 4)
+			BF_INVENTORY.setObjectScene(INV_YELLOW_CORD, 0);
+		else
+			BF_INVENTORY.setObjectScene(INV_HALF_YELLOW_CORD, 910);
+		_object4.postInit();
+		_object4.setDetails(910, 86, 87, 88, 4, &_item8);
+		_sceneMode = 9139;
+		setAction(&_sequenceManager1, this, 9139, &_object4, &BF_GLOBALS._player, NULL);
+		break;
+	case 9139:
+		BF_GLOBALS._walkRegions.proc1(4);
+		_field2DE0 = 1;
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9140:
+		_sceneMode = 14;
+		addFader((const byte *)&v50EA0, 2, this);
+		break;
+	case 9141:
+		BF_INVENTORY.setObjectScene(INV_22_SNUB, 1);
+		if (!BF_GLOBALS.getFlag(fGotPointsForCuffingDA)) {
+			BF_GLOBALS._uiElements.addScore(30);
+			BF_GLOBALS.setFlag(fGotPointsForCuffingDA);
+		}
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9142:
+		BF_GLOBALS._player.enableControl();
+		if (!BF_GLOBALS.getFlag(fGotPointsForSearchingNico)) {
+			BF_GLOBALS._uiElements.addScore(30);
+			BF_GLOBALS.setFlag(fGotPointsForSearchingNico);
+		}
+		break;
+	case 9143:
+		if (BF_GLOBALS._v4CEE2 == 0) {
+			BF_GLOBALS._v51C44 = 1;
+			BF_GLOBALS._sceneManager.changeScene(920);
+		} else {
+			SceneItem::display(910, 89, SET_WIDTH, 312,
+					SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+					SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+					SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+					SET_EXT_FGCOLOR, 13, LIST_END);
+			_sceneMode = 9144;
+			setAction(&_sequenceManager1, this, 9144, &BF_GLOBALS._player, NULL);
+		}
+		break;
+	case 9144:
+	// No break on purpose
+	case 9146:
+		BF_GLOBALS._player.enableControl();
+		break;
+	case 9148:
+		BF_GLOBALS._deathReason = 23;
+		BF_GLOBALS._v51C44 = 1;
+		BF_GLOBALS._sceneManager.changeScene(666);
+		break;
+	case 9149:
+		SceneItem::display(910, 74, SET_WIDTH, 312,
+				SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+				SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+				SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+				SET_EXT_FGCOLOR, 13, LIST_END);
+		BF_INVENTORY.setObjectScene(INV_22_SNUB, 1);
+		BF_GLOBALS._player.enableControl();
+		BF_GLOBALS._player.setVisage(129);
+		BF_GLOBALS._player.animate(ANIM_MODE_1, NULL);
+		BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper());
+		BF_GLOBALS._player._strip = 7;
+		BF_GLOBALS._player._frame = 1;
+		break;
+	default:
+		break;
+	}
 }
 
 void Scene910::process(Event &event) {
+	SceneExt::process(event);
+	if ((!BF_GLOBALS._player._enabled) || (event.mousePos.y >= 167))
+		return;
+
+	if (_item7._bounds.contains(event.mousePos)) {
+		GfxSurface surface = _cursorVisage.getFrame(6);
+		BF_GLOBALS._events.setCursor(surface);
+	}
+
+	if ((BF_GLOBALS._v4CEE0 == 0) || (BF_GLOBALS._v4CEE2 != 0)) {
+		if (!_item16._bounds.contains(event.mousePos)) {
+			CursorType cursorId = BF_GLOBALS._events.getCursor();
+			BF_GLOBALS._events.setCursor(cursorId);
+		} else {
+			GfxSurface surface = _cursorVisage.getFrame(8);
+			BF_GLOBALS._events.setCursor(surface);
+		}
+	}
+
+	if (event.eventType != 1)
+		return;
+
+	switch (BF_GLOBALS._events.getCursor()) {
+	case INV_COLT45:
+		if (!BF_GLOBALS._player._bounds.contains(event.mousePos))
+			break;
+		if (BF_GLOBALS.getFlag(gunDrawn)) {
+			BF_GLOBALS._player.disableControl();
+			_field2DDC = BF_GLOBALS._player._position.x;
+			_field2DDE = BF_GLOBALS._player._position.y;
+			_sceneMode = 9123;
+			setAction(&_sequenceManager1, this, 9123, &BF_GLOBALS._player, NULL);
+			event.handled = true;
+		} else if (BF_GLOBALS._v4CEE2 <= 1) {
+			if (BF_GLOBALS.getFlag(fCanDrawGun)) {
+				BF_GLOBALS._player.addMover(NULL);
+				BF_GLOBALS._player.disableControl();
+				_sceneMode = 9124;
+				setAction(&_sequenceManager1, this, 9124, &BF_GLOBALS._player, NULL);
+			} else
+				SceneItem::display(1, 4, SET_WIDTH, 312,
+					SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+					SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+					SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+					SET_EXT_FGCOLOR, 13, LIST_END);
+		} else
+			SceneItem::display(910, 81, SET_WIDTH, 312,
+				SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+				SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+				SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+				SET_EXT_FGCOLOR, 13, LIST_END);
+		break;
+	case CURSOR_WALK:
+		if (BF_GLOBALS._v4CEE2 == 1) {
+			BF_GLOBALS._player.disableControl();
+			if (BF_GLOBALS._player._visage == 1911) {
+				BF_GLOBALS._player.disableControl();
+				_field2DDC = event.mousePos.x;
+				_field2DDE = event.mousePos.y;
+				_field2DDA = 6;
+				_sceneMode = 9123;
+				setAction(&_sequenceManager1, this, 9123, &BF_GLOBALS._player, NULL);
+			} else {
+				_sceneMode = 9118;
+				setAction(&_sequenceManager1, this, 9118, &BF_GLOBALS._player, &_object2, NULL);
+				event.handled = true;
+			}
+		} else if (BF_GLOBALS._player._visage == 1911) {
+			BF_GLOBALS._player.disableControl();
+			_field2DDC = event.mousePos.x;
+			_field2DDE = event.mousePos.y;
+			_field2DDA = 0;
+			_sceneMode = 9123;
+			setAction(&_sequenceManager1, this, 9123, &BF_GLOBALS._player, NULL);
+		}
+	default:
+		break;
+	}
 }
 
 void Scene910::dispatch() {
+	SceneExt::dispatch();
+	if (!_action)
+		return;
+	if ((_sceneMode != 14) && (BF_GLOBALS._player._position.x < 30) && (BF_GLOBALS._player._position.y > 148)) {
+		BF_GLOBALS._player.disableControl();
+		if (BF_GLOBALS._dayNumber != 5) {
+			_sceneMode = 9101;
+			setAction(&_sequenceManager1, this, 9101, &BF_GLOBALS._player, NULL);
+		} else {
+			_sceneMode = 9146;
+			if (BF_GLOBALS._v4CEE0 == 0)
+				setAction(&_sequenceManager1, this, 9146, &BF_GLOBALS._player, NULL);
+			else
+				setAction(&_sequenceManager1, this, 9145, &BF_GLOBALS._player, NULL);
+		}
+	}
+
+	if ((BF_GLOBALS._player._position.x > 265) && (BF_GLOBALS._player._position.y < 102) && (BF_GLOBALS._v4CEE0 == 0) && (_sceneMode == 9143)) {
+		BF_GLOBALS._player.disableControl();
+		if (BF_GLOBALS.getFlag(gunDrawn)) {
+			_field2DDA = 3;
+			_sceneMode = 9123;
+			setAction(&_sequenceManager1, this, 9123, &BF_GLOBALS._player, NULL);
+		} else if (BF_GLOBALS._v4CEE2 == 0) {
+			_sceneMode = 9143;
+			setAction(&_sequenceManager1, this, 9143, &BF_GLOBALS._player, NULL);
+		} else {
+			SceneItem::display(910, 98, SET_WIDTH, 312,
+				SET_X, GLOBALS._sceneManager._scene->_sceneBounds.left + 4,
+				SET_Y, GLOBALS._sceneManager._scene->_sceneBounds.top + BF_INTERFACE_Y + 2,
+				SET_FONT, 4, SET_BG_COLOR, 1, SET_FG_COLOR, 19, SET_EXT_BGCOLOR, 9,
+				SET_EXT_FGCOLOR, 13, LIST_END);
+			_sceneMode = 9144;
+			setAction(&_sequenceManager1, this, 9144, &BF_GLOBALS._player, NULL);
+		}
+	}
+
+	if ((BF_GLOBALS._dayNumber == 5) && (BF_GLOBALS._player._position.x > 250) && (_sceneMode != 9135) && (_sceneMode != 11) && (BF_GLOBALS._v4CEE0 != 0) && (BF_GLOBALS._v4CEE2 == 0)) {
+		BF_GLOBALS._player.disableControl();
+		_object7.remove();
+		_action2.remove();
+		_object2.postInit();
+		_object2.setDetails(910, 63, 64, 65, 5, &_item4);
+		_sceneMode = 9135;
+		setAction(&_sequenceManager1, this, 9135, &BF_GLOBALS._player, &_object2, NULL);
+	}
+
 }
 
 void Scene910::checkGun() {






More information about the Scummvm-git-logs mailing list