[Scummvm-cvs-logs] SF.net SVN: scummvm:[41654] scummvm/branches/gsoc2009-draci/engines/draci

dkasak13 at users.sourceforge.net dkasak13 at users.sourceforge.net
Fri Jun 19 02:00:32 CEST 2009


Revision: 41654
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41654&view=rev
Author:   dkasak13
Date:     2009-06-19 00:00:31 +0000 (Fri, 19 Jun 2009)

Log Message:
-----------
Added Sprite::draw() method for drawing sprites to a Surface.

Modified Paths:
--------------
    scummvm/branches/gsoc2009-draci/engines/draci/sprite.cpp
    scummvm/branches/gsoc2009-draci/engines/draci/sprite.h

Modified: scummvm/branches/gsoc2009-draci/engines/draci/sprite.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/sprite.cpp	2009-06-18 23:55:35 UTC (rev 41653)
+++ scummvm/branches/gsoc2009-draci/engines/draci/sprite.cpp	2009-06-19 00:00:31 UTC (rev 41654)
@@ -22,8 +22,10 @@
  * $Id$
  *
  */
+
 #include "common/stream.h"
 
+#include "draci/draci.h"
 #include "draci/sprite.h"
 
 namespace Draci {
@@ -75,7 +77,24 @@
 Sprite::~Sprite() { 
 	delete[] _data;
 }
+
+void Sprite::draw(Surface *surface) const { 
+	byte *dst = (byte *)surface->getBasePtr(_x, _y);
+	byte *src = _data;	
+	
+	for (unsigned int i = 0; i < _height; ++i) {
+		for(unsigned int j = 0; j < _width; ++j, ++src) {
+			if (*src != surface->getTransparentColour())			
+				dst[j] = *src;
+		}
 		
+		dst += surface->pitch;
+	}
+
+	Common::Rect r(_x, _y, _x + _width, _y + _height);
+	surface->markDirtyRect(r);
+}
+		
 			
 } // End of namespace Draci	
 		

Modified: scummvm/branches/gsoc2009-draci/engines/draci/sprite.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/sprite.h	2009-06-18 23:55:35 UTC (rev 41653)
+++ scummvm/branches/gsoc2009-draci/engines/draci/sprite.h	2009-06-19 00:00:31 UTC (rev 41654)
@@ -26,6 +26,8 @@
 #ifndef DRACI_SPRITE_H
 #define DRACI_SPRITE_H
 
+#include "draci/surface.h"
+
 namespace Draci {
 
 /**
@@ -52,6 +54,8 @@
 
 	~Sprite();
 
+	void draw(Surface *surface) const; 
+
 	byte *_data;
 	uint16 _width;
 	uint16 _height;	


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list