aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/preagi_winnie.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2007-09-22 23:36:00 +0000
committerMatthew Hoops2007-09-22 23:36:00 +0000
commit998d43df30683ae40f7fde92e453e36a67682176 (patch)
tree84e2a71181e27e0afeb3697e3b5f355f1ac08955 /engines/agi/preagi_winnie.cpp
parent4333fafe76ecbb1a53bcfeba108b6d9e3d626b9f (diff)
downloadscummvm-rg350-998d43df30683ae40f7fde92e453e36a67682176.tar.gz
scummvm-rg350-998d43df30683ae40f7fde92e453e36a67682176.tar.bz2
scummvm-rg350-998d43df30683ae40f7fde92e453e36a67682176.zip
allow Winnie Amiga to show room images, still not playable
svn-id: r29032
Diffstat (limited to 'engines/agi/preagi_winnie.cpp')
-rw-r--r--engines/agi/preagi_winnie.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp
index 8918ef18a3..3570a4498e 100644
--- a/engines/agi/preagi_winnie.cpp
+++ b/engines/agi/preagi_winnie.cpp
@@ -1025,15 +1025,21 @@ void Winnie::drawRoomPic() {
_vm->_gfx->clearScreen(0);
// read room picture
- readRoom(room, buffer);
+ uint32 size = readRoom(room, buffer);
memcpy(&roomhdr, buffer, sizeof(WTP_ROOM_HDR));
+ if (_vm->getPlatform() == Common::kPlatformAmiga)
+ roomhdr.ofsPic = SWAP_BYTES_16(roomhdr.ofsPic);
+ else if (_vm->getPlatform() == Common::kPlatformPC)
+ roomhdr.ofsPic = roomhdr.ofsPic - IDI_WTP_OFS_ROOM;
+
// draw room picture
- _vm->_picture->decodePicture(buffer + roomhdr.ofsPic - IDI_WTP_OFS_ROOM, 4096, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _vm->_picture->decodePicture(buffer + roomhdr.ofsPic, 4096, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
_vm->_picture->showPic(IDI_WTP_PIC_X0, IDI_WTP_PIC_Y0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
// draw object picture
- drawObjPic(iObj, IDI_WTP_PIC_X0 + roomhdr.objX, IDI_WTP_PIC_Y0 + roomhdr.objY);
+ if (!_vm->getPlatform() == Common::kPlatformAmiga)
+ drawObjPic(iObj, IDI_WTP_PIC_X0 + roomhdr.objX, IDI_WTP_PIC_Y0 + roomhdr.objY);
free(buffer);
}
@@ -1121,8 +1127,7 @@ void Winnie::init() {
void Winnie::run() {
randomize();
intro();
- if (!_vm->getPlatform() == Common::kPlatformAmiga)
- gameLoop();
+ gameLoop();
}
}