mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-24 21:21:05 +00:00
TSAGE: Bugfixes and renaming for R2R teleport outside
This commit is contained in:
parent
7990300c96
commit
789c8bbfdb
@ -4238,7 +4238,7 @@ Scene3600::Scene3600() {
|
||||
_field254A = 0;
|
||||
_field254C = 0;
|
||||
_field254E = 0;
|
||||
_field2550 = false;
|
||||
_ghoulTeleported = false;
|
||||
}
|
||||
void Scene3600::synchronize(Serializer &s) {
|
||||
SceneExt::synchronize(s);
|
||||
@ -4247,7 +4247,7 @@ void Scene3600::synchronize(Serializer &s) {
|
||||
s.syncAsSint16LE(_field254A);
|
||||
s.syncAsSint16LE(_field254C);
|
||||
s.syncAsSint16LE(_field254E);
|
||||
s.syncAsSint16LE(_field2550);
|
||||
s.syncAsSint16LE(_ghoulTeleported);
|
||||
}
|
||||
|
||||
Scene3600::Action3600::Action3600() {
|
||||
@ -4277,8 +4277,8 @@ void Scene3600::Action3600::signal() {
|
||||
R2_GLOBALS._sound2.play(330, NULL, 0);
|
||||
R2_GLOBALS._sound2.fade(127, 5, 10, false, NULL);
|
||||
}
|
||||
|
||||
setDelay(1);
|
||||
warning("TODO: Palette fader using parameter 2 = 256");
|
||||
R2_GLOBALS._scenePalette.fade((const byte *)&scene->_palette1._palette, true, _field20);
|
||||
if (_field20 > 0)
|
||||
_field20 -= 2;
|
||||
@ -4595,7 +4595,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) {
|
||||
_field254E = 0;
|
||||
}
|
||||
_field254E = 0;
|
||||
_field2550 = R2_GLOBALS.getFlag(71);
|
||||
_ghoulTeleported = R2_GLOBALS.getFlag(71);
|
||||
|
||||
R2_GLOBALS._sound1.play(326);
|
||||
_item1.setDetails(Rect(0, 0, 480, 200), 3600, 0, -1, -1, 1, NULL);
|
||||
@ -4909,10 +4909,10 @@ void Scene3600::dispatch() {
|
||||
_actor4.setAction(&_sequenceManager1, this, 3613, &_actor4, NULL);
|
||||
}
|
||||
|
||||
if ((_protector.getRegionIndex() == 200) && (_action1._field1E != 0) && (_field254E == 0)) {
|
||||
if ((_protector.getRegionIndex() == 200) && (_action1._field1E != 0) && !_ghoulTeleported) {
|
||||
R2_GLOBALS._sound2.fadeOut2(NULL);
|
||||
_sceneMode = 3620;
|
||||
_field2550 = 1;
|
||||
_ghoulTeleported = true;
|
||||
R2_GLOBALS._player.disableControl();
|
||||
|
||||
if (R2_GLOBALS._player._mover)
|
||||
@ -4937,8 +4937,9 @@ void Scene3600::dispatch() {
|
||||
|
||||
void Scene3700::postInit(SceneObjectList *OwnerList) {
|
||||
loadScene(3700);
|
||||
R2_GLOBALS._uiElements._active = false;
|
||||
SceneExt::postInit();
|
||||
R2_GLOBALS._uiElements._active = false;
|
||||
R2_GLOBALS._interfaceY = SCREEN_HEIGHT;
|
||||
|
||||
_stripManager.setColors(60, 255);
|
||||
_stripManager.setFontNumber(3);
|
||||
@ -4946,30 +4947,31 @@ void Scene3700::postInit(SceneObjectList *OwnerList) {
|
||||
_stripManager.addSpeaker(&_seekerSpeaker);
|
||||
_stripManager.addSpeaker(&_mirandaSpeaker);
|
||||
|
||||
_actor1.postInit();
|
||||
_actor1._moveDiff = Common::Point(3, 2);
|
||||
_quinn.postInit();
|
||||
_quinn._moveDiff = Common::Point(3, 2);
|
||||
|
||||
_actor2.postInit();
|
||||
_actor2._numFrames = 7;
|
||||
_actor2._moveDiff = Common::Point(5, 3);
|
||||
_actor2.hide();
|
||||
_seeker.postInit();
|
||||
_seeker._numFrames = 7;
|
||||
_seeker._moveDiff = Common::Point(5, 3);
|
||||
_seeker.hide();
|
||||
|
||||
_actor3.postInit();
|
||||
_actor3._moveDiff = Common::Point(3, 2);
|
||||
_actor3.hide();
|
||||
_miranda.postInit();
|
||||
_miranda._moveDiff = Common::Point(3, 2);
|
||||
_miranda.hide();
|
||||
|
||||
_actor4.postInit();
|
||||
_actor4._numFrames = 7;
|
||||
_actor4._moveDiff = Common::Point(5, 3);
|
||||
_actor4.hide();
|
||||
_webbster.postInit();
|
||||
_webbster._numFrames = 7;
|
||||
_webbster._moveDiff = Common::Point(5, 3);
|
||||
_webbster.hide();
|
||||
|
||||
_actor5.postInit();
|
||||
|
||||
R2_GLOBALS._player.postInit();
|
||||
R2_GLOBALS._player.disableControl();
|
||||
R2_GLOBALS._sound1.play(332);
|
||||
|
||||
_sceneMode = 3700;
|
||||
setAction(&_sequenceManager, this, 3700, &_actor1, &_actor2, &_actor3, &_actor4, &_actor5, NULL);
|
||||
setAction(&_sequenceManager, this, 3700, &_quinn, &_seeker, &_miranda,
|
||||
&_webbster, &_actor5, NULL);
|
||||
}
|
||||
|
||||
void Scene3700::remove() {
|
||||
@ -4984,11 +4986,11 @@ void Scene3700::signal() {
|
||||
case 3329:
|
||||
warning("STUB: sub_1D227()");
|
||||
_sceneMode = 3701;
|
||||
setAction(&_sequenceManager, this, 3701, &_actor2, &_actor3, &_actor4, NULL);
|
||||
setAction(&_sequenceManager, this, 3701, &_seeker, &_miranda, &_webbster, NULL);
|
||||
break;
|
||||
case 3700:
|
||||
_actor1.setup(10, 6, 1);
|
||||
_actor2.setup(20, 5, 1);
|
||||
_quinn.setup(10, 6, 1);
|
||||
_seeker.setup(20, 5, 1);
|
||||
if (R2_GLOBALS.getFlag(71)) {
|
||||
_sceneMode = 3329;
|
||||
_stripManager.start(3329, this);
|
||||
|
@ -743,7 +743,7 @@ public:
|
||||
int _field254A;
|
||||
int _field254C;
|
||||
int _field254E;
|
||||
bool _field2550;
|
||||
bool _ghoulTeleported;
|
||||
|
||||
Scene3600();
|
||||
virtual void postInit(SceneObjectList *OwnerList = NULL);
|
||||
@ -759,10 +759,10 @@ public:
|
||||
SpeakerQuinn3700 _quinnSpeaker;
|
||||
SpeakerSeeker3700 _seekerSpeaker;
|
||||
SpeakerMiranda3700 _mirandaSpeaker;
|
||||
SceneActor _actor1;
|
||||
SceneActor _actor2;
|
||||
SceneActor _actor3;
|
||||
SceneActor _actor4;
|
||||
SceneActor _quinn;
|
||||
SceneActor _seeker;
|
||||
SceneActor _miranda;
|
||||
SceneActor _webbster;
|
||||
SceneActor _actor5;
|
||||
SequenceManager _sequenceManager;
|
||||
|
||||
|
@ -866,7 +866,7 @@ void SpeakerMiranda3700::proc15() {
|
||||
int v = _speakerMode;
|
||||
|
||||
if (!_object2) {
|
||||
_object2 = &scene->_actor3;
|
||||
_object2 = &scene->_miranda;
|
||||
_object2->hide();
|
||||
_object1.postInit();
|
||||
_object1.setPosition(_object2->_position);
|
||||
@ -886,25 +886,25 @@ void SpeakerMiranda3700::proc15() {
|
||||
break;
|
||||
case 1:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor1.setup(10, 6, 1);
|
||||
scene->_actor2.setup(20, 5, 1);
|
||||
scene->_quinn.setup(10, 6, 1);
|
||||
scene->_seeker.setup(20, 5, 1);
|
||||
_object2->setup(30, 1, 1);
|
||||
scene->_actor4.setup(40, 1, 1);
|
||||
scene->_webbster.setup(40, 1, 1);
|
||||
_object1.setup(4050, 5, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
case 2:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor3.setup(30, 8, 1);
|
||||
scene->_miranda.setup(30, 8, 1);
|
||||
_object1.setup(4052, 3, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
case 3:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor2.setup(20, 1, 1);
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
scene->_seeker.setup(20, 1, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
_object1.setup(4051, 7, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
default:
|
||||
signal();
|
||||
@ -1757,14 +1757,14 @@ void SpeakerQuinn3700::setText(const Common::String &msg) {
|
||||
|
||||
switch (_speakerMode) {
|
||||
case 2:
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
R2_GLOBALS._sound2.play(44);
|
||||
break;
|
||||
case 3:
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
break;
|
||||
default:
|
||||
scene->_actor3.setup(30, 7, 1);
|
||||
scene->_miranda.setup(30, 7, 1);
|
||||
break;
|
||||
}
|
||||
VisualSpeaker::setText(msg);
|
||||
@ -1776,7 +1776,7 @@ void SpeakerQuinn3700::proc15() {
|
||||
int v = _speakerMode;
|
||||
|
||||
if (!_object2) {
|
||||
_object2 = &scene->_actor1;
|
||||
_object2 = &scene->_quinn;
|
||||
_object2->hide();
|
||||
_object1.postInit();
|
||||
_object1.setPosition(_object2->_position);
|
||||
@ -1797,24 +1797,24 @@ void SpeakerQuinn3700::proc15() {
|
||||
case 1:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
R2_GLOBALS._sound2.stop();
|
||||
scene->_actor1.setup(10, 4, 1);
|
||||
scene->_actor3.setup(30, 7, 1);
|
||||
scene->_quinn.setup(10, 4, 1);
|
||||
scene->_miranda.setup(30, 7, 1);
|
||||
_object1.setup(3701, 1, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
case 2:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor2.setup(20, 1, 1);
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
_object1.setup(3701, 2, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
scene->_seeker.setup(20, 1, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
_object1.setup(3702, 1, 1);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
case 3:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor1.setup(10, 2, 1);
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
scene->_quinn.setup(10, 2, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
_object1.setup(4011, 1, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
default:
|
||||
signal();
|
||||
@ -2467,10 +2467,11 @@ void SpeakerSeeker3700::setText(const Common::String &msg) {
|
||||
|
||||
if (_speakerMode == 1) {
|
||||
R2_GLOBALS._sound2.play(44);
|
||||
scene->_actor3.setup(30, 8, 1);
|
||||
scene->_miranda.setup(30, 8, 1);
|
||||
} else {
|
||||
scene->_actor3.setup(30, 2, 1);
|
||||
scene->_miranda.setup(30, 2, 1);
|
||||
}
|
||||
|
||||
VisualSpeaker::setText(msg);
|
||||
}
|
||||
|
||||
@ -2480,7 +2481,7 @@ void SpeakerSeeker3700::proc15() {
|
||||
int v = _speakerMode;
|
||||
|
||||
if (!_object2) {
|
||||
_object2 = &scene->_actor2;
|
||||
_object2 = &scene->_seeker;
|
||||
_object2->hide();
|
||||
_object1.postInit();
|
||||
_object1.setPosition(_object2->_position);
|
||||
@ -2501,19 +2502,19 @@ void SpeakerSeeker3700::proc15() {
|
||||
case 1:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
R2_GLOBALS._sound2.stop();
|
||||
scene->_actor1.setup(10, 8, 1);
|
||||
scene->_actor2.setup(20, 7, 1);
|
||||
scene->_actor3.setup(30, 8, 1);
|
||||
scene->_quinn.setup(10, 8, 1);
|
||||
scene->_seeker.setup(20, 7, 1);
|
||||
scene->_miranda.setup(30, 8, 1);
|
||||
_object1.setup(3701, 3, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
case 2:
|
||||
((SceneItem *)_action)->_sceneRegionId = 0;
|
||||
scene->_actor1.setup(10, 2, 1);
|
||||
scene->_actor2.setup(20, 1, 1);
|
||||
scene->_actor3.setup(30, 1, 1);
|
||||
scene->_quinn.setup(10, 2, 1);
|
||||
scene->_seeker.setup(20, 1, 1);
|
||||
scene->_miranda.setup(30, 1, 1);
|
||||
_object1.setup(4031, 1, 1);
|
||||
_object1.animate(ANIM_MODE_5, NULL);
|
||||
_object1.animate(ANIM_MODE_5, this);
|
||||
break;
|
||||
default:
|
||||
signal();
|
||||
|
Loading…
x
Reference in New Issue
Block a user