Skip to content

Commit

Permalink
TSAGE: Further renaming of R2R Maze UI
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Jun 30, 2013
1 parent e74e062 commit 4bc868c
Show file tree
Hide file tree
Showing 4 changed files with 206 additions and 213 deletions.
227 changes: 19 additions & 208 deletions engines/tsage/ringworld2/ringworld2_logic.cpp
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand All @@ -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();
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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);
}

/*--------------------------------------------------------------------------*/
Expand Down
5 changes: 2 additions & 3 deletions engines/tsage/ringworld2/ringworld2_logic.h
Expand Up @@ -283,7 +283,7 @@ class MazeUI: public SavedObject {
Rect _displayBounds;
Rect _mapBounds;

byte *_field16;
byte *_mapData;
GfxSurface _mapImage;

int _field12;
Expand All @@ -306,11 +306,10 @@ class MazeUI: public SavedObject {
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 {
Expand Down

0 comments on commit 4bc868c

Please sign in to comment.