Skip to content

Commit

Permalink
TSAGE: R2R: Fix food submenu on ship computer (Scene 125)
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Aug 18, 2013
1 parent 03bf56e commit c1c2e0d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 29 deletions.
4 changes: 2 additions & 2 deletions engines/tsage/globals.cpp
Expand Up @@ -404,7 +404,7 @@ void Ringworld2Globals::reset() {
_v565E7 = 0;
_v565E9 = -5;
_v565EB = 26;
_v565F5 = 0;
_foodCount = 0;
_v565F6 = 0;
_v565F8 = 0;
_v565FA = 0;
Expand Down Expand Up @@ -519,7 +519,7 @@ void Ringworld2Globals::synchronize(Serializer &s) {
s.syncAsSint16LE(_v565E7);
s.syncAsSint16LE(_v565E9);
s.syncAsSint16LE(_v565EB);
s.syncAsSint16LE(_v565F5);
s.syncAsSint16LE(_foodCount);
s.syncAsSint16LE(_v565F6);
s.syncAsSint16LE(_v565F8);
s.syncAsSint16LE(_v565FA);
Expand Down
2 changes: 1 addition & 1 deletion engines/tsage/globals.h
Expand Up @@ -269,7 +269,7 @@ class Ringworld2Globals: public TsAGE2Globals {
int _v565E7;
int _v565E9;
int _v565EB;
int _v565F5;
int _foodCount;
int _v565F6;
int _v565F8;
int _v565FA;
Expand Down
57 changes: 33 additions & 24 deletions engines/tsage/ringworld2/ringworld2_scenes0.cpp
Expand Up @@ -392,11 +392,11 @@ void Scene100::dispatch() {
*
*--------------------------------------------------------------------------*/

bool Scene125::Object5::startAction(CursorType action, Event &event) {
bool Scene125::Food::startAction(CursorType action, Event &event) {
if (action == CURSOR_USE)
return true;
else
return SceneActor::startAction(action, event);

return SceneActor::startAction(action, event);
}

/*--------------------------------------------------------------------------*/
Expand Down Expand Up @@ -631,9 +631,9 @@ void Scene125::postInit(SceneObjectList *OwnerList) {
_infoDisk.setPosition(Common::Point(47, 167));
}

_object6.postInit();
_object6.setup(162, 1, 1);
_object6.setPosition(Common::Point(214, 168));
_foodDispenser.postInit();
_foodDispenser.setup(162, 1, 1);
_foodDispenser.setPosition(Common::Point(214, 168));

_diskSlot.setDetails(Rect(27, 145, 81, 159), 126, 9, -1, -1, 1, NULL);
_item3.setDetails(Rect(144, 119, 286, 167), 126, 6, 7, 8, 1, NULL);
Expand All @@ -656,8 +656,8 @@ void Scene125::signal() {
_icon4.postInit();
_icon4._sceneRegionId = 5;

_sceneMode = 2;
setAction(&_sequenceManager, this, 127, &_icon1, &_icon2, &_icon3, &_icon4, &R2_GLOBALS._player, NULL);
_sceneMode = 2;
break;
case 2:
_icon1.setup(160, 1, 1);
Expand Down Expand Up @@ -698,7 +698,7 @@ void Scene125::signal() {
_icon6._sceneRegionId = 8;

consoleAction(5);
R2_GLOBALS._player.enableControl();
R2_GLOBALS._player.enableControl(CURSOR_USE);
R2_GLOBALS._player._canWalk = false;
break;
case 10:
Expand Down Expand Up @@ -971,14 +971,17 @@ void Scene125::consoleAction(int id) {
case 15:
consoleAction(3);

if (R2_GLOBALS._v565F5 < 3) {
if (R2_GLOBALS._foodCount < 3) {
R2_GLOBALS._player.disableControl();
_object5.postInit();
_object5.setup(162, 2, 2);
_object5.setPosition(Common::Point(216, UI_INTERFACE_Y));
_food.postInit();
_food.setup(162, 2, 2);
_food.setPosition(Common::Point(216, UI_INTERFACE_Y));

R2_GLOBALS._v565F5 += 2;
} else if (R2_GLOBALS._v565F5 == 3) {
R2_GLOBALS._foodCount += 2;

_sceneMode = 128;
this->setAction(&_sequenceManager, this, 128, &_foodDispenser, &_food, NULL);
} else if (R2_GLOBALS._foodCount == 3) {
SceneItem::display2(126, 13);
} else {
SceneItem::display2(126, 14);
Expand All @@ -987,27 +990,33 @@ void Scene125::consoleAction(int id) {
case 16:
consoleAction(3);

if (R2_GLOBALS._v565F5 < 4) {
if (R2_GLOBALS._foodCount < 4) {
R2_GLOBALS._player.disableControl();
_object5.postInit();
_object5.setup(162, 2, 3);
_object5.setPosition(Common::Point(218, UI_INTERFACE_Y));
_food.postInit();
_food.setup(162, 2, 3);
_food.setPosition(Common::Point(218, UI_INTERFACE_Y));

++R2_GLOBALS._v565F5;
++R2_GLOBALS._foodCount;

_sceneMode = 128;
this->setAction(&_sequenceManager, this, 128, &_foodDispenser, &_food, NULL);
} else {
SceneItem::display2(126, 15);
}
break;
case 17:
consoleAction(3);

if (R2_GLOBALS._v565F5 < 4) {
if (R2_GLOBALS._foodCount < 4) {
R2_GLOBALS._player.disableControl();
_object5.postInit();
_object5.setup(162, 2, 1);
_object5.setPosition(Common::Point(215, UI_INTERFACE_Y));
_food.postInit();
_food.setup(162, 2, 1);
_food.setPosition(Common::Point(215, UI_INTERFACE_Y));

++R2_GLOBALS._foodCount;

++R2_GLOBALS._v565F5;
_sceneMode = 128;
this->setAction(&_sequenceManager, this, 128, &_foodDispenser, &_food, NULL);
} else {
SceneItem::display2(126, 16);
}
Expand Down
4 changes: 2 additions & 2 deletions engines/tsage/ringworld2/ringworld2_scenes0.h
Expand Up @@ -102,7 +102,7 @@ class Scene100: public SceneExt {

class Scene125: public SceneExt {
/* Objects */
class Object5: public SceneActor {
class Food: public SceneActor {
public:
virtual bool startAction(CursorType action, Event &event);
};
Expand Down Expand Up @@ -136,7 +136,7 @@ class Scene125: public SceneExt {
ASoundExt _sound1;
NamedHotspot _background, _item2, _item3;
DiskSlot _diskSlot;
SceneActor _object1, _object2, _object3, _object4, _object5, _object6, _infoDisk;
SceneActor _object1, _object2, _object3, _object4, _food, _foodDispenser, _infoDisk;
Icon _icon1, _icon2, _icon3, _icon4, _icon5, _icon6;
SequenceManager _sequenceManager;
SceneText _sceneText;
Expand Down

0 comments on commit c1c2e0d

Please sign in to comment.