diff options
| -rw-r--r-- | engines/macventure/macventure.cpp | 56 | ||||
| -rw-r--r-- | engines/macventure/macventure.h | 3 | 
2 files changed, 51 insertions, 8 deletions
| diff --git a/engines/macventure/macventure.cpp b/engines/macventure/macventure.cpp index 67efbc8e31..be949ec00a 100644 --- a/engines/macventure/macventure.cpp +++ b/engines/macventure/macventure.cpp @@ -25,6 +25,10 @@  #include "common/debug.h"  #include "common/error.h" +// For border loading, should be gone later +#include "common/file.h" +#include "image/bmp.h" +  #include "engines/util.h"  #include "macventure/macventure.h" @@ -60,14 +64,8 @@ Common::Error MacVentureEngine::run() {  	_screen.create(kScreenWidth, kScreenHeight, Graphics::PixelFormat::createFormatCLUT8()); -	_wm = new Graphics::MacWindowManager(); -	_wm->setScreen(&_screen); - -	_screen.fillRect(Common::Rect(0, 0, _screen.w, _screen.h), Graphics::kColorWhite); - -	Graphics::MacWindow *w = _wm->addWindow(false, true, true); -	w->setDimensions(Common::Rect(100, 100)); - +	initGUI(); +	  	// Your main even loop should be (invoked from) here.  	debug("MacVentureEngine::go: Hello, World!"); @@ -98,4 +96,46 @@ void MacVentureEngine::processEvents() {  	}  } +void MacVentureEngine::initGUI() { +	_wm = new Graphics::MacWindowManager(); +	_wm->setScreen(&_screen); +	Graphics::MacWindow *w = _wm->addWindow(false, true, true); +	w->setDimensions(Common::Rect(100, 100)); +	w->setActive(false); + +	loadBorder(w, "border_inac.bmp", false); + +} + +void MacVentureEngine::loadBorder(Graphics::MacWindow *target, Common::String filename, bool active) { +	Common::File borderfile; + +	if (!borderfile.open(filename)) { +		debug(1, "Cannot open border file"); +		return; +	} + +	Image::BitmapDecoder bmpDecoder; +	Common::SeekableReadStream *stream = borderfile.readStream(borderfile.size()); +	Graphics::Surface source; +	Graphics::TransparentSurface *surface = new Graphics::TransparentSurface(); + +	if (stream) { +		debug(4, "Loading %s border from %s", (active ? "active" : "inactive"), filename); +		bmpDecoder.loadStream(*stream); +		source = *(bmpDecoder.getSurface()); + +		source.convertToInPlace(surface->getSupportedPixelFormat(), bmpDecoder.getPalette()); +		surface->create(source.w, source.h, source.format); +		surface->copyFrom(source); +		surface->applyColorKey(255, 0, 255, false); + +		target->setBorder(*surface, active); + +		borderfile.close(); + +		delete stream; +	} +} +  } // End of namespace MacVenture diff --git a/engines/macventure/macventure.h b/engines/macventure/macventure.h index ab29eedea7..cdf50b7e91 100644 --- a/engines/macventure/macventure.h +++ b/engines/macventure/macventure.h @@ -62,6 +62,9 @@ public:  private:  	void processEvents(); +	void initGUI(); +	void loadBorder(Graphics::MacWindow * target, Common::String filename, bool active); +  private:  	const ADGameDescription *_gameDescription;  	Common::RandomSource *_rnd; | 
