[Scummvm-cvs-logs] CVS: scummvm/sky logic.cpp,1.72,1.73 mouse.cpp,1.2,1.3 mouse.h,1.3,1.4 sky.cpp,1.47,1.48

Joost Peters joostp at users.sourceforge.net
Sun Jun 1 05:50:06 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv13621/sky

Modified Files:
	logic.cpp mouse.cpp mouse.h sky.cpp 
Log Message:
added some buggy, incomplete mouse code

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/logic.cpp,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- logic.cpp	1 Jun 2003 04:34:11 -0000	1.72
+++ logic.cpp	1 Jun 2003 12:49:39 -0000	1.73
@@ -1187,8 +1187,7 @@
 }
 
 bool SkyLogic::fnDiskMouse(uint32 a, uint32 b, uint32 c) {
-	warning("Stub: fnDiskMouse");
-	return true;
+	return _skyMouse->fnDiskMouse();
 }
 
 bool SkyLogic::fnNormalMouse(uint32 a, uint32 b, uint32 c) {
@@ -1196,7 +1195,7 @@
 }
 
 bool SkyLogic::fnBlankMouse(uint32 a, uint32 b, uint32 c) {
-	return (_skyMouse->fnBlankMouse() != 0);
+	return _skyMouse->fnBlankMouse();
 }
 
 bool SkyLogic::fnCrossMouse(uint32 a, uint32 b, uint32 c) {
@@ -2060,12 +2059,11 @@
 
 	if (SkyTalkAnims::animTalkTableIsPointer[offset]) //is it a pointer?
 		animPtr = (uint16 *)SkyTalkAnims::animTalkTablePtr[offset];
-	else { 	//then it must be a value
+	else  	//then it must be a value
 		animPtr = (uint16 *)SkyState::fetchCompact(SkyTalkAnims::animTalkTableVal[offset]);
-		target->offset = *animPtr++;
-		target->getToFlag = *animPtr++;
-	}
-
+	
+	target->offset = *animPtr++;
+	target->getToFlag = *animPtr++;
 	target->grafixProg = animPtr;
 
 	if (SkyState::isCDVersion(_gameVersion))

Index: mouse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/mouse.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- mouse.cpp	31 May 2003 11:53:28 -0000	1.2
+++ mouse.cpp	1 Jun 2003 12:49:39 -0000	1.3
@@ -77,9 +77,10 @@
 	24829
 };
 
-SkyMouse::SkyMouse(SkyDisk *skyDisk) {
+SkyMouse::SkyMouse(OSystem *system, SkyDisk *skyDisk) {
 
 	_skyDisk = skyDisk;
+	_system = system;
 	_mouseWidth = 6;
 	_mouseHeight = 6;
 	_maskWidth = 6;
@@ -113,12 +114,19 @@
 	_skyDisk->loadFile(fileNo, _objectMouseData);
 }
 
-uint32 SkyMouse::fnBlankMouse(void) {
+bool SkyMouse::fnBlankMouse(void) {
 
 	_mouseXOff = 0;	//re-align mouse
 	spriteMouse(MOUSE_BLANK, 0, 0);
+	return true;
+}
 
-	return 1;
+bool SkyMouse::fnDiskMouse(void) {
+
+	//turn the mouse into a disk mouse
+	spriteMouse(MOUSE_DISK, 11, 11);
+	return true;	//don't quit from the interpreter
+	
 }
 
 void SkyMouse::lockMouse(void) {
@@ -153,7 +161,7 @@
 	_mouseOffsetX = mouseX;
 	_mouseOffsetY = mouseY;
 
-	restoreMouseData(frameNum);
+	//restoreMouseData(frameNum);
 	byte *mouseData = _miceData;
 	uint32 pos = ((struct dataFileHeader *)mouseData)->s_sp_size * ((struct dataFileHeader *)mouseData)->s_sp_size;
 	pos += sizeof(struct dataFileHeader);
@@ -162,7 +170,8 @@
 	_mouseWidth = ((struct dataFileHeader *)mouseData)->s_width;
 	_mouseHeight = ((struct dataFileHeader *)mouseData)->s_height;
 
-	drawNewMouse();
+	_system->set_mouse_cursor(_mouseData2, _mouseWidth, _mouseHeight, mouseX, mouseY);
+	//drawNewMouse();
 
 	//_mouseFlag ^= (~_mouseFlag | MF_IN_INT);
 }

Index: mouse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/mouse.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- mouse.h	31 May 2003 11:53:28 -0000	1.3
+++ mouse.h	1 Jun 2003 12:49:39 -0000	1.4
@@ -30,11 +30,12 @@
 
 public:
 
-	SkyMouse(SkyDisk *skyDisk);
+	SkyMouse(OSystem *system, SkyDisk *skyDisk);
 	~SkyMouse(void);
 
 	void replaceMouseCursors(uint16 fileNo);
-	uint32 fnBlankMouse(void);
+	bool fnBlankMouse(void);
+	bool fnDiskMouse(void);
 	void lockMouse(void);
 	void unlockMouse(void);
 	void restoreMouseData(uint16 frameNum);
@@ -78,6 +79,7 @@
 
 	static uint32 _mouseObjectList[];
 
+	OSystem *_system;
 	SkyDisk *_skyDisk;
 };
 

Index: sky.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/sky.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- sky.cpp	1 Jun 2003 03:44:07 -0000	1.47
+++ sky.cpp	1 Jun 2003 12:49:39 -0000	1.48
@@ -113,7 +113,7 @@
 	delete _skyGrid;
 	delete _skySound;
 	delete _skyMusic;
-    showQuitMsg();	
+	showQuitMsg();	
 	delete _skyText;
 	delete _skyMouse;
 	delete _skyScreen;
@@ -170,7 +170,7 @@
 	}
 
 	_skyText = new SkyText(_skyDisk, _gameVersion, _language);
-	_skyMouse = new SkyMouse(_skyDisk);
+	_skyMouse = new SkyMouse(_system, _skyDisk);
 	_skyScreen = new SkyScreen(_system, _skyDisk);
 
 	initVirgin();
@@ -269,7 +269,7 @@
 	uint32 start = _system->get_msecs();
 	uint32 cur = start;
 	_key_pressed = 0;	//reset
-	
+	_mouse_pos_changed = false;
 	_rnd.getRandomNumber(2);
 
 	do {
@@ -287,6 +287,7 @@
 					_sdl_mouse_x = event.mouse.x;
 					_sdl_mouse_y = event.mouse.y;
 					_mouse_pos_changed = true;
+					_system->set_mouse_pos(_sdl_mouse_x, _sdl_mouse_y);
 					break;
 
 					case OSystem::EVENT_LBUTTONDOWN:





More information about the Scummvm-git-logs mailing list