aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-12-01 21:30:54 +1100
committerPaul Gilbert2011-12-01 21:31:52 +1100
commitcad52b2cd1713b925b5ec0d6750782af2c35ff85 (patch)
tree1f455fb4acd6ffc342e8407ab140e11139b1b0b8 /engines
parent7b7bccfd4e8db43d180630996d60e314792cc6ff (diff)
downloadscummvm-rg350-cad52b2cd1713b925b5ec0d6750782af2c35ff85.tar.gz
scummvm-rg350-cad52b2cd1713b925b5ec0d6750782af2c35ff85.tar.bz2
scummvm-rg350-cad52b2cd1713b925b5ec0d6750782af2c35ff85.zip
TSAGE: Implemented the new R2RW cursors
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/events.cpp17
-rw-r--r--engines/tsage/events.h6
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.cpp4
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes2.cpp40
4 files changed, 44 insertions, 23 deletions
diff --git a/engines/tsage/events.cpp b/engines/tsage/events.cpp
index 2c4efe5640..7e2ab71f38 100644
--- a/engines/tsage/events.cpp
+++ b/engines/tsage/events.cpp
@@ -253,6 +253,23 @@ void EventsClass::setCursor(CursorType cursorType) {
break;
}
break;
+
+ // Ringworld 2 specific cursors
+ case EXITCURSOR_N:
+ case EXITCURSOR_S:
+ case EXITCURSOR_W:
+ case EXITCURSOR_E:
+ case EXITCURSOR_LEFT_HAND:
+ case CURSOR_INVALID:
+ case EXITCURSOR_NE:
+ case EXITCURSOR_SE:
+ case EXITCURSOR_SW:
+ case EXITCURSOR_NW:
+ case SHADECURSOR_UP:
+ case SHADECURSOR_DOWN:
+ case SHADECURSOR_HAND:
+ cursor = g_resourceManager->getSubResource(5, 1, cursorType - R2CURSORS_START, &size);
+ break;
}
// Decode the cursor
diff --git a/engines/tsage/events.h b/engines/tsage/events.h
index 37f8951cdd..1942c98901 100644
--- a/engines/tsage/events.h
+++ b/engines/tsage/events.h
@@ -93,8 +93,10 @@ enum CursorType {
R2_50 = 50, R2_51 = 51, R2_52 = 52,
// Ringworld 2 cursors
- CURSOR_2 = 2, CURSOR_3 = 3, CURSOR_7 = 7, CURSOR_8 = 8, CURSOR_9 = 9, CURSOR_10 = 10,
- CURSOR_13 = 13, CURSOR_14 = 14, CURSOR_15 = 15, CURSOR_16 = 16,
+ R2CURSORS_START = 0x8000, EXITCURSOR_N = 0x8007, EXITCURSOR_S = 0x8008, EXITCURSOR_W = 0x8009,
+ EXITCURSOR_E = 0x800A, EXITCURSOR_LEFT_HAND = 0x800B, CURSOR_INVALID = 0x800C,
+ EXITCURSOR_NE = 0x800D, EXITCURSOR_SE = 0x800E, EXITCURSOR_SW = 0x800F, EXITCURSOR_NW = 0x8010,
+ SHADECURSOR_UP = 0x8011, SHADECURSOR_DOWN = 0x8012, SHADECURSOR_HAND = 0x8013,
// Cursors
CURSOR_WALK = 0x100, CURSOR_LOOK = 0x200, CURSOR_700 = 700, CURSOR_USE = 0x400, CURSOR_TALK = 0x800,
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
index 53f47ce43c..f542ddecbf 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
@@ -1268,9 +1268,9 @@ void Scene200::postInit(SceneObjectList *OwnerList) {
SceneExt::postInit();
loadScene(200);
- _westExit.setDetails(Rect(94, 0, 123, 58), CURSOR_9, 175);
+ _westExit.setDetails(Rect(94, 0, 123, 58), EXITCURSOR_W, 175);
_westExit.setDest(Common::Point(125, 52));
- _eastExit.setDetails(Rect(133, 0, 167, 58), CURSOR_10, 150);
+ _eastExit.setDetails(Rect(133, 0, 167, 58), EXITCURSOR_E, 150);
_eastExit.setDest(Common::Point(135, 52));
_northDoor.postInit();
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
index 089b615bf6..ee3153c0c8 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp
@@ -189,7 +189,7 @@ void Scene2000::initExits() {
_exit5._enabled = true;
_exit5._bounds.set(61, 68, 90, 125);
_exit5.setDest(Common::Point(92, 129));
- _exit5._cursorNum = CURSOR_9;
+ _exit5._cursorNum = EXITCURSOR_W;
break;
case 4:
case 12:
@@ -198,7 +198,7 @@ void Scene2000::initExits() {
_exit5._enabled = true;
_exit5._bounds.set(230, 68, 259, 125);
_exit5.setDest(Common::Point(244, 129));
- _exit5._cursorNum = CURSOR_10;
+ _exit5._cursorNum = EXITCURSOR_E;
break;
default:
break;
@@ -224,7 +224,7 @@ void Scene2000::initExits() {
_exit3._enabled = true;
_exit3._bounds.set(71, 130, 154, 168);
_exit3.setDest(Common::Point(94, 129));
- _exit3._cursorNum = CURSOR_14;
+ _exit3._cursorNum = EXITCURSOR_SE;
loadScene(2300);
if (!_exitingFlag)
_mazePlayerMode = 0;
@@ -302,7 +302,7 @@ void Scene2000::initExits() {
_exit4._enabled = true;
_exit4._bounds.set(138, 83, 211, 125);
_exit4.setDest(Common::Point(129, 188));
- _exit4._cursorNum = CURSOR_16;
+ _exit4._cursorNum = EXITCURSOR_NW;
loadScene(2250);
R2_GLOBALS._walkRegions.load(2000);
if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 2500)
@@ -317,7 +317,7 @@ void Scene2000::initExits() {
_exit3._enabled = true;
_exit3._bounds.set(78, 130, 148, 168);
_exit3.setDest(Common::Point(100, 129));
- _exit3._cursorNum = CURSOR_14;
+ _exit3._cursorNum = EXITCURSOR_SE;
loadScene(2075);
R2_GLOBALS._walkRegions.load(2000);
if (!_exitingFlag)
@@ -328,7 +328,7 @@ void Scene2000::initExits() {
_exit3._enabled = true;
_exit3._bounds.set(160, 130, 248, 168);
_exit3.setDest(Common::Point(225, 129));
- _exit3._cursorNum = CURSOR_15;
+ _exit3._cursorNum = EXITCURSOR_SW;
loadScene(2325);
R2_GLOBALS._walkRegions.load(2000);
if (!_exitingFlag)
@@ -340,7 +340,7 @@ void Scene2000::initExits() {
_exit4._enabled = true;
_exit4._bounds.set(122, 83, 207, 125);
_exit4.setDest(Common::Point(210, 129));
- _exit4._cursorNum = CURSOR_16;
+ _exit4._cursorNum = EXITCURSOR_NW;
loadScene(2125);
R2_GLOBALS._walkRegions.load(2000);
if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 2400)
@@ -354,7 +354,7 @@ void Scene2000::initExits() {
_exit4._enabled = true;
_exit4._bounds.set(108, 83, 128, 184);
_exit4.setDest(Common::Point(135, 129));
- _exit4._cursorNum = CURSOR_13;
+ _exit4._cursorNum = CURSOR_INVALID;
loadScene(2275);
R2_GLOBALS._walkRegions.load(2000);
if (!_exitingFlag)
@@ -365,7 +365,7 @@ void Scene2000::initExits() {
_exit3._enabled = true;
_exit3._bounds.set(171, 130, 241, 168);
_exit3.setDest(Common::Point(218, 129));
- _exit3._cursorNum = CURSOR_15;
+ _exit3._cursorNum = EXITCURSOR_SW;
loadScene(2050);
R2_GLOBALS._walkRegions.load(2000);
if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 2350)
@@ -791,15 +791,15 @@ void Scene2000::postInit(SceneObjectList *OwnerList) {
}
_exitingFlag = false;
- _exit1.setDetails(Rect(0, 100, 14, 140), CURSOR_9, 2000);
+ _exit1.setDetails(Rect(0, 100, 14, 140), EXITCURSOR_W, 2000);
_exit1.setDest(Common::Point(14, 129));
- _exit2.setDetails(Rect(305, 100, 320, 140), CURSOR_10, 2000);
+ _exit2.setDetails(Rect(305, 100, 320, 140), EXITCURSOR_E, 2000);
_exit2.setDest(Common::Point(315, 129));
- _exit3.setDetails(Rect(71, 130, 154, 168), CURSOR_8, 2000);
+ _exit3.setDetails(Rect(71, 130, 154, 168), EXITCURSOR_S, 2000);
_exit3.setDest(Common::Point(94, 129));
- _exit4.setDetails(Rect(138, 83, 211, 125), CURSOR_7, 2000);
+ _exit4.setDetails(Rect(138, 83, 211, 125), EXITCURSOR_N, 2000);
_exit4.setDest(Common::Point(188, 128));
- _exit5.setDetails(Rect(61, 68, 90, 125), CURSOR_9, 2000);
+ _exit5.setDetails(Rect(61, 68, 90, 125), EXITCURSOR_W, 2000);
_exit5.setDest(Common::Point(92, 129));
R2_GLOBALS._sound1.play(200);
@@ -1022,7 +1022,8 @@ void Scene2000::signal() {
}
void Scene2000::process(Event &event) {
- if ((R2_GLOBALS._player._canWalk) && (event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_3)) {
+ if ((R2_GLOBALS._player._canWalk) && (event.eventType == EVENT_BUTTON_DOWN) &&
+ (R2_GLOBALS._events.getCursor() == CURSOR_CROSSHAIRS)) {
warning("TODO: Check sub_22D26");
Common::Point pt(event.mousePos.x, 129);
@@ -1099,9 +1100,9 @@ void Scene2350::postInit(SceneObjectList *OwnerList) {
if (R2_GLOBALS._sceneManager._previousScene == -1)
R2_GLOBALS._player._characterScene[2] = 2350;
- _exitUp.setDetails(Rect(25, 83, 93, 125), CURSOR_16, 2350);
+ _exitUp.setDetails(Rect(25, 83, 93, 125), EXITCURSOR_NW, 2350);
_exitUp.setDest(Common::Point(80, 129));
- _exitWest.setDetails(Rect(0, 100, 14, 140), CURSOR_9, 2350);
+ _exitWest.setDetails(Rect(0, 100, 14, 140), EXITCURSOR_W, 2350);
_exitWest.setDest(Common::Point(14, 129));
R2_GLOBALS._player.postInit();
@@ -1200,7 +1201,7 @@ void Scene2350::signal() {
break;
case 2355:
_sceneMode = 20;
- R2_GLOBALS._events.setCursor(CURSOR_2);
+ R2_GLOBALS._events.setCursor(CURSOR_ARROW);
_stripManager.start(711, this);
break;
default:
@@ -1210,7 +1211,8 @@ void Scene2350::signal() {
}
void Scene2350::process(Event &event) {
- if ((R2_GLOBALS._player._canWalk) && (event.eventType != EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_3)){
+ if ((R2_GLOBALS._player._canWalk) && (event.eventType != EVENT_BUTTON_DOWN) &&
+ (R2_GLOBALS._events.getCursor() == CURSOR_CROSSHAIRS)){
Common::Point pt(event.mousePos.x, 129);
PlayerMover *mover = new PlayerMover();
BF_GLOBALS._player.addMover(mover, &pt);