[pypy-svn] r62277 - in pypy/trunk/pypy/lang/gameboy: . test

tverwaes at codespeak.net tverwaes at codespeak.net
Sat Feb 28 20:02:17 CET 2009


Author: tverwaes
Date: Sat Feb 28 20:02:11 2009
New Revision: 62277

Modified:
   pypy/trunk/pypy/lang/gameboy/test/test_video_sprite.py
   pypy/trunk/pypy/lang/gameboy/video.py
   pypy/trunk/pypy/lang/gameboy/video_sprite.py
Log:
making it translate again. broken sprite drawing though


Modified: pypy/trunk/pypy/lang/gameboy/test/test_video_sprite.py
==============================================================================
--- pypy/trunk/pypy/lang/gameboy/test/test_video_sprite.py	(original)
+++ pypy/trunk/pypy/lang/gameboy/test/test_video_sprite.py	Sat Feb 28 20:02:11 2009
@@ -57,19 +57,19 @@
 def test_video_sprite_read_write():
     sprite = get_sprite()
     for i in range(0xFF):
-        sprite.set_data(byte0=i)
+        sprite.set_data_at(0, i)
         assert sprite.get_data()[0] == i
         
     for i in range(0xFF):
-        sprite.set_data(byte1=i)
+        sprite.set_data_at(1, i)
         assert sprite.get_data()[1] == i
         
     for i in range(0xFF):
-        sprite.set_data(byte2=i)
+        sprite.set_data_at(2, i)
         assert sprite.get_data()[2] == i
         
     for i in range(0xFF):
-        sprite.set_data(byte3=i)
+        sprite.set_data_at(3, i)
         assert sprite.get_data()[3] == i
         
 def test_size():

Modified: pypy/trunk/pypy/lang/gameboy/video.py
==============================================================================
--- pypy/trunk/pypy/lang/gameboy/video.py	(original)
+++ pypy/trunk/pypy/lang/gameboy/video.py	Sat Feb 28 20:02:11 2009
@@ -139,7 +139,7 @@
         
         #XXX remove those dumb helper "objects"
         self.line       = [0] * (SPRITE_SIZE + GAMEBOY_SCREEN_WIDTH + SPRITE_SIZE)
-        self.objects    = [0] * constants.OBJECTS_PER_LINE
+        self.objects    = [None] * constants.OBJECTS_PER_LINE
         self.palette    = [0] * 1024
         
         self.frames     = 0

Modified: pypy/trunk/pypy/lang/gameboy/video_sprite.py
==============================================================================
--- pypy/trunk/pypy/lang/gameboy/video_sprite.py	(original)
+++ pypy/trunk/pypy/lang/gameboy/video_sprite.py	Sat Feb 28 20:02:11 2009
@@ -30,18 +30,25 @@
     def get_data(self):
         return [self.y, self.x, self.tile_number, self.get_attributes_and_flags()]
 
-    def set_data(self, byte0=-1, byte1=-1, byte2=-1, byte3=-1):
+    def set_data_at(self, address, data):
+        actual = address % 4
+        if actual == 0:
+            self.extract_y_position(data)
+        if actual == 1:
+            self.extract_x_position(data)
+        if actual == 2:
+            self.extract_tile_number(data)
+        if actual == 3:
+            self.extract_attributes_and_flags(data)
+
+    def set_data(self, y_position, x_position, tile_number, attributes_and_flags):
         """
         extracts the sprite data from an oam entry
         """
-        if byte0 is not -1:
-            self.extract_y_position(byte0)
-        if byte1 is not -1:
-            self.extract_x_position(byte1)
-        if byte2 is not -1:
-            self.extract_tile_number(byte2)
-        if byte3 is not -1:
-            self.extract_attributes_and_flags(byte3)
+        self.extract_y_position(y_position)
+        self.extract_x_position(x_position)
+        self.extract_tile_number(tile_number)
+        self.extract_attributes_and_flags(attributes_and_flags)
         
     def extract_y_position(self, data):
         """
@@ -132,13 +139,13 @@
     def get_draw_y(self, line_y):
         return line_y - self.y + 2 * SPRITE_SIZE
         
-    def get_draw_address_data(line_y):
-        tile = sprite.tile_number
+    def get_draw_address_data(self, line_y):
+        tile = self.tile_number
         if self.big_size:
             tile &= 0xFE
         tile_size = self.get_height() -1
         y = self.get_draw_y(line_y)
-        if sprite.y_flipped:
+        if self.y_flipped:
             y = tile_size - y
         return  (tile << 4) + (y << 1)
         



More information about the Pypy-commit mailing list