aboutsummaryrefslogtreecommitdiff
path: root/saga/events.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-04-22 01:38:27 +0000
committerEugene Sandulenko2005-04-22 01:38:27 +0000
commit65ade039ecf14033ec114de0697ccb8cfa987673 (patch)
tree763ea04c183ef35282cabcca0b6954594987df83 /saga/events.cpp
parenta81fbc04d996152399857dd01e70dfb78d4d1f02 (diff)
downloadscummvm-rg350-65ade039ecf14033ec114de0697ccb8cfa987673.tar.gz
scummvm-rg350-65ade039ecf14033ec114de0697ccb8cfa987673.tar.bz2
scummvm-rg350-65ade039ecf14033ec114de0697ccb8cfa987673.zip
o Fix save/load. Now it restores game properly but still at exit #0.
o Proper background for inset rooms. Crowd is gone now. o Draw black border around inset rooms. svn-id: r17744
Diffstat (limited to 'saga/events.cpp')
-rw-r--r--saga/events.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/saga/events.cpp b/saga/events.cpp
index bbf916443c..759ac679b1 100644
--- a/saga/events.cpp
+++ b/saga/events.cpp
@@ -302,7 +302,7 @@ int Events::handleOneShot(EVENT *event) {
break;
case BG_EVENT:
{
- BUFFER_INFO rbuf_info;
+ BUFFER_INFO rbuf_info;
Point bg_pt;
if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
@@ -317,6 +317,29 @@ int Events::handleOneShot(EVENT *event) {
bufToBuffer(rbuf_info.bg_buf, rbuf_info.bg_buf_w, rbuf_info.bg_buf_h,
bginfo.bg_buf, bginfo.bg_w, bginfo.bg_h, NULL, &bg_pt);
+
+ // If it is inset scene then draw black border
+ if (bginfo.bg_w < _vm->getDisplayWidth() || bginfo.bg_h < _vm->getSceneHeight()) {
+ SURFACE s;
+ s.pixels = rbuf_info.bg_buf;
+ s.w = s.pitch = rbuf_info.bg_buf_w;
+ s.h = rbuf_info.bg_buf_h;
+ s.bytesPerPixel = 1;
+ Common::Rect rect1(2, bginfo.bg_h + 4);
+ Common::Rect rect2(bginfo.bg_w + 4, 2);
+ Common::Rect rect3(2, bginfo.bg_h + 4);
+ Common::Rect rect4(bginfo.bg_w + 4, 2);
+ rect1.moveTo(bginfo.bg_x - 2, bginfo.bg_y - 2);
+ rect2.moveTo(bginfo.bg_x - 2, bginfo.bg_y - 2);
+ rect3.moveTo(bginfo.bg_x + bginfo.bg_w, bginfo.bg_y - 2);
+ rect4.moveTo(bginfo.bg_x - 2, bginfo.bg_y + bginfo.bg_h);
+
+ drawRect(&s, rect1, kITEColorBlack);
+ drawRect(&s, rect2, kITEColorBlack);
+ drawRect(&s, rect3, kITEColorBlack);
+ drawRect(&s, rect4, kITEColorBlack);
+ }
+
if (event->param == SET_PALETTE) {
PALENTRY *pal_p;
_vm->_scene->getBGPal(&pal_p);
@@ -436,7 +459,7 @@ int Events::handleOneShot(EVENT *event) {
rect.bottom = event->param3;
rect.left = event->param4;
rect.right = event->param5;
- drawRect((SURFACE *)event->data, &rect, event->param);
+ drawRect((SURFACE *)event->data, rect, event->param);
break;
case EVENT_SETFLAG:
_vm->_render->setFlag(event->param);