Example #1
0
void Scene50::Tooltip::highlight(bool btnDown) {
	Scene50 *scene = (Scene50 *)BF_GLOBALS._sceneManager._scene;

	scene->_field382 = _newSceneNumber;
	if ((scene->_field380 != 0) || (scene->_field380 != _newSceneNumber))
		update();

	if (btnDown) {
		if ((BF_GLOBALS._bikiniHutState == 14) && BF_GLOBALS.getFlag(98))
			scene->_sceneNumber = 600;
		else if (BF_GLOBALS._bikiniHutState == 5)
			scene->_sceneNumber = 410;
		else {
			BF_GLOBALS._v4CEF4 = _newSceneNumber;

			switch (BF_GLOBALS._v4CEF2) {
			case 330:
			case 340:
			case 342:
				BF_GLOBALS._player.disableControl();
				if (_locationId != BF_GLOBALS._mapLocationId) {
					scene->_sceneNumber = 330;
				} else {
					scene->_sceneNumber = (BF_GLOBALS._v4CEA2 != 1) || (BF_GLOBALS._bikiniHutState < 1) ||
						(BF_GLOBALS._bikiniHutState >= 2) ? 342 : 340;
				}
				break;

			case 410:
			case 551:
				if (BF_GLOBALS.getFlag((BF_GLOBALS._v4CEF2 == 410) ? 41 : 40)) {
					BF_GLOBALS._mapLocationId = _locationId;
					BF_GLOBALS._player.disableControl();
					scene->_sceneNumber = _newSceneNumber;
				} else {
					BF_GLOBALS._v4CEA8 = 4;
					BF_GLOBALS._sceneManager.changeScene(666);
					return;
				}
				break;

			case 300:
				if (_locationId == 1) {
					BF_GLOBALS._v4CEF4 = 300;
					_newSceneNumber = 300;
				}
				// Deliberate fall through to default
			default:
				BF_GLOBALS._mapLocationId = _locationId;
				BF_GLOBALS._player.disableControl();
				scene->_sceneNumber = _newSceneNumber;
				break;
			}

			// Signal the scene to change to the new scene
			scene->_sceneMode = 1;
			scene->signal();
		}
	}
}
Example #2
0
void Scene50::Tooltip::highlight(bool btnDown) {
	Scene50 *scene = (Scene50 *)BF_GLOBALS._sceneManager._scene;

	scene->_field382 = _newSceneNumber;
	if ((scene->_field380 != 0) || (scene->_field380 != _newSceneNumber))
		update();

	if (btnDown) {
		if ((BF_GLOBALS._bookmark == bCalledToDrunkStop) && BF_GLOBALS.getFlag(beenToJRDay2))
			scene->_sceneNumber = 600;
		else if (BF_GLOBALS._bookmark == bBookedGreen)
			scene->_sceneNumber = 410;
		else {
			BF_GLOBALS._driveToScene = _newSceneNumber;

			switch (BF_GLOBALS._driveFromScene) {
			case 330:
			case 340:
			case 342:
				BF_GLOBALS._player.disableControl();
				BF_GLOBALS._mapLocationId = _locationId;

				if (BF_GLOBALS._driveToScene == 330) {
					scene->_sceneNumber = 330;
				} else {
					scene->_sceneNumber = (BF_GLOBALS._dayNumber != 1) || (BF_GLOBALS._bookmark < bStartOfGame) ||
						(BF_GLOBALS._bookmark >= bCalledToDomesticViolence) ? 342 : 340;
				}
				break;

			case 410:
			case 551:
				if (BF_GLOBALS.getFlag((BF_GLOBALS._driveFromScene == 410) ? fSearchedTruck : didDrunk)) {
					BF_GLOBALS._mapLocationId = _locationId;
					BF_GLOBALS._player.disableControl();
					scene->_sceneNumber = _newSceneNumber;
				} else {
					BF_GLOBALS._v4CEA8 = 4;
					BF_GLOBALS._sceneManager.changeScene(666);
					return;
				}
				break;

			case 300:
				if (_locationId == 1) {
					BF_GLOBALS._driveToScene = 300;
					_newSceneNumber = 300;
				}
				// Deliberate fall through to default
			default:
				BF_GLOBALS._mapLocationId = _locationId;
				BF_GLOBALS._player.disableControl();
				scene->_sceneNumber = _newSceneNumber;
				break;
			}

			// Signal the scene to change to the new scene
			scene->_sceneMode = 1;
			scene->signal();
		}
	}
}