[Scummvm-cvs-logs] CVS: scummvm/backends/dc dc.h,1.1.1.1,1.2 display.cpp,1.1.1.1,1.2

Michael Pearce chuzwuzza at users.sourceforge.net
Sun Sep 8 22:57:01 CEST 2002


Update of /cvsroot/scummvm/scummvm/backends/dc
In directory usw-pr-cvs1:/tmp/cvs-serv24674/backends/dc

Modified Files:
	dc.h display.cpp 
Log Message:
Applied roever's screen effects patch (#602595) and fixed LethalWP's Makefile ;)


Index: dc.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/dc.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- dc.h	21 Aug 2002 16:07:09 -0000	1.1.1.1
+++ dc.h	9 Sep 2002 05:56:10 -0000	1.2
@@ -15,6 +15,7 @@
   // Draw a bitmap to screen.
   // The screen will not be updated to reflect the new bitmap
   void copy_rect(const byte *buf, int pitch, int x, int y, int w, int h);
+  void move_screen(int dx, int dy, int height);
 
   // Update the dirty areas of the screen
   void update_screen();

Index: display.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/dc/display.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- display.cpp	21 Aug 2002 16:07:09 -0000	1.1.1.1
+++ display.cpp	9 Sep 2002 05:56:10 -0000	1.2
@@ -132,6 +132,46 @@
   } while (--h);
 }
 
+void OSystem_Dreamcast::move_screen(int dx, int dy, int height) {
+
+	if ((dx == 0) && (dy == 0))
+		return;
+
+	if (dx == 0) {
+		// vertical movement
+		if (dy > 0) {
+			// move down
+			// copy from bottom to top
+			for (int y = height - 1; y >= dy; y--)
+				copy_rect(screen + SCREEN_W * (y - dy), SCREEN_W, 0, y, SCREEN_W, 1);
+		} else {
+			// move up
+			// copy from top to bottom
+			for (int y = 0; y < height + dx; y++)
+				copy_rect(screen + SCREEN_W * (y - dy), SCREEN_W, 0, y, SCREEN_W, 1);
+		}
+	} else if (dy == 0) {
+		// horizontal movement
+		if (dx > 0) {
+			// move right
+			// copy from right to left
+			for (int x = SCREEN_W - 1; x >= dx; x--)
+				copy_rect(screen + x - dx, SCREEN_W, x, 0, 1, height);
+		} else {
+			// move left
+			// copy from left to right
+			for (int x = 0; x < SCREEN_W; x++)
+				copy_rect(screen + x - dx, SCREEN_W, x, 0, 1, height);
+		}
+	} else {
+		// free movement
+		// not neccessary for now
+	}
+
+
+}
+
+
 bool OSystem_Dreamcast::show_mouse(bool visible)
 {	
   bool last = _ms_visible;





More information about the Scummvm-git-logs mailing list