[Scummvm-cvs-logs] scummvm master -> afdb007e2e158efa4a9a1098f80ff224d0038729
dreammaster
dreammaster at scummvm.org
Thu Jul 4 15:08:59 CEST 2013
This automated email contains information about 26 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
fdabdae325 TSAGE: Bugfix for starting R2R scene 2000
40b91e588b TSAGE: Fix for R2R freeze returning to scene 2000 from 2425
ccdc113fe1 TSAGE: Added some descriptions to scene switch list
5ba9f831a0 TSAGE: Beginnings of implementing R2R maze UI
61df7e35c9 TSAGE: Further cleanup of existing R2R MazeUI code
527b1b9b9c TSAGE: Implemented R2R MazeUI::draw method
4dbc1ce5cc TSAGE: Fix for object initialisatioon in R2R scene 3500
e74e062bf4 TSAGE: Beginnings of renamings of R2R Maze UI
4bc868c896 TSAGE: Further renaming of R2R Maze UI
5eaa253732 TSAGE: Renaming of derived R2R scene 3500 Maze UI
a075afa48a TSAGE: R2R Maze UI now partially showing map
1e40570ec0 TSAGE: Fix handle leak in resource manager
8ec07246e6 TSAGE: Fix to display R2R maze map correctly
45ea2e0979 TSAGE: Starting to move in R2R scene 3500 maze
755f6c30a2 TSAGE: Fix moving past intersection in R2R scene 3500 maze
8e77285bc7 TSAGE: Set up a maze direction enum for R2R mazes
0205c9754d TSAGE: Added extra entries for diagonals to MazeDirection enum
831c4db6df TSAGE: Rearranged some of the R2R scene 3500 methods to group them
fcd53acb0b TSAGE: Fix for rotating in R2R maze scenes
264a52aae6 TSAGE: Corrected starting to maze again after rotating in maze
ce3e765f5f TSAGE: Fixes for moving south in R2R maze scene 3500
97d8f768c2 TSAGE: Renaming maze Ui field in R2R scene 1200
f355d7bfbd TSAGE: Bugfix for leaving R2R scene 3500
a49a7d5ad4 TSAGE: Fix for moving east in R2R maze scene 3500
fa737fd5af Merge branch 'master' into tsage_r2r
afdb007e2e Merge branch 'master' of https://github.com/scummvm/scummvm
Commit: fdabdae325ffcd3f6d19f335e10325a2339bd6be
https://github.com/scummvm/scummvm/commit/fdabdae325ffcd3f6d19f335e10325a2339bd6be
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-26T17:41:29-07:00
Commit Message:
TSAGE: Bugfix for starting R2R scene 2000
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes2.cpp
engines/tsage/ringworld2/ringworld2_scenes2.h
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
index 6a030e5..6783076 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
@@ -630,6 +630,7 @@ void Scene2000::Exit3::changeScene() {
break;
}
}
+
void Scene2000::Exit4::changeScene() {
Scene2000 *scene = (Scene2000 *)R2_GLOBALS._sceneManager._scene;
@@ -756,19 +757,21 @@ void Scene2000::Exit5::changeScene() {
}
}
-void Scene2000::postInit(SceneObjectList *OwnerList) {
- SceneExt::postInit();
- loadScene(2000);
-
+Scene2000::Scene2000(): SceneExt() {
if (R2_GLOBALS._sceneManager._previousScene != -1) {
R2_GLOBALS._v56605[1] = 21;
R2_GLOBALS._v56605[2] = 21;
}
- if ((R2_GLOBALS._player._characterScene[R2_GLOBALS._player._characterIndex] != R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex]) && (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] != 2350)) {
+ if ((R2_GLOBALS._player._characterScene[R2_GLOBALS._player._characterIndex]
+ != R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex])
+ && (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] != 2350)) {
R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] = 0;
}
+
_exitingFlag = false;
+}
+void Scene2000::postInit(SceneObjectList *OwnerList) {
_exit1.setDetails(Rect(0, 100, 14, 140), EXITCURSOR_W, 2000);
_exit1.setDest(Common::Point(14, 129));
_exit2.setDetails(Rect(305, 100, 320, 140), EXITCURSOR_E, 2000);
@@ -917,6 +920,8 @@ void Scene2000::postInit(SceneObjectList *OwnerList) {
initPlayer();
_item1.setDetails(Rect(0, 0, 320, 200), 2000, 0, -1, 23, 1, NULL);
+
+ SceneExt::postInit();
}
void Scene2000::remove() {
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h
index 281d1da..feceaa1 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.h
@@ -80,6 +80,7 @@ public:
Action1 _action1, _action2, _action3, _action4, _action5;
SequenceManager _sequenceManager;
+ Scene2000();
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void remove();
virtual void signal();
Commit: 40b91e588baf7094d864f4322901d6f33dbbff68
https://github.com/scummvm/scummvm/commit/40b91e588baf7094d864f4322901d6f33dbbff68
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-26T18:48:40-07:00
Commit Message:
TSAGE: Fix for R2R freeze returning to scene 2000 from 2425
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes2.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
index 6783076..02a0c05 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
@@ -1003,6 +1003,8 @@ void Scene2000::signal() {
g_globals->_sceneManager.changeScene(2350);
break;
default:
+ R2_GLOBALS._v56AAB = 0;
+ R2_GLOBALS._player.enableControl();
break;
}
}
Commit: ccdc113fe19eebab0932a63eb308ba0d29e38233
https://github.com/scummvm/scummvm/commit/ccdc113fe19eebab0932a63eb308ba0d29e38233
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-27T18:16:49-07:00
Commit Message:
TSAGE: Added some descriptions to scene switch list
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 97042cb..67af65c 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -166,7 +166,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Ice Maze: Large empty room
return new Scene2400();
case 2425:
- // Ice Maze:
+ // Ice Maze: The Hall of Records
return new Scene2425();
case 2430:
// Ice Maze: Bedroom
@@ -213,7 +213,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
case 2900:
error("Missing scene %d from group 2", sceneNumber);
/* Scene group #3 */
- //
+ // ARM Base Hanager
case 3100:
return new Scene3100();
case 3125:
@@ -258,16 +258,22 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Cutscene - Ship landing
return new Scene3350();
case 3375:
+ // Outer walkway
return new Scene3375();
case 3385:
+ // Corridor
return new Scene3385();
case 3395:
+ // Walkway
return new Scene3395();
case 3400:
+ // Confrontation
return new Scene3400();
case 3500:
+ // Maze action scene
return new Scene3500();
case 3600:
+ // Cutscene - walking at gunpoint
return new Scene3600();
case 3700:
// Cutscene - Teleport outside
Commit: 5ba9f831a0e7a7f11b1d9b20e6e00bf41d0a7137
https://github.com/scummvm/scummvm/commit/5ba9f831a0e7a7f11b1d9b20e6e00bf41d0a7137
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T07:47:37-07:00
Commit Message:
TSAGE: Beginnings of implementing R2R maze UI
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes1.h
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 67af65c..65030be 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -21,6 +21,7 @@
*/
#include "common/config-manager.h"
+#include "tsage/graphics.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
@@ -270,7 +271,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Confrontation
return new Scene3400();
case 3500:
- // Maze action scene
+ // Maze action sequencec
return new Scene3500();
case 3600:
// Cutscene - walking at gunpoint
@@ -1274,14 +1275,19 @@ void SceneAreaObject::setDetails(int resNum, int lookLineNum, int talkLineNum, i
/*****************************************************************************/
-UnkObject1200::UnkObject1200() {
+MazeUI::MazeUI() {
_field16 = _field3A = NULL;
_field12 = _field14 = 0;
- _field26 = _field28 = _field2A = _field2C = _field2E = _field30 = 0;
- _field32 = _field34 = _field36 = _field38 = _field3E = _field40 = 0;
+ _field26 = _field28 = _width = _height = _field2E = _field30 = 0;
+ _resNum = _field34 = _field36 = _field38 = _field3E = _field40 = 0;
}
-void UnkObject1200::synchronize(Serializer &s) {
+MazeUI::~MazeUI() {
+ DEALLOCATE(_field16);
+ DEALLOCATE(_field3A);
+}
+
+void MazeUI::synchronize(Serializer &s) {
SavedObject::synchronize(s);
_rect1.synchronize(s);
@@ -1293,11 +1299,11 @@ void UnkObject1200::synchronize(Serializer &s) {
s.syncAsSint16LE(_field14);
s.syncAsSint16LE(_field26);
s.syncAsSint16LE(_field28);
- s.syncAsSint16LE(_field2A);
- s.syncAsSint16LE(_field2C);
+ s.syncAsSint16LE(_width);
+ s.syncAsSint16LE(_height);
s.syncAsSint16LE(_field2E);
s.syncAsSint16LE(_field30);
- s.syncAsSint16LE(_field32);
+ s.syncAsSint16LE(_resNum);
s.syncAsSint16LE(_field34);
s.syncAsSint16LE(_field36);
s.syncAsSint16LE(_field38);
@@ -1305,16 +1311,58 @@ void UnkObject1200::synchronize(Serializer &s) {
s.syncAsSint16LE(_field40);
}
-void UnkObject1200::sub51AE9(int arg1) {
- warning("STUB: UnkObject1200::sub51AE9()");
+void MazeUI::load(int resNum) {
+ clear();
+ _resNum = resNum;
+
+ const byte *header = g_resourceManager->getResource(RT17, resNum, 0);
+
+ _field34 = resNum + 1000;
+ _field26 = READ_LE_UINT16(header + 2);
+ _field28 = READ_LE_UINT16(header + 4);
+ _field36 = 10;
+ _field38 = _field36 << 3;
+
+ Visage visage;
+ visage.setVisage(_field34, 1);
+
+ GfxSurface frame = visage.getFrame(2);
+ _width = frame.getBounds().width();
+ _height = frame.getBounds().height();
+
+ _field16 = ALLOCATE(_field26 * _field28 * 2);
+ const byte *res = g_resourceManager->getResource(RT17, resNum, 1);
+ Common::copy(res, res + (_field26 * _field28 * 2), _field16);
+
+ _field30 = _field2E = 0;
+ _field12 = (_rect1.width() + _width - 1) / _width;
+ _field14 = (_rect1.height() + _height - 1) / _height;
+
+ _field3E = (_field12 + 1) * _width;
+ _field3A = ALLOCATE(_field3E * _height);
+
+ _rect2 = Rect(0, 0, _width * _field26, _height * _field28);
+}
+
+void MazeUI::clear() {
+ if (!_resNum)
+ _resNum = 1;
+
+ if (_field16)
+ DEALLOCATE(_field16);
+ _field16 = NULL;
+
+ DEALLOCATE(_field3A);
+ _field3A = NULL;
+
}
-int UnkObject1200::sub51AF8(Common::Point pt) {
+int MazeUI::sub51AF8(Common::Point pt) {
if (!_rect1.contains(pt))
return -1;
- int tmp1 = (pt.x - _rect1.left + _field2E) / _field2A;
- int tmp2 = (pt.y - _rect1.top + _field30) / _field2C;
+ int tmp1 = (pt.x - _rect1.left + _field2E) / _width;
+ int tmp2 = (pt.y - _rect1.top + _field30) / _height;
if ((tmp1 >= 0) && (tmp2 >= 0) && (_field26 > tmp1) && (_field28 > tmp2))
return _field16[(((_field26 * tmp2) + tmp1)* 2)];
@@ -1322,7 +1370,7 @@ int UnkObject1200::sub51AF8(Common::Point pt) {
return -1;
}
-bool UnkObject1200::sub51AFD(Common::Point pt) {
+bool MazeUI::sub51AFD(Common::Point pt) {
int retval = false;
_field2E = pt.x;
@@ -1351,19 +1399,19 @@ bool UnkObject1200::sub51AFD(Common::Point pt) {
return retval;
}
-void UnkObject1200::sub51B02() {
- warning("STUB: UnkObject1200::sub51B02()");
+void MazeUI::sub51B02() {
+ warning("STUB: MazeUI::sub51B02()");
}
-void UnkObject1200::sub9EDE8(Rect rect) {
+void MazeUI::sub9EDE8(Rect rect) {
_rect1 = rect;
- warning("FIXME: UnkObject1200::sub9EDE8()");
+ warning("FIXME: MazeUI::sub9EDE8()");
// _rect1.clip(g_globals->gfxManager()._bounds);
}
-int UnkObject1200::sub9EE22(int &arg1, int &arg2) {
- arg1 /= _field2A;
- arg2 /= _field2C;
+int MazeUI::sub9EE22(int &arg1, int &arg2) {
+ arg1 /= _width;
+ arg2 /= _height;
if ((arg1 >= 0) && (arg2 >= 0) && (_field26 > arg1) && (_field28 > arg2)) {
return _field16[(((_field26 * arg2) + arg1) * 2)];
@@ -1372,6 +1420,10 @@ int UnkObject1200::sub9EE22(int &arg1, int &arg2) {
return -1;
}
+/*--------------------------------------------------------------------------*/
+
+/*--------------------------------------------------------------------------*/
+
void Scene1200::sub9DAD6(int indx) {
_object1.sub9EE22(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 0b573bf..3ca1ba8 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -276,53 +276,57 @@ public:
}
};
-class SceneAreaObject: public SceneArea {
- class Object1: public SceneActor {
- public:
- };
-public:
- Object1 _object1;
- int _insetCount;
-
- virtual void remove();
- virtual void process(Event &event);
- void setDetails(int visage, int strip, int frameNumber, const Common::Point &pt);
- void setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum);
-};
-
-class UnkObject1200 : public SavedObject {
+class MazeUI: public SavedObject {
+private:
+ void clear();
public:
Rect _rect1;
Rect _rect2;
- int *_field16;
- int *_field3A;
+ byte *_field16;
+ byte *_field3A;
int _field12;
int _field14;
int _field26;
int _field28;
- int _field2A;
- int _field2C;
+ int _width;
+ int _height;
int _field2E;
int _field30;
- int _field32;
+ int _resNum;
int _field34;
int _field36;
int _field38;
int _field3E;
int _field40;
+public:
+ MazeUI();
+ ~MazeUI();
+ void load(int resNum);
- UnkObject1200();
+ virtual Common::String getClassName() { return "MazeUI"; }
void synchronize(Serializer &s);
- void sub51AE9(int arg1);
int sub51AF8(Common::Point pt);
bool sub51AFD(Common::Point pt);
void sub51B02();
void sub9EDE8(Rect rect);
int sub9EE22(int &arg1, int &arg2);
- virtual Common::String getClassName() { return "UnkObject1200"; }
+};
+
+class SceneAreaObject: public SceneArea {
+ class Object1: public SceneActor {
+ public:
+ };
+public:
+ Object1 _object1;
+ int _insetCount;
+
+ virtual void remove();
+ virtual void process(Event &event);
+ void setDetails(int visage, int strip, int frameNumber, const Common::Point &pt);
+ void setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum);
};
/*--------------------------------------------------------------------------*/
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index af62ab6..ba12a4b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1136,7 +1136,7 @@ void Scene1200::postInit(SceneObjectList *OwnerList) {
tmpRect.set(110, 20, 210, 120);
_object1.sub9EDE8(tmpRect);
- _object1.sub51AE9(1);
+ _object1.load(1);
_object1.sub51AFD(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
_object1.sub51B02();
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index f65a899..d1e55ef 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -147,7 +147,7 @@ public:
NamedHotspot _item1;
SceneActor _actor1;
Area1 _area1;
- UnkObject1200 _object1;
+ MazeUI _object1;
SequenceManager _sequenceManager;
int _field412;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 61711d0..0e444a6 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -2888,6 +2888,7 @@ void Scene3400::signal() {
* Scene 3500 -
*
*--------------------------------------------------------------------------*/
+
Scene3500::Action1::Action1() {
_field1E = 0;
_field20 = 0;
@@ -3046,16 +3047,16 @@ void Scene3500::Actor7::sub109693(Common::Point Pt) {
}
int Scene3500::UnkObject3500::sub1097C9(int arg1) {
- return (_field2A / 2) + arg1 - (arg1 % _field2A);
+ return (_width / 2) + arg1 - (arg1 % _width);
}
int Scene3500::UnkObject3500::sub1097EF(int arg1) {
- return (_field2C / 2) + arg1 - (arg1 % _field2C);
+ return (_height / 2) + arg1 - (arg1 % _height);
}
int Scene3500::UnkObject3500::sub109C09(Common::Point pt) {
- int vx = pt.x / _field2A;
- int vy = pt.y / _field2C;
+ int vx = pt.x / _width;
+ int vy = pt.y / _height;
if ((vx >= 0) && (_field26 > vx) && (_field28 > vy)) {
return _field16[((_field26 * vy) + vx) * 2];
@@ -3665,7 +3666,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
tmpRect.set(160, 89, 299, 182);
_unkObj1.sub9EDE8(tmpRect);
- _unkObj1.sub51AE9(2);
+ _unkObj1.load(2);
_unkObj1.sub51AFD(Common::Point(_field127A, _field127C));
_action1._field24 = 0;
@@ -3787,6 +3788,7 @@ void Scene3500::process(Event &event) {
void Scene3500::dispatch() {
Rect tmpRect;
Scene::dispatch();
+
if (((_actor1._frame % 2) == 0) && (_action1._field24 == 0)) {
_actor1.setFrame(_actor1.changeFrame());
_field1276 = _actor1._frame;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index 44787b9..ffad37d 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -633,7 +633,7 @@ class Scene3500 : public SceneExt {
// TODO: double check if nothing specific is present, then remove this class
};
- class UnkObject3500 : public UnkObject1200 {
+ class UnkObject3500 : public MazeUI {
public:
int sub1097C9(int arg1);
int sub1097EF(int arg1);
Commit: 61df7e35c98b9d6b0ed8d030faea5e81bb3888f0
https://github.com/scummvm/scummvm/commit/61df7e35c98b9d6b0ed8d030faea5e81bb3888f0
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T09:06:40-07:00
Commit Message:
TSAGE: Further cleanup of existing R2R MazeUI code
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 65030be..1cd6561 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1293,8 +1293,6 @@ void MazeUI::synchronize(Serializer &s) {
_rect1.synchronize(s);
_rect2.synchronize(s);
- // FIXME: syncrhonize _field16 and _field3A
-
s.syncAsSint16LE(_field12);
s.syncAsSint16LE(_field14);
s.syncAsSint16LE(_field26);
@@ -1370,8 +1368,8 @@ int MazeUI::sub51AF8(Common::Point pt) {
return -1;
}
-bool MazeUI::sub51AFD(Common::Point pt) {
- int retval = false;
+bool MazeUI::setMazePosition(Common::Point pt) {
+ bool retval = false;
_field2E = pt.x;
_field30 = pt.y;
@@ -1399,14 +1397,13 @@ bool MazeUI::sub51AFD(Common::Point pt) {
return retval;
}
-void MazeUI::sub51B02() {
- warning("STUB: MazeUI::sub51B02()");
+void MazeUI::mazeProc1() {
+ warning("STUB: MazeUI::mazeProc1()");
}
-void MazeUI::sub9EDE8(Rect rect) {
+void MazeUI::setUIBounds(Rect rect) {
_rect1 = rect;
- warning("FIXME: MazeUI::sub9EDE8()");
-// _rect1.clip(g_globals->gfxManager()._bounds);
+ _rect1.clip(g_globals->gfxManager()._bounds);
}
int MazeUI::sub9EE22(int &arg1, int &arg2) {
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 3ca1ba8..5a9120f 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -309,9 +309,9 @@ public:
void synchronize(Serializer &s);
int sub51AF8(Common::Point pt);
- bool sub51AFD(Common::Point pt);
- void sub51B02();
- void sub9EDE8(Rect rect);
+ bool setMazePosition(Common::Point pt);
+ void mazeProc1();
+ void setUIBounds(Rect rect);
int sub9EE22(int &arg1, int &arg2);
};
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index ba12a4b..70a504a 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1134,12 +1134,12 @@ void Scene1200::postInit(SceneObjectList *OwnerList) {
_actor1.hide();
tmpRect.set(110, 20, 210, 120);
- _object1.sub9EDE8(tmpRect);
+ _object1.setUIBounds(tmpRect);
_object1.load(1);
- _object1.sub51AFD(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.sub51B02();
+ _object1.mazeProc1();
warning("set_pane_p(unk);");
R2_GLOBALS._player.enableControl();
@@ -1544,9 +1544,9 @@ void Scene1200::dispatch() {
Rect tmpRect;
Scene::dispatch();
if (_field41C != 0) {
- _object1.sub51AFD(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.sub51B02();
+ _object1.mazeProc1();
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
_field41C = 0;
@@ -1571,9 +1571,9 @@ void Scene1200::dispatch() {
default:
break;
}
- _object1.sub51AFD(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.sub51B02();
+ _object1.mazeProc1();
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 0e444a6..a8d3fd3 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3046,15 +3046,15 @@ void Scene3500::Actor7::sub109693(Common::Point Pt) {
setPosition(Pt);
}
-int Scene3500::UnkObject3500::sub1097C9(int arg1) {
+int Scene3500::MazeUI3500::sub1097C9(int arg1) {
return (_width / 2) + arg1 - (arg1 % _width);
}
-int Scene3500::UnkObject3500::sub1097EF(int arg1) {
+int Scene3500::MazeUI3500::sub1097EF(int arg1) {
return (_height / 2) + arg1 - (arg1 % _height);
}
-int Scene3500::UnkObject3500::sub109C09(Common::Point pt) {
+int Scene3500::MazeUI3500::sub109C09(Common::Point pt) {
int vx = pt.x / _width;
int vy = pt.y / _height;
@@ -3064,10 +3064,10 @@ int Scene3500::UnkObject3500::sub109C09(Common::Point pt) {
return -1;
}
-int Scene3500::UnkObject3500::sub109C5E(int &x, int &y) {
- int retVal = sub51AFD(Common::Point(x, y));
- x = _field2E;
- y = _field30;
+int Scene3500::MazeUI3500::sub109C5E(Common::Point &p) {
+ int retVal = setMazePosition(p);
+ p.x = _field2E;
+ p.y = _field30;
return retVal;
}
@@ -3082,8 +3082,8 @@ Scene3500::Scene3500() {
_field1274 = 0;
_field1276 = 0;
_field1278 = 0;
- _field127A = 0;
- _field127C = 0;
+ _position1.x = 0;
+ _position1.y = 0;
_field127E = 0;
_field1280 = 0;
_field1282 = 0;
@@ -3103,8 +3103,8 @@ void Scene3500::synchronize(Serializer &s) {
s.syncAsSint16LE(_field1274);
s.syncAsSint16LE(_field1276);
s.syncAsSint16LE(_field1278);
- s.syncAsSint16LE(_field127A);
- s.syncAsSint16LE(_field127C);
+ s.syncAsSint16LE(_position1.x);
+ s.syncAsSint16LE(_position1.y);
s.syncAsSint16LE(_field127E);
s.syncAsSint16LE(_field1280);
s.syncAsSint16LE(_field1282);
@@ -3217,11 +3217,11 @@ void Scene3500::Action1::signal() {
setDelay(1);
break;
case 4: {
- int si = scene->_unkObj1.sub109C09(Common::Point(scene->_field127A + 70, scene->_field127C + 46));
- int var2 = scene->_unkObj1.sub1097C9(scene->_field127A + 70) - 70;
- int var4 = scene->_unkObj1.sub1097EF(scene->_field127C + 46) - 46;
- int di = abs(var2 - scene->_field127A);
- int var6 = abs(var4 - scene->_field127C);
+ int si = scene->_mazeUI.sub109C09(Common::Point(scene->_position1.x + 70, scene->_position1.y + 46));
+ int var2 = scene->_mazeUI.sub1097C9(scene->_position1.x + 70) - 70;
+ int var4 = scene->_mazeUI.sub1097EF(scene->_position1.y + 46) - 46;
+ int di = abs(var2 - scene->_position1.x);
+ int var6 = abs(var4 - scene->_position1.y);
if ((scene->_actor1._frame % 2) != 0) {
scene->_actor1._frameChange = _field1E;
@@ -3354,12 +3354,12 @@ void Scene3500::Action1::signal() {
case 0:
// No break on purpose
case 4:
- scene->_field127A = scene->_unkObj1.sub1097C9(scene->_field127A + 70) - 70;
+ scene->_position1.x = scene->_mazeUI.sub1097C9(scene->_position1.x + 70) - 70;
break;
case 2:
// No break on purpose
case 6:
- scene->_field127C = scene->_unkObj1.sub1097EF(scene->_field127C + 46) - 46;
+ scene->_position1.y = scene->_mazeUI.sub1097EF(scene->_position1.y + 46) - 46;
break;
default:
break;
@@ -3576,8 +3576,8 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_field1272 = 1;
_field1270 = 4;
_field126E = 4;
- _field127A = 860;
- _field127C = 891;
+ _position1.x = 860;
+ _position1.y = 891;
_rotation = R2_GLOBALS._scenePalette.addRotation(240, 254, -1);
_rotation->setDelay(0);
_rotation->_idxChange = 1;
@@ -3665,13 +3665,13 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_actor3.fixPriority(200);
tmpRect.set(160, 89, 299, 182);
- _unkObj1.sub9EDE8(tmpRect);
- _unkObj1.load(2);
- _unkObj1.sub51AFD(Common::Point(_field127A, _field127C));
+ _mazeUI.setUIBounds(tmpRect);
+ _mazeUI.load(2);
+ _mazeUI.setMazePosition(_position1);
_action1._field24 = 0;
warning("gfx_set_pane_p()");
- _unkObj1.sub51B02();
+ _mazeUI.mazeProc1();
warning("gfx_set_pane_p()");
_field1286 = 1;
@@ -3803,7 +3803,7 @@ void Scene3500::dispatch() {
if (!_rotation)
return;
- int var_field127A = 0;
+ int var127A = 0;
int di = 0;
int var_4 = 0;
int var_6 = 0;
@@ -3819,17 +3819,17 @@ void Scene3500::dispatch() {
_field1282 = 0;
tmpRect.set(160, 89, 299, 182);
- var_field127A = _field127A;
- di = _field127C;
- var_4 = _unkObj1.sub1097C9(70) - 70;
- var_6 = _unkObj1.sub1097EF(_field127C + 46) - 46;
- var_8 = abs(var_4 - var_field127A);
+ var127A = _position1.x;
+ di = _position1.y;
+ var_4 = _mazeUI.sub1097C9(70) - 70;
+ var_6 = _mazeUI.sub1097EF(_position1.y + 46) - 46;
+ var_8 = abs(var_4 - var127A);
var_a = abs(var_6 - di);
dx = 0;
switch (_field1276) {
case 0:
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, 46));
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, 46));
if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
|| (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3840,9 +3840,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _unkObj1.sub1097EF(di + 46) - 46;
- di = _field127C - _field126E;
- dx = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ di = _position1.y - _field126E;
+ dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (tmpVar != dx)) {
di = var_6;
R2_GLOBALS._sound2.play(339);
@@ -3862,11 +3862,11 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _unkObj1.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.sub1097EF(di + 46) - 46;
var_a = abs(var_6 - di);
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
- if ( (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (di <= var_6) && (_field127C>= var_6))
+ if ( (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (di <= var_6) && (_position1.y>= var_6))
|| (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E > 3) && (_action1._field24 != 0)) ) {
di = var_6;
if ((tmpVar != 25) && (tmpVar != 26) && (tmpVar != 5) && (tmpVar != 14) && (tmpVar == 15))
@@ -3877,7 +3877,7 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 11) && (var_6 + 3 >= di) && (_field127C >= var_6 + 3)) {
+ } else if ((tmpVar == 11) && (var_6 + 3 >= di) && (_position1.y >= var_6 + 3)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -3886,7 +3886,7 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else if (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 != 0) && (var_8 <= 3)) {
- var_field127A = var_4;
+ var127A = var_4;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -3895,7 +3895,7 @@ void Scene3500::dispatch() {
}
break;
case 2:
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
|| (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3906,11 +3906,11 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _unkObj1.sub1097C9(var_field127A + 70) - 70;
- var_field127A = _field127A + _field126E;
- dx = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var127A = _position1.x + _field126E;
+ dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (tmpVar != dx)) {
- var_field127A = var_4;
+ var127A = var_4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -3919,7 +3919,7 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else if ((tmpVar == 6) && (tmpVar != dx)) {
- var_field127A = var_4 - 5;
+ var127A = var_4 - 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -3928,12 +3928,12 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _unkObj1.sub1097C9(var_field127A + 70) - 70;
- var_8 = abs(var_field127A - var_4);
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, tmpVar + 46));
- if ( (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (var_field127A >= var_4) && (_field127A <= var_4))
+ var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_8 = abs(var127A - var_4);
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, tmpVar + 46));
+ if ( (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (var127A >= var_4) && (_position1.x <= var_4))
|| (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
- var_field127A = var_4;
+ var127A = var_4;
if ((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -3942,8 +3942,8 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 6) && (var_4 - 5 <= var_field127A) && (_field127A <= var_4 - 5)) {
- var_field127A = var_4 - 5;
+ } else if ((tmpVar == 6) && (var_4 - 5 <= var127A) && (_position1.x <= var_4 - 5)) {
+ var127A = var_4 - 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -3961,7 +3961,7 @@ void Scene3500::dispatch() {
}
break;
case 4:
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
|| (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3972,9 +3972,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _unkObj1.sub1097EF(di + 46) - 46;
- di = _field127C + _field126E;
- dx = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ di = _position1.y + _field126E;
+ dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (tmpVar == dx)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4002,10 +4002,10 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _unkObj1.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.sub1097EF(di + 46) - 46;
var_a = abs(di - var_6);
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
- if ( (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (di >= var_6) && (_field127C <= var_6))
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ if ( (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (di >= var_6) && (_position1.y <= var_6))
|| (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E <= 3) && (_action1._field24 != 0)) ){
if ((tmpVar != 23) && (tmpVar != 24) && (tmpVar != 4) && (tmpVar != 14) && (tmpVar != 15))
R2_GLOBALS._sound2.play(339);
@@ -4015,7 +4015,7 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 16) && (var_6 - 3 <= di) && (_field127C <= var_6 - 3)) {
+ } else if ((tmpVar == 16) && (var_6 - 3 <= di) && (_position1.y <= var_6 - 3)) {
di = var_6 - 3;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4024,7 +4024,7 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 31) && (var_6 + 4 <= di) && (_field127C <= var_6 + 4)) {
+ } else if ((tmpVar == 31) && (var_6 + 4 <= di) && (_position1.y <= var_6 + 4)) {
di = var_6 + 4;
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -4032,12 +4032,12 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- if ((var_field127A == 660) && (_field126E + 306 <= di) && (di <= 307))
+ if ((var127A == 660) && (_field126E + 306 <= di) && (di <= 307))
++_field1284;
else
R2_GLOBALS._sound2.play(339);
} else if (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 != 0) && (var_8 <= 3)) {
- var_field127A = var_4;
+ var127A = var_4;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -4046,7 +4046,7 @@ void Scene3500::dispatch() {
}
break;
case 6:
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
|| (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -4057,11 +4057,11 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _unkObj1.sub1097C9(var_field127A + 70) - 70;
- var_field127A = _field127A - _field126E;
- dx = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
+ var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var127A = _position1.x - _field126E;
+ dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (tmpVar != dx)) {
- var_field127A = var_4;
+ var127A = var_4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -4070,7 +4070,7 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else if ((tmpVar == 1) && (tmpVar != dx)) {
- var_field127A = var_4 + 5;
+ var127A = var_4 + 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -4079,12 +4079,12 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _unkObj1.sub1097C9(var_field127A + 70) - 70;
- var_8 = abs(var_4 - var_field127A);
- tmpVar = _unkObj1.sub109C09(Common::Point(var_field127A + 70, di + 46));
- if ( (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (var_field127A <= var_4) && (_field127A >= var_4))
+ var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_8 = abs(var_4 - var127A);
+ tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ if ( (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (var127A <= var_4) && (_position1.x >= var_4))
|| (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
- var_field127A = var_4;
+ var127A = var_4;
if ((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4093,8 +4093,8 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 1) && (var_field127A >= var_4 + 5) && (_field127A >= var_4 + 5)) {
- var_field127A = var_4 + 5;
+ } else if ((tmpVar == 1) && (var127A >= var_4 + 5) && (_position1.x >= var_4 + 5)) {
+ var127A = var_4 + 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -4116,9 +4116,9 @@ void Scene3500::dispatch() {
}
if (_field1284 < 2) {
- _field127A = var_field127A;
- _field127C = di;
- if (_unkObj1.sub109C5E(_field127A, _field127C) != 0) {
+ _position1.x = var127A;
+ _position1.y = di;
+ if (_mazeUI.sub109C5E(_position1) != 0) {
_field1272 = 0;
_field126E = 0;
_field1270 = 0;
@@ -4126,7 +4126,7 @@ void Scene3500::dispatch() {
_rotation->_idxChange = 0;
}
warning("gfx_set_pane_p");
- _unkObj1.sub51B02();
+ _mazeUI.mazeProc1();
if (_field1284 != 0)
++_field1284;
}
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index ffad37d..60168c7 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -633,12 +633,12 @@ class Scene3500 : public SceneExt {
// TODO: double check if nothing specific is present, then remove this class
};
- class UnkObject3500 : public MazeUI {
+ class MazeUI3500 : public MazeUI {
public:
int sub1097C9(int arg1);
int sub1097EF(int arg1);
int sub109C09(Common::Point pt);
- int sub109C5E(int &x, int &y);
+ int sub109C5E(Common::Point &p);
};
public:
Action1 _action1;
@@ -660,7 +660,7 @@ public:
Actor8 _actor8;
Actor8 _actor9;
ASoundExt _aSound1;
- UnkObject3500 _unkObj1;
+ MazeUI3500 _mazeUI;
SequenceManager _sequenceManager;
int _fieldAF8;
@@ -672,8 +672,7 @@ public:
int _field1274;
int _field1276;
int _field1278;
- int _field127A;
- int _field127C;
+ Common::Point _position1;
int _field127E;
int _field1280;
int _field1282;
Commit: 527b1b9b9cc730a87618c22d22fdff3e0a992daf
https://github.com/scummvm/scummvm/commit/527b1b9b9cc730a87618c22d22fdff3e0a992daf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T15:24:26-07:00
Commit Message:
TSAGE: Implemented R2R MazeUI::draw method
Changed paths:
engines/tsage/graphics.cpp
engines/tsage/graphics.h
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index fb0b0b0..bcc4d1b 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -234,10 +234,15 @@ GfxSurface::GfxSurface(const GfxSurface &s) {
}
GfxSurface::~GfxSurface() {
+ clear();
+}
+
+void GfxSurface::clear() {
if (_customSurface) {
_customSurface->free();
delete _customSurface;
- }
+ _customSurface = NULL;
+ }
}
/**
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index 826f2fe..f006cee 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -42,6 +42,7 @@ class Rect : public Common::Rect, public Serialisable {
public:
Rect() : Common::Rect() {}
Rect(int16 x1, int16 y1, int16 x2, int16 y2) : Common::Rect(x1, y1, x2, y2) {}
+ Rect(const Common::Rect &r) : Common::Rect(r) {}
void set(int16 x1, int16 y1, int16 x2, int16 y2);
void collapse(int dx, int dy);
@@ -100,6 +101,7 @@ public:
void unlockSurface();
void synchronize(Serializer &s);
void create(int width, int height);
+ void clear();
void setBounds(const Rect &bounds) { _bounds = bounds; }
const Rect &getBounds() const { return _bounds; }
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 1cd6561..4ae12c9 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -21,6 +21,7 @@
*/
#include "common/config-manager.h"
+#include "common/rect.h"
#include "tsage/graphics.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
@@ -1276,15 +1277,14 @@ void SceneAreaObject::setDetails(int resNum, int lookLineNum, int talkLineNum, i
/*****************************************************************************/
MazeUI::MazeUI() {
- _field16 = _field3A = NULL;
+ _field16 = NULL;
_field12 = _field14 = 0;
_field26 = _field28 = _width = _height = _field2E = _field30 = 0;
- _resNum = _field34 = _field36 = _field38 = _field3E = _field40 = 0;
+ _resNum = _field34 = _field36 = _field38 = _mapImagePitch = _field40 = 0;
}
MazeUI::~MazeUI() {
DEALLOCATE(_field16);
- DEALLOCATE(_field3A);
}
void MazeUI::synchronize(Serializer &s) {
@@ -1305,7 +1305,7 @@ void MazeUI::synchronize(Serializer &s) {
s.syncAsSint16LE(_field34);
s.syncAsSint16LE(_field36);
s.syncAsSint16LE(_field38);
- s.syncAsSint16LE(_field3E);
+ s.syncAsSint16LE(_mapImagePitch);
s.syncAsSint16LE(_field40);
}
@@ -1336,8 +1336,8 @@ void MazeUI::load(int resNum) {
_field12 = (_rect1.width() + _width - 1) / _width;
_field14 = (_rect1.height() + _height - 1) / _height;
- _field3E = (_field12 + 1) * _width;
- _field3A = ALLOCATE(_field3E * _height);
+ _mapImagePitch = (_field12 + 1) * _width;
+ _mapImage.create(_mapImagePitch, _height);
_rect2 = Rect(0, 0, _width * _field26, _height * _field28);
}
@@ -1350,9 +1350,7 @@ void MazeUI::clear() {
DEALLOCATE(_field16);
_field16 = NULL;
- DEALLOCATE(_field3A);
- _field3A = NULL;
-
+ _mapImage.clear();
}
int MazeUI::sub51AF8(Common::Point pt) {
@@ -1397,8 +1395,65 @@ bool MazeUI::setMazePosition(Common::Point pt) {
return retval;
}
-void MazeUI::mazeProc1() {
- warning("STUB: MazeUI::mazeProc1()");
+void MazeUI::draw() {
+ int xs = _rect1.left;
+ int yPos = 0;
+ int yInc;
+ Visage visage;
+
+ for (int yp = 0; yp < _field14; yp += yInc) {
+ int y = yp + _field30 / _height;
+
+ for (int idx = 0; idx > _field12; ++idx) {
+ int x = _field2E / _width + idx;
+
+ int cell = getCellValue(Common::Point(x, y));
+ if (cell >= 0) {
+ int frameNum = (cell % _field36) + 1;
+ int rlbNum = (cell % _field38) / _field36 + 1;
+ int resNum = _field34 + (cell / _field38);
+
+ visage.setVisage(resNum, rlbNum);
+ GfxSurface frame = visage.getFrame(frameNum);
+
+ _mapImage.copyFrom(frame, 0, idx);
+ } else {
+ GfxSurface emptyRect;
+ emptyRect.create(_width, _height);
+
+ _mapImage.copyFrom(emptyRect, 0, idx);
+ }
+ }
+
+ if (yPos == 0) {
+ yPos = _rect1.top;
+ yInc = _height - (_field30 % _height);
+
+ Rect srcBounds(Common::Rect(_field2E % _width, _field30 % _height,
+ _rect1.width(), yInc));
+ Rect destBounds(Common::Rect(_rect1.left, yPos, _rect1.width(), yInc));
+
+ R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
+ } else {
+ if ((yPos + _height) < _rect1.bottom) {
+ yInc = _height;
+ } else {
+ yInc = _rect1.bottom - yPos;
+ }
+
+ Rect srcBounds(Common::Rect(0, _field2E, _rect1.width(), yInc));
+ Rect destBounds(Common::Rect(_rect1.left, yPos, _rect1.width(), yInc));
+ R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
+ }
+ }
+}
+
+int MazeUI::getCellValue(const Common::Point &p) {
+ if (p.x < 0 || p.y < 0 || p.x >= _field26 || p.y >= _field28) {
+ return -1;
+ } else {
+ return READ_LE_UINT16(_field16 + (_field26 * p.y + p.x) * 2);
+ }
}
void MazeUI::setUIBounds(Rect rect) {
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 5a9120f..93b67a4 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -279,12 +279,13 @@ public:
class MazeUI: public SavedObject {
private:
void clear();
+ int getCellValue(const Common::Point &p);
public:
Rect _rect1;
Rect _rect2;
byte *_field16;
- byte *_field3A;
+ GfxSurface _mapImage;
int _field12;
int _field14;
@@ -298,19 +299,19 @@ public:
int _field34;
int _field36;
int _field38;
- int _field3E;
+ int _mapImagePitch;
int _field40;
public:
MazeUI();
- ~MazeUI();
+ virtual ~MazeUI();
void load(int resNum);
+ void draw();
virtual Common::String getClassName() { return "MazeUI"; }
void synchronize(Serializer &s);
int sub51AF8(Common::Point pt);
bool setMazePosition(Common::Point pt);
- void mazeProc1();
void setUIBounds(Rect rect);
int sub9EE22(int &arg1, int &arg2);
};
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 70a504a..1f46c4b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1139,7 +1139,7 @@ void Scene1200::postInit(SceneObjectList *OwnerList) {
_object1.load(1);
_object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.mazeProc1();
+ _object1.draw();
warning("set_pane_p(unk);");
R2_GLOBALS._player.enableControl();
@@ -1546,7 +1546,7 @@ void Scene1200::dispatch() {
if (_field41C != 0) {
_object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.mazeProc1();
+ _object1.draw();
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
_field41C = 0;
@@ -1573,7 +1573,7 @@ void Scene1200::dispatch() {
}
_object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.mazeProc1();
+ _object1.draw();
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index a8d3fd3..baf68ed 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3671,7 +3671,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_action1._field24 = 0;
warning("gfx_set_pane_p()");
- _mazeUI.mazeProc1();
+ _mazeUI.draw();
warning("gfx_set_pane_p()");
_field1286 = 1;
@@ -4126,7 +4126,7 @@ void Scene3500::dispatch() {
_rotation->_idxChange = 0;
}
warning("gfx_set_pane_p");
- _mazeUI.mazeProc1();
+ _mazeUI.draw();
if (_field1284 != 0)
++_field1284;
}
Commit: 4dbc1ce5cc15a69b9609b8e0db00f11dd3644964
https://github.com/scummvm/scummvm/commit/4dbc1ce5cc15a69b9609b8e0db00f11dd3644964
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T16:38:58-07:00
Commit Message:
TSAGE: Fix for object initialisatioon in R2R scene 3500
Changed paths:
engines/tsage/graphics.h
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index f006cee..71ec5cc 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -42,7 +42,6 @@ class Rect : public Common::Rect, public Serialisable {
public:
Rect() : Common::Rect() {}
Rect(int16 x1, int16 y1, int16 x2, int16 y2) : Common::Rect(x1, y1, x2, y2) {}
- Rect(const Common::Rect &r) : Common::Rect(r) {}
void set(int16 x1, int16 y1, int16 x2, int16 y2);
void collapse(int dx, int dy);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 4ae12c9..5aa4a70 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1396,7 +1396,6 @@ bool MazeUI::setMazePosition(Common::Point pt) {
}
void MazeUI::draw() {
- int xs = _rect1.left;
int yPos = 0;
int yInc;
Visage visage;
@@ -1429,9 +1428,9 @@ void MazeUI::draw() {
yPos = _rect1.top;
yInc = _height - (_field30 % _height);
- Rect srcBounds(Common::Rect(_field2E % _width, _field30 % _height,
- _rect1.width(), yInc));
- Rect destBounds(Common::Rect(_rect1.left, yPos, _rect1.width(), yInc));
+ Rect srcBounds(_field2E % _width, _field30 % _height,
+ (_field2E % _width) + _rect1.width(), (_field30 % _height) + yInc);
+ Rect destBounds(_rect1.left, yPos, _rect1.right, yPos + yInc);
R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
} else {
@@ -1441,8 +1440,8 @@ void MazeUI::draw() {
yInc = _rect1.bottom - yPos;
}
- Rect srcBounds(Common::Rect(0, _field2E, _rect1.width(), yInc));
- Rect destBounds(Common::Rect(_rect1.left, yPos, _rect1.width(), yInc));
+ Rect srcBounds(0, _field2E, _rect1.width(), _field2E + yInc);
+ Rect destBounds(_rect1.left, yPos, _rect1.right, yPos + yInc);
R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
}
}
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index baf68ed..3f612bf 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3027,7 +3027,7 @@ void Scene3500::Actor7::sub109466(int arg1, int arg2, int arg3, int arg4, int ar
_fieldAC = _fieldAA / _fieldA8;
postInit();
- setup(10501, 3, 1);
+ setup(1050, 3, 1);
fixPriority(255);
sub109663(arg5);
}
@@ -3616,7 +3616,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_item7.setDetails(96, 3500, 12, 10, -1);
_actor8.postInit();
- _actor8.setup(10501, 1, 1);
+ _actor8.setup(1050, 1, 1);
_actor8.setPosition(Common::Point(160, 73));
_actor8.fixPriority(1);
@@ -3670,9 +3670,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_mazeUI.setMazePosition(_position1);
_action1._field24 = 0;
- warning("gfx_set_pane_p()");
_mazeUI.draw();
- warning("gfx_set_pane_p()");
_field1286 = 1;
R2_GLOBALS._player.postInit();
Commit: e74e062bf441cbb7a76b29d68007f2df7ec08590
https://github.com/scummvm/scummvm/commit/e74e062bf441cbb7a76b29d68007f2df7ec08590
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T18:21:29-07:00
Commit Message:
TSAGE: Beginnings of renamings of R2R Maze UI
Changed paths:
engines/tsage/graphics.cpp
engines/tsage/graphics.h
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index bcc4d1b..af6e6f9 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -1327,6 +1327,12 @@ void GfxManager::copyFrom(GfxSurface &src, int destX, int destY) {
_surface.copyFrom(src, destX, destY);
}
+void GfxManager::copyFrom(GfxSurface &src, const Rect &srcBounds, const Rect &destBounds) {
+ _surface.setBounds(_bounds);
+
+ _surface.copyFrom(src, srcBounds, destBounds);
+}
+
/*--------------------------------------------------------------------------*/
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index 71ec5cc..7239a99 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -303,6 +303,7 @@ public:
}
void copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion = NULL);
void copyFrom(GfxSurface &src, int destX, int destY);
+ void copyFrom(GfxSurface &src, const Rect &srcBounds, const Rect &destBounds);
GfxSurface &getSurface() {
_surface.setBounds(_bounds);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 5aa4a70..67382d8 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1279,8 +1279,8 @@ void SceneAreaObject::setDetails(int resNum, int lookLineNum, int talkLineNum, i
MazeUI::MazeUI() {
_field16 = NULL;
_field12 = _field14 = 0;
- _field26 = _field28 = _width = _height = _field2E = _field30 = 0;
- _resNum = _field34 = _field36 = _field38 = _mapImagePitch = _field40 = 0;
+ _mapCells.x = _mapCells.y = _cellSize.x = _cellSize.y = _cellOffset.x = _cellOffset.y = 0;
+ _resNum = _cellsResNum = _field36 = _field38 = _mapImagePitch = _field40 = 0;
}
MazeUI::~MazeUI() {
@@ -1290,22 +1290,16 @@ MazeUI::~MazeUI() {
void MazeUI::synchronize(Serializer &s) {
SavedObject::synchronize(s);
- _rect1.synchronize(s);
- _rect2.synchronize(s);
+ s.syncAsSint16LE(_resNum);
+ if (s.isLoading())
+ load(_resNum);
s.syncAsSint16LE(_field12);
s.syncAsSint16LE(_field14);
- s.syncAsSint16LE(_field26);
- s.syncAsSint16LE(_field28);
- s.syncAsSint16LE(_width);
- s.syncAsSint16LE(_height);
- s.syncAsSint16LE(_field2E);
- s.syncAsSint16LE(_field30);
- s.syncAsSint16LE(_resNum);
- s.syncAsSint16LE(_field34);
+ s.syncAsSint16LE(_cellOffset.x);
+ s.syncAsSint16LE(_cellOffset.y);
s.syncAsSint16LE(_field36);
s.syncAsSint16LE(_field38);
- s.syncAsSint16LE(_mapImagePitch);
s.syncAsSint16LE(_field40);
}
@@ -1315,31 +1309,31 @@ void MazeUI::load(int resNum) {
const byte *header = g_resourceManager->getResource(RT17, resNum, 0);
- _field34 = resNum + 1000;
- _field26 = READ_LE_UINT16(header + 2);
- _field28 = READ_LE_UINT16(header + 4);
+ _cellsResNum = resNum + 1000;
+ _mapCells.x = READ_LE_UINT16(header + 2);
+ _mapCells.y = READ_LE_UINT16(header + 4);
_field36 = 10;
_field38 = _field36 << 3;
Visage visage;
- visage.setVisage(_field34, 1);
+ visage.setVisage(_cellsResNum, 1);
GfxSurface frame = visage.getFrame(2);
- _width = frame.getBounds().width();
- _height = frame.getBounds().height();
+ _cellSize.x = frame.getBounds().width();
+ _cellSize.y = frame.getBounds().height();
- _field16 = ALLOCATE(_field26 * _field28 * 2);
+ _field16 = ALLOCATE(_mapCells.x * _mapCells.y * 2);
const byte *res = g_resourceManager->getResource(RT17, resNum, 1);
- Common::copy(res, res + (_field26 * _field28 * 2), _field16);
+ Common::copy(res, res + (_mapCells.x * _mapCells.y * 2), _field16);
- _field30 = _field2E = 0;
- _field12 = (_rect1.width() + _width - 1) / _width;
- _field14 = (_rect1.height() + _height - 1) / _height;
+ _cellOffset.y = _cellOffset.x = 0;
+ _field12 = (_displayBounds.width() + _cellSize.x - 1) / _cellSize.x;
+ _field14 = (_displayBounds.height() + _cellSize.y - 1) / _cellSize.y;
- _mapImagePitch = (_field12 + 1) * _width;
- _mapImage.create(_mapImagePitch, _height);
+ _mapImagePitch = (_field12 + 1) * _cellSize.x;
+ _mapImage.create(_mapImagePitch, _cellSize.y);
- _rect2 = Rect(0, 0, _width * _field26, _height * _field28);
+ _mapBounds = Rect(0, 0, _cellSize.x * _mapCells.x, _cellSize.y * _mapCells.y);
}
void MazeUI::clear() {
@@ -1353,42 +1347,29 @@ void MazeUI::clear() {
_mapImage.clear();
}
-int MazeUI::sub51AF8(Common::Point pt) {
- if (!_rect1.contains(pt))
- return -1;
-
- int tmp1 = (pt.x - _rect1.left + _field2E) / _width;
- int tmp2 = (pt.y - _rect1.top + _field30) / _height;
-
- if ((tmp1 >= 0) && (tmp2 >= 0) && (_field26 > tmp1) && (_field28 > tmp2))
- return _field16[(((_field26 * tmp2) + tmp1)* 2)];
-
- return -1;
-}
-
-bool MazeUI::setMazePosition(Common::Point pt) {
+bool MazeUI::setMazePosition(const Common::Point &pt) {
bool retval = false;
- _field2E = pt.x;
- _field30 = pt.y;
+ _cellOffset.x = pt.x;
+ _cellOffset.y = pt.y;
- if (_field2E < _rect2.top) {
- _field2E = _rect2.top;
+ if (_cellOffset.x < _mapBounds.top) {
+ _cellOffset.x = _mapBounds.top;
retval = true;
}
- if (_field30 < _rect2.left) {
- _field30 = _rect2.left;
+ if (_cellOffset.y < _mapBounds.left) {
+ _cellOffset.y = _mapBounds.left;
retval = true;
}
- if (_field2E + _rect1.width() > _rect2.right) {
- _field2E = _rect2.right - _rect1.width();
+ if (_cellOffset.x + _displayBounds.width() > _mapBounds.right) {
+ _cellOffset.x = _mapBounds.right - _displayBounds.width();
retval = true;
}
- if (_field30 + _rect1.height() > _rect2.bottom) {
- _field30 = _rect2.bottom - _rect1.height();
+ if (_cellOffset.y + _displayBounds.height() > _mapBounds.bottom) {
+ _cellOffset.y = _mapBounds.bottom - _displayBounds.height();
retval = true;
}
@@ -1401,16 +1382,16 @@ void MazeUI::draw() {
Visage visage;
for (int yp = 0; yp < _field14; yp += yInc) {
- int y = yp + _field30 / _height;
+ int y = yp + _cellOffset.y / _cellSize.y;
for (int idx = 0; idx > _field12; ++idx) {
- int x = _field2E / _width + idx;
+ int x = _cellOffset.x / _cellSize.x + idx;
- int cell = getCellValue(Common::Point(x, y));
+ int cell = getCellFromCellXY(Common::Point(x, y));
if (cell >= 0) {
int frameNum = (cell % _field36) + 1;
int rlbNum = (cell % _field38) / _field36 + 1;
- int resNum = _field34 + (cell / _field38);
+ int resNum = _cellsResNum + (cell / _field38);
visage.setVisage(resNum, rlbNum);
GfxSurface frame = visage.getFrame(frameNum);
@@ -1418,54 +1399,67 @@ void MazeUI::draw() {
_mapImage.copyFrom(frame, 0, idx);
} else {
GfxSurface emptyRect;
- emptyRect.create(_width, _height);
+ emptyRect.create(_cellSize.x, _cellSize.y);
_mapImage.copyFrom(emptyRect, 0, idx);
}
}
if (yPos == 0) {
- yPos = _rect1.top;
- yInc = _height - (_field30 % _height);
+ yPos = _displayBounds.top;
+ yInc = _cellSize.y - (_cellOffset.y % _cellSize.y);
- Rect srcBounds(_field2E % _width, _field30 % _height,
- (_field2E % _width) + _rect1.width(), (_field30 % _height) + yInc);
- Rect destBounds(_rect1.left, yPos, _rect1.right, yPos + yInc);
+ Rect srcBounds(_cellOffset.x % _cellSize.x, _cellOffset.y % _cellSize.y,
+ (_cellOffset.x % _cellSize.x) + _displayBounds.width(), (_cellOffset.y % _cellSize.y) + yInc);
+ Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + yInc);
- R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
+ R2_GLOBALS.gfxManager().copyFrom(_mapImage, srcBounds, destBounds);
} else {
- if ((yPos + _height) < _rect1.bottom) {
- yInc = _height;
+ if ((yPos + _cellSize.y) < _displayBounds.bottom) {
+ yInc = _cellSize.y;
} else {
- yInc = _rect1.bottom - yPos;
+ yInc = _displayBounds.bottom - yPos;
}
- Rect srcBounds(0, _field2E, _rect1.width(), _field2E + yInc);
- Rect destBounds(_rect1.left, yPos, _rect1.right, yPos + yInc);
- R2_GLOBALS._screenSurface.copyFrom(_mapImage, srcBounds, destBounds);
+ Rect srcBounds(0, _cellOffset.x, _displayBounds.width(), _cellOffset.x + yInc);
+ Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + yInc);
+ R2_GLOBALS.gfxManager().copyFrom(_mapImage, srcBounds, destBounds);
}
}
}
-int MazeUI::getCellValue(const Common::Point &p) {
- if (p.x < 0 || p.y < 0 || p.x >= _field26 || p.y >= _field28) {
+int MazeUI::getCellFromPixelXY(const Common::Point &pt) {
+ if (!_displayBounds.contains(pt))
+ return -1;
+
+ int tmp1 = (pt.x - _displayBounds.left + _cellOffset.x) / _cellSize.x;
+ int tmp2 = (pt.y - _displayBounds.top + _cellOffset.y) / _cellSize.y;
+
+ if ((tmp1 >= 0) && (tmp2 >= 0) && (_mapCells.x > tmp1) && (_mapCells.y > tmp2))
+ return _field16[(((_mapCells.x * tmp2) + tmp1)* 2)];
+
+ return -1;
+}
+
+int MazeUI::getCellFromCellXY(const Common::Point &p) {
+ if (p.x < 0 || p.y < 0 || p.x >= _mapCells.x || p.y >= _mapCells.y) {
return -1;
} else {
- return READ_LE_UINT16(_field16 + (_field26 * p.y + p.x) * 2);
+ return READ_LE_UINT16(_field16 + (_mapCells.x * p.y + p.x) * 2);
}
}
-void MazeUI::setUIBounds(Rect rect) {
- _rect1 = rect;
- _rect1.clip(g_globals->gfxManager()._bounds);
+void MazeUI::setDisplayBounds(const Rect &r) {
+ _displayBounds = r;
+ _displayBounds.clip(g_globals->gfxManager()._bounds);
}
int MazeUI::sub9EE22(int &arg1, int &arg2) {
- arg1 /= _width;
- arg2 /= _height;
+ arg1 /= _cellSize.x;
+ arg2 /= _cellSize.y;
- if ((arg1 >= 0) && (arg2 >= 0) && (_field26 > arg1) && (_field28 > arg2)) {
- return _field16[(((_field26 * arg2) + arg1) * 2)];
+ if ((arg1 >= 0) && (arg2 >= 0) && (_mapCells.x > arg1) && (_mapCells.y > arg2)) {
+ return _field16[(((_mapCells.x * arg2) + arg1) * 2)];
}
return -1;
@@ -1480,7 +1474,7 @@ void Scene1200::sub9DAD6(int indx) {
switch (indx) {
case 0:
- if ( ((_object1.sub51AF8(Common::Point(200, 50)) > 36) || (_object1.sub51AF8(Common::Point(200, 88)) > 36))
+ if ( ((_object1.getCellFromPixelXY(Common::Point(200, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(200, 88)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 3) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
|| ((R2_GLOBALS._v56AA2 == 13) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
|| ((R2_GLOBALS._v56AA2 == 29) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
@@ -1489,7 +1483,7 @@ void Scene1200::sub9DAD6(int indx) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1200;
setAction(&_sequenceManager, this, 1200, &_actor1, NULL);
- } else if (_object1.sub51AF8(Common::Point(200, 69)) == 36) {
+ } else if (_object1.getCellFromPixelXY(Common::Point(200, 69)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3155)
@@ -1524,7 +1518,7 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 1:
- if ( ((_object1.sub51AF8(Common::Point(120, 50)) > 36) || (_object1.sub51AF8(Common::Point(120, 88)) > 36))
+ if ( ((_object1.getCellFromPixelXY(Common::Point(120, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(120, 88)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 7) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
|| ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
|| ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
@@ -1533,7 +1527,7 @@ void Scene1200::sub9DAD6(int indx) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1201;
setAction(&_sequenceManager, this, 1201, &_actor1, NULL);
- } else if (_object1.sub51AF8(Common::Point(120, 69)) == 36) {
+ } else if (_object1.getCellFromPixelXY(Common::Point(120, 69)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
@@ -1568,14 +1562,14 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 2:
- if ( ((_object1.sub51AF8(Common::Point(140, 110)) > 36) || (_object1.sub51AF8(Common::Point(178, 110)) > 36))
+ if ( ((_object1.getCellFromPixelXY(Common::Point(140, 110)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 110)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 5) && (_field418 != 3))
|| ((R2_GLOBALS._v56AA2 == 41) && (R2_GLOBALS._v56AA4 == 21)) )
) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1203;
setAction(&_sequenceManager, this, 1203, &_actor1, NULL);
- } else if (_object1.sub51AF8(Common::Point(160, 110)) == 36) {
+ } else if (_object1.getCellFromPixelXY(Common::Point(160, 110)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
@@ -1610,14 +1604,14 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 3:
- if ( ((_object1.sub51AF8(Common::Point(140, 30)) > 36) || (_object1.sub51AF8(Common::Point(178, 30)) > 36))
+ if ( ((_object1.getCellFromPixelXY(Common::Point(140, 30)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 30)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 9) && (_field418 != 3))
|| ((R2_GLOBALS._v56AA2 == 35) && (R2_GLOBALS._v56AA4 == 17)) )
) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1202;
setAction(&_sequenceManager, this, 1202, &_actor1, NULL);
- } else if (_object1.sub51AF8(Common::Point(160, 30)) == 36) {
+ } else if (_object1.getCellFromPixelXY(Common::Point(160, 30)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 93b67a4..75347f2 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -279,24 +279,20 @@ public:
class MazeUI: public SavedObject {
private:
void clear();
- int getCellValue(const Common::Point &p);
public:
- Rect _rect1;
- Rect _rect2;
+ Rect _displayBounds;
+ Rect _mapBounds;
byte *_field16;
GfxSurface _mapImage;
int _field12;
int _field14;
- int _field26;
- int _field28;
- int _width;
- int _height;
- int _field2E;
- int _field30;
+ Common::Point _mapCells;
+ Common::Point _cellSize;
+ Common::Point _cellOffset;
int _resNum;
- int _field34;
+ int _cellsResNum;
int _field36;
int _field38;
int _mapImagePitch;
@@ -304,15 +300,16 @@ public:
public:
MazeUI();
virtual ~MazeUI();
+ void setDisplayBounds(const Rect &r);
+ bool setMazePosition(const Common::Point &pt);
void load(int resNum);
void draw();
+ int getCellFromPixelXY(const Common::Point &pt);
+ int getCellFromCellXY(const Common::Point &p);
virtual Common::String getClassName() { return "MazeUI"; }
void synchronize(Serializer &s);
- int sub51AF8(Common::Point pt);
- bool setMazePosition(Common::Point pt);
- void setUIBounds(Rect rect);
int sub9EE22(int &arg1, int &arg2);
};
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 1f46c4b..d77a8bd 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1099,8 +1099,6 @@ void Scene1200::Area1::proc13(int resNum, int lookLineNum, int talkLineNum, int
}
void Scene1200::postInit(SceneObjectList *OwnerList) {
- Rect tmpRect;
-
loadScene(1200);
SceneExt::postInit();
@@ -1133,8 +1131,7 @@ void Scene1200::postInit(SceneObjectList *OwnerList) {
_actor1.postInit();
_actor1.hide();
- tmpRect.set(110, 20, 210, 120);
- _object1.setUIBounds(tmpRect);
+ _object1.setDisplayBounds(Rect(110, 20, 210, 120));
_object1.load(1);
_object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
@@ -1397,7 +1394,7 @@ void Scene1200::process(Event &event) {
if (event.eventType == EVENT_BUTTON_DOWN) {
_object1.sub9EE22(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
- int unk = _object1.sub51AF8(event.mousePos);
+ int unk = _object1.getCellFromPixelXY(event.mousePos);
switch (R2_GLOBALS._events.getCursor()) {
case CURSOR_ARROW:
event.handled = true;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 3f612bf..475c743 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -2978,6 +2978,8 @@ void Scene3500::Action1::sub108732(int arg1) {
}
}
+/*--------------------------------------------------------------------------*/
+
Scene3500::Action2::Action2() {
_field1E = 0;
}
@@ -2988,6 +2990,8 @@ void Scene3500::Action2::synchronize(Serializer &s) {
s.syncAsSint16LE(_field1E);
}
+/*--------------------------------------------------------------------------*/
+
Scene3500::Item4::Item4() {
_field34 = 0;
}
@@ -2998,6 +3002,8 @@ void Scene3500::Item4::synchronize(Serializer &s) {
s.syncAsSint16LE(_field34);
}
+/*--------------------------------------------------------------------------*/
+
Scene3500::Actor7::Actor7() {
_fieldA4 = 0;
_fieldA6 = 0;
@@ -3046,28 +3052,29 @@ void Scene3500::Actor7::sub109693(Common::Point Pt) {
setPosition(Pt);
}
+/*--------------------------------------------------------------------------*/
+
int Scene3500::MazeUI3500::sub1097C9(int arg1) {
- return (_width / 2) + arg1 - (arg1 % _width);
+ return (_cellSize.x / 2) + arg1 - (arg1 % _cellSize.x);
}
int Scene3500::MazeUI3500::sub1097EF(int arg1) {
- return (_height / 2) + arg1 - (arg1 % _height);
+ return (_cellSize.y / 2) + arg1 - (arg1 % _cellSize.y);
}
int Scene3500::MazeUI3500::sub109C09(Common::Point pt) {
- int vx = pt.x / _width;
- int vy = pt.y / _height;
+ int vx = pt.x / _cellSize.x;
+ int vy = pt.y / _cellSize.y;
- if ((vx >= 0) && (_field26 > vx) && (_field28 > vy)) {
- return _field16[((_field26 * vy) + vx) * 2];
+ if ((vx >= 0) && (_mapCells.x > vx) && (_mapCells.y > vy)) {
+ return _field16[((_mapCells.x * vy) + vx) * 2];
} else
return -1;
}
int Scene3500::MazeUI3500::sub109C5E(Common::Point &p) {
int retVal = setMazePosition(p);
- p.x = _field2E;
- p.y = _field30;
+ p = _cellOffset;
return retVal;
}
@@ -3560,7 +3567,6 @@ bool Scene3500::Actor7::startAction(CursorType action, Event &event) {
void Scene3500::postInit(SceneObjectList *OwnerList) {
byte tmpPal[768];
- Rect tmpRect;
loadScene(1050);
R2_GLOBALS._uiElements._active = false;
@@ -3664,8 +3670,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_actor3.setPosition(Common::Point(126, 108));
_actor3.fixPriority(200);
- tmpRect.set(160, 89, 299, 182);
- _mazeUI.setUIBounds(tmpRect);
+ _mazeUI.setDisplayBounds(Rect(160, 89, 299, 182));
_mazeUI.load(2);
_mazeUI.setMazePosition(_position1);
@@ -4123,7 +4128,7 @@ void Scene3500::dispatch() {
_rotation->setDelay(0);
_rotation->_idxChange = 0;
}
- warning("gfx_set_pane_p");
+
_mazeUI.draw();
if (_field1284 != 0)
++_field1284;
Commit: 4bc868c89668d0d7391530928ac1402aafbf1e1b
https://github.com/scummvm/scummvm/commit/4bc868c89668d0d7391530928ac1402aafbf1e1b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T18:54:24-07:00
Commit Message:
TSAGE: Further renaming of R2R Maze UI
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 67382d8..c17fcc9 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1277,14 +1277,14 @@ void SceneAreaObject::setDetails(int resNum, int lookLineNum, int talkLineNum, i
/*****************************************************************************/
MazeUI::MazeUI() {
- _field16 = NULL;
+ _mapData = NULL;
_field12 = _field14 = 0;
_mapCells.x = _mapCells.y = _cellSize.x = _cellSize.y = _cellOffset.x = _cellOffset.y = 0;
_resNum = _cellsResNum = _field36 = _field38 = _mapImagePitch = _field40 = 0;
}
MazeUI::~MazeUI() {
- DEALLOCATE(_field16);
+ DEALLOCATE(_mapData);
}
void MazeUI::synchronize(Serializer &s) {
@@ -1322,9 +1322,7 @@ void MazeUI::load(int resNum) {
_cellSize.x = frame.getBounds().width();
_cellSize.y = frame.getBounds().height();
- _field16 = ALLOCATE(_mapCells.x * _mapCells.y * 2);
- const byte *res = g_resourceManager->getResource(RT17, resNum, 1);
- Common::copy(res, res + (_mapCells.x * _mapCells.y * 2), _field16);
+ _mapData = g_resourceManager->getResource(RT17, resNum, 1);
_cellOffset.y = _cellOffset.x = 0;
_field12 = (_displayBounds.width() + _cellSize.x - 1) / _cellSize.x;
@@ -1340,9 +1338,9 @@ void MazeUI::clear() {
if (!_resNum)
_resNum = 1;
- if (_field16)
- DEALLOCATE(_field16);
- _field16 = NULL;
+ if (_mapData)
+ DEALLOCATE(_mapData);
+ _mapData = NULL;
_mapImage.clear();
}
@@ -1432,11 +1430,11 @@ int MazeUI::getCellFromPixelXY(const Common::Point &pt) {
if (!_displayBounds.contains(pt))
return -1;
- int tmp1 = (pt.x - _displayBounds.left + _cellOffset.x) / _cellSize.x;
- int tmp2 = (pt.y - _displayBounds.top + _cellOffset.y) / _cellSize.y;
+ int cellX = (pt.x - _displayBounds.left + _cellOffset.x) / _cellSize.x;
+ int cellY = (pt.y - _displayBounds.top + _cellOffset.y) / _cellSize.y;
- if ((tmp1 >= 0) && (tmp2 >= 0) && (_mapCells.x > tmp1) && (_mapCells.y > tmp2))
- return _field16[(((_mapCells.x * tmp2) + tmp1)* 2)];
+ if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y))
+ return (int16)READ_LE_UINT16(_mapData + ((_mapCells.x * cellY) + cellX) * 2);
return -1;
}
@@ -1445,211 +1443,24 @@ int MazeUI::getCellFromCellXY(const Common::Point &p) {
if (p.x < 0 || p.y < 0 || p.x >= _mapCells.x || p.y >= _mapCells.y) {
return -1;
} else {
- return READ_LE_UINT16(_field16 + (_mapCells.x * p.y + p.x) * 2);
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * p.y + p.x) * 2);
}
}
-void MazeUI::setDisplayBounds(const Rect &r) {
- _displayBounds = r;
- _displayBounds.clip(g_globals->gfxManager()._bounds);
-}
+int MazeUI::pixelToCellXY(int &x, int &y) {
+ x /= _cellSize.x;
+ y /= _cellSize.y;
-int MazeUI::sub9EE22(int &arg1, int &arg2) {
- arg1 /= _cellSize.x;
- arg2 /= _cellSize.y;
-
- if ((arg1 >= 0) && (arg2 >= 0) && (_mapCells.x > arg1) && (_mapCells.y > arg2)) {
- return _field16[(((_mapCells.x * arg2) + arg1) * 2)];
+ if ((x >= 0) && (y >= 0) && (_mapCells.x > x) && (_mapCells.y > y)) {
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * y + x) * 2);
}
return -1;
}
-/*--------------------------------------------------------------------------*/
-
-/*--------------------------------------------------------------------------*/
-
-void Scene1200::sub9DAD6(int indx) {
- _object1.sub9EE22(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
-
- switch (indx) {
- case 0:
- if ( ((_object1.getCellFromPixelXY(Common::Point(200, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(200, 88)) > 36))
- && ( ((R2_GLOBALS._v56AA2 == 3) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
- || ((R2_GLOBALS._v56AA2 == 13) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
- || ((R2_GLOBALS._v56AA2 == 29) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
- || ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 41)) )
- ) {
- R2_GLOBALS._player.disableControl();
- _sceneMode = 1200;
- setAction(&_sequenceManager, this, 1200, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(200, 69)) == 36) {
- switch (_field412 - 1) {
- case 0:
- if (R2_GLOBALS._player._visage == 3155)
- _sceneMode = 15;
- else
- _sceneMode = 10;
- break;
- case 1:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 76;
- else
- _sceneMode = 75;
- break;
- case 2:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 101;
- else
- _sceneMode = 100;
- break;
- case 3:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 111;
- else
- _sceneMode = 110;
- break;
- default:
- break;
- }
- R2_GLOBALS._player.disableControl();
- _field412 = 1;
- signal();
- }
- break;
- case 1:
- if ( ((_object1.getCellFromPixelXY(Common::Point(120, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(120, 88)) > 36))
- && ( ((R2_GLOBALS._v56AA2 == 7) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
- || ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
- || ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
- || ((R2_GLOBALS._v56AA2 == 5) && (R2_GLOBALS._v56AA4 == 5)) )
- ) {
- R2_GLOBALS._player.disableControl();
- _sceneMode = 1201;
- setAction(&_sequenceManager, this, 1201, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(120, 69)) == 36) {
- switch (_field412 - 1) {
- case 0:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 56;
- else
- _sceneMode = 55;
- break;
- case 1:
- if (R2_GLOBALS._player._visage == 3155)
- _sceneMode = 25;
- else
- _sceneMode = 20;
- break;
- case 2:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 91;
- else
- _sceneMode = 90;
- break;
- case 3:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 121;
- else
- _sceneMode = 120;
- break;
- default:
- break;
- }
- R2_GLOBALS._player.disableControl();
- _field412 = 2;
- signal();
- }
- break;
- case 2:
- if ( ((_object1.getCellFromPixelXY(Common::Point(140, 110)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 110)) > 36))
- && ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 5) && (_field418 != 3))
- || ((R2_GLOBALS._v56AA2 == 41) && (R2_GLOBALS._v56AA4 == 21)) )
- ) {
- R2_GLOBALS._player.disableControl();
- _sceneMode = 1203;
- setAction(&_sequenceManager, this, 1203, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(160, 110)) == 36) {
- switch (_field412 - 1) {
- case 0:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 51;
- else
- _sceneMode = 50;
- break;
- case 1:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 81;
- else
- _sceneMode = 80;
- break;
- case 2:
- if (R2_GLOBALS._player._visage == 3155)
- _sceneMode = 35;
- else
- _sceneMode = 30;
- break;
- case 3:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 116;
- else
- _sceneMode = 115;
- break;
- default:
- break;
- }
- R2_GLOBALS._player.disableControl();
- _field412 = 3;
- signal();
- }
- break;
- case 3:
- if ( ((_object1.getCellFromPixelXY(Common::Point(140, 30)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 30)) > 36))
- && ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 9) && (_field418 != 3))
- || ((R2_GLOBALS._v56AA2 == 35) && (R2_GLOBALS._v56AA4 == 17)) )
- ) {
- R2_GLOBALS._player.disableControl();
- _sceneMode = 1202;
- setAction(&_sequenceManager, this, 1202, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(160, 30)) == 36) {
- switch (_field412 - 1) {
- case 0:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 61;
- else
- _sceneMode = 60;
- break;
- case 1:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 71;
- else
- _sceneMode = 70;
- break;
- case 2:
- if (R2_GLOBALS._player._visage == 3156)
- _sceneMode = 96;
- else
- _sceneMode = 95;
- break;
- case 3:
- if (R2_GLOBALS._player._visage == 3155)
- _sceneMode = 45;
- else
- _sceneMode = 40;
- break;
- default:
- _sceneMode = 1;
- R2_GLOBALS._player.setup(3156, 4, 6);
- break;
- }
- R2_GLOBALS._player.disableControl();
- _field412 = 4;
- signal();
- }
- break;
- default:
- break;
- }
+void MazeUI::setDisplayBounds(const Rect &r) {
+ _displayBounds = r;
+ _displayBounds.clip(g_globals->gfxManager()._bounds);
}
/*--------------------------------------------------------------------------*/
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 75347f2..a40d4fe 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -283,7 +283,7 @@ public:
Rect _displayBounds;
Rect _mapBounds;
- byte *_field16;
+ byte *_mapData;
GfxSurface _mapImage;
int _field12;
@@ -306,11 +306,10 @@ public:
void draw();
int getCellFromPixelXY(const Common::Point &pt);
int getCellFromCellXY(const Common::Point &p);
+ int pixelToCellXY(int &arg1, int &arg2);
virtual Common::String getClassName() { return "MazeUI"; }
void synchronize(Serializer &s);
-
- int sub9EE22(int &arg1, int &arg2);
};
class SceneAreaObject: public SceneArea {
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index d77a8bd..fc79487 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1393,7 +1393,7 @@ void Scene1200::process(Event &event) {
return;
if (event.eventType == EVENT_BUTTON_DOWN) {
- _object1.sub9EE22(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
+ _object1.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
int unk = _object1.getCellFromPixelXY(event.mousePos);
switch (R2_GLOBALS._events.getCursor()) {
case CURSOR_ARROW:
@@ -1605,6 +1605,189 @@ void Scene1200::saveCharacter(int characterIndex) {
SceneExt::saveCharacter(characterIndex);
}
+void Scene1200::sub9DAD6(int indx) {
+ _object1.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
+
+ switch (indx) {
+ case 0:
+ if ( ((_object1.getCellFromPixelXY(Common::Point(200, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(200, 88)) > 36))
+ && ( ((R2_GLOBALS._v56AA2 == 3) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
+ || ((R2_GLOBALS._v56AA2 == 13) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
+ || ((R2_GLOBALS._v56AA2 == 29) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
+ || ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 41)) )
+ ) {
+ R2_GLOBALS._player.disableControl();
+ _sceneMode = 1200;
+ setAction(&_sequenceManager, this, 1200, &_actor1, NULL);
+ } else if (_object1.getCellFromPixelXY(Common::Point(200, 69)) == 36) {
+ switch (_field412 - 1) {
+ case 0:
+ if (R2_GLOBALS._player._visage == 3155)
+ _sceneMode = 15;
+ else
+ _sceneMode = 10;
+ break;
+ case 1:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 76;
+ else
+ _sceneMode = 75;
+ break;
+ case 2:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 101;
+ else
+ _sceneMode = 100;
+ break;
+ case 3:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 111;
+ else
+ _sceneMode = 110;
+ break;
+ default:
+ break;
+ }
+ R2_GLOBALS._player.disableControl();
+ _field412 = 1;
+ signal();
+ }
+ break;
+ case 1:
+ if ( ((_object1.getCellFromPixelXY(Common::Point(120, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(120, 88)) > 36))
+ && ( ((R2_GLOBALS._v56AA2 == 7) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
+ || ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
+ || ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
+ || ((R2_GLOBALS._v56AA2 == 5) && (R2_GLOBALS._v56AA4 == 5)) )
+ ) {
+ R2_GLOBALS._player.disableControl();
+ _sceneMode = 1201;
+ setAction(&_sequenceManager, this, 1201, &_actor1, NULL);
+ } else if (_object1.getCellFromPixelXY(Common::Point(120, 69)) == 36) {
+ switch (_field412 - 1) {
+ case 0:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 56;
+ else
+ _sceneMode = 55;
+ break;
+ case 1:
+ if (R2_GLOBALS._player._visage == 3155)
+ _sceneMode = 25;
+ else
+ _sceneMode = 20;
+ break;
+ case 2:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 91;
+ else
+ _sceneMode = 90;
+ break;
+ case 3:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 121;
+ else
+ _sceneMode = 120;
+ break;
+ default:
+ break;
+ }
+ R2_GLOBALS._player.disableControl();
+ _field412 = 2;
+ signal();
+ }
+ break;
+ case 2:
+ if ( ((_object1.getCellFromPixelXY(Common::Point(140, 110)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 110)) > 36))
+ && ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 5) && (_field418 != 3))
+ || ((R2_GLOBALS._v56AA2 == 41) && (R2_GLOBALS._v56AA4 == 21)) )
+ ) {
+ R2_GLOBALS._player.disableControl();
+ _sceneMode = 1203;
+ setAction(&_sequenceManager, this, 1203, &_actor1, NULL);
+ } else if (_object1.getCellFromPixelXY(Common::Point(160, 110)) == 36) {
+ switch (_field412 - 1) {
+ case 0:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 51;
+ else
+ _sceneMode = 50;
+ break;
+ case 1:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 81;
+ else
+ _sceneMode = 80;
+ break;
+ case 2:
+ if (R2_GLOBALS._player._visage == 3155)
+ _sceneMode = 35;
+ else
+ _sceneMode = 30;
+ break;
+ case 3:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 116;
+ else
+ _sceneMode = 115;
+ break;
+ default:
+ break;
+ }
+ R2_GLOBALS._player.disableControl();
+ _field412 = 3;
+ signal();
+ }
+ break;
+ case 3:
+ if ( ((_object1.getCellFromPixelXY(Common::Point(140, 30)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 30)) > 36))
+ && ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 9) && (_field418 != 3))
+ || ((R2_GLOBALS._v56AA2 == 35) && (R2_GLOBALS._v56AA4 == 17)) )
+ ) {
+ R2_GLOBALS._player.disableControl();
+ _sceneMode = 1202;
+ setAction(&_sequenceManager, this, 1202, &_actor1, NULL);
+ } else if (_object1.getCellFromPixelXY(Common::Point(160, 30)) == 36) {
+ switch (_field412 - 1) {
+ case 0:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 61;
+ else
+ _sceneMode = 60;
+ break;
+ case 1:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 71;
+ else
+ _sceneMode = 70;
+ break;
+ case 2:
+ if (R2_GLOBALS._player._visage == 3156)
+ _sceneMode = 96;
+ else
+ _sceneMode = 95;
+ break;
+ case 3:
+ if (R2_GLOBALS._player._visage == 3155)
+ _sceneMode = 45;
+ else
+ _sceneMode = 40;
+ break;
+ default:
+ _sceneMode = 1;
+ R2_GLOBALS._player.setup(3156, 4, 6);
+ break;
+ }
+ R2_GLOBALS._player.disableControl();
+ _field412 = 4;
+ signal();
+ }
+ break;
+ default:
+ break;
+ }
+}
+
/*--------------------------------------------------------------------------
* Scene 1337 - Card game
*
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 475c743..2e81beb 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3067,7 +3067,7 @@ int Scene3500::MazeUI3500::sub109C09(Common::Point pt) {
int vy = pt.y / _cellSize.y;
if ((vx >= 0) && (_mapCells.x > vx) && (_mapCells.y > vy)) {
- return _field16[((_mapCells.x * vy) + vx) * 2];
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * vy + vx) * 2);
} else
return -1;
}
Commit: 5eaa253732e5caa1def4da8bca4c1916a6919c89
https://github.com/scummvm/scummvm/commit/5eaa253732e5caa1def4da8bca4c1916a6919c89
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T20:01:45-07:00
Commit Message:
TSAGE: Renaming of derived R2R scene 3500 Maze UI
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index c17fcc9..9231225 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1278,9 +1278,12 @@ void SceneAreaObject::setDetails(int resNum, int lookLineNum, int talkLineNum, i
MazeUI::MazeUI() {
_mapData = NULL;
- _field12 = _field14 = 0;
- _mapCells.x = _mapCells.y = _cellSize.x = _cellSize.y = _cellOffset.x = _cellOffset.y = 0;
- _resNum = _cellsResNum = _field36 = _field38 = _mapImagePitch = _field40 = 0;
+ _cellsVisible.x = _cellsVisible.y = 0;
+ _mapCells.x = _mapCells.y = 0;
+ _cellSize.x = _cellSize.y = 0;
+ _cellOffset.x = _cellOffset.y = 0;
+ _resNum = _cellsResNum = 0;
+ _frameCount = _resCount = _mapImagePitch = _unused = 0;
}
MazeUI::~MazeUI() {
@@ -1294,13 +1297,9 @@ void MazeUI::synchronize(Serializer &s) {
if (s.isLoading())
load(_resNum);
- s.syncAsSint16LE(_field12);
- s.syncAsSint16LE(_field14);
s.syncAsSint16LE(_cellOffset.x);
s.syncAsSint16LE(_cellOffset.y);
- s.syncAsSint16LE(_field36);
- s.syncAsSint16LE(_field38);
- s.syncAsSint16LE(_field40);
+ s.syncAsSint16LE(_unused);
}
void MazeUI::load(int resNum) {
@@ -1312,8 +1311,8 @@ void MazeUI::load(int resNum) {
_cellsResNum = resNum + 1000;
_mapCells.x = READ_LE_UINT16(header + 2);
_mapCells.y = READ_LE_UINT16(header + 4);
- _field36 = 10;
- _field38 = _field36 << 3;
+ _frameCount = 10;
+ _resCount = _frameCount << 3;
Visage visage;
visage.setVisage(_cellsResNum, 1);
@@ -1325,10 +1324,10 @@ void MazeUI::load(int resNum) {
_mapData = g_resourceManager->getResource(RT17, resNum, 1);
_cellOffset.y = _cellOffset.x = 0;
- _field12 = (_displayBounds.width() + _cellSize.x - 1) / _cellSize.x;
- _field14 = (_displayBounds.height() + _cellSize.y - 1) / _cellSize.y;
+ _cellsVisible.x = (_displayBounds.width() + _cellSize.x - 1) / _cellSize.x;
+ _cellsVisible.y = (_displayBounds.height() + _cellSize.y - 1) / _cellSize.y;
- _mapImagePitch = (_field12 + 1) * _cellSize.x;
+ _mapImagePitch = (_cellsVisible.x + 1) * _cellSize.x;
_mapImage.create(_mapImagePitch, _cellSize.y);
_mapBounds = Rect(0, 0, _cellSize.x * _mapCells.x, _cellSize.y * _mapCells.y);
@@ -1348,8 +1347,7 @@ void MazeUI::clear() {
bool MazeUI::setMazePosition(const Common::Point &pt) {
bool retval = false;
- _cellOffset.x = pt.x;
- _cellOffset.y = pt.y;
+ _cellOffset = pt;
if (_cellOffset.x < _mapBounds.top) {
_cellOffset.x = _mapBounds.top;
@@ -1379,17 +1377,17 @@ void MazeUI::draw() {
int yInc;
Visage visage;
- for (int yp = 0; yp < _field14; yp += yInc) {
+ for (int yp = 0; yp < _cellsVisible.y; yp += yInc) {
int y = yp + _cellOffset.y / _cellSize.y;
- for (int idx = 0; idx > _field12; ++idx) {
+ for (int idx = 0; idx > _cellsVisible.x; ++idx) {
int x = _cellOffset.x / _cellSize.x + idx;
int cell = getCellFromCellXY(Common::Point(x, y));
if (cell >= 0) {
- int frameNum = (cell % _field36) + 1;
- int rlbNum = (cell % _field38) / _field36 + 1;
- int resNum = _cellsResNum + (cell / _field38);
+ int frameNum = (cell % _frameCount) + 1;
+ int rlbNum = (cell % _resCount) / _frameCount + 1;
+ int resNum = _cellsResNum + (cell / _resCount);
visage.setVisage(resNum, rlbNum);
GfxSurface frame = visage.getFrame(frameNum);
@@ -1434,7 +1432,7 @@ int MazeUI::getCellFromPixelXY(const Common::Point &pt) {
int cellY = (pt.y - _displayBounds.top + _cellOffset.y) / _cellSize.y;
if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y))
- return (int16)READ_LE_UINT16(_mapData + ((_mapCells.x * cellY) + cellX) * 2);
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * cellY + cellX) * 2);
return -1;
}
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index a40d4fe..76bea81 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -280,23 +280,26 @@ class MazeUI: public SavedObject {
private:
void clear();
public:
+ // Position on screen to show map
Rect _displayBounds;
+ // The dimensions (in cells) of the entire maze map
Rect _mapBounds;
+ // Encoded cell map specifying the features of the maze
byte *_mapData;
+ // Image surface used to store a line of the map for rendering
GfxSurface _mapImage;
- int _field12;
- int _field14;
+ Common::Point _cellsVisible;
Common::Point _mapCells;
Common::Point _cellSize;
Common::Point _cellOffset;
int _resNum;
int _cellsResNum;
- int _field36;
- int _field38;
+ int _frameCount;
+ int _resCount;
int _mapImagePitch;
- int _field40;
+ int _unused;
public:
MazeUI();
virtual ~MazeUI();
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 2e81beb..2b42cbd 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3054,26 +3054,26 @@ void Scene3500::Actor7::sub109693(Common::Point Pt) {
/*--------------------------------------------------------------------------*/
-int Scene3500::MazeUI3500::sub1097C9(int arg1) {
- return (_cellSize.x / 2) + arg1 - (arg1 % _cellSize.x);
+int Scene3500::MazeUI3500::cellFromX(int x) {
+ return (_cellSize.x / 2) + x - (x % _cellSize.x);
}
-int Scene3500::MazeUI3500::sub1097EF(int arg1) {
- return (_cellSize.y / 2) + arg1 - (arg1 % _cellSize.y);
+int Scene3500::MazeUI3500::cellFromY(int y) {
+ return (_cellSize.y / 2) + y - (y % _cellSize.y);
}
-int Scene3500::MazeUI3500::sub109C09(Common::Point pt) {
- int vx = pt.x / _cellSize.x;
- int vy = pt.y / _cellSize.y;
+int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
+ int cellX = pt.x / _cellSize.x;
+ int cellY = pt.y / _cellSize.y;
- if ((vx >= 0) && (_mapCells.x > vx) && (_mapCells.y > vy)) {
- return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * vy + vx) * 2);
+ if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y)) {
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * cellY + cellX) * 2);
} else
return -1;
}
-int Scene3500::MazeUI3500::sub109C5E(Common::Point &p) {
- int retVal = setMazePosition(p);
+bool Scene3500::MazeUI3500::seteMazePosition2(Common::Point &p) {
+ bool retVal = setMazePosition(p);
p = _cellOffset;
return retVal;
@@ -3224,9 +3224,9 @@ void Scene3500::Action1::signal() {
setDelay(1);
break;
case 4: {
- int si = scene->_mazeUI.sub109C09(Common::Point(scene->_position1.x + 70, scene->_position1.y + 46));
- int var2 = scene->_mazeUI.sub1097C9(scene->_position1.x + 70) - 70;
- int var4 = scene->_mazeUI.sub1097EF(scene->_position1.y + 46) - 46;
+ int si = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_position1.x + 70, scene->_position1.y + 46));
+ int var2 = scene->_mazeUI.cellFromX(scene->_position1.x + 70) - 70;
+ int var4 = scene->_mazeUI.cellFromY(scene->_position1.y + 46) - 46;
int di = abs(var2 - scene->_position1.x);
int var6 = abs(var4 - scene->_position1.y);
@@ -3361,12 +3361,12 @@ void Scene3500::Action1::signal() {
case 0:
// No break on purpose
case 4:
- scene->_position1.x = scene->_mazeUI.sub1097C9(scene->_position1.x + 70) - 70;
+ scene->_position1.x = scene->_mazeUI.cellFromX(scene->_position1.x + 70) - 70;
break;
case 2:
// No break on purpose
case 6:
- scene->_position1.y = scene->_mazeUI.sub1097EF(scene->_position1.y + 46) - 46;
+ scene->_position1.y = scene->_mazeUI.cellFromY(scene->_position1.y + 46) - 46;
break;
default:
break;
@@ -3824,15 +3824,15 @@ void Scene3500::dispatch() {
var127A = _position1.x;
di = _position1.y;
- var_4 = _mazeUI.sub1097C9(70) - 70;
- var_6 = _mazeUI.sub1097EF(_position1.y + 46) - 46;
+ var_4 = _mazeUI.cellFromX(70) - 70;
+ var_6 = _mazeUI.cellFromY(_position1.y + 46) - 46;
var_8 = abs(var_4 - var127A);
var_a = abs(var_6 - di);
dx = 0;
switch (_field1276) {
case 0:
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, 46));
if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
|| (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3843,9 +3843,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.cellFromY(di + 46) - 46;
di = _position1.y - _field126E;
- dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (tmpVar != dx)) {
di = var_6;
R2_GLOBALS._sound2.play(339);
@@ -3865,9 +3865,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.cellFromY(di + 46) - 46;
var_a = abs(var_6 - di);
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (di <= var_6) && (_position1.y>= var_6))
|| (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E > 3) && (_action1._field24 != 0)) ) {
@@ -3898,7 +3898,7 @@ void Scene3500::dispatch() {
}
break;
case 2:
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
|| (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3909,9 +3909,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
var127A = _position1.x + _field126E;
- dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (tmpVar != dx)) {
var127A = var_4;
R2_GLOBALS._sound2.play(339);
@@ -3931,9 +3931,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
var_8 = abs(var127A - var_4);
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, tmpVar + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, tmpVar + 46));
if ( (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (var127A >= var_4) && (_position1.x <= var_4))
|| (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
var127A = var_4;
@@ -3964,7 +3964,7 @@ void Scene3500::dispatch() {
}
break;
case 4:
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
|| (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -3975,9 +3975,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.cellFromY(di + 46) - 46;
di = _position1.y + _field126E;
- dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (tmpVar == dx)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4005,9 +4005,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.sub1097EF(di + 46) - 46;
+ var_6 = _mazeUI.cellFromY(di + 46) - 46;
var_a = abs(di - var_6);
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (di >= var_6) && (_position1.y <= var_6))
|| (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E <= 3) && (_action1._field24 != 0)) ){
if ((tmpVar != 23) && (tmpVar != 24) && (tmpVar != 4) && (tmpVar != 14) && (tmpVar != 15))
@@ -4049,7 +4049,7 @@ void Scene3500::dispatch() {
}
break;
case 6:
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
|| (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
@@ -4060,9 +4060,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
var127A = _position1.x - _field126E;
- dx = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (tmpVar != dx)) {
var127A = var_4;
R2_GLOBALS._sound2.play(339);
@@ -4082,9 +4082,9 @@ void Scene3500::dispatch() {
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.sub1097C9(var127A + 70) - 70;
+ var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
var_8 = abs(var_4 - var127A);
- tmpVar = _mazeUI.sub109C09(Common::Point(var127A + 70, di + 46));
+ tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
if ( (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (var127A <= var_4) && (_position1.x >= var_4))
|| (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
var127A = var_4;
@@ -4121,7 +4121,7 @@ void Scene3500::dispatch() {
if (_field1284 < 2) {
_position1.x = var127A;
_position1.y = di;
- if (_mazeUI.sub109C5E(_position1) != 0) {
+ if (_mazeUI.seteMazePosition2(_position1) != 0) {
_field1272 = 0;
_field126E = 0;
_field1270 = 0;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index 60168c7..6d7347d 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -635,10 +635,10 @@ class Scene3500 : public SceneExt {
class MazeUI3500 : public MazeUI {
public:
- int sub1097C9(int arg1);
- int sub1097EF(int arg1);
- int sub109C09(Common::Point pt);
- int sub109C5E(Common::Point &p);
+ int cellFromX(int arg1);
+ int cellFromY(int arg1);
+ int getCellFromMapXY(Common::Point pt);
+ bool seteMazePosition2(Common::Point &p);
};
public:
Action1 _action1;
Commit: a075afa48a6acd7e011e8b3e766329eb83f33b7a
https://github.com/scummvm/scummvm/commit/a075afa48a6acd7e011e8b3e766329eb83f33b7a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-29T21:00:29-07:00
Commit Message:
TSAGE: R2R Maze UI now partially showing map
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 9231225..ba7ae4e3 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1281,7 +1281,7 @@ MazeUI::MazeUI() {
_cellsVisible.x = _cellsVisible.y = 0;
_mapCells.x = _mapCells.y = 0;
_cellSize.x = _cellSize.y = 0;
- _cellOffset.x = _cellOffset.y = 0;
+ _mapOffset.x = _mapOffset.y = 0;
_resNum = _cellsResNum = 0;
_frameCount = _resCount = _mapImagePitch = _unused = 0;
}
@@ -1297,8 +1297,8 @@ void MazeUI::synchronize(Serializer &s) {
if (s.isLoading())
load(_resNum);
- s.syncAsSint16LE(_cellOffset.x);
- s.syncAsSint16LE(_cellOffset.y);
+ s.syncAsSint16LE(_mapOffset.x);
+ s.syncAsSint16LE(_mapOffset.y);
s.syncAsSint16LE(_unused);
}
@@ -1323,7 +1323,7 @@ void MazeUI::load(int resNum) {
_mapData = g_resourceManager->getResource(RT17, resNum, 1);
- _cellOffset.y = _cellOffset.x = 0;
+ _mapOffset.y = _mapOffset.x = 0;
_cellsVisible.x = (_displayBounds.width() + _cellSize.x - 1) / _cellSize.x;
_cellsVisible.y = (_displayBounds.height() + _cellSize.y - 1) / _cellSize.y;
@@ -1347,25 +1347,25 @@ void MazeUI::clear() {
bool MazeUI::setMazePosition(const Common::Point &pt) {
bool retval = false;
- _cellOffset = pt;
+ _mapOffset = pt;
- if (_cellOffset.x < _mapBounds.top) {
- _cellOffset.x = _mapBounds.top;
+ if (_mapOffset.x < _mapBounds.top) {
+ _mapOffset.x = _mapBounds.top;
retval = true;
}
- if (_cellOffset.y < _mapBounds.left) {
- _cellOffset.y = _mapBounds.left;
+ if (_mapOffset.y < _mapBounds.left) {
+ _mapOffset.y = _mapBounds.left;
retval = true;
}
- if (_cellOffset.x + _displayBounds.width() > _mapBounds.right) {
- _cellOffset.x = _mapBounds.right - _displayBounds.width();
+ if (_mapOffset.x + _displayBounds.width() > _mapBounds.right) {
+ _mapOffset.x = _mapBounds.right - _displayBounds.width();
retval = true;
}
- if (_cellOffset.y + _displayBounds.height() > _mapBounds.bottom) {
- _cellOffset.y = _mapBounds.bottom - _displayBounds.height();
+ if (_mapOffset.y + _displayBounds.height() > _mapBounds.bottom) {
+ _mapOffset.y = _mapBounds.bottom - _displayBounds.height();
retval = true;
}
@@ -1374,16 +1374,20 @@ bool MazeUI::setMazePosition(const Common::Point &pt) {
void MazeUI::draw() {
int yPos = 0;
- int yInc;
+ int ySize;
Visage visage;
- for (int yp = 0; yp < _cellsVisible.y; yp += yInc) {
- int y = yp + _cellOffset.y / _cellSize.y;
+ // Loop to handle the cell rows of the visible display area one at a time
+ for (int yCtr = 0; yCtr < _cellsVisible.y; ++yCtr, yPos += ySize) {
+ int cellY = _mapOffset.y / _cellSize.y + yCtr;
- for (int idx = 0; idx > _cellsVisible.x; ++idx) {
- int x = _cellOffset.x / _cellSize.x + idx;
+ // Loop to iterate through the horizontal visible cells to build up
+ // an entire cell high horizontal slice of the map
+ for (int xCtr = 0; xCtr < _cellsVisible.x; ++xCtr) {
+ int cellX = _mapOffset.x / _cellSize.x + xCtr;
- int cell = getCellFromCellXY(Common::Point(x, y));
+ // Get the type of content to display in the cell
+ int cell = getCellFromCellXY(Common::Point(cellX, cellY));
if (cell >= 0) {
int frameNum = (cell % _frameCount) + 1;
int rlbNum = (cell % _resCount) / _frameCount + 1;
@@ -1392,33 +1396,37 @@ void MazeUI::draw() {
visage.setVisage(resNum, rlbNum);
GfxSurface frame = visage.getFrame(frameNum);
- _mapImage.copyFrom(frame, 0, idx);
+ _mapImage.copyFrom(frame, xCtr * _cellSize.x, 0);
} else {
GfxSurface emptyRect;
emptyRect.create(_cellSize.x, _cellSize.y);
- _mapImage.copyFrom(emptyRect, 0, idx);
+ _mapImage.copyFrom(emptyRect, xCtr * _cellSize.x, 0);
}
}
if (yPos == 0) {
+ // First line of the map to be displayed - only the bottom portion of that
+ // first cell row may be visible
yPos = _displayBounds.top;
- yInc = _cellSize.y - (_cellOffset.y % _cellSize.y);
+ ySize = _cellSize.y - (_mapOffset.y % _cellSize.y);
- Rect srcBounds(_cellOffset.x % _cellSize.x, _cellOffset.y % _cellSize.y,
- (_cellOffset.x % _cellSize.x) + _displayBounds.width(), (_cellOffset.y % _cellSize.y) + yInc);
- Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + yInc);
+ Rect srcBounds(_mapOffset.x % _cellSize.x, _mapOffset.y % _cellSize.y,
+ (_mapOffset.x % _cellSize.x) + _displayBounds.width(), _cellSize.y);
+ Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + ySize);
R2_GLOBALS.gfxManager().copyFrom(_mapImage, srcBounds, destBounds);
} else {
if ((yPos + _cellSize.y) < _displayBounds.bottom) {
- yInc = _cellSize.y;
+ ySize = _cellSize.y;
} else {
- yInc = _displayBounds.bottom - yPos;
+ ySize = _displayBounds.bottom - yPos;
}
- Rect srcBounds(0, _cellOffset.x, _displayBounds.width(), _cellOffset.x + yInc);
- Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + yInc);
+ Rect srcBounds(_mapOffset.x % _cellSize.x, 0,
+ (_mapOffset.x % _cellSize.x) + _displayBounds.width(), ySize);
+ Rect destBounds(_displayBounds.left, yPos, _displayBounds.right, yPos + ySize);
+
R2_GLOBALS.gfxManager().copyFrom(_mapImage, srcBounds, destBounds);
}
}
@@ -1428,8 +1436,8 @@ int MazeUI::getCellFromPixelXY(const Common::Point &pt) {
if (!_displayBounds.contains(pt))
return -1;
- int cellX = (pt.x - _displayBounds.left + _cellOffset.x) / _cellSize.x;
- int cellY = (pt.y - _displayBounds.top + _cellOffset.y) / _cellSize.y;
+ int cellX = (pt.x - _displayBounds.left + _mapOffset.x) / _cellSize.x;
+ int cellY = (pt.y - _displayBounds.top + _mapOffset.y) / _cellSize.y;
if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y))
return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * cellY + cellX) * 2);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 76bea81..6829bec 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -293,7 +293,7 @@ public:
Common::Point _cellsVisible;
Common::Point _mapCells;
Common::Point _cellSize;
- Common::Point _cellOffset;
+ Common::Point _mapOffset;
int _resNum;
int _cellsResNum;
int _frameCount;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 2b42cbd..115fc84 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3074,7 +3074,7 @@ int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
bool Scene3500::MazeUI3500::seteMazePosition2(Common::Point &p) {
bool retVal = setMazePosition(p);
- p = _cellOffset;
+ p = _mapOffset;
return retVal;
}
Commit: 1e40570ec0f8b53f8cb3fd579c89f7956840175e
https://github.com/scummvm/scummvm/commit/1e40570ec0f8b53f8cb3fd579c89f7956840175e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T05:16:40-07:00
Commit Message:
TSAGE: Fix handle leak in resource manager
Changed paths:
engines/tsage/core.cpp
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 4a90e23..131b70c 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -3157,6 +3157,8 @@ void Visage::setVisage(int resNum, int rlbNum) {
_flipHoriz = flags & 1;
_data = g_resourceManager->getResource(RES_VISAGE, resNum, rlbNum);
+
+ DEALLOCATE(indexData);
}
}
Commit: 8ec07246e605d4be6abc935fd50ff05b1af9035a
https://github.com/scummvm/scummvm/commit/8ec07246e605d4be6abc935fd50ff05b1af9035a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T05:39:26-07:00
Commit Message:
TSAGE: Fix to display R2R maze map correctly
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index ba7ae4e3..3f062d0 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1387,7 +1387,7 @@ void MazeUI::draw() {
int cellX = _mapOffset.x / _cellSize.x + xCtr;
// Get the type of content to display in the cell
- int cell = getCellFromCellXY(Common::Point(cellX, cellY));
+ int cell = getCellFromCellXY(Common::Point(cellX, cellY)) - 1;
if (cell >= 0) {
int frameNum = (cell % _frameCount) + 1;
int rlbNum = (cell % _resCount) / _frameCount + 1;
Commit: 45ea2e0979d6329e5e978dda6438d3154956c6ac
https://github.com/scummvm/scummvm/commit/45ea2e0979d6329e5e978dda6438d3154956c6ac
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T06:44:42-07:00
Commit Message:
TSAGE: Starting to move in R2R scene 3500 maze
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 115fc84..55303cf 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3072,7 +3072,7 @@ int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
return -1;
}
-bool Scene3500::MazeUI3500::seteMazePosition2(Common::Point &p) {
+bool Scene3500::MazeUI3500::setMazePosition2(Common::Point &p) {
bool retVal = setMazePosition(p);
p = _mapOffset;
@@ -3083,14 +3083,14 @@ Scene3500::Scene3500() {
_fieldAF8 = 0;
_fieldB9E = 0;
_rotation = NULL;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1270 = 0;
_field1272 = 0;
_field1274 = 0;
_field1276 = 0;
_field1278 = 0;
- _position1.x = 0;
- _position1.y = 0;
+ _mazePosition.x = 0;
+ _mazePosition.y = 0;
_field127E = 0;
_field1280 = 0;
_field1282 = 0;
@@ -3104,14 +3104,14 @@ void Scene3500::synchronize(Serializer &s) {
s.syncAsSint16LE(_fieldAF8);
s.syncAsSint16LE(_fieldB9E);
- s.syncAsSint16LE(_field126E);
+ s.syncAsSint16LE(_mazeChangeAmount);
s.syncAsSint16LE(_field1270);
s.syncAsSint16LE(_field1272);
s.syncAsSint16LE(_field1274);
s.syncAsSint16LE(_field1276);
s.syncAsSint16LE(_field1278);
- s.syncAsSint16LE(_position1.x);
- s.syncAsSint16LE(_position1.y);
+ s.syncAsSint16LE(_mazePosition.x);
+ s.syncAsSint16LE(_mazePosition.y);
s.syncAsSint16LE(_field127E);
s.syncAsSint16LE(_field1280);
s.syncAsSint16LE(_field1282);
@@ -3207,7 +3207,7 @@ void Scene3500::Action1::signal() {
scene->_field1286 = 0;
if (scene->_field1270 != 0) {
scene->_field1270 = 0;
- scene->_field126E = 0;
+ scene->_mazeChangeAmount = 0;
scene->_field1272 = 0;
scene->_rotation->_idxChange = 0;
}
@@ -3224,11 +3224,11 @@ void Scene3500::Action1::signal() {
setDelay(1);
break;
case 4: {
- int si = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_position1.x + 70, scene->_position1.y + 46));
- int var2 = scene->_mazeUI.cellFromX(scene->_position1.x + 70) - 70;
- int var4 = scene->_mazeUI.cellFromY(scene->_position1.y + 46) - 46;
- int di = abs(var2 - scene->_position1.x);
- int var6 = abs(var4 - scene->_position1.y);
+ int si = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_mazePosition.x + 70, scene->_mazePosition.y + 46));
+ int var2 = scene->_mazeUI.cellFromX(scene->_mazePosition.x + 70) - 70;
+ int var4 = scene->_mazeUI.cellFromY(scene->_mazePosition.y + 46) - 46;
+ int di = abs(var2 - scene->_mazePosition.x);
+ int var6 = abs(var4 - scene->_mazePosition.y);
if ((scene->_actor1._frame % 2) != 0) {
scene->_actor1._frameChange = _field1E;
@@ -3296,14 +3296,14 @@ void Scene3500::Action1::signal() {
// No break on purpose
case 2: {
scene->_actor8.setPosition(Common::Point(160, 73));
- scene->_actor8._moveDiff.x = 160 - scene->_field126E;
+ scene->_actor8._moveDiff.x = 160 - scene->_mazeChangeAmount;
scene->_fieldAF8 = 160 - ((_field1E * 2) * 160);
Common::Point pt(scene->_fieldAF8, 73);
NpcMover *mover = new NpcMover();
scene->_actor8.addMover(mover, &pt, this);
scene->_actor9.setPosition(Common::Point(160 + ((_field1E * 2) * 160), 73));
- scene->_actor9._moveDiff.x = 160 - scene->_field126E;
+ scene->_actor9._moveDiff.x = 160 - scene->_mazeChangeAmount;
scene->_fieldB9E = 160;
Common::Point pt2(scene->_fieldB9E, 73);
NpcMover *mover2 = new NpcMover();
@@ -3361,12 +3361,12 @@ void Scene3500::Action1::signal() {
case 0:
// No break on purpose
case 4:
- scene->_position1.x = scene->_mazeUI.cellFromX(scene->_position1.x + 70) - 70;
+ scene->_mazePosition.x = scene->_mazeUI.cellFromX(scene->_mazePosition.x + 70) - 70;
break;
case 2:
// No break on purpose
case 6:
- scene->_position1.y = scene->_mazeUI.cellFromY(scene->_position1.y + 46) - 46;
+ scene->_mazePosition.y = scene->_mazeUI.cellFromY(scene->_mazePosition.y + 46) - 46;
break;
default:
break;
@@ -3376,7 +3376,7 @@ void Scene3500::Action1::signal() {
_field24 = 0;
if (_field20 == 0) {
scene->_actor7.sub1094ED();
- if (scene->_field126E == scene->_field1270)
+ if (scene->_mazeChangeAmount == scene->_field1270)
scene->_aSound1.play(276);
}
break;
@@ -3424,7 +3424,7 @@ void Scene3500::Action1::dispatch() {
Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene;
Action::dispatch();
- if ((_actionIndex == 1) && (scene->_field126E <= 4)) {
+ if ((_actionIndex == 1) && (scene->_mazeChangeAmount <= 4)) {
scene->_rotation->_idxChange = 0;
signal();
}
@@ -3460,17 +3460,17 @@ void Scene3500::Action2::signal() {
di = scene->_fieldB9E;
}
- scene->_actor8._moveDiff.y = 9 - (scene->_field126E / 2);
+ scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2);
Common::Point pt(si, 73 - (_field1E * 12));
NpcMover *mover = new NpcMover();
scene->_actor8.addMover(mover, &pt, NULL);
- scene->_actor9._moveDiff.y = 9 - (scene->_field126E / 2);
+ scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2);
Common::Point pt2(di, 73 - (_field1E * 12));
NpcMover *mover2 = new NpcMover();
scene->_actor9.addMover(mover2, &pt2, NULL);
- scene->_field126E = (scene->_field126E / 2) + (scene->_field126E % 2);
- setDelay(17 - scene->_field126E);
+ scene->_mazeChangeAmount = (scene->_mazeChangeAmount / 2) + (scene->_mazeChangeAmount % 2);
+ setDelay(17 - scene->_mazeChangeAmount);
}
break;
case 1: {
@@ -3485,12 +3485,12 @@ void Scene3500::Action2::signal() {
scene->_actor7.sub1094ED();
- scene->_actor8._moveDiff.y = 9 - (scene->_field126E / 2);
+ scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2);
Common::Point pt(si, 73);
NpcMover *mover = new NpcMover();
scene->_actor8.addMover(mover, &pt, NULL);
- scene->_actor9._moveDiff.y = 9 - (scene->_field126E / 2);
+ scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2);
Common::Point pt2(di, 73);
NpcMover *mover2 = new NpcMover();
scene->_actor9.addMover(mover2, &pt2, NULL);
@@ -3581,9 +3581,9 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_field1278 = 0;
_field1272 = 1;
_field1270 = 4;
- _field126E = 4;
- _position1.x = 860;
- _position1.y = 891;
+ _mazeChangeAmount = 4;
+ _mazePosition.x = 860;
+ _mazePosition.y = 891;
_rotation = R2_GLOBALS._scenePalette.addRotation(240, 254, -1);
_rotation->setDelay(0);
_rotation->_idxChange = 1;
@@ -3661,7 +3661,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_actor6.hide();
_actor2.postInit();
- _actor2.setup(1004, 4, _field126E + 1);
+ _actor2.setup(1004, 4, _mazeChangeAmount + 1);
_actor2.setPosition(Common::Point(126, 137));
_actor2.fixPriority(200);
@@ -3672,7 +3672,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_mazeUI.setDisplayBounds(Rect(160, 89, 299, 182));
_mazeUI.load(2);
- _mazeUI.setMazePosition(_position1);
+ _mazeUI.setMazePosition(_mazePosition);
_action1._field24 = 0;
_mazeUI.draw();
@@ -3806,90 +3806,90 @@ void Scene3500::dispatch() {
if (!_rotation)
return;
- int var127A = 0;
- int di = 0;
+ int newMazeX = 0;
+ int newMazeY = 0;
int var_4 = 0;
int var_6 = 0;
int var_8 = 0;
int var_a = 0;
int dx = 0;
- int tmpVar = 0;
+ int cellId = 0;
- if ((_field126E == 0) && (_field1282 == 0)) {
+ if ((_mazeChangeAmount == 0) && (_field1282 == 0)) {
if (_field1284 == 2)
R2_GLOBALS._sceneManager.changeScene(1000);
} else {
_field1282 = 0;
tmpRect.set(160, 89, 299, 182);
- var127A = _position1.x;
- di = _position1.y;
+ newMazeX = _mazePosition.x;
+ newMazeY = _mazePosition.y;
var_4 = _mazeUI.cellFromX(70) - 70;
- var_6 = _mazeUI.cellFromY(_position1.y + 46) - 46;
- var_8 = abs(var_4 - var127A);
- var_a = abs(var_6 - di);
+ var_6 = _mazeUI.cellFromY(_mazePosition.y + 46) - 46;
+ var_8 = abs(var_4 - newMazeX);
+ var_a = abs(var_6 - newMazeY);
dx = 0;
- switch (_field1276) {
+ switch (_field1276 - 1) {
case 0:
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, 46));
- if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
- || (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1))
+ || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.cellFromY(di + 46) - 46;
- di = _position1.y - _field126E;
- dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (tmpVar != dx)) {
- di = var_6;
+ var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46;
+ newMazeY = _mazePosition.y - _mazeChangeAmount;
+ dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != dx)) {
+ newMazeY = var_6;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 11) && (tmpVar != dx)) {
- di = var_6 + 3;
+ } else if ((cellId == 11) && (cellId != dx)) {
+ newMazeY = var_6 + 3;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.cellFromY(di + 46) - 46;
- var_a = abs(var_6 - di);
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
-
- if ( (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4)) && (di <= var_6) && (_position1.y>= var_6))
- || (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E > 3) && (_action1._field24 != 0)) ) {
- di = var_6;
- if ((tmpVar != 25) && (tmpVar != 26) && (tmpVar != 5) && (tmpVar != 14) && (tmpVar == 15))
+ var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46;
+ var_a = abs(var_6 - newMazeY);
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+
+ if ( (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (newMazeY <= var_6) && (_mazePosition.y>= var_6))
+ || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount > 3) && (_action1._field24 != 0)) ) {
+ newMazeY = var_6;
+ if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId == 15))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 11) && (var_6 + 3 >= di) && (_position1.y >= var_6 + 3)) {
+ } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 != 0) && (var_8 <= 3)) {
- var127A = var_4;
+ } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) {
+ newMazeX = var_4;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -3898,64 +3898,64 @@ void Scene3500::dispatch() {
}
break;
case 2:
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
- || (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31))
+ || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
- var127A = _position1.x + _field126E;
- dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (tmpVar != dx)) {
- var127A = var_4;
+ var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
+ newMazeX = _mazePosition.x + _mazeChangeAmount;
+ dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != dx)) {
+ newMazeX = var_4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 6) && (tmpVar != dx)) {
- var127A = var_4 - 5;
+ } else if ((cellId == 6) && (cellId != dx)) {
+ newMazeX = var_4 - 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
- var_8 = abs(var127A - var_4);
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, tmpVar + 46));
- if ( (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15)) && (var127A >= var_4) && (_position1.x <= var_4))
- || (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
- var127A = var_4;
- if ((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4))
+ var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
+ var_8 = abs(newMazeX - var_4);
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, cellId + 46));
+ if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= var_4) && (_mazePosition.x <= var_4))
+ || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) {
+ newMazeX = var_4;
+ if ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 6) && (var_4 - 5 <= var127A) && (_position1.x <= var_4 - 5)) {
- var127A = var_4 - 5;
+ } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) {
+ newMazeX = var_4 - 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)) && (var_a != 0) && (var_a <= 3)) {
- di = var_6;
+ } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) {
+ newMazeY = var_6;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -3964,83 +3964,83 @@ void Scene3500::dispatch() {
}
break;
case 4:
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if ( ((tmpVar == 2) || (tmpVar == 3) || (tmpVar == 6) || (tmpVar == 1))
- || (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 > 3)) ) {
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1))
+ || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.cellFromY(di + 46) - 46;
- di = _position1.y + _field126E;
- dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (tmpVar == dx)) {
+ var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46;
+ newMazeY = _mazePosition.y + _mazeChangeAmount;
+ dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId == dx)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 16) && (tmpVar == dx)) {
- di = var_6 - 3;
+ } else if ((cellId == 16) && (cellId == dx)) {
+ newMazeY = var_6 - 3;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 31) && (tmpVar == dx)) {
- di = var_6 + 4;
+ } else if ((cellId == 31) && (cellId == dx)) {
+ newMazeY = var_6 + 4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_6 = _mazeUI.cellFromY(di + 46) - 46;
- var_a = abs(di - var_6);
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if ( (((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5)) && (di >= var_6) && (_position1.y <= var_6))
- || (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (_field126E >= var_a) && (_field126E <= 3) && (_action1._field24 != 0)) ){
- if ((tmpVar != 23) && (tmpVar != 24) && (tmpVar != 4) && (tmpVar != 14) && (tmpVar != 15))
+ var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46;
+ var_a = abs(newMazeY - var_6);
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= var_6) && (_mazePosition.y <= var_6))
+ || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){
+ if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 16) && (var_6 - 3 <= di) && (_position1.y <= var_6 - 3)) {
- di = var_6 - 3;
+ } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) {
+ newMazeY = var_6 - 3;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 31) && (var_6 + 4 <= di) && (_position1.y <= var_6 + 4)) {
- di = var_6 + 4;
+ } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) {
+ newMazeY = var_6 + 4;
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- if ((var127A == 660) && (_field126E + 306 <= di) && (di <= 307))
+ if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307))
++_field1284;
else
R2_GLOBALS._sound2.play(339);
- } else if (((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)) && (var_8 != 0) && (var_8 <= 3)) {
- var127A = var_4;
+ } else if (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) {
+ newMazeX = var_4;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -4049,64 +4049,64 @@ void Scene3500::dispatch() {
}
break;
case 6:
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if ( ((tmpVar == 12) || (tmpVar == 13) || (tmpVar == 11) || (tmpVar == 16) || (tmpVar == 31))
- || (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (var_a > 3)) ) {
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31))
+ || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
- var127A = _position1.x - _field126E;
- dx = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (tmpVar != dx)) {
- var127A = var_4;
+ var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
+ newMazeX = _mazePosition.x - _mazeChangeAmount;
+ dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != dx)) {
+ newMazeX = var_4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 1) && (tmpVar != dx)) {
- var127A = var_4 + 5;
+ } else if ((cellId == 1) && (cellId != dx)) {
+ newMazeX = var_4 + 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
} else {
- var_4 = _mazeUI.cellFromX(var127A + 70) - 70;
- var_8 = abs(var_4 - var127A);
- tmpVar = _mazeUI.getCellFromMapXY(Common::Point(var127A + 70, di + 46));
- if ( (((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14)) && (var127A <= var_4) && (_position1.x >= var_4))
- || (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (_field126E >= var_8) && (_field126E <= 3) && (_action1._field24 != 0)) ) {
- var127A = var_4;
- if ((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4))
+ var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
+ var_8 = abs(var_4 - newMazeX);
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
+ if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= var_4) && (_mazePosition.x >= var_4))
+ || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) {
+ newMazeX = var_4;
+ if ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((tmpVar == 1) && (var127A >= var_4 + 5) && (_position1.x >= var_4 + 5)) {
- var127A = var_4 + 5;
+ } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) {
+ newMazeX = var_4 + 5;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if (((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4)) && (var_a != 0) && (var_a <= 3)) {
- di = var_6;
+ } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) {
+ newMazeY = var_6;
R2_GLOBALS._sound2.play(339);
} else {
// Nothing
@@ -4119,11 +4119,11 @@ void Scene3500::dispatch() {
}
if (_field1284 < 2) {
- _position1.x = var127A;
- _position1.y = di;
- if (_mazeUI.seteMazePosition2(_position1) != 0) {
+ _mazePosition.x = newMazeX;
+ _mazePosition.y = newMazeY;
+ if (_mazeUI.setMazePosition2(_mazePosition) != 0) {
_field1272 = 0;
- _field126E = 0;
+ _mazeChangeAmount = 0;
_field1270 = 0;
_rotation->setDelay(0);
_rotation->_idxChange = 0;
@@ -4136,32 +4136,32 @@ void Scene3500::dispatch() {
}
if (_field1272 == 0) {
- if (_field126E != _field1270) {
- if (_field126E >= _field1270) {
- if (_field126E == 1) {
+ if (_mazeChangeAmount != _field1270) {
+ if (_mazeChangeAmount >= _field1270) {
+ if (_mazeChangeAmount == 1) {
if (_action1._field24 != 0) {
- if ( ((_field1276 == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((tmpVar == 25) || (tmpVar == 26) || (tmpVar == 5) || (tmpVar == 14) || (tmpVar == 15)))
- || ((_field1276 == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((tmpVar == 25) || (tmpVar == 23) || (tmpVar == 14) || (tmpVar == 5) || (tmpVar == 4)))
- || ((_field1276 == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((tmpVar == 23) || (tmpVar == 24) || (tmpVar == 4) || (tmpVar == 14) || (tmpVar == 15)))
- || ((_field1276 == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((tmpVar == 26) || (tmpVar == 24) || (tmpVar == 15) || (tmpVar == 5) || (tmpVar == 4))) ){
- _field126E = 1;
+ if ( ((_field1276 == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)))
+ || ((_field1276 == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)))
+ || ((_field1276 == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)))
+ || ((_field1276 == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){
+ _mazeChangeAmount = 1;
} else
- _field126E--;
+ _mazeChangeAmount--;
} else
- _field126E--;
+ _mazeChangeAmount--;
} else
- _field126E--;
+ _mazeChangeAmount--;
} else
- ++_field126E;
+ ++_mazeChangeAmount;
_field1272 = 1;
}
- _actor2.setFrame2(_field126E);
+ _actor2.setFrame2(_mazeChangeAmount);
}
if (_field1272 == 1) {
- if (_field126E == 0)
+ if (_mazeChangeAmount == 0)
_rotation->_idxChange = 0;
- else if (_field126E > 8)
+ else if (_mazeChangeAmount > 8)
_rotation->_idxChange = 2;
else
_rotation->_idxChange = 1;
@@ -4170,9 +4170,9 @@ void Scene3500::dispatch() {
if (_field1272 != 0)
_field1272--;
- if (_field126E != 0) {
+ if (_mazeChangeAmount != 0) {
R2_GLOBALS._player._uiEnabled = false;
- if (_field126E != _field1270)
+ if (_mazeChangeAmount != _field1270)
_aSound1.play(276);
} else {
R2_GLOBALS._player._uiEnabled = true;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index 6d7347d..ead2d3b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -638,7 +638,7 @@ class Scene3500 : public SceneExt {
int cellFromX(int arg1);
int cellFromY(int arg1);
int getCellFromMapXY(Common::Point pt);
- bool seteMazePosition2(Common::Point &p);
+ bool setMazePosition2(Common::Point &p);
};
public:
Action1 _action1;
@@ -666,13 +666,13 @@ public:
int _fieldAF8;
int _fieldB9E;
PaletteRotation *_rotation;
- int _field126E;
+ int _mazeChangeAmount;
int _field1270;
int _field1272;
int _field1274;
int _field1276;
int _field1278;
- Common::Point _position1;
+ Common::Point _mazePosition;
int _field127E;
int _field1280;
int _field1282;
Commit: 755f6c30a26cb3de583fcb917db36f4b4f07aa5c
https://github.com/scummvm/scummvm/commit/755f6c30a26cb3de583fcb917db36f4b4f07aa5c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T07:02:37-07:00
Commit Message:
TSAGE: Fix moving past intersection in R2R scene 3500 maze
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 55303cf..4590ad9 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3824,7 +3824,7 @@ void Scene3500::dispatch() {
newMazeX = _mazePosition.x;
newMazeY = _mazePosition.y;
- var_4 = _mazeUI.cellFromX(70) - 70;
+ var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
var_6 = _mazeUI.cellFromY(_mazePosition.y + 46) - 46;
var_8 = abs(var_4 - newMazeX);
var_a = abs(var_6 - newMazeY);
@@ -3833,8 +3833,8 @@ void Scene3500::dispatch() {
switch (_field1276 - 1) {
case 0:
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
- if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1))
- || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) {
+ if (((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) ||
+ ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && var_8 > 3)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
Commit: 8e77285bc7646333b1dc3878bee577c87a9edd19
https://github.com/scummvm/scummvm/commit/8e77285bc7646333b1dc3878bee577c87a9edd19
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T07:28:21-07:00
Commit Message:
TSAGE: Set up a maze direction enum for R2R mazes
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.h
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 6829bec..17c85bb 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -276,6 +276,8 @@ public:
}
};
+enum MazeDirection { MAZEDIR_NONE = 0, MAZEDIR_NORTH = 1, MAZEDIR_EAST = 3, MAZEDIR_SOUTH = 5, MAZEDIR_WEST = 7 };
+
class MazeUI: public SavedObject {
private:
void clear();
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 4590ad9..84ec927 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3087,7 +3087,7 @@ Scene3500::Scene3500() {
_field1270 = 0;
_field1272 = 0;
_field1274 = 0;
- _field1276 = 0;
+ _mazeDirection = MAZEDIR_NONE;
_field1278 = 0;
_mazePosition.x = 0;
_mazePosition.y = 0;
@@ -3108,7 +3108,7 @@ void Scene3500::synchronize(Serializer &s) {
s.syncAsSint16LE(_field1270);
s.syncAsSint16LE(_field1272);
s.syncAsSint16LE(_field1274);
- s.syncAsSint16LE(_field1276);
+ s.syncAsSint16LE(_mazeDirection);
s.syncAsSint16LE(_field1278);
s.syncAsSint16LE(_mazePosition.x);
s.syncAsSint16LE(_mazePosition.y);
@@ -3235,7 +3235,7 @@ void Scene3500::Action1::signal() {
scene->_actor1.setFrame(scene->_actor1.changeFrame());
}
- int var8 = (scene->_action1._field1E * 2 + scene->_field1276);
+ int var8 = (scene->_action1._field1E * 2 + scene->_mazeDirection);
if (var8 > 7)
var8 = 1;
else if (var8 < 1)
@@ -3312,8 +3312,8 @@ void Scene3500::Action1::signal() {
break;
case 5:
scene->_actor1._frameChange = _field1E;
- scene->_field1276 = scene->_actor1.changeFrame();
- scene->_actor1.setFrame(scene->_field1276);
+ scene->_mazeDirection = scene->_actor1.changeFrame();
+ scene->_actor1.setFrame(scene->_mazeDirection);
setDelay(1);
break;
case 6:
@@ -3333,8 +3333,8 @@ void Scene3500::Action1::signal() {
case 7:
if ((scene->_actor1._frame % 2) == 0) {
scene->_actor1._frameChange = _field1E;
- scene->_field1276 = scene->_actor1.changeFrame();
- scene->_actor1.setFrame(scene->_field1276);
+ scene->_mazeDirection = scene->_actor1.changeFrame();
+ scene->_actor1.setFrame(scene->_mazeDirection);
}
setDelay(1);
break;
@@ -3350,7 +3350,7 @@ void Scene3500::Action1::signal() {
// but it's clearly a cut and paste error from case 4.
// The following code allows the switch to work properly.
warning("Checkme: fix for dead code");
- int var_8 = (_field1E * 2 + scene->_field1276);
+ int var_8 = (_field1E * 2 + scene->_mazeDirection);
if (var_8 > 7)
var_8 = 1;
else if (var_8 < 1)
@@ -3637,8 +3637,8 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_item1.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL);
_actor1.postInit();
- _field1276 = 1;
- _actor1.setup(1004, 1, _field1276);
+ _mazeDirection = 1;
+ _actor1.setup(1004, 1, _mazeDirection);
_actor1.setPosition(Common::Point(230, 135));
_actor1.fixPriority(200);
_actor1._frameChange = 1;
@@ -3794,7 +3794,7 @@ void Scene3500::dispatch() {
if (((_actor1._frame % 2) == 0) && (_action1._field24 == 0)) {
_actor1.setFrame(_actor1.changeFrame());
- _field1276 = _actor1._frame;
+ _mazeDirection = _actor1._frame;
}
int oldField1278;
if ((_field1278 != 0) && (_action1._field24 == 0)) {
@@ -3830,8 +3830,8 @@ void Scene3500::dispatch() {
var_a = abs(var_6 - newMazeY);
dx = 0;
- switch (_field1276 - 1) {
- case 0:
+ switch (_mazeDirection) {
+ case MAZEDIR_NORTH:
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if (((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) ||
((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && var_8 > 3)) {
@@ -3897,7 +3897,7 @@ void Scene3500::dispatch() {
}
}
break;
- case 2:
+ case MAZEDIR_EAST:
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31))
|| (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) {
@@ -3963,7 +3963,7 @@ void Scene3500::dispatch() {
}
}
break;
- case 4:
+ case MAZEDIR_SOUTH:
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1))
|| (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) {
@@ -4048,7 +4048,7 @@ void Scene3500::dispatch() {
}
}
break;
- case 6:
+ case MAZEDIR_WEST:
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31))
|| (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) {
@@ -4140,10 +4140,10 @@ void Scene3500::dispatch() {
if (_mazeChangeAmount >= _field1270) {
if (_mazeChangeAmount == 1) {
if (_action1._field24 != 0) {
- if ( ((_field1276 == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)))
- || ((_field1276 == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)))
- || ((_field1276 == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)))
- || ((_field1276 == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){
+ if ( ((_mazeDirection == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)))
+ || ((_mazeDirection == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)))
+ || ((_mazeDirection == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)))
+ || ((_mazeDirection == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){
_mazeChangeAmount = 1;
} else
_mazeChangeAmount--;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index ead2d3b..ec4ea86 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -670,7 +670,7 @@ public:
int _field1270;
int _field1272;
int _field1274;
- int _field1276;
+ int _mazeDirection;
int _field1278;
Common::Point _mazePosition;
int _field127E;
Commit: 0205c9754d25ff5858a383178176969fde23d8ca
https://github.com/scummvm/scummvm/commit/0205c9754d25ff5858a383178176969fde23d8ca
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T12:23:38-07:00
Commit Message:
TSAGE: Added extra entries for diagonals to MazeDirection enum
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 17c85bb..576482b 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -276,7 +276,9 @@ public:
}
};
-enum MazeDirection { MAZEDIR_NONE = 0, MAZEDIR_NORTH = 1, MAZEDIR_EAST = 3, MAZEDIR_SOUTH = 5, MAZEDIR_WEST = 7 };
+enum MazeDirection { MAZEDIR_NONE = 0, MAZEDIR_NORTH = 1, MAZEDIR_NORTHEAST = 2, MAZEDIR_EAST = 3,
+ MAZEDIR_SOUTHEAST = 4, MAZEDIR_SOUTH = 5, MAZEDIR_SOUTHWEST = 6, MAZEDIR_WEST = 7,
+ MAZEDIR_NORTHWEST = 8 };
class MazeUI: public SavedObject {
private:
Commit: 831c4db6df4c55eac9432819287acc8f903b4542
https://github.com/scummvm/scummvm/commit/831c4db6df4c55eac9432819287acc8f903b4542
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T12:26:24-07:00
Commit Message:
TSAGE: Rearranged some of the R2R scene 3500 methods to group them
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 84ec927..74ec706 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -2978,226 +2978,6 @@ void Scene3500::Action1::sub108732(int arg1) {
}
}
-/*--------------------------------------------------------------------------*/
-
-Scene3500::Action2::Action2() {
- _field1E = 0;
-}
-
-void Scene3500::Action2::synchronize(Serializer &s) {
- Action::synchronize(s);
-
- s.syncAsSint16LE(_field1E);
-}
-
-/*--------------------------------------------------------------------------*/
-
-Scene3500::Item4::Item4() {
- _field34 = 0;
-}
-
-void Scene3500::Item4::synchronize(Serializer &s) {
- NamedHotspot::synchronize(s);
-
- s.syncAsSint16LE(_field34);
-}
-
-/*--------------------------------------------------------------------------*/
-
-Scene3500::Actor7::Actor7() {
- _fieldA4 = 0;
- _fieldA6 = 0;
- _fieldA8 = 0;
- _fieldAA = 0;
- _fieldAC = 0;
- _fieldAE = 0;
-}
-
-void Scene3500::Actor7::synchronize(Serializer &s) {
- SceneActor::synchronize(s);
-
- s.syncAsSint16LE(_fieldA4);
- s.syncAsSint16LE(_fieldA6);
- s.syncAsSint16LE(_fieldA8);
- s.syncAsSint16LE(_fieldAA);
- s.syncAsSint16LE(_fieldAC);
- s.syncAsSint16LE(_fieldAE);
-}
-
-void Scene3500::Actor7::sub109466(int arg1, int arg2, int arg3, int arg4, int arg5) {
- _fieldAE = 0;
- _fieldA4 = arg1;
- _fieldA6 = arg2;
- _fieldA8 = arg3;
- _fieldAA = arg4;
- _fieldAC = _fieldAA / _fieldA8;
-
- postInit();
- setup(1050, 3, 1);
- fixPriority(255);
- sub109663(arg5);
-}
-
-void Scene3500::Actor7::sub1094ED() {
- Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene;
-
- scene->_field1270 = _position.x - _fieldA4;
-}
-
-void Scene3500::Actor7::sub109663(int arg1){
- sub109693(Common::Point(_fieldA4 + arg1, _fieldA6 - (_fieldAC * arg1)));
-}
-
-void Scene3500::Actor7::sub109693(Common::Point Pt) {
- setPosition(Pt);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int Scene3500::MazeUI3500::cellFromX(int x) {
- return (_cellSize.x / 2) + x - (x % _cellSize.x);
-}
-
-int Scene3500::MazeUI3500::cellFromY(int y) {
- return (_cellSize.y / 2) + y - (y % _cellSize.y);
-}
-
-int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
- int cellX = pt.x / _cellSize.x;
- int cellY = pt.y / _cellSize.y;
-
- if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y)) {
- return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * cellY + cellX) * 2);
- } else
- return -1;
-}
-
-bool Scene3500::MazeUI3500::setMazePosition2(Common::Point &p) {
- bool retVal = setMazePosition(p);
- p = _mapOffset;
-
- return retVal;
-}
-
-Scene3500::Scene3500() {
- _fieldAF8 = 0;
- _fieldB9E = 0;
- _rotation = NULL;
- _mazeChangeAmount = 0;
- _field1270 = 0;
- _field1272 = 0;
- _field1274 = 0;
- _mazeDirection = MAZEDIR_NONE;
- _field1278 = 0;
- _mazePosition.x = 0;
- _mazePosition.y = 0;
- _field127E = 0;
- _field1280 = 0;
- _field1282 = 0;
- _field1284 = 0;
- _field1286 = 0;
-}
-
-void Scene3500::synchronize(Serializer &s) {
- SceneExt::synchronize(s);
- SYNC_POINTER(_rotation);
-
- s.syncAsSint16LE(_fieldAF8);
- s.syncAsSint16LE(_fieldB9E);
- s.syncAsSint16LE(_mazeChangeAmount);
- s.syncAsSint16LE(_field1270);
- s.syncAsSint16LE(_field1272);
- s.syncAsSint16LE(_field1274);
- s.syncAsSint16LE(_mazeDirection);
- s.syncAsSint16LE(_field1278);
- s.syncAsSint16LE(_mazePosition.x);
- s.syncAsSint16LE(_mazePosition.y);
- s.syncAsSint16LE(_field127E);
- s.syncAsSint16LE(_field1280);
- s.syncAsSint16LE(_field1282);
- s.syncAsSint16LE(_field1284);
- s.syncAsSint16LE(_field1286);
-}
-
-void Scene3500::sub107F71(int arg1) {
- switch (arg1) {
- case -1:
- _actor7.sub1094ED();
- if (_field1270 != 0) {
- _field1270--;
- _actor7.sub109663(_field1270);
- }
- if (_action1._field24 != 0)
- _field1270 = 0;
- break;
- case 1:
- _actor7.sub1094ED();
- if (_field1270 < 16) {
- ++_field1270;
- _actor7.sub109663(_field1270);
- }
- if (_action1._field24 != 0)
- _field1270 = 0;
- break;
- case 88:
- if ((_action == 0) || (_action1._field24 == 0)) {
- // The original makes a second useless check on action, skipped
- _action2.sub10831F(2);
- if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != 2))) {
- _action2.signal();
- } else {
- _actor9.setAction(&_action2, &_actor9, NULL);
- }
- }
- break;
- case 96:
- if ((_action) && (_action1._field24 != 0) && (_action2._field1E != 1)) {
- _field1278 = 0;
- _action1.sub108732(0);
- } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) {
- _field1278 = arg1;
- } else if ((_action) && (_action1._field24 == 0)) {
- _action1.sub108670(1);
- _action1.signal();
- } else if (_action == 0) {
- _action1.sub108670(1);
- setAction(&_action1, &_actor1, NULL);
- }
- break;
- case 104:
- if ((_action == 0) || (_action1._field24 == 0)) {
- _action2.sub10831F(-1);
- if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != -1))) {
- _action2.signal();
- } else {
- _actor9.setAction(&_action2, &_actor9, NULL);
- }
- }
- break;
- case 112:
- if ((_action) && (_action1._field24 != 0) && (_action2._field1E != -1)) {
- _field1278 = 0;
- _action1.sub108732(0);
- } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) {
- _field1278 = arg1;
- } else if ((_action) && (_action1._field24 == 0)) {
- _action1.sub108670(-1);
- _action1.signal();
- } else if (_action == 0) {
- _action1.sub108670(-1);
- setAction(&_action1, &_actor1, NULL);
- }
- break;
- default:
- _field1270 = arg1;
- _actor7.sub109663(arg1);
- if (_action1._field24 != 0) {
- _field1270 = 0;
- }
- break;
- }
-}
-
void Scene3500::Action1::signal() {
Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene;
@@ -3430,6 +3210,226 @@ void Scene3500::Action1::dispatch() {
}
}
+/*--------------------------------------------------------------------------*/
+
+Scene3500::Action2::Action2() {
+ _field1E = 0;
+}
+
+void Scene3500::Action2::synchronize(Serializer &s) {
+ Action::synchronize(s);
+
+ s.syncAsSint16LE(_field1E);
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene3500::Item4::Item4() {
+ _field34 = 0;
+}
+
+void Scene3500::Item4::synchronize(Serializer &s) {
+ NamedHotspot::synchronize(s);
+
+ s.syncAsSint16LE(_field34);
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene3500::Actor7::Actor7() {
+ _fieldA4 = 0;
+ _fieldA6 = 0;
+ _fieldA8 = 0;
+ _fieldAA = 0;
+ _fieldAC = 0;
+ _fieldAE = 0;
+}
+
+void Scene3500::Actor7::synchronize(Serializer &s) {
+ SceneActor::synchronize(s);
+
+ s.syncAsSint16LE(_fieldA4);
+ s.syncAsSint16LE(_fieldA6);
+ s.syncAsSint16LE(_fieldA8);
+ s.syncAsSint16LE(_fieldAA);
+ s.syncAsSint16LE(_fieldAC);
+ s.syncAsSint16LE(_fieldAE);
+}
+
+void Scene3500::Actor7::sub109466(int arg1, int arg2, int arg3, int arg4, int arg5) {
+ _fieldAE = 0;
+ _fieldA4 = arg1;
+ _fieldA6 = arg2;
+ _fieldA8 = arg3;
+ _fieldAA = arg4;
+ _fieldAC = _fieldAA / _fieldA8;
+
+ postInit();
+ setup(1050, 3, 1);
+ fixPriority(255);
+ sub109663(arg5);
+}
+
+void Scene3500::Actor7::sub1094ED() {
+ Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene;
+
+ scene->_field1270 = _position.x - _fieldA4;
+}
+
+void Scene3500::Actor7::sub109663(int arg1){
+ sub109693(Common::Point(_fieldA4 + arg1, _fieldA6 - (_fieldAC * arg1)));
+}
+
+void Scene3500::Actor7::sub109693(Common::Point Pt) {
+ setPosition(Pt);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int Scene3500::MazeUI3500::cellFromX(int x) {
+ return (_cellSize.x / 2) + x - (x % _cellSize.x);
+}
+
+int Scene3500::MazeUI3500::cellFromY(int y) {
+ return (_cellSize.y / 2) + y - (y % _cellSize.y);
+}
+
+int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
+ int cellX = pt.x / _cellSize.x;
+ int cellY = pt.y / _cellSize.y;
+
+ if ((cellX >= 0) && (cellY >= 0) && (cellX < _mapCells.x) && (cellY < _mapCells.y)) {
+ return (int16)READ_LE_UINT16(_mapData + (_mapCells.x * cellY + cellX) * 2);
+ } else
+ return -1;
+}
+
+bool Scene3500::MazeUI3500::setMazePosition2(Common::Point &p) {
+ bool retVal = setMazePosition(p);
+ p = _mapOffset;
+
+ return retVal;
+}
+
+Scene3500::Scene3500() {
+ _fieldAF8 = 0;
+ _fieldB9E = 0;
+ _rotation = NULL;
+ _mazeChangeAmount = 0;
+ _field1270 = 0;
+ _field1272 = 0;
+ _field1274 = 0;
+ _mazeDirection = MAZEDIR_NONE;
+ _field1278 = 0;
+ _mazePosition.x = 0;
+ _mazePosition.y = 0;
+ _field127E = 0;
+ _field1280 = 0;
+ _field1282 = 0;
+ _field1284 = 0;
+ _field1286 = 0;
+}
+
+void Scene3500::synchronize(Serializer &s) {
+ SceneExt::synchronize(s);
+ SYNC_POINTER(_rotation);
+
+ s.syncAsSint16LE(_fieldAF8);
+ s.syncAsSint16LE(_fieldB9E);
+ s.syncAsSint16LE(_mazeChangeAmount);
+ s.syncAsSint16LE(_field1270);
+ s.syncAsSint16LE(_field1272);
+ s.syncAsSint16LE(_field1274);
+ s.syncAsSint16LE(_mazeDirection);
+ s.syncAsSint16LE(_field1278);
+ s.syncAsSint16LE(_mazePosition.x);
+ s.syncAsSint16LE(_mazePosition.y);
+ s.syncAsSint16LE(_field127E);
+ s.syncAsSint16LE(_field1280);
+ s.syncAsSint16LE(_field1282);
+ s.syncAsSint16LE(_field1284);
+ s.syncAsSint16LE(_field1286);
+}
+
+void Scene3500::sub107F71(int arg1) {
+ switch (arg1) {
+ case -1:
+ _actor7.sub1094ED();
+ if (_field1270 != 0) {
+ _field1270--;
+ _actor7.sub109663(_field1270);
+ }
+ if (_action1._field24 != 0)
+ _field1270 = 0;
+ break;
+ case 1:
+ _actor7.sub1094ED();
+ if (_field1270 < 16) {
+ ++_field1270;
+ _actor7.sub109663(_field1270);
+ }
+ if (_action1._field24 != 0)
+ _field1270 = 0;
+ break;
+ case 88:
+ if ((_action == 0) || (_action1._field24 == 0)) {
+ // The original makes a second useless check on action, skipped
+ _action2.sub10831F(2);
+ if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != 2))) {
+ _action2.signal();
+ } else {
+ _actor9.setAction(&_action2, &_actor9, NULL);
+ }
+ }
+ break;
+ case 96:
+ if ((_action) && (_action1._field24 != 0) && (_action2._field1E != 1)) {
+ _field1278 = 0;
+ _action1.sub108732(0);
+ } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) {
+ _field1278 = arg1;
+ } else if ((_action) && (_action1._field24 == 0)) {
+ _action1.sub108670(1);
+ _action1.signal();
+ } else if (_action == 0) {
+ _action1.sub108670(1);
+ setAction(&_action1, &_actor1, NULL);
+ }
+ break;
+ case 104:
+ if ((_action == 0) || (_action1._field24 == 0)) {
+ _action2.sub10831F(-1);
+ if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != -1))) {
+ _action2.signal();
+ } else {
+ _actor9.setAction(&_action2, &_actor9, NULL);
+ }
+ }
+ break;
+ case 112:
+ if ((_action) && (_action1._field24 != 0) && (_action2._field1E != -1)) {
+ _field1278 = 0;
+ _action1.sub108732(0);
+ } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) {
+ _field1278 = arg1;
+ } else if ((_action) && (_action1._field24 == 0)) {
+ _action1.sub108670(-1);
+ _action1.signal();
+ } else if (_action == 0) {
+ _action1.sub108670(-1);
+ setAction(&_action1, &_actor1, NULL);
+ }
+ break;
+ default:
+ _field1270 = arg1;
+ _actor7.sub109663(arg1);
+ if (_action1._field24 != 0) {
+ _field1270 = 0;
+ }
+ break;
+ }
+}
+
void Scene3500::Action2::sub10831F(int arg1) {
Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene;
@@ -3703,64 +3703,58 @@ void Scene3500::process(Event &event) {
if (event.eventType == EVENT_KEYPRESS) {
switch (event.kbd.keycode) {
- case Common::KEYCODE_1:
- warning("FIXME: keycode = 0x4700");
+ case Common::KEYCODE_KP7:
R2_GLOBALS._sound2.play(338);
sub107F71(16);
event.handled = true;
break;
- case Common::KEYCODE_2:
- warning("FIXME: keycode = 0x4800");
+ case Common::KEYCODE_UP:
+ case Common::KEYCODE_KP8:
R2_GLOBALS._sound2.play(14, NULL, 63);
sub107F71(88);
event.handled = true;
break;
- case Common::KEYCODE_3:
- warning("FIXME: keycode = 0x4900");
+ case Common::KEYCODE_KP9:
if (_field1270 < 16)
R2_GLOBALS._sound2.play(338);
sub107F71(1);
event.handled = true;
break;
- case Common::KEYCODE_4:
- warning("FIXME: keycode = 0x4B00");
+ case Common::KEYCODE_KP4:
+ case Common::KEYCODE_LEFT:
R2_GLOBALS._sound2.play(14, NULL, 63);
sub107F71(112);
event.handled = true;
break;
- case Common::KEYCODE_5:
- warning("FIXME: keycode = 0x4D00");
+ case Common::KEYCODE_KP6:
+ case Common::KEYCODE_RIGHT:
R2_GLOBALS._sound2.play(14, NULL, 63);
sub107F71(96);
event.handled = true;
break;
- case Common::KEYCODE_6:
- warning("FIXME: keycode = 0x4F00");
+ case Common::KEYCODE_KP1:
R2_GLOBALS._sound2.play(338);
sub107F71(0);
event.handled = true;
break;
- case Common::KEYCODE_7:
- warning("FIXME: keycode = 0x5000");
+ case Common::KEYCODE_KP2:
+ case Common::KEYCODE_DOWN:
R2_GLOBALS._sound2.play(14, NULL, 63);
sub107F71(104);
event.handled = true;
break;
- case Common::KEYCODE_8:
- warning("FIXME: keycode = 0x5100");
+ case Common::KEYCODE_KP3:
if (_field1270 != 0)
R2_GLOBALS._sound2.play(338);
sub107F71(-1);
event.handled = true;
break;
- case Common::KEYCODE_9:
- warning("FIXME: keycode = 0x5200");
+ case Common::KEYCODE_KP0:
R2_GLOBALS._sound2.play(338);
sub107F71(8);
event.handled = true;
break;
- case Common::KEYCODE_0:
- warning("FIXME: keycode = 0x5300");
+ case Common::KEYCODE_KP_PERIOD:
R2_GLOBALS._sound2.play(338);
sub107F71(4);
event.handled = true;
Commit: fcd53acb0be18bab48d4b9bd34939429a4122223
https://github.com/scummvm/scummvm/commit/fcd53acb0be18bab48d4b9bd34939429a4122223
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T14:29:00-07:00
Commit Message:
TSAGE: Fix for rotating in R2R maze scenes
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 74ec706..1812778 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -2920,9 +2920,10 @@ void Scene3500::Action1::sub108670(int arg1) {
else
scene->_actor5.show();
- if (scene->_actor1._frame % 2 == 0)
- scene->_actor1._frameChange = _field1E;
- scene->_actor1.setFrame(scene->_actor1.changeFrame());
+ if (scene->_actor1._frame % 2 == 0) {
+ scene->_actor1._frameChange = _field1E;
+ scene->_actor1.setFrame(scene->_actor1.changeFrame());
+ }
setActionIndex(0);
}
@@ -2993,7 +2994,7 @@ void Scene3500::Action1::signal() {
}
break;
case 1:
- if ((scene->_actor1._frame % 2) == 0) {
+ if ((scene->_actor1._frame % 2) == 1) {
setDelay(1);
return;
}
@@ -3637,7 +3638,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_item1.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL);
_actor1.postInit();
- _mazeDirection = 1;
+ _mazeDirection = MAZEDIR_NORTH;
_actor1.setup(1004, 1, _mazeDirection);
_actor1.setPosition(Common::Point(230, 135));
_actor1.fixPriority(200);
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index ec4ea86..85e5674 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -650,6 +650,7 @@ public:
Item4 _item5;
Item4 _item6;
Item4 _item7;
+ // Glyph of vessel on top of the maze ui
SceneActor _actor1;
SceneActor _actor2;
SceneActor _actor3;
Commit: 264a52aae683e3e34836afc8cfae6d0d33bb05b2
https://github.com/scummvm/scummvm/commit/264a52aae683e3e34836afc8cfae6d0d33bb05b2
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-06-30T15:48:52-07:00
Commit Message:
TSAGE: Corrected starting to maze again after rotating in maze
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 1812778..b1cd4e7 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3016,14 +3016,17 @@ void Scene3500::Action1::signal() {
scene->_actor1.setFrame(scene->_actor1.changeFrame());
}
+ // Get the new direction starting on
int var8 = (scene->_action1._field1E * 2 + scene->_mazeDirection);
- if (var8 > 7)
- var8 = 1;
- else if (var8 < 1)
- var8 = 7;
+ if (var8 > MAZEDIR_NORTHWEST)
+ var8 = MAZEDIR_NORTH;
+ else if (var8 < MAZEDIR_NORTH)
+ var8 = MAZEDIR_WEST;
+ // Check whether movement is allowed in that direction. If so, then
+ // movement is started again
switch (var8) {
- case 0:
+ case MAZEDIR_NORTH:
if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 23) && (si != 24) && (si != 4) && (si != 11))
|| (var6 != 0)) {
if ((si != 25) && (si != 26) && (si != 5) && (si != 14) && (si != 15))
@@ -3035,7 +3038,7 @@ void Scene3500::Action1::signal() {
} else
_field20 = 1;
break;
- case 2:
+ case MAZEDIR_EAST:
if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 26) && (si != 24) && (si != 15) && (si != 6) && (si != 31))
|| (di != 0)) {
if ((si != 25) && (si != 23) && (si != 14) && (si != 5) && (si != 4))
@@ -3047,7 +3050,7 @@ void Scene3500::Action1::signal() {
} else
_field20 = 1;
break;
- case 4:
+ case MAZEDIR_SOUTH:
if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 25) && (si != 26) && (si != 5) && (si != 16) && (si != 31))
|| (var6 != 0)) {
if ((si != 23) && (si != 24) && (si != 4) && (si != 14) && (si != 15))
@@ -3059,7 +3062,7 @@ void Scene3500::Action1::signal() {
} else
_field20 = 1;
break;
- case 6:
+ case MAZEDIR_WEST:
if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 25) && (si != 23) && (si != 14) && (si != 1) && (si != 31))
|| (var6 != 0)) {
if ((si != 26) && (si != 24) && (si != 15) && (si != 5) && (si != 4))
Commit: ce3e765f5fde3696fd6a8f98f74027f88a060ebe
https://github.com/scummvm/scummvm/commit/ce3e765f5fde3696fd6a8f98f74027f88a060ebe
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-02T19:41:05-07:00
Commit Message:
TSAGE: Fixes for moving south in R2R maze scene 3500
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 3f062d0..86014fb 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -1377,6 +1377,9 @@ void MazeUI::draw() {
int ySize;
Visage visage;
+ _cellsVisible.y = ((_mapOffset.y % _cellSize.y) + _displayBounds.height() +
+ (_cellSize.y - 1)) / _cellSize.y;
+
// Loop to handle the cell rows of the visible display area one at a time
for (int yCtr = 0; yCtr < _cellsVisible.y; ++yCtr, yPos += ySize) {
int cellY = _mapOffset.y / _cellSize.y + yCtr;
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index b1cd4e7..c49aca3 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3295,7 +3295,7 @@ int Scene3500::MazeUI3500::cellFromX(int x) {
}
int Scene3500::MazeUI3500::cellFromY(int y) {
- return (_cellSize.y / 2) + y - (y % _cellSize.y);
+ return (_cellSize.y / 2) + y - (y % _cellSize.y) - 1;
}
int Scene3500::MazeUI3500::getCellFromMapXY(Common::Point pt) {
@@ -3976,7 +3976,8 @@ void Scene3500::dispatch() {
var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46;
newMazeY = _mazePosition.y + _mazeChangeAmount;
dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
- if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId == dx)) {
+
+ if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != dx)) {
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
_field1270 = 0;
@@ -3984,7 +3985,7 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((cellId == 16) && (cellId == dx)) {
+ } else if ((cellId == 16) && (cellId != dx)) {
newMazeY = var_6 - 3;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -3993,7 +3994,7 @@ void Scene3500::dispatch() {
_field1272 = 0;
if (_action1._field24 == 0)
_actor8.hide();
- } else if ((cellId == 31) && (cellId == dx)) {
+ } else if ((cellId == 31) && (cellId != dx)) {
newMazeY = var_6 + 4;
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4008,6 +4009,8 @@ void Scene3500::dispatch() {
cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= var_6) && (_mazePosition.y <= var_6))
|| (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){
+ newMazeY = var_6;
+
if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15))
R2_GLOBALS._sound2.play(339);
_rotation->_idxChange = 0;
@@ -4153,7 +4156,7 @@ void Scene3500::dispatch() {
++_mazeChangeAmount;
_field1272 = 1;
}
- _actor2.setFrame2(_mazeChangeAmount);
+ _actor2.setFrame2(_mazeChangeAmount + 1);
}
if (_field1272 == 1) {
@@ -4169,7 +4172,7 @@ void Scene3500::dispatch() {
_field1272--;
if (_mazeChangeAmount != 0) {
- R2_GLOBALS._player._uiEnabled = false;
+ R2_GLOBALS._player._uiEnabled = false;
if (_mazeChangeAmount != _field1270)
_aSound1.play(276);
} else {
Commit: 97d8f768c2a32de7ea90300ce583068f6bc80a17
https://github.com/scummvm/scummvm/commit/97d8f768c2a32de7ea90300ce583068f6bc80a17
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-03T05:12:30-07:00
Commit Message:
TSAGE: Renaming maze Ui field in R2R scene 1200
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes1.cpp
engines/tsage/ringworld2/ringworld2_scenes1.h
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index fc79487..85a6095 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1131,12 +1131,12 @@ void Scene1200::postInit(SceneObjectList *OwnerList) {
_actor1.postInit();
_actor1.hide();
- _object1.setDisplayBounds(Rect(110, 20, 210, 120));
+ _mazeUI.setDisplayBounds(Rect(110, 20, 210, 120));
- _object1.load(1);
- _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _mazeUI.load(1);
+ _mazeUI.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.draw();
+ _mazeUI.draw();
warning("set_pane_p(unk);");
R2_GLOBALS._player.enableControl();
@@ -1393,8 +1393,8 @@ void Scene1200::process(Event &event) {
return;
if (event.eventType == EVENT_BUTTON_DOWN) {
- _object1.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
- int unk = _object1.getCellFromPixelXY(event.mousePos);
+ _mazeUI.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
+ int unk = _mazeUI.getCellFromPixelXY(event.mousePos);
switch (R2_GLOBALS._events.getCursor()) {
case CURSOR_ARROW:
event.handled = true;
@@ -1541,13 +1541,14 @@ void Scene1200::dispatch() {
Rect tmpRect;
Scene::dispatch();
if (_field41C != 0) {
- _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
- warning("int unk = set_pane_p(_paneNumber);");
- _object1.draw();
+ _mazeUI.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _mazeUI.draw();
+
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
_field41C = 0;
}
+ _mazeUI.draw(); //**DEBUG**
if (_field414 != 0) {
tmpRect.set(110, 20, 210, 120);
@@ -1568,9 +1569,9 @@ void Scene1200::dispatch() {
default:
break;
}
- _object1.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
+ _mazeUI.setMazePosition(Common::Point(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4));
warning("int unk = set_pane_p(_paneNumber);");
- _object1.draw();
+ _mazeUI.draw();
warning("_gfxManager.sub294AC(unk);");
warning("tmpRect.sub14DF3();");
@@ -1606,11 +1607,11 @@ void Scene1200::saveCharacter(int characterIndex) {
}
void Scene1200::sub9DAD6(int indx) {
- _object1.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
+ _mazeUI.pixelToCellXY(R2_GLOBALS._v56AA2, R2_GLOBALS._v56AA4);
switch (indx) {
case 0:
- if ( ((_object1.getCellFromPixelXY(Common::Point(200, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(200, 88)) > 36))
+ if ( ((_mazeUI.getCellFromPixelXY(Common::Point(200, 50)) > 36) || (_mazeUI.getCellFromPixelXY(Common::Point(200, 88)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 3) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
|| ((R2_GLOBALS._v56AA2 == 13) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
|| ((R2_GLOBALS._v56AA2 == 29) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
@@ -1619,7 +1620,7 @@ void Scene1200::sub9DAD6(int indx) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1200;
setAction(&_sequenceManager, this, 1200, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(200, 69)) == 36) {
+ } else if (_mazeUI.getCellFromPixelXY(Common::Point(200, 69)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3155)
@@ -1654,7 +1655,7 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 1:
- if ( ((_object1.getCellFromPixelXY(Common::Point(120, 50)) > 36) || (_object1.getCellFromPixelXY(Common::Point(120, 88)) > 36))
+ if ( ((_mazeUI.getCellFromPixelXY(Common::Point(120, 50)) > 36) || (_mazeUI.getCellFromPixelXY(Common::Point(120, 88)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 7) && (R2_GLOBALS._v56AA4 == 33) && (_field418 != 4))
|| ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 21) && (_field418 != 2))
|| ((R2_GLOBALS._v56AA2 == 33) && (R2_GLOBALS._v56AA4 == 17) && (_field418 != 1))
@@ -1663,7 +1664,7 @@ void Scene1200::sub9DAD6(int indx) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1201;
setAction(&_sequenceManager, this, 1201, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(120, 69)) == 36) {
+ } else if (_mazeUI.getCellFromPixelXY(Common::Point(120, 69)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
@@ -1698,14 +1699,14 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 2:
- if ( ((_object1.getCellFromPixelXY(Common::Point(140, 110)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 110)) > 36))
+ if ( ((_mazeUI.getCellFromPixelXY(Common::Point(140, 110)) > 36) || (_mazeUI.getCellFromPixelXY(Common::Point(178, 110)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 5) && (_field418 != 3))
|| ((R2_GLOBALS._v56AA2 == 41) && (R2_GLOBALS._v56AA4 == 21)) )
) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1203;
setAction(&_sequenceManager, this, 1203, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(160, 110)) == 36) {
+ } else if (_mazeUI.getCellFromPixelXY(Common::Point(160, 110)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
@@ -1740,14 +1741,14 @@ void Scene1200::sub9DAD6(int indx) {
}
break;
case 3:
- if ( ((_object1.getCellFromPixelXY(Common::Point(140, 30)) > 36) || (_object1.getCellFromPixelXY(Common::Point(178, 30)) > 36))
+ if ( ((_mazeUI.getCellFromPixelXY(Common::Point(140, 30)) > 36) || (_mazeUI.getCellFromPixelXY(Common::Point(178, 30)) > 36))
&& ( ((R2_GLOBALS._v56AA2 == 17) && (R2_GLOBALS._v56AA4 == 9) && (_field418 != 3))
|| ((R2_GLOBALS._v56AA2 == 35) && (R2_GLOBALS._v56AA4 == 17)) )
) {
R2_GLOBALS._player.disableControl();
_sceneMode = 1202;
setAction(&_sequenceManager, this, 1202, &_actor1, NULL);
- } else if (_object1.getCellFromPixelXY(Common::Point(160, 30)) == 36) {
+ } else if (_mazeUI.getCellFromPixelXY(Common::Point(160, 30)) == 36) {
switch (_field412 - 1) {
case 0:
if (R2_GLOBALS._player._visage == 3156)
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h
index d1e55ef..619e692 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.h
@@ -147,7 +147,7 @@ public:
NamedHotspot _item1;
SceneActor _actor1;
Area1 _area1;
- MazeUI _object1;
+ MazeUI _mazeUI;
SequenceManager _sequenceManager;
int _field412;
Commit: f355d7bfbdc74e23e65b79f34fae2781832b6d0b
https://github.com/scummvm/scummvm/commit/f355d7bfbdc74e23e65b79f34fae2781832b6d0b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-03T19:17:01-07:00
Commit Message:
TSAGE: Bugfix for leaving R2R scene 3500
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index c49aca3..648f823 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -2885,7 +2885,7 @@ void Scene3400::signal() {
}
/*--------------------------------------------------------------------------
- * Scene 3500 -
+ * Scene 3500 - Cavern Maze
*
*--------------------------------------------------------------------------*/
@@ -3586,8 +3586,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_field1272 = 1;
_field1270 = 4;
_mazeChangeAmount = 4;
- _mazePosition.x = 860;
- _mazePosition.y = 891;
+ _mazePosition = Common::Point(860, 891);
_rotation = R2_GLOBALS._scenePalette.addRotation(240, 254, -1);
_rotation->setDelay(0);
_rotation->_idxChange = 1;
@@ -3690,7 +3689,6 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
}
void Scene3500::remove() {
- _rotation->remove();
R2_GLOBALS._sound2.fadeOut2(NULL);
SceneExt::remove();
}
Commit: a49a7d5ad4f4435ed8cee0934c94155586f2dd99
https://github.com/scummvm/scummvm/commit/a49a7d5ad4f4435ed8cee0934c94155586f2dd99
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-03T19:47:15-07:00
Commit Message:
TSAGE: Fix for moving east in R2R maze scene 3500
Changed paths:
engines/tsage/ringworld2/ringworld2_scenes3.cpp
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 648f823..d5e7b1b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3929,7 +3929,7 @@ void Scene3500::dispatch() {
} else {
var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70;
var_8 = abs(newMazeX - var_4);
- cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, cellId + 46));
+ cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46));
if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= var_4) && (_mazePosition.x <= var_4))
|| (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) {
newMazeX = var_4;
Commit: fa737fd5af3763a152e92c4b74c114876b3a8573
https://github.com/scummvm/scummvm/commit/fa737fd5af3763a152e92c4b74c114876b3a8573
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-04T05:44:49-07:00
Commit Message:
Merge branch 'master' into tsage_r2r
Changed paths:
A backends/mixer/nullmixer/nullsdl-mixer.cpp
A backends/mixer/nullmixer/nullsdl-mixer.h
A backends/saves/recorder/recorder-saves.cpp
A backends/saves/recorder/recorder-saves.h
A common/recorderfile.cpp
A common/recorderfile.h
A devtools/create_project/msvc12/create_project.sln
A devtools/create_project/msvc12/create_project.vcxproj
A devtools/create_project/msvc12/create_project.vcxproj.filters
A dists/msvc12/create_msvc12.bat
A dists/msvc12/readme.txt
A gui/EventRecorder.cpp
A gui/EventRecorder.h
A gui/editrecorddialog.cpp
A gui/editrecorddialog.h
A gui/onscreendialog.cpp
A gui/onscreendialog.h
A gui/recorderdialog.cpp
A gui/recorderdialog.h
A gui/themes/scummmodern/editbtn.bmp
A gui/themes/scummmodern/editbtn_small.bmp
A gui/themes/scummmodern/fastreplay.bmp
A gui/themes/scummmodern/fastreplay_small.bmp
A gui/themes/scummmodern/stopbtn.bmp
A gui/themes/scummmodern/stopbtn_small.bmp
A gui/themes/scummmodern/switchbtn.bmp
A gui/themes/scummmodern/switchbtn_small.bmp
R common/EventRecorder.cpp
R common/EventRecorder.h
R engines/neverhood/todo.txt
.gitignore
Makefile
NEWS
audio/mixer.cpp
audio/softsynth/mt32/Part.cpp
audio/softsynth/mt32/Partial.cpp
audio/softsynth/mt32/Synth.cpp
audio/softsynth/mt32/Synth.h
audio/softsynth/mt32/TVA.cpp
backends/events/default/default-events.cpp
backends/events/sdl/sdl-events.cpp
backends/graphics/surfacesdl/surfacesdl-graphics.cpp
backends/graphics/surfacesdl/surfacesdl-graphics.h
backends/modular-backend.cpp
backends/module.mk
backends/mutex/sdl/sdl-mutex.cpp
backends/platform/android/android.cpp
backends/platform/android/android.h
backends/platform/bada/system.cpp
backends/platform/bada/system.h
backends/platform/dc/dc.h
backends/platform/dc/time.cpp
backends/platform/ds/arm9/source/dsmain.cpp
backends/platform/ds/arm9/source/dsmain.h
backends/platform/ds/arm9/source/osystem_ds.cpp
backends/platform/ds/arm9/source/osystem_ds.h
backends/platform/iphone/osys_main.cpp
backends/platform/iphone/osys_main.h
backends/platform/n64/osys_n64.h
backends/platform/n64/osys_n64_base.cpp
backends/platform/null/null.cpp
backends/platform/ps2/systemps2.cpp
backends/platform/ps2/systemps2.h
backends/platform/psp/osys_psp.cpp
backends/platform/psp/osys_psp.h
backends/platform/psp/rtc.cpp
backends/platform/psp/rtc.h
backends/platform/sdl/sdl-sys.h
backends/platform/sdl/sdl.cpp
backends/platform/sdl/sdl.h
backends/platform/wii/osystem.cpp
backends/platform/wii/osystem.h
backends/timer/default/default-timer.cpp
base/commandLine.cpp
base/main.cpp
common/EventDispatcher.cpp
common/debug.h
common/events.h
common/memstream.h
common/module.mk
common/random.cpp
common/str.cpp
common/str.h
common/system.cpp
common/system.h
configure
devtools/create_project/create_project.cpp
devtools/create_project/msbuild.cpp
engines/advancedDetector.cpp
engines/advancedDetector.h
engines/cge/cge.cpp
engines/dreamweb/dreamweb.cpp
engines/gob/surface.cpp
engines/hopkins/hopkins.cpp
engines/hopkins/hopkins.h
engines/hopkins/saveload.cpp
engines/hopkins/saveload.h
engines/hopkins/script.cpp
engines/kyra/kyra_rpg.cpp
engines/kyra/screen.cpp
engines/neverhood/console.cpp
engines/neverhood/console.h
engines/neverhood/detection.cpp
engines/neverhood/gamemodule.cpp
engines/neverhood/menumodule.cpp
engines/neverhood/menumodule.h
engines/neverhood/modules/module1100.cpp
engines/neverhood/modules/module1200.cpp
engines/neverhood/modules/module1300.cpp
engines/neverhood/modules/module2100.cpp
engines/neverhood/modules/module2200.cpp
engines/neverhood/modules/module2400.cpp
engines/neverhood/modules/module2700.cpp
engines/neverhood/modules/module2700.h
engines/neverhood/modules/module2800.cpp
engines/neverhood/modules/module3000.cpp
engines/neverhood/navigationscene.cpp
engines/neverhood/neverhood.cpp
engines/neverhood/neverhood.h
engines/neverhood/saveload.cpp
engines/saga/sndres.cpp
engines/sword25/gfx/image/renderedimage.cpp
engines/sword25/gfx/image/renderedimage.h
engines/toon/character.cpp
engines/toon/character.h
engines/wintermute/detection_tables.h
engines/wintermute/wintermute.cpp
graphics/cursorman.cpp
graphics/cursorman.h
graphics/scaler.h
graphics/scaler/thumbnail_intern.cpp
graphics/thumbnail.cpp
graphics/thumbnail.h
graphics/yuv_to_rgb.h
gui/ThemeEngine.cpp
gui/ThemeEngine.h
gui/dialog.h
gui/gui-manager.cpp
gui/gui-manager.h
gui/launcher.cpp
gui/launcher.h
gui/module.mk
gui/themes/default.inc
gui/themes/scummclassic.zip
gui/themes/scummclassic/classic_layout.stx
gui/themes/scummclassic/classic_layout_lowres.stx
gui/themes/scummmodern.zip
gui/themes/scummmodern/scummmodern_gfx.stx
gui/themes/scummmodern/scummmodern_layout.stx
gui/themes/scummmodern/scummmodern_layout_lowres.stx
po/POTFILES
test/common/str.h
video/codecs/indeo3.cpp
video/coktel_decoder.cpp
Commit: afdb007e2e158efa4a9a1098f80ff224d0038729
https://github.com/scummvm/scummvm/commit/afdb007e2e158efa4a9a1098f80ff224d0038729
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-07-04T06:07:15-07:00
Commit Message:
Merge branch 'master' of https://github.com/scummvm/scummvm
Changed paths:
audio/softsynth/mt32.cpp
More information about the Scummvm-git-logs
mailing list