aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstrangerke2011-04-09 10:12:09 +0200
committerstrangerke2011-04-09 10:12:09 +0200
commit8b790e03883ad5ea5c47b9a330a414a2580ec763 (patch)
tree69296b140fa79d658e4ba718c39e243f40184821
parent48542fb364e3fd27d1557b8eb1a86ff330f6a0cb (diff)
parentb912b3662a753e2766bca4fb8a0d666cdebce349 (diff)
downloadscummvm-rg350-8b790e03883ad5ea5c47b9a330a414a2580ec763.tar.gz
scummvm-rg350-8b790e03883ad5ea5c47b9a330a414a2580ec763.tar.bz2
scummvm-rg350-8b790e03883ad5ea5c47b9a330a414a2580ec763.zip
Merge branch 'tsage' of http://github.com/dreammaster/scummvm
-rw-r--r--engines/tsage/converse.cpp2
-rw-r--r--engines/tsage/core.cpp33
-rw-r--r--engines/tsage/core.h4
-rw-r--r--engines/tsage/ringworld_scenes1.cpp14
-rw-r--r--engines/tsage/ringworld_scenes1.h5
5 files changed, 27 insertions, 31 deletions
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index a367ce540c..260308a784 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -252,7 +252,7 @@ void SequenceManager::signal() {
break;
case 30:
v1 = getNextValue();
- _globals->_scrollFollower = (v1 == 0xffff) ? NULL : _objectList[v1];
+ _globals->_scrollFollower = (v1 == -1) ? NULL : _objectList[v1];
break;
case 31:
_sceneObject->setObjectWrapper(new SceneObjectWrapper());
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 130238548e..4ce7513e12 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -145,9 +145,8 @@ InvObjectList::InvObjectList():
}
void InvObjectList::synchronise(Serialiser &s) {
+ SavedObject::synchronise(s);
SYNC_POINTER(_selectedItem);
-
-List<InvObject *> _itemList;
}
/*--------------------------------------------------------------------------*/
@@ -280,7 +279,7 @@ void ObjectMover::dispatch() {
if (dontMove())
return;
- _sceneObject->_field6E = NULL;
+ _sceneObject->_regionIndex = 0;
if (_moveDelta.x >= _moveDelta.y) {
int xAmount = _moveSign.x * _sceneObject->_moveDiff.x * _sceneObject->_percent / 100;
if (!xAmount)
@@ -334,8 +333,8 @@ void ObjectMover::dispatch() {
_majorDiff -= ABS(yAmount);
}
-//TODO: _sceneObject->_field6E = _sceneObject->proc1(currPos);
- if (!_sceneObject->_field6E) {
+ _sceneObject->_regionIndex = _sceneObject->checkRegion(currPos);
+ if (!_sceneObject->_regionIndex) {
_sceneObject->setPosition(currPos, yDiff);
_sceneObject->getHorizBounds();
@@ -434,7 +433,7 @@ void ObjectMover2::startMove(SceneObject *sceneObj, va_list va) {
}
void ObjectMover2::endMove() {
- _sceneObject->_field6E = 64;
+ _sceneObject->_regionIndex = 0x40;
}
/*--------------------------------------------------------------------------*/
@@ -499,7 +498,7 @@ void PlayerMover::endMove() {
while (++_routeIndex != 0) {
if ((_routeList[_routeIndex].x == ROUTE_END_VAL) ||
(_routeList[_routeIndex].y == ROUTE_END_VAL) ||
- (_sceneObject->_field6E)) {
+ (_sceneObject->_regionIndex)) {
// Movement route is completely finished
ObjectMover::endMove();
return;
@@ -1025,7 +1024,7 @@ void PlayerMover2::startMove(SceneObject *sceneObj, va_list va) {
}
void PlayerMover2::endMove() {
- _sceneObject->_field6E = 0x40;
+ _sceneObject->_regionIndex = 0x40;
}
/*--------------------------------------------------------------------------*/
@@ -1065,7 +1064,7 @@ void PaletteRotation::signal() {
uint32 frameNumber = _globals->_events.getFrameNumber();
if (frameNumber >= _frameNumber) {
- _delayCtr -= frameNumber - _frameNumber;
+ _delayCtr = frameNumber - _frameNumber;
_frameNumber = frameNumber;
if (_delayCtr < 0)
@@ -1079,7 +1078,8 @@ void PaletteRotation::signal() {
if (_disabled)
return;
- bool flag = true; switch (_rotationMode) {
+ bool flag = true;
+ switch (_rotationMode) {
case -1:
if (--_currIndex < _start) {
flag = decDuration();
@@ -1120,7 +1120,7 @@ void PaletteRotation::signal() {
g_system->getPaletteManager()->setPalette((const byte *)&_palette[_currIndex], _start, count);
if (count2) {
- g_system->getPaletteManager()->setPalette((const byte *)&_palette[_start], _start, count2);
+ g_system->getPaletteManager()->setPalette((const byte *)&_palette[_start], _start + count, count2);
}
}
}
@@ -2028,7 +2028,7 @@ void SceneObject::synchronise(Serialiser &s) {
s.syncAsSint32LE(_field68);
s.syncAsSint32LE(_frameChange);
s.syncAsSint32LE(_numFrames);
- s.syncAsSint32LE(_field6E);
+ s.syncAsSint32LE(_regionIndex);
SYNC_POINTER(_mover);
s.syncAsSint16LE(_moveDiff.x); s.syncAsSint16LE(_moveDiff.y);
s.syncAsSint32LE(_field7A);
@@ -2055,7 +2055,7 @@ void SceneObject::postInit(SceneObjectList *OwnerList) {
_moveDiff.x = 5;
_moveDiff.y = 3;
_field7A = 10;
- _field6E = 64;
+ _regionIndex = 0x40;
_numFrames = 10;
_regionBitList = 0;
@@ -3513,9 +3513,14 @@ void SceneHandler::dispatch() {
while (_globals->_events.getEvent(event))
process(event);
+ // Handle drawing the contents of the scene
+ if (_globals->_sceneManager._scene)
+ _globals->_sceneObjects->draw();
+
+ // Check to see if any scene change is required
_globals->_sceneManager.checkScene();
- _globals->_sceneObjects->draw();
+ // Signal the ScummVM debugger
_vm->_debugger->onFrame();
// Delay between frames
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index 84042f790a..be3dde15fc 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -501,7 +501,7 @@ private:
int getNewFrame();
void animEnded();
int changeFrame();
- bool isNoMover() const { return !_mover || (_field6E > 0); }
+ bool isNoMover() const { return !_mover || (_regionIndex > 0); }
public:
uint32 _updateStartFrame;
uint32 _walkStartFrame;
@@ -521,7 +521,7 @@ public:
int _field68;
int _frameChange;
int _numFrames;
- int _field6E;
+ int _regionIndex;
EventHandler *_mover;
Common::Point _moveDiff;
int _field7A;
diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld_scenes1.cpp
index 3facab40ea..033c684aeb 100644
--- a/engines/tsage/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld_scenes1.cpp
@@ -2108,11 +2108,6 @@ void Scene60::Object6::doAction(int action) {
}
}
-void Scene60::SceneObjectExt::synchronise(Serialiser &s) {
- s.syncAsUint16LE(_state);
-}
-
-
void Scene60::SlaveObject::doAction(int action) {
Scene60 *scene = (Scene60 *)_globals->_sceneManager._scene;
@@ -2931,8 +2926,8 @@ void Scene6100::Action5::dispatch() {
for (int idx = 0; idx < 4; ++idx) {
FloatSet tempSet = scene->_objList[idx]->_floats;
- tempSet.add(scene->_object5._floats._float1, scene->_object5._floats._float2,
- scene->_object5._floats._float3);
+ tempSet.add(-scene->_object5._floats._float1, -scene->_object5._floats._float2,
+ -scene->_object5._floats._float3);
tempSet.proc1(scene->_angle * MULTIPLY_FACTOR);
@@ -2943,7 +2938,7 @@ void Scene6100::Action5::dispatch() {
}
scene->_objList[idx]->_position.x = static_cast<int>(
- (tempSet._float2 + 330.0) / 330.0 * tempSet._float1 - 160.0);
+ 160.0 - ((tempSet._float2 + 330.0) / 330.0 * tempSet._float1));
if (tempSet._float2 < 0) {
scene->_objList[idx]->_position.y = 300;
@@ -2970,7 +2965,7 @@ void Scene6100::Action5::dispatch() {
}
scene->_objList[idx]->_flags |= OBJFLAG_PANES;
-
+/*
if ((idx != 3) && (scene->_fadePercent == 100) &&
(tempSet.sqrt(floatSet) < 150.0)) {
switch (scene->_field_312++) {
@@ -3002,6 +2997,7 @@ void Scene6100::Action5::dispatch() {
_globals->_scenePalette.clearListeners();
scene->_fadePercent = 0;
}
+ */
}
}
diff --git a/engines/tsage/ringworld_scenes1.h b/engines/tsage/ringworld_scenes1.h
index 95cf603728..cc3d472fab 100644
--- a/engines/tsage/ringworld_scenes1.h
+++ b/engines/tsage/ringworld_scenes1.h
@@ -368,11 +368,6 @@ class Scene60: public Scene {
public:
virtual void doAction(int action);
};
- class SceneObjectExt: public SceneObject {
- public:
- int _state;
- virtual void synchronise(Serialiser &s);
- };
class Object8: public SceneObjectExt {
public:
virtual void doAction(int action);