[pypy-svn] r62398 - in pypy/trunk/pypy/lang/gameboy: . test
tverwaes at codespeak.net
tverwaes at codespeak.net
Mon Mar 2 16:13:32 CET 2009
Author: tverwaes
Date: Mon Mar 2 16:13:28 2009
New Revision: 62398
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:
fixed bugs
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 Mon Mar 2 16:13:28 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 Mon Mar 2 16:13:28 2009
@@ -90,16 +90,7 @@
self.oam[address + 3])
def update_sprite(self, address, data):
- # TODO: TEST!
- # XXX why cant I use None here
- # (because None == 0 in C?)
- attribute = [-1] * 4
- # assign the data to the correct attribute
- attribute[address % 4] = data
- self.get_sprite(address).set_data(attribute[0],
- attribute[1],
- attribute[2],
- attribute[3])
+ self.get_sprite(address).set_data_at(address, data)
def get_sprite(self, address):
address -= constants.OAM_ADDR
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 Mon Mar 2 16:13:28 2009
@@ -30,18 +30,28 @@
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(self, y, x, tile_number, 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)
+ self.extract_x_position(x)
+ self.extract_tile_number(tile_number)
+ self.extract_attributes_and_flags(flags)
+
+ def set_data_at(self, address, data):
+ """
+ extracts the sprite data from an oam entry
+ """
+ position = address % 4
+ if position == 0:
+ self.extract_y_position(data)
+ if position == 1:
+ self.extract_x_position(data)
+ if position == 2:
+ self.extract_tile_number(data)
+ if position == 3:
+ self.extract_attributes_and_flags(data)
def extract_y_position(self, data):
"""
More information about the Pypy-commit
mailing list