From f857859041e15d36a88e7843d289024962ddb1b1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 10 Dec 2015 20:20:51 -0500 Subject: ACCESS: Fix showing inventory after loading a close-up savegame --- engines/access/asurface.cpp | 7 +++++++ engines/access/asurface.h | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/engines/access/asurface.cpp b/engines/access/asurface.cpp index abae6bf703..cb51431657 100644 --- a/engines/access/asurface.cpp +++ b/engines/access/asurface.cpp @@ -294,6 +294,13 @@ void ASurface::copyBlock(ASurface *src, const Common::Rect &bounds) { copyRectToSurface(*src, bounds.left, bounds.top, bounds); } +void ASurface::copyTo(ASurface *dest) { + if (dest->empty()) + dest->create(this->w, this->h); + + dest->blitFrom(*this); +} + void ASurface::saveBlock(const Common::Rect &bounds) { _savedBounds = bounds; _savedBounds.clip(Common::Rect(0, 0, this->w, this->h)); diff --git a/engines/access/asurface.h b/engines/access/asurface.h index ce9928c00e..dd05c8067b 100644 --- a/engines/access/asurface.h +++ b/engines/access/asurface.h @@ -63,6 +63,8 @@ public: void create(uint16 width, uint16 height); + bool empty() const { return w == 0 || h == 0 || pixels == nullptr; } + void clearBuffer(); bool clip(Common::Rect &r); @@ -113,7 +115,7 @@ public: virtual void addDirtyRect(const Common::Rect &r) {} - void copyTo(ASurface *dest) { dest->blitFrom(*this); } + void copyTo(ASurface *dest); void saveBlock(const Common::Rect &bounds); -- cgit v1.2.3