aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/blue_force/blueforce_scenes3.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2011-12-12 15:25:28 -0500
committerMatthew Hoops2011-12-12 15:25:28 -0500
commit00279659b22cbd5db739d5351e83a9fc2a2ae408 (patch)
tree497f06f46820043cbdf1725652b8f0073223e24a /engines/tsage/blue_force/blueforce_scenes3.cpp
parentd932df79bed5aac97e17c0920a5e75cb5ce733ee (diff)
parentd1628feb761acc9f4607f64de3eb620fea53bcc9 (diff)
downloadscummvm-rg350-00279659b22cbd5db739d5351e83a9fc2a2ae408.tar.gz
scummvm-rg350-00279659b22cbd5db739d5351e83a9fc2a2ae408.tar.bz2
scummvm-rg350-00279659b22cbd5db739d5351e83a9fc2a2ae408.zip
Merge remote branch 'upstream/master' into pegasus
Conflicts: video/qt_decoder.cpp
Diffstat (limited to 'engines/tsage/blue_force/blueforce_scenes3.cpp')
-rw-r--r--engines/tsage/blue_force/blueforce_scenes3.cpp719
1 files changed, 386 insertions, 333 deletions
diff --git a/engines/tsage/blue_force/blueforce_scenes3.cpp b/engines/tsage/blue_force/blueforce_scenes3.cpp
index 6edd6d1aaa..a63f45d8df 100644
--- a/engines/tsage/blue_force/blueforce_scenes3.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes3.cpp
@@ -58,7 +58,7 @@ bool Scene300::Object19::startAction(CursorType action, Event &event) {
return true;
}
-
+// entrance door
bool Scene300::Item1::startAction(CursorType action, Event &event) {
if (action == CURSOR_USE) {
Scene300 *scene = (Scene300 *)BF_GLOBALS._sceneManager._scene;
@@ -75,6 +75,8 @@ bool Scene300::Item1::startAction(CursorType action, Event &event) {
bool Scene300::Item2::startAction(CursorType action, Event &event) {
if ((action == CURSOR_LOOK) || (action == CURSOR_USE)) {
Scene300 *scene = (Scene300 *)BF_GLOBALS._sceneManager._scene;
+ BF_GLOBALS._player.disableControl();
+ scene->_sceneMode = 0;
scene->setAction(&scene->_sequenceManager1, scene, 304, &scene->_object11, NULL);
return true;
} else {
@@ -108,7 +110,7 @@ void Scene300::Action1::signal() {
setDelay(1);
break;
case 2: {
- ADD_PLAYER_MOVER_THIS(BF_GLOBALS._player, BF_GLOBALS._player._position.x - 8,
+ ADD_MOVER(BF_GLOBALS._player, BF_GLOBALS._player._position.x - 8,
BF_GLOBALS._player._position.y);
break;
}
@@ -183,12 +185,13 @@ void Scene300::Action4::signal() {
break;
case 2:
BF_GLOBALS._sceneManager.changeScene(60);
+ setDelay(15);
break;
case 3:
setAction(&scene->_sequenceManager1, this, 319, &scene->_object19, NULL);
break;
case 4:
- BF_GLOBALS.setFlag(2);
+ BF_GLOBALS.setFlag(onBike);
BF_GLOBALS._sceneManager.changeScene(190);
break;
default:
@@ -213,6 +216,7 @@ void Scene300::Action5::signal() {
break;
case 3: {
ADD_PLAYER_MOVER_NULL(BF_GLOBALS._player, 186, 140);
+ setDelay(3);
break;
}
case 4:
@@ -302,14 +306,14 @@ void Scene300::postInit(SceneObjectList *OwnerList) {
break;
case 190:
_sceneMode = 0;
- if (!BF_GLOBALS.getFlag(2)) {
+ if (!BF_GLOBALS.getFlag(onBike)) {
_sceneMode = 7308;
BF_GLOBALS._player.setPosition(Common::Point(175, 50));
ADD_PLAYER_MOVER_THIS(BF_GLOBALS._player, 123, 71);
if ((BF_GLOBALS._dayNumber == 2) && (BF_GLOBALS._bookmark < bEndDayOne))
- setup();
- } else if (!BF_GLOBALS.getFlag(3)) {
+ setupInspection();
+ } else if (!BF_GLOBALS.getFlag(onDuty)) {
BF_GLOBALS._player.disableControl();
_sceneMode = 300;
setAction(&_sequenceManager1, this, 300, &BF_GLOBALS._player, NULL);
@@ -328,7 +332,7 @@ void Scene300::postInit(SceneObjectList *OwnerList) {
setAction(&_sequenceManager1, this, 306, &BF_GLOBALS._player, &_object8, NULL);
} else {
BF_GLOBALS._player.setVisage(1304);
- setup();
+ setupInspection();
BF_GLOBALS._player.disableControl();
_sceneMode = 0;
setAction(&_sequenceManager1, this, 306, &BF_GLOBALS._player, &_object8, NULL);
@@ -348,13 +352,13 @@ void Scene300::postInit(SceneObjectList *OwnerList) {
_item13.setDetails(3, 300, 25, 26, 27, 1);
_item2.setDetails(Rect(266, 54, 272, 59), 300, -1, -1, -1, 1, NULL);
_item1.setDetails(Rect(262, 47, 299, 76), 300, 1, 13, -1, 1, NULL);
- _item4.setDetails(Rect(0, 85, SCREEN_WIDTH - 1, BF_INTERFACE_Y - 1), 300, 6, 13, 15, 1, NULL);
+ _item4.setDetails(Rect(0, 85, SCREEN_WIDTH - 1, UI_INTERFACE_Y - 1), 300, 6, 13, 15, 1, NULL);
_item7.setDetails(Rect(219, 46, 251, 74), 300, 22, 23, 24, 1, NULL);
_item8.setDetails(Rect(301, 53, 319, 78), 300, 22, 23, 24, 1, NULL);
_item5.setDetails(Rect(179, 44, 200, 55), 300, 8, 13, 17, 1, NULL);
_item6.setDetails(Rect(210, 46, 231, 55), 300, 8, 13, 17, 1, NULL);
_item3.setDetails(Rect(160, 0, SCREEN_WIDTH - 1, 75), 300, 4, 13, 14, 1, NULL);
- _item9.setDetails(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y), 300, 29, 30, 31, 1, NULL);
+ _item9.setDetails(Rect(0, 0, SCREEN_WIDTH, UI_INTERFACE_Y), 300, 29, 30, 31, 1, NULL);
}
void Scene300::signal() {
@@ -420,7 +424,7 @@ void Scene300::signal() {
setAction(&_sequenceManager1, this, 312, &_object1, &_object16, NULL);
break;
case 317:
- BF_GLOBALS.setFlag(2);
+ BF_GLOBALS.setFlag(onBike);
BF_GLOBALS._sceneManager.changeScene(60);
break;
case 318:
@@ -474,10 +478,10 @@ void Scene300::signal() {
_object10.postInit();
_object10.hide();
- if (BF_GLOBALS.getFlag(1)) {
+ if (BF_GLOBALS.getFlag(gunClean)) {
BF_GLOBALS._player.disableControl();
_sceneMode = 4308;
- setAction(&_sequenceManager1, this, 6307, &_object2, &_object1, &_object9, &_object10, NULL);
+ setAction(&_sequenceManager1, this, 6307, &_object12, &_object1, &_object9, &_object10, NULL);
} else {
BF_GLOBALS._player.disableControl();
_sceneMode = 4308;
@@ -523,7 +527,7 @@ void Scene300::signal() {
void Scene300::process(Event &event) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_item14.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_NE);
@@ -552,7 +556,7 @@ void Scene300::dispatch() {
if ((BF_GLOBALS._player._position.y < 59) && (BF_GLOBALS._player._position.x > 137) &&
(_sceneMode != 6308) && (_sceneMode != 7308)) {
- BF_GLOBALS._v4CEA4 = 3;
+ // The original was setting a useless global variable (removed)
_sceneMode = 6308;
BF_GLOBALS._player.disableControl();
ADD_MOVER(BF_GLOBALS._player, BF_GLOBALS._player._position.x + 20,
@@ -563,7 +567,7 @@ void Scene300::dispatch() {
setAction(&_action2);
if (BF_GLOBALS._player._position.x >= 315) {
- if (BF_GLOBALS.getFlag(onDuty) || (BF_GLOBALS._bookmark == bNone) || !BF_GLOBALS.getFlag(fWithLyle)) {
+ if (BF_GLOBALS.getFlag(onDuty) || (BF_GLOBALS._bookmark == bNone) || BF_GLOBALS.getFlag(fWithLyle)) {
setAction(&_action1);
} else {
BF_GLOBALS._player.disableControl();
@@ -574,7 +578,7 @@ void Scene300::dispatch() {
}
}
-void Scene300::setup() {
+void Scene300::setupInspection() {
_object13.postInit();
_object13.setVisage(307);
_object13.setStrip(6);
@@ -618,7 +622,7 @@ void Scene300::setup() {
_object1._moveDiff = Common::Point(3, 1);
_object1.setObjectWrapper(new SceneObjectWrapper());
_object1.animate(ANIM_MODE_1, NULL);
- _object2.setup(&_object1, 306, 4, 9);
+ _object2.setup(&_object1, 306, 4, 29);
BF_GLOBALS._sceneItems.addItems(&_object13, &_object14, &_object15, &_object16, NULL);
_timer.set(3600, this, &_action5);
@@ -638,7 +642,7 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
switch (action) {
case CURSOR_USE:
- if (scene->_field1B60 || scene->_field1B64)
+ if (scene->_invGreenCount || scene->_invGangCount)
SceneItem::display2(320, 51);
else
NamedHotspot::startAction(action, event);
@@ -667,7 +671,7 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
scene->_stripNumber = 3174;
scene->setAction(&scene->_action1);
} else {
- ++scene->_field1B62;
+ ++scene->_bookGreenCount;
scene->_stripNumber = (action == INV_GREENS_GUN) ? 3168 : 0;
scene->_sceneMode = 3153;
scene->setAction(&scene->_sequenceManager, scene, 3153, &BF_GLOBALS._player, NULL);
@@ -675,7 +679,7 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
break;
case INV_FOREST_RAP:
BF_GLOBALS._player.disableControl();
- scene->_stripNumber = BF_GLOBALS.getFlag(onDuty) ? 3178 : 3173;
+ scene->_stripNumber = BF_GLOBALS.getFlag(onDuty) ? 3173 : 3178;
scene->setAction(&scene->_action1);
break;
case INV_GREEN_ID:
@@ -693,7 +697,7 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
scene->setAction(&scene->_action1);
break;
case INV_COBB_RAP:
- if (BF_INVENTORY._mugshot._sceneNumber == 1)
+ if (BF_INVENTORY.getObjectScene(INV_MUG_SHOT) == 1)
NamedHotspot::startAction(action, event);
else {
BF_GLOBALS._player.disableControl();
@@ -717,7 +721,8 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
scene->_stripNumber = 3174;
scene->setAction(&scene->_action1);
} else {
- if (!scene->_field1B6C & (scene->_field1B66 == 1)) {
+ ++scene->_bookGangCount;
+ if (!scene->_field1B6C && (scene->_bookGangCount == 1)) {
scene->_field1B6C = 1;
scene->_stripNumber = 3169;
} else {
@@ -737,6 +742,7 @@ bool Scene315::Barry::startAction(CursorType action, Event &event) {
bool Scene315::SutterSlot::startAction(CursorType action, Event &event) {
Scene315 *scene = (Scene315 *)BF_GLOBALS._sceneManager._scene;
+ scene->_currentCursor = action;
switch (action) {
case INV_GREENS_GUN:
@@ -757,9 +763,9 @@ bool Scene315::SutterSlot::startAction(CursorType action, Event &event) {
case INV_BOOKING_FRANKIE:
case INV_BOOKING_GANG:
if (action == INV_BOOKING_GREEN)
- ++scene->_field1B62;
+ ++scene->_bookGreenCount;
else
- ++scene->_field1B66;
+ ++scene->_bookGangCount;
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 12;
@@ -860,7 +866,7 @@ bool Scene315::BulletinMemo::startAction(CursorType action, Event &event) {
return true;
case CURSOR_USE:
if (!BF_GLOBALS.getFlag(fGotPointsForCleaningGun)) {
- BF_GLOBALS._uiElements.addScore(10);
+ T2_GLOBALS._uiElements.addScore(10);
BF_GLOBALS.setFlag(fGotPointsForCleaningGun);
}
BF_GLOBALS._player.addMover(NULL);
@@ -872,6 +878,7 @@ bool Scene315::BulletinMemo::startAction(CursorType action, Event &event) {
}
}
+// Own Mail Slot
bool Scene315::Object2::startAction(CursorType action, Event &event) {
Scene315 *scene = (Scene315 *)BF_GLOBALS._sceneManager._scene;
@@ -904,7 +911,7 @@ bool Scene315::ATFMemo::startAction(CursorType action, Event &event) {
return true;
case CURSOR_USE:
if (!BF_GLOBALS.getFlag(fGotPointsForMemo)) {
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_GLOBALS.setFlag(fGotPointsForMemo);
}
@@ -935,8 +942,12 @@ void Scene315::Action1::signal() {
break;
case 3:
if (scene->_sceneMode == 3169) {
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_INVENTORY.setObjectScene(INV_MUG_SHOT, 1);
+ //HACK: This has to be checked wether or not it occurs in the original.
+ //When the _sceneMode is set to 3169, the value desn't change.
+ //If you show the forest rapsheet, it gives points (and again... and again...)
+ scene->_sceneMode = 3154;
}
remove();
@@ -955,9 +966,9 @@ Scene315::Scene315() {
BF_GLOBALS.clearFlag(fCanDrawGun);
_field1B68 = true;
- _field1B6A = false;
- _field1B60 = _field1B62 = 0;
- _field1B64 = _field1B66 = 0;
+ _doorOpened = false;
+ _invGreenCount = _bookGreenCount = 0;
+ _invGangCount = _bookGangCount = 0;
}
void Scene315::synchronize(Serializer &s) {
@@ -966,18 +977,19 @@ void Scene315::synchronize(Serializer &s) {
s.syncAsSint16LE(_field1390);
s.syncAsSint16LE(_stripNumber);
s.syncAsSint16LE(_field1398);
- s.syncAsSint16LE(_field1B60);
- s.syncAsSint16LE(_field1B62);
- s.syncAsSint16LE(_field1B64);
- s.syncAsSint16LE(_field1B66);
+ s.syncAsSint16LE(_invGreenCount);
+ s.syncAsSint16LE(_bookGreenCount);
+ s.syncAsSint16LE(_invGangCount);
+ s.syncAsSint16LE(_bookGangCount);
s.syncAsSint16LE(_field1B6C);
s.syncAsSint16LE(_field139C);
s.syncAsByte(_field1B68);
- s.syncAsByte(_field1B6A);
+ s.syncAsByte(_doorOpened);
s.syncAsSint16LE(_currentCursor);
}
void Scene315::postInit(SceneObjectList *OwnerList) {
+ SceneExt::postInit(OwnerList);
loadScene(315);
if (BF_GLOBALS._sceneManager._previousScene != 325)
@@ -1059,34 +1071,34 @@ void Scene315::postInit(SceneObjectList *OwnerList) {
// Set up evidence objects in inventory
if (BF_INVENTORY._bookingGreen.inInventory())
- ++_field1B60;
+ ++_invGreenCount;
if (BF_INVENTORY._greensGun.inInventory())
- ++_field1B60;
+ ++_invGreenCount;
if (BF_INVENTORY._greensKnife.inInventory())
- ++_field1B60;
+ ++_invGreenCount;
if (BF_INVENTORY._bullet22.inInventory())
- ++_field1B64;
+ ++_invGangCount;
if (BF_INVENTORY._autoRifle.inInventory())
- ++_field1B64;
+ ++_invGangCount;
if (BF_INVENTORY._wig.inInventory())
- ++_field1B64;
+ ++_invGangCount;
if (BF_INVENTORY._bookingFrankie.inInventory())
- ++_field1B64;
+ ++_invGangCount;
if (BF_INVENTORY._bookingGang.inInventory())
- ++_field1B64;
+ ++_invGangCount;
if (BF_INVENTORY._snub22.inInventory())
- ++_field1B64;
+ ++_invGangCount;
switch (BF_GLOBALS._sceneManager._previousScene) {
case 190:
if (_field1398)
- _field1B6A = true;
+ _doorOpened = true;
_sceneMode = BF_GLOBALS.getFlag(onDuty) ? 3150 : 3165;
setAction(&_sequenceManager, this, _sceneMode, &BF_GLOBALS._player, NULL);
break;
case 325:
- BF_GLOBALS._uiElements._active = false;
+ T2_GLOBALS._uiElements._active = false;
_object6.postInit();
_object7.postInit();
_object8.setFrame(8);
@@ -1097,7 +1109,7 @@ void Scene315::postInit(SceneObjectList *OwnerList) {
case 300:
default:
if (_field1398)
- _field1B6A = true;
+ _doorOpened = true;
if (!BF_GLOBALS.getFlag(onDuty))
_sceneMode = 3166;
else if (!_field1398)
@@ -1109,10 +1121,10 @@ void Scene315::postInit(SceneObjectList *OwnerList) {
break;
}
- if (_field1B6A) {
+ if (_doorOpened) {
_object8.setFrame(8);
} else {
- BF_GLOBALS._walkRegions.proc1(4);
+ BF_GLOBALS._walkRegions.disableRegion(4);
}
_briefingMaterial.setDetails(24, 315, 38, 39, 40, 1);
@@ -1133,15 +1145,15 @@ void Scene315::signal() {
BF_GLOBALS._player.enableControl();
break;
case 10:
- if (_field1B62) {
- if (_field1B62 >= _field1B60)
+ if (_bookGreenCount) {
+ if (_bookGreenCount >= _invGreenCount)
BF_GLOBALS.setFlag(fLeftTraceIn910);
else
++ctr;
}
- if (_field1B66) {
- if (_field1B66 < _field1B64)
+ if (_bookGangCount) {
+ if (_bookGangCount < _invGangCount)
++ctr;
else if (BF_GLOBALS._bookmark < bBookedFrankieEvidence)
BF_GLOBALS._bookmark = bBookedFrankieEvidence;
@@ -1156,15 +1168,15 @@ void Scene315::signal() {
BF_GLOBALS._sound1.fadeOut2(NULL);
break;
case 11:
- if (_field1B62) {
- if (_field1B62 >= _field1B60)
+ if (_bookGreenCount) {
+ if (_bookGreenCount >= _invGreenCount)
BF_GLOBALS.setFlag(fLeftTraceIn910);
else
++ctr;
}
- if (_field1B66) {
- if (_field1B66 < _field1B64)
+ if (_bookGangCount) {
+ if (_bookGangCount < _invGangCount)
++ctr;
else if (BF_GLOBALS._bookmark < bBookedFrankie)
BF_GLOBALS._bookmark = bBookedFrankie;
@@ -1175,6 +1187,7 @@ void Scene315::signal() {
if (ctr == 1) {
BF_GLOBALS._deathReason = 20;
BF_GLOBALS._sound1.fadeOut2(NULL);
+ BF_GLOBALS._sceneManager.changeScene(666);
} else if ((BF_GLOBALS._bookmark != bBookedFrankie) || !BF_GLOBALS.getFlag(onDuty)) {
BF_GLOBALS._sound1.fadeOut2(NULL);
BF_GLOBALS._sceneManager.changeScene(190);
@@ -1189,10 +1202,10 @@ void Scene315::signal() {
}
break;
case 12:
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_INVENTORY.setObjectScene((int)_currentCursor, 315);
- if (!_field1B64 || (_field1B66 != _field1B64))
+ if (!_invGangCount || (_bookGangCount != _invGangCount))
BF_GLOBALS._player.enableControl();
else {
_field139C = 1;
@@ -1211,23 +1224,24 @@ void Scene315::signal() {
BF_GLOBALS._sceneManager.changeScene(325);
break;
case 3152:
- BF_GLOBALS._walkRegions.proc1(4);
+ BF_GLOBALS._walkRegions.disableRegion(4);
_object7.remove();
_object6.remove();
-
+ // No break on purpose
+ case 3155:
BF_GLOBALS._player.enableControl();
_field1B68 = false;
- BF_GLOBALS._walkRegions.proc1(4);
- BF_GLOBALS._uiElements._active = true;
- BF_GLOBALS._uiElements.show();
+ BF_GLOBALS._walkRegions.disableRegion(4);
+ T2_GLOBALS._uiElements._active = true;
+ T2_GLOBALS._uiElements.show();
break;
case 3153:
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_INVENTORY.setObjectScene((int)_currentCursor, 315);
if (_stripNumber != 0)
setAction(&_action1);
- else if (!_field1B64 || (_field1B66 != _field1B64))
+ else if (!_invGangCount || (_bookGangCount != _invGangCount))
BF_GLOBALS._player.enableControl();
else {
_stripNumber = 3171;
@@ -1235,15 +1249,8 @@ void Scene315::signal() {
_field139C = 1;
}
break;
- case 3155:
- BF_GLOBALS._player.enableControl();
- _field1B68 = false;
- BF_GLOBALS._walkRegions.proc1(4);
- BF_GLOBALS._uiElements._active = true;
- BF_GLOBALS._uiElements.show();
- break;
case 3156:
- BF_GLOBALS._uiElements.addScore(10);
+ T2_GLOBALS._uiElements.addScore(10);
BF_INVENTORY.setObjectScene(INV_DA_NOTE, 1);
_object2.remove();
BF_GLOBALS._player.enableControl();
@@ -1254,12 +1261,12 @@ void Scene315::signal() {
break;
case 3158:
BF_GLOBALS._player.enableControl();
- BF_GLOBALS._uiElements.addScore(10);
+ T2_GLOBALS._uiElements.addScore(10);
BF_INVENTORY.setObjectScene(INV_FOREST_RAP, 1);
break;
case 3159:
if (!BF_GLOBALS.getFlag(fBookedGreenEvidence)) {
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_GLOBALS.setFlag(fBookedGreenEvidence);
}
BF_GLOBALS.setFlag(gunClean);
@@ -1284,6 +1291,11 @@ void Scene315::signal() {
BF_GLOBALS._player.enableControl();
_object9.remove();
break;
+ case 3169:
+ T2_GLOBALS._uiElements.addScore(30);
+ BF_INVENTORY.setObjectScene(INV_MUG_SHOT, 1);
+ BF_GLOBALS._player.enableControl();
+ break;
case 3154:
default:
break;
@@ -1293,7 +1305,7 @@ void Scene315::signal() {
void Scene315::process(Event &event) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_swExit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
@@ -1315,7 +1327,7 @@ void Scene315::dispatch() {
if (_field1B68)
return;
- if (_field1B6A) {
+ if (_doorOpened) {
if (BF_GLOBALS._player._position.y < 69) {
BF_GLOBALS._player.disableControl();
_field1B68 = true;
@@ -1718,9 +1730,9 @@ void Scene340::Action1::signal() {
++BF_GLOBALS._marinaWomanCtr;
if (BF_GLOBALS.getFlag(fBackupArrived340)) {
- scene->_field2654 = 1;
+ scene->_backupPresent = 1;
scene->_harrison.setPosition(Common::Point(46, 154));
- BF_GLOBALS._walkRegions.proc1(19);
+ BF_GLOBALS._walkRegions.disableRegion(19);
} else if (BF_GLOBALS.getFlag(fCalledBackup)) {
scene->_timer1.set(40, &scene->_harrison, &scene->_action4);
}
@@ -1729,6 +1741,8 @@ void Scene340::Action1::signal() {
BF_GLOBALS._player.enableControl();
remove();
break;
+ default:
+ break;
}
}
@@ -1737,6 +1751,7 @@ void Scene340::Action2::signal() {
switch (_actionIndex++) {
case 0: {
+ BF_GLOBALS._player.disableControl();
ADD_PLAYER_MOVER(64, 155);
break;
}
@@ -1754,6 +1769,8 @@ void Scene340::Action2::signal() {
BF_GLOBALS._player.enableControl();
remove();
break;
+ default:
+ break;
}
}
@@ -1762,6 +1779,7 @@ void Scene340::Action3::signal() {
switch (_actionIndex++) {
case 0: {
+ BF_GLOBALS._player.disableControl();
ADD_PLAYER_MOVER(64, 155);
break;
}
@@ -1770,18 +1788,20 @@ void Scene340::Action3::signal() {
setDelay(3);
break;
case 2:
- scene->_stripManager.start(scene->_field2652 + 3404, this);
+ scene->_stripManager.start(scene->_womanDialogCount + 3404, this);
break;
case 3:
- if (++scene->_field2652 > 2) {
+ if (++scene->_womanDialogCount > 2) {
if (!BF_GLOBALS.getFlag(fGotAllSkip340))
BF_GLOBALS.setFlag(fGotAllSkip340);
- scene->_field2652 = 0;
+ scene->_womanDialogCount = 0;
}
BF_GLOBALS._player.enableControl();
remove();
break;
+ default:
+ break;
}
}
@@ -1800,17 +1820,19 @@ void Scene340::Action4::signal() {
break;
case 1:
BF_GLOBALS.setFlag(fBackupArrived340);
- scene->_field2654 = 1;
+ scene->_backupPresent = 1;
setDelay(3);
break;
case 2:
BF_GLOBALS._player.setAction(&scene->_sequenceManager3, this, 1347, &scene->_harrison, NULL);
break;
case 3:
- BF_GLOBALS._walkRegions.proc1(19);
+ BF_GLOBALS._walkRegions.disableRegion(19);
BF_GLOBALS._player.enableControl();
remove();
break;
+ default:
+ break;
}
}
@@ -1820,7 +1842,7 @@ void Scene340::Action5::signal() {
switch (_actionIndex++) {
case 0:
BF_GLOBALS._player.disableControl();
- if (scene->_field2654) {
+ if (scene->_backupPresent) {
ADD_PLAYER_MOVER(64, 155);
} else {
BF_GLOBALS._player.changeAngle(45);
@@ -1846,6 +1868,8 @@ void Scene340::Action5::signal() {
BF_GLOBALS._player.enableControl();
remove();
break;
+ default:
+ break;
}
}
@@ -1890,6 +1914,8 @@ void Scene340::Action7::signal() {
BF_GLOBALS.setFlag(fBackupIn350);
BF_GLOBALS._sceneManager.changeScene(350);
break;
+ default:
+ break;
}
}
@@ -1942,6 +1968,11 @@ void Scene340::Action8::signal() {
case 4:
remove();
break;
+ default:
+ // This is present in the original game
+ warning("Bugs");
+ remove();
+ break;
}
}
@@ -1974,15 +2005,15 @@ void Scene340::Timer2::signal() {
/*--------------------------------------------------------------------------*/
Scene340::Scene340(): PalettedScene() {
- _seqNumber1 = _field2652 = _field2654 = 0;
+ _seqNumber1 = _womanDialogCount = _backupPresent = 0;
}
void Scene340::synchronize(Serializer &s) {
PalettedScene::synchronize(s);
s.syncAsSint16LE(_seqNumber1);
- s.syncAsSint16LE(_field2652);
- s.syncAsSint16LE(_field2654);
+ s.syncAsSint16LE(_womanDialogCount);
+ s.syncAsSint16LE(_backupPresent);
}
void Scene340::postInit(SceneObjectList *OwnerList) {
@@ -1990,14 +2021,14 @@ void Scene340::postInit(SceneObjectList *OwnerList) {
loadScene(340);
setZoomPercents(126, 70, 162, 100);
- BF_GLOBALS._walkRegions.proc1(13);
- BF_GLOBALS._walkRegions.proc1(15);
+ BF_GLOBALS._walkRegions.disableRegion(13);
+ BF_GLOBALS._walkRegions.disableRegion(15);
_timer2.set(2, NULL);
_stripManager.addSpeaker(&_gameTextSpeaker);
_stripManager.addSpeaker(&_jakeUniformSpeaker);
- _field2652 = 0;
+ _womanDialogCount = 0;
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper());
BF_GLOBALS._player.animate(ANIM_MODE_1, NULL);
@@ -2006,7 +2037,7 @@ void Scene340::postInit(SceneObjectList *OwnerList) {
_swExit.setDetails(15, 340, -1, -1, -1, 1);
_northExit.setDetails(16, 340, -1, -1, -1, 1);
- BF_GLOBALS._player._regionBitList = 0x10000;
+ BF_GLOBALS._player._regionBitList |= 0x10000;
BF_GLOBALS._player.setVisage(BF_GLOBALS.getFlag(onDuty) ? 1341 : 129);
BF_GLOBALS._player._moveDiff = Common::Point(5, 2);
@@ -2054,18 +2085,18 @@ void Scene340::postInit(SceneObjectList *OwnerList) {
_stripManager.addSpeaker(&_harrisonSpeaker);
if (BF_GLOBALS.getFlag(fBackupIn350)) {
- _field2654 = 0;
+ _backupPresent = 0;
_harrison.setVisage(1355);
_harrison.setPosition(Common::Point(289, 112));
_harrison.changeAngle(225);
_harrison.setFrame(1);
_harrison.fixPriority(75);
- BF_GLOBALS._walkRegions.proc1(23);
+ BF_GLOBALS._walkRegions.disableRegion(23);
} else if (BF_GLOBALS.getFlag(fBackupArrived340)) {
- _field2654 = 1;
+ _backupPresent = 1;
_harrison.setPosition(Common::Point(46, 154));
- BF_GLOBALS._walkRegions.proc1(19);
+ BF_GLOBALS._walkRegions.disableRegion(19);
} else if (BF_GLOBALS.getFlag(fCalledBackup) && (BF_GLOBALS._marinaWomanCtr > 0)) {
_timer1.set(900, &_harrison, &_action4);
}
@@ -2092,7 +2123,7 @@ void Scene340::postInit(SceneObjectList *OwnerList) {
_item3.setDetails(7, 340, 3, 9, 12, 1);
_item2.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, 39), 340, 2, 8, 11, 1, NULL);
- _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, BF_INTERFACE_Y), 340, 1, 7, 10, 1, NULL);
+ _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, UI_INTERFACE_Y), 340, 1, 7, 10, 1, NULL);
BF_GLOBALS._player.disableControl();
_sceneMode = 0;
@@ -2137,7 +2168,7 @@ void Scene340::process(Event &event) {
if (!event.handled) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_westExit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_W);
@@ -2288,8 +2319,8 @@ void Scene342::postInit(SceneObjectList *OwnerList) {
loadScene(340);
setZoomPercents(126, 70, 162, 100);
- BF_GLOBALS._walkRegions.proc1(13);
- BF_GLOBALS._walkRegions.proc1(15);
+ BF_GLOBALS._walkRegions.disableRegion(13);
+ BF_GLOBALS._walkRegions.disableRegion(15);
_field1A1A = 0;
_timer1.set(2, NULL);
@@ -2357,7 +2388,7 @@ void Scene342::postInit(SceneObjectList *OwnerList) {
}
if (BF_GLOBALS.getFlag(fWithLyle)) {
- BF_GLOBALS._walkRegions.proc1(19);
+ BF_GLOBALS._walkRegions.disableRegion(19);
BF_GLOBALS._player.disableControl();
_sceneMode = 0;
@@ -2393,7 +2424,7 @@ void Scene342::postInit(SceneObjectList *OwnerList) {
_item3.setDetails(7, 340, 3, 9, 12, 1);
_item2.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, 39), 340, 2, 8, 11, 1, NULL);
- _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, BF_INTERFACE_Y), 340, 1, 7, 10, 1, NULL);
+ _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, UI_INTERFACE_Y), 340, 1, 7, 10, 1, NULL);
}
void Scene342::remove() {
@@ -2434,7 +2465,7 @@ void Scene342::process(Event &event) {
if (!event.handled) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_westExit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_W);
@@ -2481,7 +2512,7 @@ void Scene342::dispatch() {
*
*--------------------------------------------------------------------------*/
-bool Scene350::Item5::startAction(CursorType action, Event &event) {
+bool Scene350::FireBox::startAction(CursorType action, Event &event) {
Scene350 *scene = (Scene350 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
@@ -2559,7 +2590,7 @@ bool Scene350::Hook::startAction(CursorType action, Event &event) {
BF_INVENTORY.setObjectScene(INV_HOOK, 1);
if (!BF_GLOBALS.getFlag(hookPoints)) {
BF_GLOBALS.setFlag(hookPoints);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
}
remove();
return true;
@@ -2568,7 +2599,7 @@ bool Scene350::Hook::startAction(CursorType action, Event &event) {
}
}
-bool Scene350::Object5::startAction(CursorType action, Event &event) {
+bool Scene350::FireboxInset::startAction(CursorType action, Event &event) {
Scene350 *scene = (Scene350 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
@@ -2576,7 +2607,7 @@ bool Scene350::Object5::startAction(CursorType action, Event &event) {
SceneItem::display2(350, BF_INVENTORY.getObjectScene(INV_HOOK) ? 29 : 28);
return true;
case CURSOR_USE:
- scene->_object5.remove();
+ scene->_fireBoxInset.remove();
return true;
case INV_HOOK:
BF_INVENTORY.setObjectScene(INV_HOOK, 350);
@@ -2589,7 +2620,7 @@ bool Scene350::Object5::startAction(CursorType action, Event &event) {
BF_GLOBALS._sceneItems.push_front(&scene->_hook);
return true;
default:
- return NamedObject::startAction(action, event);
+ return FocusObject::startAction(action, event);
}
}
@@ -2635,7 +2666,7 @@ void Scene350::postInit(SceneObjectList *OwnerList) {
BF_GLOBALS._player._moveDiff = Common::Point(3, 1);
_yacht._flag = false;
- _swExit.setDetails(Rect(0, 160, SCREEN_WIDTH, BF_INTERFACE_Y - 1), 350, -1, -1, -1, 1, NULL);
+ _swExit.setDetails(Rect(0, 160, SCREEN_WIDTH, UI_INTERFACE_Y - 1), 350, -1, -1, -1, 1, NULL);
if ((BF_GLOBALS._dayNumber != 1) && (BF_GLOBALS._dayNumber != 4)) {
_yacht.setDetails(28, 350, 15, 16, 17, 1);
@@ -2669,20 +2700,20 @@ void Scene350::postInit(SceneObjectList *OwnerList) {
}
}
- _item5._sceneRegionId = 5;
- BF_GLOBALS._sceneItems.push_back(&_item5);
+ _fireBox._sceneRegionId = 5;
+ BF_GLOBALS._sceneItems.push_back(&_fireBox);
_item4.setDetails(15, 350, 0, 1, 2, 1);
BF_GLOBALS._sceneItems.push_back(&_yacht);
_item3.setDetails(7, 350, 23, 24, 25, 1);
_item2.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, 31), 350, 3, 4, 5, 1, NULL);
- _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, BF_INTERFACE_Y), 350, 0, 1, 2, 1, NULL);
+ _item1.setDetails(Rect(0, 0, SCREEN_WIDTH - 1, UI_INTERFACE_Y), 350, 0, 1, 2, 1, NULL);
switch (BF_GLOBALS._sceneManager._previousScene) {
case 370:
BF_GLOBALS._player.enableControl();
- BF_GLOBALS._uiElements._active = true;
- BF_GLOBALS._uiElements.show();
+ T2_GLOBALS._uiElements._active = true;
+ T2_GLOBALS._uiElements.show();
// Deliberate fall-through
case 355:
if (BF_GLOBALS.getFlag(onDuty) && BF_GLOBALS.getFlag(gunDrawn))
@@ -2726,12 +2757,12 @@ void Scene350::signal() {
case 3:
BF_GLOBALS._player.setStrip(8);
- _object5.postInit();
- _object5.setVisage(350);
- _object5.setStrip(4);
- _object5.fixPriority(200);
- _object5.setPosition(Common::Point(85, 166));
- BF_GLOBALS._sceneItems.push_front(&_object5);
+ _fireBoxInset.postInit();
+ _fireBoxInset.setVisage(350);
+ _fireBoxInset.setStrip(4);
+ _fireBoxInset.fixPriority(200);
+ _fireBoxInset.setPosition(Common::Point(85, 166));
+ BF_GLOBALS._sceneItems.push_front(&_fireBoxInset);
if (BF_INVENTORY.getObjectScene(INV_HOOK) == 350) {
_hook.postInit();
@@ -2748,7 +2779,7 @@ void Scene350::signal() {
default:
if (BF_GLOBALS.getFlag(fBackupIn350)) {
_harrison.updateAngle(BF_GLOBALS._player._position);
- BF_GLOBALS._walkRegions.proc1(19);
+ BF_GLOBALS._walkRegions.disableRegion(19);
}
BF_GLOBALS._player.enableControl();
@@ -2792,7 +2823,7 @@ void Scene350::process(Event &event) {
if (!event.handled) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_swExit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
@@ -2860,7 +2891,7 @@ bool Scene355::Doorway::startAction(CursorType action, Event &event) {
BF_GLOBALS.setFlag(fTookTrailerAmmo);
scene->_stripManager.start(3575, scene);
- scene->_object7._flag = 1;
+ scene->_lyle._flag = 1;
return true;
case 1:
BF_GLOBALS._player.disableControl();
@@ -2935,7 +2966,7 @@ bool Scene355::Locker::startAction(CursorType action, Event &event) {
}
}
-bool Scene355::LockerDoor::startAction(CursorType action, Event &event) {
+bool Scene355::LockerInset::startAction(CursorType action, Event &event) {
Scene355 *scene = (Scene355 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
@@ -2949,8 +2980,8 @@ bool Scene355::LockerDoor::startAction(CursorType action, Event &event) {
if (_frame == 1) {
SceneItem::display2(355, 23);
return true;
- }
- return true;
+ } else
+ return NamedObject::startAction(action, event);
case INV_SCREWDRIVER:
scene->_sound2.play(104);
BF_INVENTORY.setObjectScene(INV_SCREWDRIVER, 999);
@@ -2985,7 +3016,7 @@ bool Scene355::Object5::startAction(CursorType action, Event &event) {
return true;
case CURSOR_USE:
BF_INVENTORY.setObjectScene(INV_FLARE, 1);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
scene->_object9.remove();
remove();
@@ -2995,7 +3026,7 @@ bool Scene355::Object5::startAction(CursorType action, Event &event) {
}
}
-bool Scene355::Object6::startAction(CursorType action, Event &event) {
+bool Scene355::Green::startAction(CursorType action, Event &event) {
Scene355 *scene = (Scene355 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
@@ -3013,7 +3044,7 @@ bool Scene355::Object6::startAction(CursorType action, Event &event) {
BF_GLOBALS._player._regionBitList |= 0x10;
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 9985;
- scene->setAction(&scene->_sequenceManager, scene, 3357, &BF_GLOBALS._player, this, NULL);
+ scene->setAction(&scene->_sequenceManager, scene, 3557, &BF_GLOBALS._player, this, NULL);
}
return true;
case CURSOR_TALK:
@@ -3023,14 +3054,14 @@ bool Scene355::Object6::startAction(CursorType action, Event &event) {
} else if (BF_INVENTORY.getObjectScene(INV_HANDCUFFS) != 1) {
return false;
} else {
- switch (BF_GLOBALS._v4CEC2) {
+ switch (BF_GLOBALS._greenDay5TalkCtr++) {
case 0:
scene->_stripManager.start(3565, scene);
break;
case 1:
scene->_stripManager.start(3567, scene);
break;
- case 2:
+ default:
scene->_stripManager.start(3571, scene);
break;
}
@@ -3052,25 +3083,25 @@ bool Scene355::Object6::startAction(CursorType action, Event &event) {
else if (!BF_GLOBALS.getFlag(gunDrawn))
SceneItem::display2(1, 0);
else {
- if (BF_GLOBALS._sceneObjects->contains(&scene->_object7))
- scene->_object7.setAction(NULL);
+ if (BF_GLOBALS._sceneObjects->contains(&scene->_lyle))
+ scene->_lyle.setAction(NULL);
BF_GLOBALS._player.disableControl();
- scene->_object6.setStrip(1);
- scene->_object6.setFrame(1);
+ scene->_green.setStrip(1);
+ scene->_green.setFrame(1);
scene->_sceneMode = 9981;
scene->signal();
}
return true;
case INV_HANDCUFFS:
- if (BF_GLOBALS._v4CEC2 <= 1)
+ if (BF_GLOBALS._greenDay5TalkCtr <= 1)
SceneItem::display2(355, 38);
else {
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 9979;
scene->setAction(&scene->_sequenceManager, scene, 4551, &BF_GLOBALS._player, this, NULL);
BF_INVENTORY.setObjectScene(INV_HANDCUFFS, 355);
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
_flag = 1;
BF_GLOBALS._bookmark = bInvestigateBoat;
}
@@ -3083,7 +3114,7 @@ bool Scene355::Object6::startAction(CursorType action, Event &event) {
}
}
-bool Scene355::Object7::startAction(CursorType action, Event &event) {
+bool Scene355::Lyle::startAction(CursorType action, Event &event) {
Scene355 *scene = (Scene355 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
@@ -3091,7 +3122,7 @@ bool Scene355::Object7::startAction(CursorType action, Event &event) {
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 0;
- if (BF_GLOBALS._sceneObjects->contains(&scene->_object6)) {
+ if (BF_GLOBALS._sceneObjects->contains(&scene->_green)) {
scene->_stripManager.start((BF_INVENTORY.getObjectScene(INV_HANDCUFFS) == 355) ? 3578 : 3577, scene);
} else {
switch (_flag) {
@@ -3137,7 +3168,7 @@ bool Scene355::Object8::startAction(CursorType action, Event &event) {
scene->_sceneMode = 9997;
scene->_stripManager.start(3561, scene);
} else {
- SceneItem::display(1, 4);
+ SceneItem::display2(1, 4);
}
return true;
default:
@@ -3258,10 +3289,16 @@ bool Scene355::Item4::startAction(CursorType action, Event &event) {
}
-bool Scene355::Item5::startAction(CursorType action, Event &event) {
+bool Scene355::Pouch::startAction(CursorType action, Event &event) {
Scene355 *scene = (Scene355 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
+ case CURSOR_LOOK:
+ if (BF_INVENTORY.getObjectScene(INV_SCREWDRIVER) == 355) {
+ SceneItem::display2(355, 29);
+ return true;
+ }
+ break;
case CURSOR_USE:
if (BF_INVENTORY.getObjectScene(INV_SCREWDRIVER) == 355) {
if (scene->_modeFlag) {
@@ -3289,8 +3326,10 @@ bool Scene355::Item5::startAction(CursorType action, Event &event) {
}
return true;
default:
- return NamedHotspot::startAction(action, event);
+ break;
}
+
+ return NamedHotspot::startAction(action, event);
}
bool Scene355::Item11::startAction(CursorType action, Event &event) {
@@ -3314,7 +3353,7 @@ bool Scene355::Item11::startAction(CursorType action, Event &event) {
scene->_sceneMode = 0;
BF_GLOBALS.setFlag(fTookTrailerAmmo);
scene->_stripManager.start(3575, scene);
- scene->_object7._flag = 1;
+ scene->_lyle._flag = 1;
scene->_doorway._v2 = 1;
break;
case 1:
@@ -3349,7 +3388,7 @@ bool Scene355::Item11::startAction(CursorType action, Event &event) {
return NamedHotspot::startAction(action, event);
}
-bool Scene355::Item12::startAction(CursorType action, Event &event) {
+bool Scene355::RentalExit::startAction(CursorType action, Event &event) {
Scene355 *scene = (Scene355 *)BF_GLOBALS._sceneManager._scene;
if (!BF_GLOBALS.getFlag(gunDrawn)) {
@@ -3360,6 +3399,7 @@ bool Scene355::Item12::startAction(CursorType action, Event &event) {
else {
scene->_nextSceneMode = 0;
BF_GLOBALS._player.disableControl();
+ scene->_sceneMode = 9991;
scene->setAction(&scene->_sequenceManager, scene, 3555, &BF_GLOBALS._player, NULL);
}
}
@@ -3378,7 +3418,7 @@ void Scene355::Action1::signal() {
break;
case 1:
_actionIndex = 0;
- scene->_object7.animate(ANIM_MODE_8, 1, this);
+ scene->_lyle.animate(ANIM_MODE_8, 1, this);
break;
default:
break;
@@ -3527,7 +3567,7 @@ void Scene355::postInit(SceneObjectList *OwnerList) {
case 4:
break;
case 5:
- BF_GLOBALS._player.disableControl();
+ BF_GLOBALS._player.enableControl();
_modeFlag = true;
BF_GLOBALS._player.setPosition(Common::Point(133, 173));
BF_GLOBALS._player.fixPriority(249);
@@ -3536,17 +3576,17 @@ void Scene355::postInit(SceneObjectList *OwnerList) {
if (BF_GLOBALS._bookmark == bDoneAtLyles)
BF_GLOBALS._bookmark = bEndDayFour;
- _item5.setDetails(Rect(22, 136, 46, 146), 355, 43, -1, -1, 1, NULL);
+ _pouch.setDetails(Rect(22, 136, 46, 146), 355, 43, -1, -1, 1, NULL);
_nextSceneMode = 0;
if (!BF_GLOBALS.getFlag(fLyleOnIsland)) {
- _object7.postInit();
- _object7.setVisage(847);
- _object7.setPosition(Common::Point(296, 97));
- _object7.setStrip(1);
- _object7.setAction(&_action1);
- _object7._flag = BF_GLOBALS.getFlag(fTookTrailerAmmo) ? 1 : 0;
- _object7.setDetails(355, 40, 42, 41, 1, NULL);
+ _lyle.postInit();
+ _lyle.setVisage(847);
+ _lyle.setPosition(Common::Point(296, 97));
+ _lyle.setStrip(1);
+ _lyle.setAction(&_action1);
+ _lyle._flag = BF_GLOBALS.getFlag(fTookTrailerAmmo) ? 1 : 0;
+ _lyle.setDetails(355, 40, 42, 41, 1, NULL);
}
if ((BF_INVENTORY.getObjectScene(INV_RAGS) == 0) && (BF_INVENTORY.getObjectScene(INV_JAR) == 0) &&
@@ -3568,39 +3608,39 @@ void Scene355::postInit(SceneObjectList *OwnerList) {
_doorway.setPosition(Common::Point(146, 107));
_doorway._v3 = 0;
_doorway._v2 = 2;
- _object7._flag = 2;
+ _lyle._flag = 2;
- _object6.postInit();
- BF_GLOBALS._sceneItems.push_back(&_object6);
+ _green.postInit();
+ BF_GLOBALS._sceneItems.push_back(&_green);
if (BF_INVENTORY.getObjectScene(INV_HANDCUFFS) == 1) {
- _object6.setVisage(376);
- _object6.setStrip(1);
- _object6.setPosition(Common::Point(193, 88));
- _object6._flag = 0;
+ _green.setVisage(376);
+ _green.setStrip(1);
+ _green.setPosition(Common::Point(193, 88));
+ _green._flag = 0;
} else {
- _object6._flag = 1;
+ _green._flag = 1;
if (BF_INVENTORY.getObjectScene(INV_GRENADES) == 1) {
- _object6.setVisage(373);
- _object6.setStrip(5);
- _object6.setPosition(Common::Point(238, 142));
+ _green.setVisage(373);
+ _green.setStrip(5);
+ _green.setPosition(Common::Point(238, 142));
} else {
- _object6.setVisage(375);
- _object6.setStrip(1);
- _object6.setFrame(_object6.getFrameCount());
- _object6.setPosition(Common::Point(193, 147));
+ _green.setVisage(375);
+ _green.setStrip(1);
+ _green.setFrame(_green.getFrameCount());
+ _green.setPosition(Common::Point(193, 147));
}
}
- }
- if ((BF_GLOBALS._bookmark == bFinishedWGreen) && BF_GLOBALS._sceneObjects->contains(&_object7) &&
- !BF_GLOBALS.getFlag(iWasAmbushed)) {
- BF_GLOBALS.setFlag(iWasAmbushed);
- BF_GLOBALS._player.disableControl();
+ if ((BF_GLOBALS._bookmark == bFinishedWGreen) && BF_GLOBALS._sceneObjects->contains(&_lyle) &&
+ !BF_GLOBALS.getFlag(iWasAmbushed)) {
+ BF_GLOBALS.setFlag(iWasAmbushed);
+ BF_GLOBALS._player.disableControl();
- _sceneMode = 0;
- _stripManager.start(3582, this);
+ _sceneMode = 0;
+ _stripManager.start(3582, this);
+ }
}
break;
default:
@@ -3630,6 +3670,7 @@ void Scene355::postInit(SceneObjectList *OwnerList) {
break;
}
+ _item3._sceneRegionId = 18;
_harrison.setDetails(355, 18, 20, 19, 1, NULL);
_item6.setDetails(10, 355, 2, -1, 14, 1);
_item7.setDetails(11, 355, 3, -1, 15, 1);
@@ -3640,8 +3681,8 @@ void Scene355::postInit(SceneObjectList *OwnerList) {
BF_GLOBALS._sceneItems.addItems(&_item3, &_item6, &_item7, &_item8, &_item9, &_item10, &_item1, NULL);
if (BF_GLOBALS._dayNumber == 5) {
- _item12.setBounds(Rect(115, 101, 186, 154));
- BF_GLOBALS._sceneItems.push_front(&_item12);
+ _rentalExit.setBounds(Rect(115, 101, 186, 154));
+ BF_GLOBALS._sceneItems.push_front(&_rentalExit);
} else {
_item2.setDetails(Rect(273, 53, 320, 101), 355, -1, -1, -1, 2, NULL);
}
@@ -3735,21 +3776,21 @@ void Scene355::signal() {
case 3562:
if (!BF_GLOBALS.getFlag(unlockBoat)) {
BF_GLOBALS.setFlag(unlockBoat);
- BF_GLOBALS._uiElements.addScore(10);
+ T2_GLOBALS._uiElements.addScore(10);
}
- SceneItem::display(355, !_doorway._v3 ? 24 : 25);
+ SceneItem::display2(355, !_doorway._v3 ? 24 : 25);
BF_GLOBALS._player.enableControl();
break;
case 4550:
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
_object10.remove();
BF_GLOBALS._sound1.play(90);
BF_GLOBALS._player._regionBitList |= 0x10;
_doorway._v3 = 0;
_doorway._v2 = 2;
- _object7._flag = 2;
+ _lyle._flag = 2;
BF_GLOBALS._player.enableControl();
break;
case 4552:
@@ -3762,10 +3803,10 @@ void Scene355::signal() {
_sceneMode = 9980;
break;
case 9992:
- _sceneMode = 0;
+ _sceneMode = 9992;
break;
default:
- _sceneMode = 9992;
+ _sceneMode = 0;
break;
}
setAction(&_sequenceManager, this, 4554, &BF_GLOBALS._player, NULL);
@@ -3785,29 +3826,29 @@ void Scene355::signal() {
break;
case 9981:
_sceneMode = 9994;
- _object6.animate(ANIM_MODE_5, NULL);
+ _green.animate(ANIM_MODE_5, NULL);
addFader((const byte *)&black, 10, this);
break;
case 9982:
_sceneMode = 9983;
if (BF_INVENTORY.getObjectScene(INV_HANDCUFFS) == 355) {
if (BF_GLOBALS.getFlag(fLyleOnIsland)) {
- BF_GLOBALS._player.updateAngle(_object6._position);
+ BF_GLOBALS._player.updateAngle(_green._position);
_stripManager.start(3581, this);
} else {
- BF_GLOBALS._player.updateAngle(_object7._position);
+ BF_GLOBALS._player.updateAngle(_lyle._position);
_stripManager.start(3570, this);
}
} else {
if (BF_GLOBALS.getFlag(fLyleOnIsland)) {
- if (BF_GLOBALS._sceneObjects->contains(&_object6)) {
+ if (BF_GLOBALS._sceneObjects->contains(&_green)) {
BF_INVENTORY.setObjectScene(INV_GRENADES, 860);
_stripManager.start(3583, this);
} else {
signal();
}
} else {
- BF_GLOBALS._player.updateAngle(_object7._position);
+ BF_GLOBALS._player.updateAngle(_lyle._position);
_stripManager.start(BF_GLOBALS.getFlag(fTookTrailerAmmo) ? 3579 : 3580, this);
}
}
@@ -3823,7 +3864,7 @@ void Scene355::signal() {
BF_GLOBALS._sound1.play(109);
BF_GLOBALS.setFlag(fTookTrailerAmmo);
_stripManager.start(3575, this);
- _object7._flag = 1;
+ _lyle._flag = 1;
++_doorway._v2;
break;
case 1:
@@ -3858,7 +3899,7 @@ void Scene355::signal() {
_sceneMode = 0;
_stripManager.start(3569, this);
BF_INVENTORY.setObjectScene(INV_GRENADES, 1);
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
BF_GLOBALS._player._regionBitList |= 0x10;
break;
case 9986:
@@ -3885,13 +3926,13 @@ void Scene355::signal() {
}
break;
case 9988:
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
if ((BF_INVENTORY.getObjectScene(INV_RAGS) == 0) && (BF_INVENTORY.getObjectScene(INV_JAR) == 0) &&
(BF_INVENTORY.getObjectScene(INV_FLARE) == 0)) {
- _object6.postInit();
- _object6.setVisage(373);
- _object6.setPosition(Common::Point(-10, -10));
- _object6._flag = 0;
+ _green.postInit();
+ _green.setVisage(373);
+ _green.setPosition(Common::Point(-10, -10));
+ _green._flag = 0;
_object9.postInit();
_object9.setPosition(Common::Point(-10, -10));
@@ -3900,24 +3941,24 @@ void Scene355::signal() {
_object11.postInit();
_object11.setPosition(Common::Point(-10, -10));
- BF_GLOBALS._sceneItems.push_front(&_object6);
+ BF_GLOBALS._sceneItems.push_front(&_green);
BF_GLOBALS.setFlag(fTookTrailerAmmo);
BF_GLOBALS._sound1.fade(0, 5, 60, true, NULL);
_sceneMode = 4550;
- setAction(&_sequenceManager, this, 4550, &_doorway, &_object6, &_object9, &_object10, &_object11, NULL);
+ setAction(&_sequenceManager, this, 4550, &_doorway, &_green, &_object9, &_object10, &_object11, NULL);
} else {
BF_GLOBALS._player.enableControl();
}
break;
case 9989:
- _lockerDoor.postInit();
- _lockerDoor.setVisage(2356);
- _lockerDoor.setStrip(2);
- BF_GLOBALS._sceneItems.push_front(&_lockerDoor);
+ _lockerInset.postInit();
+ _lockerInset.setVisage(2356);
+ _lockerInset.setStrip(2);
+ BF_GLOBALS._sceneItems.push_front(&_lockerInset);
if (BF_INVENTORY.getObjectScene(INV_SCREWDRIVER) == 999) {
- _lockerDoor.setFrame(2);
+ _lockerInset.setFrame(2);
if (BF_INVENTORY.getObjectScene(INV_FLARE) == 355) {
_object5.postInit();
_object5.setVisage(2356);
@@ -3927,11 +3968,11 @@ void Scene355::signal() {
BF_GLOBALS._sceneItems.push_front(&_object5);
}
} else {
- _lockerDoor.setFrame(1);
+ _lockerInset.setFrame(1);
}
- _lockerDoor.setPosition(Common::Point(82, 115));
- _lockerDoor.fixPriority(254);
+ _lockerInset.setPosition(Common::Point(82, 115));
+ _lockerInset.fixPriority(254);
BF_GLOBALS._player.enableControl();
break;
case 9990:
@@ -3949,7 +3990,7 @@ void Scene355::signal() {
case 9993:
BF_INVENTORY.setObjectScene(INV_SCREWDRIVER, 1);
SceneItem::display2(355, 29);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
_sceneMode = 0;
signal();
break;
@@ -3987,11 +4028,11 @@ void Scene355::signal() {
}
void Scene355::process(Event &event) {
- if (BF_GLOBALS._dayNumber == 5) {
- // Handling for day 5
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._dayNumber != 5) {
+ // Handling for earlier days
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
- if (_item12.contains(event.mousePos)) {
+ if (_rentalExit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_NW);
BF_GLOBALS._events.setCursor(surface);
} else {
@@ -4001,6 +4042,39 @@ void Scene355::process(Event &event) {
}
}
+ if ((_sceneMode != 2357) && (_sceneMode != 1357) && !BF_GLOBALS.getFlag(greenTaken) &&
+ (event.eventType == EVENT_BUTTON_DOWN) && (BF_GLOBALS._events.getCursor() == INV_COLT45)) {
+ if (BF_GLOBALS._player.contains(event.mousePos)) {
+ BF_GLOBALS._player.disableControl();
+ if (BF_GLOBALS.getFlag(gunDrawn)) {
+ BF_GLOBALS.clearFlag(gunDrawn);
+ _sceneMode = 2357;
+ setAction(&_sequenceManager, this, 2357, &BF_GLOBALS._player, &_harrison, NULL);
+ } else {
+ BF_GLOBALS._player.disableControl();
+ _sceneMode = 1357;
+ setAction(&_sequenceManager, this, 1357, &BF_GLOBALS._player, &_harrison, NULL);
+ BF_GLOBALS.setFlag(gunDrawn);
+ }
+ } else {
+ _item11.startAction(INV_COLT45, event);
+ }
+ event.handled = true;
+ }
+ } else {
+ // Day 5 handling
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
+ // Check if the cursor is on the exit to the rental boat
+ if (_rentalExit.contains(event.mousePos)) {
+ GfxSurface surface = _cursorVisage.getFrame(!_modeFlag ? EXITFRAME_SW : EXITFRAME_NE);
+ BF_GLOBALS._events.setCursor(surface);
+ } else {
+ // In case an exit cursor was being shown, restore the previously selected cursor
+ CursorType cursorId = BF_GLOBALS._events.getCursor();
+ BF_GLOBALS._events.setCursor(cursorId);
+ }
+ }
+
// Special handling of actions
if (event.eventType == EVENT_BUTTON_DOWN) {
switch (BF_GLOBALS._events.getCursor()) {
@@ -4045,39 +4119,6 @@ void Scene355::process(Event &event) {
break;
}
}
- } else {
- // All other days
- 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);
- BF_GLOBALS._events.setCursor(surface);
- } else {
- // In case an exit cursor was being shown, restore the previously selected cursor
- CursorType cursorId = BF_GLOBALS._events.getCursor();
- BF_GLOBALS._events.setCursor(cursorId);
- }
- }
-
- if ((_sceneMode != 2357) && (_sceneMode != 1357) && !BF_GLOBALS.getFlag(greenTaken) &&
- (event.eventType == EVENT_BUTTON_DOWN) && (BF_GLOBALS._events.getCursor() == INV_COLT45)) {
- if (BF_GLOBALS._player.contains(event.mousePos)) {
- BF_GLOBALS._player.disableControl();
- if (BF_GLOBALS.getFlag(gunDrawn)) {
- BF_GLOBALS.clearFlag(gunDrawn);
- _sceneMode = 2357;
- setAction(&_sequenceManager, this, 2357, &BF_GLOBALS._player, &_harrison, NULL);
- } else {
- BF_GLOBALS._player.disableControl();
- _sceneMode = 1357;
- setAction(&_sequenceManager, this, 1357, &BF_GLOBALS._player, &_harrison, NULL);
- BF_GLOBALS.setFlag(gunDrawn);
- }
- } else {
- _item11.startAction(INV_COLT45, event);
- }
- event.handled = true;
- }
}
PalettedScene::process(event);
@@ -4085,8 +4126,8 @@ void Scene355::process(Event &event) {
void Scene355::dispatch() {
PalettedScene::dispatch();
- if (BF_GLOBALS._sceneObjects->contains(&_object7)) {
- _object7.updateAngle(BF_GLOBALS._player._position);
+ if (BF_GLOBALS._sceneObjects->contains(&_lyle)) {
+ _lyle.updateAngle(BF_GLOBALS._player._position);
}
if (!_action && (BF_GLOBALS._player.getRegionIndex() == 20)) {
@@ -4124,7 +4165,7 @@ bool Scene360::Item1::startAction(CursorType action, Event &event) {
case CURSOR_TALK:
scene->_sceneMode = 3607;
BF_GLOBALS._player.disableControl();
- scene->_stripManager.start(3550, this);
+ scene->_stripManager.start(3550, scene);
return true;
case INV_COLT45:
SceneItem::display2(1, 4);
@@ -4233,7 +4274,7 @@ bool Scene360::Object4::startAction(CursorType action, Event &event) {
}
}
-bool Scene360::BsseballCards::startAction(CursorType action, Event &event) {
+bool Scene360::BaseballCards::startAction(CursorType action, Event &event) {
switch (action) {
case CURSOR_LOOK:
if (event.mousePos.x >= (_bounds.left + _bounds.width() / 2))
@@ -4249,7 +4290,7 @@ bool Scene360::BsseballCards::startAction(CursorType action, Event &event) {
}
}
-bool Scene360::Object6::startAction(CursorType action, Event &event) {
+bool Scene360::Harrison::startAction(CursorType action, Event &event) {
switch (action) {
case CURSOR_LOOK:
SceneItem::display2(360, 6);
@@ -4291,7 +4332,7 @@ void Scene360::Action1::signal() {
if (BF_INVENTORY.getObjectScene(INV_WAREHOUSE_KEYS) == 360) {
SceneItem::display2(360, 20);
BF_INVENTORY.setObjectScene(INV_WAREHOUSE_KEYS, 1);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
} else {
SceneItem::display2(360, 5);
}
@@ -4306,13 +4347,12 @@ void Scene360::Action1::signal() {
/*--------------------------------------------------------------------------*/
-Scene360::Scene360() {
- _field380 = 0;
-}
-
void Scene360::synchronize(Serializer &s) {
SceneExt::synchronize(s);
- s.syncAsSint16LE(_field380);
+ if (s.getVersion() < 9) {
+ int tmpVar = 0;
+ s.syncAsSint16LE(tmpVar);
+ }
}
void Scene360::postInit(SceneObjectList *OwnerList) {
@@ -4390,20 +4430,19 @@ void Scene360::postInit(SceneObjectList *OwnerList) {
BF_GLOBALS._player._moveDiff.y = 4;
BF_GLOBALS._player.enableControl();
- if (BF_GLOBALS._sceneManager._previousScene == 370) {
- BF_GLOBALS._player.setPosition(Common::Point(62, 122));
- } else {
+ if ((BF_GLOBALS._sceneManager._previousScene == 355) || (BF_GLOBALS._sceneManager._previousScene != 370)) {
+ // The original was using there a useless variable (now removed)
BF_GLOBALS._player.setPosition(Common::Point(253, 135));
BF_GLOBALS._player.setStrip(2);
if (BF_GLOBALS.getFlag(fBackupIn350)) {
- _object6.postInit();
- _object6.setVisage(BF_GLOBALS.getFlag(gunDrawn) ? 363 : 1363);
- _object6.animate(ANIM_MODE_1, NULL);
- _object6.setObjectWrapper(new SceneObjectWrapper());
- _object6.setPosition(Common::Point(235, 150));
- _object6.setStrip(2);
- BF_GLOBALS._sceneItems.push_back(&_object6);
+ _harrison.postInit();
+ _harrison.setVisage(BF_GLOBALS.getFlag(gunDrawn) ? 363 : 1363);
+ _harrison.animate(ANIM_MODE_1, NULL);
+ _harrison.setObjectWrapper(new SceneObjectWrapper());
+ _harrison.setPosition(Common::Point(235, 150));
+ _harrison.setStrip(2);
+ BF_GLOBALS._sceneItems.push_back(&_harrison);
}
_sceneMode = 3607;
@@ -4418,13 +4457,16 @@ void Scene360::postInit(SceneObjectList *OwnerList) {
_slidingDoor.setPosition(Common::Point(6, 130));
_slidingDoor.setAction(&_sequenceManager1, this, 3606, &_slidingDoor, &_object7, NULL);
}
+ } else {
+ BF_GLOBALS._player.setPosition(Common::Point(62, 122));
+ BF_GLOBALS._player.enableControl();
}
_barometer._sceneRegionId = 9;
BF_GLOBALS._sceneItems.push_back(&_barometer);
_item3._sceneRegionId = 10;
BF_GLOBALS._sceneItems.push_back(&_item3);
- _item1.setBounds(Rect(0, 0, SCREEN_WIDTH, BF_INTERFACE_Y));
+ _item1.setBounds(Rect(0, 0, SCREEN_WIDTH, UI_INTERFACE_Y));
BF_GLOBALS._sceneItems.push_back(&_item1);
}
@@ -4438,7 +4480,7 @@ void Scene360::signal() {
BF_GLOBALS.setFlag(gunDrawn);
BF_GLOBALS._deathReason = BF_GLOBALS.getFlag(fBackupIn350) ? 2 : 1;
BF_GLOBALS._player.setPosition(Common::Point(BF_GLOBALS._player._position.x - 20,
- BF_GLOBALS._player._position.y));
+ BF_GLOBALS._player._position.y + 1));
_sceneMode = 3610;
setAction(&_sequenceManager1, this, 3610, &_slidingDoor, &_object2, &BF_GLOBALS._player, NULL);
break;
@@ -4447,8 +4489,13 @@ void Scene360::signal() {
setAction(&_sequenceManager1, this, 3605, &BF_GLOBALS._player, &_slidingDoor, NULL);
break;
case 3604:
- _sceneMode = BF_GLOBALS.getFlag(fBackupIn350) ? 3603 : 3605;
- setAction(&_sequenceManager1, this, _sceneMode, &_object6, NULL);
+ if (BF_GLOBALS.getFlag(fBackupIn350)) {
+ _sceneMode = 3603;
+ setAction(&_sequenceManager1, this, _sceneMode, &_harrison, NULL);
+ } else {
+ _sceneMode = 3605;
+ setAction(&_sequenceManager1, this, _sceneMode, &BF_GLOBALS._player, &_slidingDoor, NULL);
+ }
break;
case 3605:
if (BF_GLOBALS.getFlag(fBackupIn350)) {
@@ -4462,11 +4509,17 @@ void Scene360::signal() {
break;
case 3607:
case 3609:
- _object6.setVisage(1363);
+ // Original game was only using at this place visage 1363.
+ // This workaround allow Harrison to keep his gun handy
+ // when entering the romm (if required)
+ if (! BF_GLOBALS.getFlag(gunDrawn))
+ _harrison.setVisage(1363);
+ else
+ _harrison.setVisage(363);
BF_GLOBALS._player.enableControl();
break;
case 3608:
- BF_GLOBALS._sceneManager.changeScene(355);
+ BF_GLOBALS._sceneManager.changeScene(355);
break;
case 3610:
BF_GLOBALS._sceneManager.changeScene(666);
@@ -4510,7 +4563,7 @@ void Scene360::process(Event &event) {
BF_GLOBALS._player.setFrame(BF_GLOBALS._player.getFrameCount());
BF_GLOBALS._player.animate(ANIM_MODE_6, this);
- _object6.setVisage(1363);
+ _harrison.setVisage(1363);
}
} else {
// Handle drawing gun
@@ -4525,7 +4578,7 @@ void Scene360::process(Event &event) {
BF_GLOBALS.setFlag(gunDrawn);
_sceneMode = 9998;
- _object6.setVisage(363);
+ _harrison.setVisage(363);
}
event.handled = true;
@@ -4574,7 +4627,7 @@ bool Scene370::GreensGun::startAction(CursorType action, Event &event) {
case CURSOR_USE:
if ((BF_INVENTORY.getObjectScene(INV_HANDCUFFS) != 1) || BF_GLOBALS.getFlag(greenTaken)) {
BF_GLOBALS._player.disableControl();
- BF_GLOBALS._walkRegions.proc2(3);
+ BF_GLOBALS._walkRegions.enableRegion(3);
scene->_sceneMode = 3711;
scene->setAction(&scene->_sequenceManager, scene, 3711, &BF_GLOBALS._player, this, NULL);
} else {
@@ -4603,7 +4656,7 @@ bool Scene370::Green::startAction(CursorType action, Event &event) {
scene->_stripManager.start(3717, scene);
} else {
BF_GLOBALS._player.disableControl();
- BF_GLOBALS._walkRegions.proc2(3);
+ BF_GLOBALS._walkRegions.enableRegion(3);
scene->_sceneMode = 3715;
scene->setAction(&scene->_sequenceManager, scene, 3715, &BF_GLOBALS._player, this, NULL);
}
@@ -4658,7 +4711,7 @@ bool Scene370::Green::startAction(CursorType action, Event &event) {
if (_v2 != 3)
SceneItem::display2(370, 2);
else {
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 3704;
scene->setAction(&scene->_sequenceManager, scene, 3704, &BF_GLOBALS._player, this, &scene->_harrison, NULL);
@@ -4738,37 +4791,36 @@ bool Scene370::Laura::startAction(CursorType action, Event &event) {
bool Scene370::Item1::startAction(CursorType action, Event &event) {
Scene370 *scene = (Scene370 *)BF_GLOBALS._sceneManager._scene;
- switch (action) {
- case CURSOR_LOOK:
+ if (action == CURSOR_LOOK) {
SceneItem::display2(370, 15);
return true;
- case CURSOR_USE:
+ } else if (action == CURSOR_USE) {
SceneItem::display2(370, 16);
return true;
- case INV_COLT45:
+ } else if (action == INV_COLT45) {
if (BF_GLOBALS._sceneObjects->contains(&scene->_green) && (BF_INVENTORY.getObjectScene(INV_GREENS_GUN) != 370)) {
scene->_green.setAction(NULL);
scene->_sceneMode = 3703;
scene->setAction(&scene->_sequenceManager, scene, 3703, &BF_GLOBALS._player, &scene->_green, &scene->_harrison, NULL);
return true;
}
- // Deliberate fall-through
- default:
+ return false;
+ } else if (action < CURSOR_WALK) // If any other inventory item used
+ return false;
+ else // If any other action is used
return NamedHotspot::startAction(action, event);
- }
}
bool Scene370::Item6::startAction(CursorType action, Event &event) {
Scene370 *scene = (Scene370 *)BF_GLOBALS._sceneManager._scene;
- switch (action) {
- case CURSOR_LOOK:
+ if (action == CURSOR_LOOK) {
SceneItem::display2(370, 14);
return true;
- case CURSOR_USE:
+ } else if (action == CURSOR_USE) {
SceneItem::display2(370, 29);
return true;
- case INV_COLT45:
+ } else if (action == INV_COLT45) {
if (BF_GLOBALS._sceneObjects->contains(&scene->_green) && (BF_INVENTORY.getObjectScene(INV_GREENS_GUN) != 370) &&
(BF_INVENTORY.getObjectScene(INV_HANDCUFFS) == 1)) {
BF_GLOBALS._player.disableControl();
@@ -4777,10 +4829,11 @@ bool Scene370::Item6::startAction(CursorType action, Event &event) {
scene->setAction(&scene->_sequenceManager, scene, 3703, &BF_GLOBALS._player, &scene->_green, &scene->_harrison, NULL);
return true;
}
- // Deliberate fall-through
- default:
return SceneHotspot::startAction(action, event);
- }
+ } else if (action < CURSOR_WALK) // If any other inventory item used
+ return false;
+ else // If any other action
+ return SceneHotspot::startAction(action, event);
}
@@ -4923,7 +4976,7 @@ void Scene370::signal() {
BF_GLOBALS._player.setStrip(3);
BF_GLOBALS._sceneItems.push_front(&_laura);
- BF_GLOBALS._walkRegions.proc1(3);
+ BF_GLOBALS._walkRegions.disableRegion(3);
_harrison.setAction(NULL);
BF_GLOBALS._player.enableControl();
@@ -4933,15 +4986,15 @@ void Scene370::signal() {
break;
case 3705:
_laura.remove();
- BF_GLOBALS._walkRegions.proc2(6);
- BF_GLOBALS._walkRegions.proc2(1);
+ BF_GLOBALS._walkRegions.enableRegion(6);
+ BF_GLOBALS._walkRegions.enableRegion(1);
BF_GLOBALS._player.enableControl();
break;
case 3708:
_sound1.play(6);
BF_GLOBALS._sound1.changeSound(35);
BF_INVENTORY.setObjectScene(INV_GREENS_GUN, 370);
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
BF_GLOBALS._sceneItems.push_front(&_greensGun);
BF_GLOBALS._player.enableControl();
@@ -4950,8 +5003,8 @@ void Scene370::signal() {
_sceneMode = 0;
_object5.remove();
_green.setAction(NULL);
- BF_GLOBALS._walkRegions.proc1(6);
- BF_GLOBALS._walkRegions.proc1(1);
+ BF_GLOBALS._walkRegions.disableRegion(6);
+ BF_GLOBALS._walkRegions.disableRegion(1);
break;
case 3709:
BF_GLOBALS._player.disableControl();
@@ -4965,15 +5018,15 @@ void Scene370::signal() {
_green.setAction(&_sequenceManager, this, 3701, NULL);
break;
case 3711:
- BF_GLOBALS._walkRegions.proc1(3);
+ BF_GLOBALS._walkRegions.disableRegion(3);
BF_INVENTORY.setObjectScene(INV_GREENS_GUN, 1);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
_greensGun.remove();
BF_GLOBALS._player.enableControl();
break;
case 3712:
- BF_GLOBALS._uiElements._active = false;
- BF_GLOBALS._uiElements.hide();
+ T2_GLOBALS._uiElements._active = false;
+ T2_GLOBALS._uiElements.hide();
if (BF_GLOBALS._sceneObjects->contains(&_greensGun))
_greensGun.remove();
@@ -4985,10 +5038,10 @@ void Scene370::signal() {
BF_GLOBALS._player._canWalk = false;
break;
case 3715:
- BF_GLOBALS._uiElements.addScore(50);
+ T2_GLOBALS._uiElements.addScore(50);
BF_INVENTORY.setObjectScene(INV_GREEN_ID, 1);
BF_INVENTORY.setObjectScene(INV_GREENS_KNIFE, 1);
- BF_GLOBALS._walkRegions.proc1(3);
+ BF_GLOBALS._walkRegions.disableRegion(3);
BF_GLOBALS._player.enableControl();
break;
case 3716:
@@ -5009,7 +5062,7 @@ void Scene370::signal() {
void Scene370::process(Event &event) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_exit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_E);
@@ -5079,7 +5132,7 @@ void Scene380::postInit(SceneObjectList *OwnerList) {
setZoomPercents(68, 80, 131, 100);
BF_GLOBALS._sound1.fadeSound(33);
- BF_GLOBALS._walkRegions.proc1(9);
+ BF_GLOBALS._walkRegions.disableRegion(9);
_door.postInit();
_door.setVisage(380);
@@ -5103,13 +5156,13 @@ void Scene380::postInit(SceneObjectList *OwnerList) {
_vechile.setDetails(580, 2, 3, -1, 1, NULL);
BF_GLOBALS._player.setVisage(129);
- BF_GLOBALS._walkRegions.proc1(12);
- BF_GLOBALS._walkRegions.proc1(18);
- BF_GLOBALS._walkRegions.proc1(19);
- BF_GLOBALS._walkRegions.proc1(20);
- BF_GLOBALS._walkRegions.proc1(25);
- BF_GLOBALS._walkRegions.proc1(26);
- BF_GLOBALS._walkRegions.proc1(27);
+ BF_GLOBALS._walkRegions.disableRegion(12);
+ BF_GLOBALS._walkRegions.disableRegion(18);
+ BF_GLOBALS._walkRegions.disableRegion(19);
+ BF_GLOBALS._walkRegions.disableRegion(20);
+ BF_GLOBALS._walkRegions.disableRegion(25);
+ BF_GLOBALS._walkRegions.disableRegion(26);
+ BF_GLOBALS._walkRegions.disableRegion(27);
} else if (BF_GLOBALS.getFlag(onDuty)) {
// Show on duty motorcycle
_vechile.setStrip(2);
@@ -5259,7 +5312,7 @@ bool Scene385::Door::startAction(CursorType action, Event &event) {
switch (action) {
case CURSOR_USE:
- BF_GLOBALS._walkRegions.proc2(6);
+ BF_GLOBALS._walkRegions.enableRegion(6);
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 3850;
scene->setAction(&scene->_sequenceManager, scene, 3850, &BF_GLOBALS._player, this, NULL);
@@ -5272,8 +5325,7 @@ bool Scene385::Door::startAction(CursorType action, Event &event) {
bool Scene385::Jim::startAction(CursorType action, Event &event) {
Scene385 *scene = (Scene385 *)BF_GLOBALS._sceneManager._scene;
- switch (action) {
- case CURSOR_TALK:
+ if (action == CURSOR_TALK) {
if (scene->_jimFlag) {
scene->_talkAction = 3867;
scene->setAction(&scene->_action1);
@@ -5297,24 +5349,24 @@ bool Scene385::Jim::startAction(CursorType action, Event &event) {
break;
}
- scene->_jimFlag = 1;
+ scene->_jimFlag = true;
scene->setAction(&scene->_action1);
}
return true;
- case INV_PRINT_OUT:
+ } else if (action == INV_PRINT_OUT) {
if (!BF_GLOBALS.getFlag(fGotPointsForMCard)) {
- BF_GLOBALS._uiElements.addScore(30);
- BF_GLOBALS.getFlag(fGotPointsForMCard);
+ T2_GLOBALS._uiElements.addScore(30);
+ BF_GLOBALS.setFlag(fGotPointsForMCard);
scene->setAction(&scene->_action2);
return true;
- }
- break;
- default:
- break;
- }
-
- return NamedObject::startAction(action, event);
+ } else
+ return false;
+ } else if (action < CURSOR_WALK)
+ // Any other inventory item
+ return false;
+ else
+ return NamedObject::startAction(action, event);
}
bool Scene385::Dezi::startAction(CursorType action, Event &event) {
@@ -5385,7 +5437,8 @@ bool Scene385::Exit::startAction(CursorType action, Event &event) {
Scene385::Scene385(): SceneExt() {
- _talkAction = _jimFlag = 0;
+ _talkAction = 0;
+ _jimFlag = false;
}
void Scene385::synchronize(Serializer &s) {
@@ -5440,7 +5493,7 @@ void Scene385::postInit(SceneObjectList *OwnerList) {
_door.setPosition(Common::Point(107, 27));
_door.setDetails(385, 0, -1, -1, 1, NULL);
- BF_GLOBALS._walkRegions.proc1(6);
+ BF_GLOBALS._walkRegions.disableRegion(6);
if (BF_GLOBALS._sceneManager._previousScene == 390) {
BF_GLOBALS._player.setPosition(Common::Point(109, 119));
@@ -5471,7 +5524,7 @@ void Scene385::signal() {
void Scene385::process(Event &event) {
SceneExt::process(event);
- if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+ if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (UI_INTERFACE_Y - 1))) {
// Check if the cursor is on an exit
if (_exit.contains(event.mousePos)) {
GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_SW);
@@ -5599,7 +5652,7 @@ bool Scene390::Green::startAction(CursorType action, Event &event) {
if (BF_GLOBALS.getFlag(readGreenRights)) {
SceneItem::display2(390, 15);
} else {
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_GLOBALS.setFlag(readGreenRights);
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 3904;
@@ -5725,7 +5778,7 @@ bool Scene390::GangMember1::startAction(CursorType action, Event &event) {
SceneItem::display2(390, 15);
} else {
BF_GLOBALS.setFlag(readFrankRights);
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 3904;
@@ -5749,7 +5802,7 @@ bool Scene390::GangMember2::startAction(CursorType action, Event &event) {
if (BF_GLOBALS.getFlag(readFrankRights)) {
SceneItem::display2(390, 15);
} else {
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
BF_GLOBALS.setFlag(readFrankRights);
BF_GLOBALS._player.disableControl();
@@ -5900,7 +5953,7 @@ void Scene390::signal() {
BF_GLOBALS._player.enableControl();
break;
case 3905:
- BF_GLOBALS._uiElements.addScore(30);
+ T2_GLOBALS._uiElements.addScore(30);
_object2.remove();
BF_INVENTORY.setObjectScene(INV_HANDCUFFS, 1);
BF_GLOBALS._player.enableControl();