TSAGE: Blue Force - Fix crate top in scene 920

Also: rename some objects, disable sub15E4F and
fix a little bug in init of scene910
This commit is contained in:
Strangerke 2011-10-20 00:19:21 +02:00
parent 228c4fb286
commit c39e45ff64
3 changed files with 26 additions and 24 deletions

View file

@ -897,6 +897,8 @@ void PalettedScene::add2Faders(const byte *arrBufferRGB, int step, int paletteNu
void PalettedScene::sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag) { void PalettedScene::sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag) {
byte tmpPalette[768]; byte tmpPalette[768];
warning("sub15E4F");
return;
_palette.loadPalette(paletteNum); _palette.loadPalette(paletteNum);
_palette.loadPalette(2); _palette.loadPalette(2);

View file

@ -422,7 +422,7 @@ Scene900::Scene900(): PalettedScene() {
} }
void Scene900::postInit(SceneObjectList *OwnerList) { void Scene900::postInit(SceneObjectList *OwnerList) {
PalettedScene::postInit(); PalettedScene::postInit(OwnerList);
loadScene(900); loadScene(900);
if (BF_GLOBALS._sceneManager._previousScene == 910) if (BF_GLOBALS._sceneManager._previousScene == 910)
@ -1947,7 +1947,7 @@ void Scene910::postInit(SceneObjectList *OwnerList) {
uint32 unk_50E94 = 0, unk_50E90 = 0; uint32 unk_50E94 = 0, unk_50E90 = 0;
uint32 unk_50E98 = 0, unk_50E9C = 0; uint32 unk_50E98 = 0, unk_50E9C = 0;
PalettedScene::postInit(); PalettedScene::postInit(OwnerList);
loadScene(910); loadScene(910);
BF_GLOBALS._sound1.changeSound(99); BF_GLOBALS._sound1.changeSound(99);
@ -2806,7 +2806,7 @@ void Scene910::dispatch() {
} }
} }
if ((BF_GLOBALS._player._position.x > 265) && (BF_GLOBALS._player._position.y < 102) && (BF_GLOBALS._v4CEE0 == 0) && (_sceneMode == 9143)) { if ((BF_GLOBALS._player._position.x > 265) && (BF_GLOBALS._player._position.y < 102) && (BF_GLOBALS._v4CEE0 != 0) && (_sceneMode != 9143)) {
BF_GLOBALS._player.disableControl(); BF_GLOBALS._player.disableControl();
if (BF_GLOBALS.getFlag(gunDrawn)) { if (BF_GLOBALS.getFlag(gunDrawn)) {
_field2DDA = 3; _field2DDA = 3;
@ -2912,14 +2912,13 @@ bool Scene920::Item1::startAction(CursorType action, Event &event) {
case CURSOR_LOOK: case CURSOR_LOOK:
if ((BF_GLOBALS.getFlag(fCrateOpen)) && (BF_GLOBALS._player._visage == 921)) { if ((BF_GLOBALS.getFlag(fCrateOpen)) && (BF_GLOBALS._player._visage == 921)) {
BF_GLOBALS._player.disableControl(); BF_GLOBALS._player.disableControl();
scene->_object2.postInit(); scene->_crateWindow.postInit();
scene->_sceneMode = 9204; scene->_sceneMode = 9204;
if (!BF_GLOBALS.getFlag(fGotPointsForBoots)) { if (!BF_GLOBALS.getFlag(fGotPointsForBoots)) {
BF_GLOBALS._uiElements.addScore(30); BF_GLOBALS._uiElements.addScore(30);
BF_GLOBALS.setFlag(fGotPointsForBoots); BF_GLOBALS.setFlag(fGotPointsForBoots);
} }
scene->setAction(&scene->_sequenceManager1, scene, 9204, &BF_GLOBALS._player, &scene->_object2, NULL); scene->setAction(&scene->_sequenceManager1, scene, 9204, &BF_GLOBALS._player, &scene->_crateWindow, NULL);
return true; return true;
} else } else
return NamedHotspot::startAction(action, event); return NamedHotspot::startAction(action, event);
@ -2933,7 +2932,7 @@ bool Scene920::Item1::startAction(CursorType action, Event &event) {
scene->setAction(&scene->_sequenceManager1, scene, 9207, &BF_GLOBALS._player, NULL); scene->setAction(&scene->_sequenceManager1, scene, 9207, &BF_GLOBALS._player, NULL);
} else { } else {
scene->_sceneMode = 9203; scene->_sceneMode = 9203;
scene->setAction(&scene->_sequenceManager1, scene, 9203, &BF_GLOBALS._player, &scene->_object1, NULL); scene->setAction(&scene->_sequenceManager1, scene, 9203, &BF_GLOBALS._player, &scene->_crateTop, NULL);
BF_GLOBALS.clearFlag(fCrateOpen); BF_GLOBALS.clearFlag(fCrateOpen);
} }
} else { } else {
@ -2942,7 +2941,7 @@ bool Scene920::Item1::startAction(CursorType action, Event &event) {
} }
} else { } else {
scene->_sceneMode = 9202; scene->_sceneMode = 9202;
scene->setAction(&scene->_sequenceManager1, scene, 9202, &BF_GLOBALS._player, &scene->_object1, NULL); scene->setAction(&scene->_sequenceManager1, scene, 9202, &BF_GLOBALS._player, &scene->_crateTop, NULL);
BF_GLOBALS.setFlag(fCrateOpen); BF_GLOBALS.setFlag(fCrateOpen);
} }
return true; return true;
@ -2984,22 +2983,23 @@ void Scene920::postInit(SceneObjectList *OwnerList) {
BF_GLOBALS._dayNumber = 4; BF_GLOBALS._dayNumber = 4;
BF_GLOBALS._player.postInit(); BF_GLOBALS._player.postInit();
if (BF_GLOBALS._v4CEC8 != 0) { if (BF_GLOBALS._v4CEC8 != 0) {
_object3.postInit(); _doorway.postInit();
_object3.setVisage(922); _doorway.setVisage(922);
_object3.setStrip(2); _doorway.setStrip(2);
_object3.fixPriority(1); _doorway.fixPriority(1);
_object3.setPosition(Common::Point(145, 82)); _doorway.setPosition(Common::Point(145, 82));
} }
_object1.postInit(); _crateTop.postInit();
_object1.setVisage(922); _crateTop.setVisage(922);
if (BF_GLOBALS.getFlag(fCrateOpen)) { if (BF_GLOBALS.getFlag(fCrateOpen)) {
_object1.setStrip(3); _crateTop.setStrip(3);
_object1.setFrame(5); _crateTop.setFrame(5);
} }
_object1.setPosition(Common::Point(158, 107)); _crateTop.setPosition(Common::Point(158, 107));
_object1.setPriority(130); _crateTop.fixPriority(130);
_exitN.setDetails(Rect(116, 12, 165, 81), 920, -1, -1, -1, 1, NULL); _exitN.setDetails(Rect(116, 12, 165, 81), 920, -1, -1, -1, 1, NULL);
_item6.setDetails(6, 920, 15, 16, 17, 1); _item6.setDetails(6, 920, 15, 16, 17, 1);
_item4.setDetails(5, 920, 12, 13, 14, 1); _item4.setDetails(5, 920, 12, 13, 14, 1);
@ -3028,7 +3028,7 @@ void Scene920::signal() {
BF_GLOBALS._sceneManager.changeScene(910); BF_GLOBALS._sceneManager.changeScene(910);
break; break;
case 9204: case 9204:
_object2.remove(); _crateWindow.remove();
BF_GLOBALS.setFlag(fSawGuns); BF_GLOBALS.setFlag(fSawGuns);
BF_GLOBALS._player.enableControl(); BF_GLOBALS._player.enableControl();
break; break;

View file

@ -315,9 +315,9 @@ public:
NamedHotspot _item5; NamedHotspot _item5;
NamedHotspot _item6; NamedHotspot _item6;
NamedHotspot _item7; NamedHotspot _item7;
NamedObject _object1; NamedObject _crateTop;
NamedObject _object2; NamedObject _crateWindow;
NamedObject _object3; NamedObject _doorway;
Item8 _exitN; Item8 _exitN;
Common::Point _oldCoord; Common::Point _oldCoord;