ménage (par le vide)
[minwii.git] / src / pgu / tilevid.py
diff --git a/src/pgu/tilevid.py b/src/pgu/tilevid.py
deleted file mode 100644 (file)
index 00f730d..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-"""Square tile based engine."""
-
-from pgu.vid import *
-import pygame
-
-class Tilevid(Vid):
-    """Based on [[vid]] -- see for reference."""
-    def paint(self,s):
-        sw,sh = s.get_width(),s.get_height()
-        self.view.w,self.view.h = sw,sh
-        
-        tiles = self.tiles
-        tw,th = tiles[0].image.get_width(),tiles[0].image.get_height()
-        w,h = self.size
-        
-        if self.bounds != None: self.view.clamp_ip(self.bounds)
-        
-        ox,oy = self.view.x,self.view.y
-        tlayer = self.tlayer
-        blayer = self.blayer
-        alayer = self.alayer
-        sprites = self.sprites
-        
-        blit = s.blit
-        yy = - (self.view.y%th) 
-        my = (oy+sh)/th
-        if (oy+sh)%th: my += 1
-        
-        if blayer != None:
-            for y in xrange(oy/th,my):
-                if y >=0 and y < h:
-                    trow = tlayer[y]
-                    brow = blayer[y]
-                    arow = alayer[y]
-                    xx= - (self.view.x%tw)
-                    mx = (ox+sw)/tw
-                    #if (ox+sh)%tw: mx += 1
-                    for x in xrange(ox/tw,mx+1):
-                        if x >=0and x<w:
-                            blit(tiles[brow[x]].image,(xx,yy))
-                            blit(tiles[trow[x]].image,(xx,yy))
-                            arow[x]=0
-                        xx += tw
-                yy+=th
-        else:
-            for y in xrange(oy/th,my):
-                if y >=0 and y<h:
-                    trow = tlayer[y]
-                    arow = alayer[y]
-                    xx= - (self.view.x%tw)
-                    mx = (ox+sw)/tw
-                    #if (ox+sh)%tw: mx += 1
-                    for x in xrange(ox/tw,mx+1):
-                        if x >=0 and x<w:
-                            blit(tiles[trow[x]].image,(xx,yy))
-                            arow[x]=0
-                        xx += tw
-                yy+=th
-
-        for s in sprites:
-            s.irect.x = s.rect.x-s.shape.x
-            s.irect.y = s.rect.y-s.shape.y
-            blit(s.image,(s.irect.x-ox,s.irect.y-oy))
-            s.updated=0
-            s._irect = Rect(s.irect)
-            #s._rect = Rect(s.rect)
-
-        self.updates = []
-        self._view = pygame.Rect(self.view)
-        return [Rect(0,0,sw,sh)]
-        
-    def update(self,s):
-        sw,sh = s.get_width(),s.get_height()
-        self.view.w,self.view.h = sw,sh
-        
-        if self.bounds != None: self.view.clamp_ip(self.bounds)
-        if self.view.x != self._view.x or self.view.y != self._view.y: 
-            return self.paint(s)
-        
-        ox,oy = self.view.x,self.view.y
-        sw,sh = s.get_width(),s.get_height()
-        w,h = self.size
-        tlayer = self.tlayer
-        blayer = self.blayer
-        alayer = self.alayer
-        tiles = self.tiles
-        tw,th = tiles[0].image.get_width(),tiles[0].image.get_height()
-        sprites = self.sprites
-        blit = s.blit
-        
-        us = []
-        
-        #mark places where sprites have moved, or been removed
-        
-        ss = self.sprites.removed
-        self.sprites.removed = []
-        ss.extend(sprites)
-        for s in ss: 
-            #figure out what has been updated.
-            s.irect.x = s.rect.x-s.shape.x
-            s.irect.y = s.rect.y-s.shape.y
-            if (s.irect.x != s._irect.x or s.irect.y != s._irect.y
-                     or s.image != s._image):
-                 #w,h can be skipped, image covers that...
-                 s.updated = 1
-            if s.updated:
-                r = s._irect
-                y = max(0,r.y/th)
-                yy = min(h,r.bottom/th+1)
-                while y < yy:
-                    x = max(0,r.x/tw)
-                    xx = min(w,r.right/tw+1)
-                    while x < xx:
-                        if alayer[y][x] == 0:
-                            self.updates.append((x,y))
-                        alayer[y][x]=1
-                        x += 1
-                    y += 1
-
-                r = s.irect
-                y = max(0,r.y/th)
-                yy = min(h,r.bottom/th+1)
-                while y < yy:
-                    x = r.x/tw
-                    xx = min(w,r.right/tw+1)
-                    while x < xx:
-                        if alayer[y][x]==0:
-                            alayer[y][x]=2
-                            self.updates.append((x,y))
-                        x += 1
-                    y += 1
-                    
-
-        #mark sprites that are not being updated that need to be updated because
-        #they are being overwritte by sprites / tiles
-        for s in sprites:
-            if s.updated==0:
-                r = s.irect
-                y = max(0,r.y/th)
-                yy = min(h,r.bottom/th+1)
-                while y < yy:
-                    x = max(0,r.x/tw)
-                    xx = min(w,r.right/tw+1)
-                    while x < xx:
-                        if alayer[y][x]==1:
-                            s.updated=1
-                        x += 1
-                    y += 1
-
-        
-        for u in self.updates:
-            x,y=u
-            xx,yy=x*tw-ox,y*th-oy
-            if alayer[y][x] == 1:
-                if blayer != None: blit(tiles[blayer[y][x]].image,(xx,yy))
-                blit(tiles[tlayer[y][x]].image,(xx,yy))
-            alayer[y][x]=0
-            us.append(Rect(xx,yy,tw,th))
-        
-        for s in sprites:
-            if s.updated:
-                blit(s.image,(s.irect.x-ox, s.irect.y-oy))
-                s.updated=0
-                s._irect = Rect(s.irect)
-                s._image = s.image
-                
-        self.updates = []
-        return us
-
-    def view_to_tile(self,pos):
-        x,y = pos
-        tiles = self.tiles
-        tw,th = tiles[0].image.get_width(),tiles[0].image.get_height()
-        return x/tw,y/th
-        
-    def tile_to_view(self,pos):
-        x,y = pos
-        tiles = self.tiles
-        tw,th = tiles[0].image.get_width(),tiles[0].image.get_height()
-        x,y = x*tw, y*th 
-        return x,y
-        
-                    
-    def screen_to_tile(self,pos):
-        x,y = pos
-        x,y = x+self.view.x,y+self.view.y
-        return self.view_to_tile((x,y))
-        
-    def tile_to_screen(self,pos):
-        x,y = pos
-        x,y = self.tile_to_view(pos)
-        x,y = x - self.view.x, y - self.view.y
-        return x,y
-                    
-# vim: set filetype=python sts=4 sw=4 noet si :