Skip to content

Commit

Permalink
TSAGE: R2R - Replace oldSceneNumber by an array, as each character ha…
Browse files Browse the repository at this point in the history
…s its own
  • Loading branch information
Strangerke committed Nov 23, 2011
1 parent 54fc8e5 commit 8a2500c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 14 deletions.
7 changes: 2 additions & 5 deletions engines/tsage/core.cpp
Expand Up @@ -2982,13 +2982,12 @@ Player::Player(): SceneObject() {

// Return to Ringworld specific fields
_characterIndex = 0;
_oldSceneNumber = 0;
_fieldBC = 0;

for (int i = 0; i < MAX_CHARACTERS; ++i) {
_characterScene[i] = 0;
_characterStrip[i] = 0;
_characterFrame[i] = 0;
_oldCharacterScene[i] = 0;
}
}

Expand Down Expand Up @@ -3086,11 +3085,9 @@ void Player::synchronize(Serializer &s) {

if (g_vm->getGameID() == GType_Ringworld2) {
s.syncAsSint16LE(_characterIndex);
s.syncAsSint16LE(_oldSceneNumber);
s.syncAsSint16LE(_fieldBC);

for (int i = 0; i < MAX_CHARACTERS; ++i) {
s.syncAsSint16LE(_characterScene[i]);
s.syncAsSint16LE(_oldCharacterScene[i]);
s.syncAsSint16LE(_characterPos[i].x);
s.syncAsSint16LE(_characterPos[i].y);
s.syncAsSint16LE(_characterStrip[i]);
Expand Down
3 changes: 1 addition & 2 deletions engines/tsage/core.h
Expand Up @@ -631,9 +631,8 @@ class Player : public SceneObject {

// Return to Ringworld specific fields
int _characterIndex;
int _oldSceneNumber;
int _fieldBC;
int _characterScene[MAX_CHARACTERS];
int _oldCharacterScene[MAX_CHARACTERS];
Common::Point _characterPos[MAX_CHARACTERS];
int _characterStrip[MAX_CHARACTERS];
int _characterFrame[MAX_CHARACTERS];
Expand Down
14 changes: 7 additions & 7 deletions engines/tsage/ringworld2/ringworld2_scenes0.cpp
Expand Up @@ -579,7 +579,7 @@ bool Scene125::Item4::startAction(CursorType action, Event &event) {
Scene125 *scene = (Scene125 *)R2_GLOBALS._sceneManager._scene;
switch (action) {
case CURSOR_USE:
if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) == R2_GLOBALS._player._oldSceneNumber) {
if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) == R2_GLOBALS._player._oldCharacterScene[1]) {
R2_GLOBALS._player.disableControl();
scene->_sceneMode = 126;
scene->setAction(&scene->_sequenceManager, scene, 126, &scene->_object7, NULL);
Expand Down Expand Up @@ -621,13 +621,13 @@ void Scene125::postInit(SceneObjectList *OwnerList) {

if (R2_GLOBALS._sceneManager._previousScene != 125)
// Save the prior scene to return to when the console is turned off
R2_GLOBALS._player._oldSceneNumber = R2_GLOBALS._sceneManager._previousScene;
R2_GLOBALS._player._oldCharacterScene[1] = R2_GLOBALS._sceneManager._previousScene;

R2_GLOBALS._player.postInit();
R2_GLOBALS._player.hide();
R2_GLOBALS._player.disableControl();

if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) == R2_GLOBALS._player._oldSceneNumber) {
if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) == R2_GLOBALS._player._oldCharacterScene[1]) {
_object7.postInit();
_object7.setup(160, 3, 5);
_object7.setPosition(Common::Point(47, 167));
Expand Down Expand Up @@ -783,7 +783,7 @@ void Scene125::signal() {
}
break;
case 125:
R2_INVENTORY.setObjectScene(R2_OPTO_DISK, R2_GLOBALS._player._oldSceneNumber);
R2_INVENTORY.setObjectScene(R2_OPTO_DISK, R2_GLOBALS._player._oldCharacterScene[1]);
break;
case 126:
R2_INVENTORY.setObjectScene(R2_OPTO_DISK, 1);
Expand Down Expand Up @@ -884,7 +884,7 @@ void Scene125::consoleAction(int id) {
_icon2.setIcon(23);
break;
case 6:
R2_GLOBALS._sceneManager.changeScene(R2_GLOBALS._player._oldSceneNumber);
R2_GLOBALS._sceneManager.changeScene(R2_GLOBALS._player._oldCharacterScene[1]);
break;
case 7:
if (_consoleMode == 11)
Expand Down Expand Up @@ -947,7 +947,7 @@ void Scene125::consoleAction(int id) {
break;
case 13:
consoleAction(2);
if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) != R2_GLOBALS._player._oldSceneNumber) {
if (R2_INVENTORY.getObjectScene(R2_OPTO_DISK) != R2_GLOBALS._player._oldCharacterScene[1]) {
SceneItem::display2(126, 17);
} else {
R2_GLOBALS._player.disableControl();
Expand Down Expand Up @@ -1852,7 +1852,7 @@ void Scene300::postInit(SceneObjectList *OwnerList) {

case 3:
if (R2_GLOBALS._sceneManager._previousScene == 1500) {
R2_GLOBALS._player._fieldBC = 3150;
R2_GLOBALS._player._oldCharacterScene[3] = 3150;
R2_GLOBALS._player._characterScene[3] = 3150;
R2_GLOBALS._player._effect = 0;
R2_GLOBALS._player.setAction(NULL);
Expand Down

0 comments on commit 8a2500c

Please sign in to comment.