mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-21 09:21:08 +00:00
VOYEUR: Converted doRoom to use ScummVM cursors
This commit is contained in:
parent
28fc97cbe7
commit
f450b79476
@ -1146,8 +1146,9 @@ void ThreadResource::doRoom() {
|
|||||||
Common::Array<RectEntry> &hotspots = vm._bVoy->boltEntry(vm._playStampGroupId + 4)._rectResource->_entries;
|
Common::Array<RectEntry> &hotspots = vm._bVoy->boltEntry(vm._playStampGroupId + 4)._rectResource->_entries;
|
||||||
int hotspotId = -1;
|
int hotspotId = -1;
|
||||||
|
|
||||||
PictureResource *pic1 = vm._bVoy->boltEntry(vm._playStampGroupId + 2)._picResource;
|
PictureResource *crosshairsCursor = vm._bVoy->boltEntry(vm._playStampGroupId + 2)._picResource;
|
||||||
PictureResource *pic2 = vm._bVoy->boltEntry(vm._playStampGroupId + 3)._picResource;
|
PictureResource *magnifierCursor = vm._bVoy->boltEntry(vm._playStampGroupId + 3)._picResource;
|
||||||
|
vm._eventsManager.showCursor();
|
||||||
|
|
||||||
RectResource viewBounds(48, 38, 336, 202);
|
RectResource viewBounds(48, 38, 336, 202);
|
||||||
voy._viewBounds = &viewBounds;
|
voy._viewBounds = &viewBounds;
|
||||||
@ -1178,6 +1179,8 @@ void ThreadResource::doRoom() {
|
|||||||
|
|
||||||
vm._eventsManager.getMouseInfo();
|
vm._eventsManager.getMouseInfo();
|
||||||
Common::Point pt = vm._eventsManager.getMousePos();
|
Common::Point pt = vm._eventsManager.getMousePos();
|
||||||
|
pt += Common::Point(30, 15);
|
||||||
|
|
||||||
hotspotId = -1;
|
hotspotId = -1;
|
||||||
if (voy._computerTextId != -1 && voy._rect4E4.contains(pt))
|
if (voy._computerTextId != -1 && voy._rect4E4.contains(pt))
|
||||||
hotspotId = 999;
|
hotspotId = 999;
|
||||||
@ -1193,19 +1196,15 @@ void ThreadResource::doRoom() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (hotspotId == -1) {
|
if (hotspotId == -1) {
|
||||||
vm._graphicsManager.sDrawPic(pic1, *vm._graphicsManager._vPort,
|
|
||||||
Common::Point(pt.x - 9, pt.y - 9));
|
|
||||||
vm._eventsManager.setCursorColor(128, 0);
|
vm._eventsManager.setCursorColor(128, 0);
|
||||||
|
vm._eventsManager.setCursor(crosshairsCursor);
|
||||||
} else if (hotspotId != 999 || voy._RTVNum < voy._field4EC ||
|
} else if (hotspotId != 999 || voy._RTVNum < voy._field4EC ||
|
||||||
(voy._field4EE - 2) < voy._RTVNum) {
|
(voy._field4EE - 2) < voy._RTVNum) {
|
||||||
vm._graphicsManager.sDrawPic(pic2, *vm._graphicsManager._vPort,
|
|
||||||
Common::Point(pt.x - 12, pt.y - 9));
|
|
||||||
vm._eventsManager.setCursorColor(128, 1);
|
vm._eventsManager.setCursorColor(128, 1);
|
||||||
|
vm._eventsManager.setCursor(magnifierCursor);
|
||||||
} else {
|
} else {
|
||||||
vm._graphicsManager.sDrawPic(pic2,
|
|
||||||
*vm._graphicsManager._vPort,
|
|
||||||
Common::Point(pt.x - 12, pt.y - 9));
|
|
||||||
vm._eventsManager.setCursorColor(128, 2);
|
vm._eventsManager.setCursorColor(128, 2);
|
||||||
|
vm._eventsManager.setCursor(magnifierCursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
vm._eventsManager._intPtr.field38 = true;
|
vm._eventsManager._intPtr.field38 = true;
|
||||||
@ -1223,6 +1222,7 @@ void ThreadResource::doRoom() {
|
|||||||
vm._eventsManager.setMousePos(pt);
|
vm._eventsManager.setMousePos(pt);
|
||||||
} else {
|
} else {
|
||||||
voy._field478 |= 16;
|
voy._field478 |= 16;
|
||||||
|
vm._eventsManager.hideCursor();
|
||||||
vm._eventsManager.startCursorBlink();
|
vm._eventsManager.startCursorBlink();
|
||||||
|
|
||||||
if (hotspotId == 999) {
|
if (hotspotId == 999) {
|
||||||
@ -1254,14 +1254,9 @@ void ThreadResource::doRoom() {
|
|||||||
if (!vm._eventsManager._mouseClicked)
|
if (!vm._eventsManager._mouseClicked)
|
||||||
vm._eventsManager.delayClick(18000);
|
vm._eventsManager.delayClick(18000);
|
||||||
|
|
||||||
// WORKAROUND: Done in original, but not now, since freeing and reloading
|
// WORKAROUND: Skipped code from the original, that freed the group,
|
||||||
// the group would invalidate the _backgroundPage picture resource
|
// reloaded it, and reloaded the cursors
|
||||||
//vm._bVoy->freeBoltGroup(vm._playStampGroupId);
|
|
||||||
//vm._bVoy->getBoltGroup(vm._playStampGroupId);
|
|
||||||
|
|
||||||
hotspots = vm._bVoy->boltEntry(vm._playStampGroupId + 4)._rectResource->_entries;
|
|
||||||
pic1 = vm._bVoy->boltEntry(vm._playStampGroupId + 2)._picResource;
|
|
||||||
pic2 = vm._bVoy->boltEntry(vm._playStampGroupId + 3)._picResource;
|
|
||||||
vm._graphicsManager._backColors = vm._bVoy->boltEntry(
|
vm._graphicsManager._backColors = vm._bVoy->boltEntry(
|
||||||
vm._playStampGroupId + 1)._cMapResource;
|
vm._playStampGroupId + 1)._cMapResource;
|
||||||
vm._graphicsManager._backgroundPage = vm._bVoy->boltEntry(
|
vm._graphicsManager._backgroundPage = vm._bVoy->boltEntry(
|
||||||
@ -1294,6 +1289,7 @@ void ThreadResource::doRoom() {
|
|||||||
|
|
||||||
vm._graphicsManager.fadeUpICF1(0);
|
vm._graphicsManager.fadeUpICF1(0);
|
||||||
voy._field478 &= 0x10;
|
voy._field478 &= 0x10;
|
||||||
|
vm._eventsManager.showCursor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1318,6 +1314,7 @@ void ThreadResource::doRoom() {
|
|||||||
vm._currentVocId = -1;
|
vm._currentVocId = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vm._eventsManager.hideCursor();
|
||||||
chooseSTAMPButton(0);
|
chooseSTAMPButton(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1749,13 +1746,16 @@ void ThreadResource::synchronize(Common::Serializer &s) {
|
|||||||
s.syncAsSint16LE(_aptPos.x);
|
s.syncAsSint16LE(_aptPos.x);
|
||||||
s.syncAsSint16LE(_aptPos.y);
|
s.syncAsSint16LE(_aptPos.y);
|
||||||
|
|
||||||
int sceneId = _stateId;
|
int stateId = _stateId;
|
||||||
int stackId = _stackId;
|
int stackId = _stackId;
|
||||||
s.syncAsSint16LE(sceneId);
|
s.syncAsSint16LE(stateId);
|
||||||
s.syncAsSint16LE(stackId);
|
s.syncAsSint16LE(stackId);
|
||||||
|
|
||||||
if (s.isLoading() && (sceneId != _stateId || stackId != _stackId))
|
if (s.isLoading() && (stateId != _stateId || stackId != _stackId))
|
||||||
goToState(stackId, sceneId);
|
goToState(stackId, stateId);
|
||||||
|
|
||||||
|
s.syncAsSint16LE(_savedStateId);
|
||||||
|
s.syncAsSint16LE(_savedStackId);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // End of namespace Voyeur
|
} // End of namespace Voyeur
|
||||||
|
Loading…
Reference in New Issue
Block a user