diff options
| -rwxr-xr-x | engines/startrek/graphics.cpp | 13 | ||||
| -rwxr-xr-x | engines/startrek/graphics.h | 7 | ||||
| -rw-r--r-- | engines/startrek/text.cpp | 25 | 
3 files changed, 24 insertions, 21 deletions
| diff --git a/engines/startrek/graphics.cpp b/engines/startrek/graphics.cpp index a717ec70a7..029928d021 100755 --- a/engines/startrek/graphics.cpp +++ b/engines/startrek/graphics.cpp @@ -23,7 +23,9 @@  #include "startrek/graphics.h"  #include "common/config-manager.h" +#include "common/events.h"  #include "common/rendermode.h" +#include "graphics/cursorman.h"  #include "graphics/palette.h"  #include "graphics/surface.h" @@ -47,6 +49,8 @@ Graphics::Graphics(StarTrekEngine *vm) : _vm(vm), _egaMode(false) {  	_backgroundImage = new Bitmap(_vm->openFile("DEMON0.BMP").get());  	_numSprites = 0; + +	CursorMan.showMouse(true);  }  Graphics::~Graphics() { @@ -136,6 +140,15 @@ SharedPtr<Bitmap> Graphics::loadBitmap(Common::String basename) {  	return SharedPtr<Bitmap>(new Bitmap(_vm->openFile(basename+".BMP").get()));  } +Common::Point Graphics::getMousePos() { +	return _vm->_system->getEventManager()->getMousePos(); +} + +void Graphics::setMouseCursor(SharedPtr<Bitmap> bitmap) { +	_mouseBitmap = bitmap; +	_vm->_system->setMouseCursor(bitmap->pixels, bitmap->width, bitmap->height, bitmap->xoffset, bitmap->yoffset, 0); +} +  void Graphics::redrawScreen() {  	_vm->_system->copyRectToScreen(_backgroundImage->pixels, SCREEN_WIDTH, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);  	drawAllSprites(); diff --git a/engines/startrek/graphics.h b/engines/startrek/graphics.h index fa9f90b3fc..714d287794 100755 --- a/engines/startrek/graphics.h +++ b/engines/startrek/graphics.h @@ -82,6 +82,9 @@ public:  	SharedPtr<Bitmap> loadBitmap(Common::String basename); +	Common::Point getMousePos(); +	void setMouseCursor(SharedPtr<Bitmap> bitmap); +  	void redrawScreen();  	void drawSprite(const Sprite &sprite);  	void drawSprite(const Sprite &sprite, const Common::Rect &rect); @@ -109,8 +112,7 @@ private:  	Sprite *_sprites[MAX_SPRITES];  	int _numSprites; -	Common::Point _mousePos; -	Sprite _mouseSprite; +	SharedPtr<Bitmap> _mouseBitmap;  	// text.cpp (TODO: separate class) @@ -124,7 +126,6 @@ private:  	int getNumLines(const Common::String &str);  	Common::String readLineFormattedText(TextGetterFunc textGetter, int var, int choiceIndex, SharedPtr<TextBitmap> textBitmap, int numTextboxLines, int *numLines);  	void loadMenuButtons(Common::String mnuFilename, int xpos, int ypos); -	void warpMousePosition(int x, int y);  	uint16 _textboxVar1;  	uint32 _textboxVar2; diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp index 18a283bde3..08400dce22 100644 --- a/engines/startrek/text.cpp +++ b/engines/startrek/text.cpp @@ -20,6 +20,7 @@   */  #include "common/stream.h" +#include "graphics/cursorman.h"  #include "startrek/graphics.h" @@ -86,16 +87,11 @@ int Graphics::showText(TextGetterFunc textGetter, int var, int xoffset, int yoff  	else {  		loadMenuButtons("textbtns", xoffset+0x96, yoffset-0x11); -		Common::Point oldMousePos = _mousePos; -		SharedPtr<Bitmap> oldMouseBitmap = _mouseSprite.bitmap; +		Common::Point oldMousePos = getMousePos(); +		SharedPtr<Bitmap> oldMouseBitmap = _mouseBitmap; -		_mousePos.x = xoffset + 0xde; -		_mousePos.y = yoffset - 0x08; -		_mouseSprite.pos = _mousePos; -		_mouseSprite.drawPriority = 15; - -		_mouseSprite.setBitmap(loadBitmap("pushbtn")); -		warpMousePosition(_mousePos.x, _mousePos.y); +		_vm->_system->warpMouse(xoffset + 0xde, yoffset - 0x08); +		setMouseCursor(loadBitmap("pushbtn"));  		uint16 tmpTextboxVar7 = _textboxVar7;  		_textboxVar7 = 0; @@ -119,11 +115,8 @@ int Graphics::showText(TextGetterFunc textGetter, int var, int xoffset, int yoff  			_vm->pollEvents();  		} -		_mousePos = oldMousePos; -		_mouseSprite.pos = _mousePos; -		_mouseSprite.drawPriority = 15; -		_mouseSprite.setBitmap(oldMouseBitmap); -		warpMousePosition(_mousePos.x, _mousePos.y); +		setMouseCursor(oldMouseBitmap); +		_vm->_system->warpMouse(oldMousePos.x, oldMousePos.y);  		_textboxVar7 = tmpTextboxVar7;  		// sub_29326(); @@ -288,8 +281,4 @@ void Graphics::loadMenuButtons(Common::String mnuFilename, int xpos, int ypos) {  	}  } -void Graphics::warpMousePosition(int x, int y) { -	// TODO -} -  } | 
